astra/am3352-sbc

A 4-layer AM3352 single-board computer with 128‑MiB DDR3, PMIC power regulation, USB‑C 5‑V PD input, dual USB host ports, HDMI output with ESD protection, microSD/UART/JTAG interfaces, addressable RGB indicators, and a PWM-driven buzzer.

Version
0.1.19
License
unset
Stars
0

dist/viewer-part-07.txt

* textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );
	}
	vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {
		vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );
		vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );
		vec2 fLodSizeInv = 1.0 / fLodSize;
		vec2 cLodSizeInv = 1.0 / cLodSize;
		vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );
		vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );
		return mix( fSample, cSample, fract( lod ) );
	}
	vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {
		vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );
		vec3 modelScale;
		modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );
		modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );
		modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
		return normalize( refractionVector ) * thickness * modelScale;
	}
	float applyIorToRoughness( const in float roughness, const in float ior ) {
		return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
	}
	vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {
		float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
		return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );
	}
	vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {
		if ( isinf( attenuationDistance ) ) {
			return vec3( 1.0 );
		} else {
			vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;
			vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );			return transmittance;
		}
	}
	vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,
		const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,
		const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,
		const in vec3 attenuationColor, const in float attenuationDistance ) {
		vec4 transmittedLight;
		vec3 transmittance;
		#ifdef USE_DISPERSION
			float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;
			vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );
			for ( int i = 0; i < 3; i ++ ) {
				vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );
				vec3 refractedRayExit = position + transmissionRay;
		
				vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
				vec2 refractionCoords = ndcPos.xy / ndcPos.w;
				refractionCoords += 1.0;
				refractionCoords /= 2.0;
		
				vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );
				transmittedLight[ i ] = transmissionSample[ i ];
				transmittedLight.a += transmissionSample.a;
				transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];
			}
			transmittedLight.a /= 3.0;
		
		#else
		
			vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
			vec3 refractedRayExit = position + transmissionRay;
			vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
			vec2 refractionCoords = ndcPos.xy / ndcPos.w;
			refractionCoords += 1.0;
			refractionCoords /= 2.0;
			transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );
			transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
		
		#endif
		vec3 attenuatedColor = transmittance * transmittedLight.rgb;
		vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );
		float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;
		return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );
	}
#endif`,UXo=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
	varying vec2 vUv;
#endif
#ifdef USE_MAP
	varying vec2 vMapUv;
#endif
#ifdef USE_ALPHAMAP
	varying vec2 vAlphaMapUv;
#endif
#ifdef USE_LIGHTMAP
	varying vec2 vLightMapUv;
#endif
#ifdef USE_AOMAP
	varying vec2 vAoMapUv;
#endif
#ifdef USE_BUMPMAP
	varying vec2 vBumpMapUv;
#endif
#ifdef USE_NORMALMAP
	varying vec2 vNormalMapUv;
#endif
#ifdef USE_EMISSIVEMAP
	varying vec2 vEmissiveMapUv;
#endif
#ifdef USE_METALNESSMAP
	varying vec2 vMetalnessMapUv;
#endif
#ifdef USE_ROUGHNESSMAP
	varying vec2 vRoughnessMapUv;
#endif
#ifdef USE_ANISOTROPYMAP
	varying vec2 vAnisotropyMapUv;
#endif
#ifdef USE_CLEARCOATMAP
	varying vec2 vClearcoatMapUv;
#endif
#ifdef USE_CLEARCOAT_NORMALMAP
	varying vec2 vClearcoatNormalMapUv;
#endif
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
	varying vec2 vClearcoatRoughnessMapUv;
#endif
#ifdef USE_IRIDESCENCEMAP
	varying vec2 vIridescenceMapUv;
#endif
#ifdef USE_IRIDESCENCE_THICKNESSMAP
	varying vec2 vIridescenceThicknessMapUv;
#endif
#ifdef USE_SHEEN_COLORMAP
	varying vec2 vSheenColorMapUv;
#endif
#ifdef USE_SHEEN_ROUGHNESSMAP
	varying vec2 vSheenRoughnessMapUv;
#endif
#ifdef USE_SPECULARMAP
	varying vec2 vSpecularMapUv;
#endif
#ifdef USE_SPECULAR_COLORMAP
	varying vec2 vSpecularColorMapUv;
#endif
#ifdef USE_SPECULAR_INTENSITYMAP
	varying vec2 vSpecularIntensityMapUv;
#endif
#ifdef USE_TRANSMISSIONMAP
	uniform mat3 transmissionMapTransform;
	varying vec2 vTransmissionMapUv;
#endif
#ifdef USE_THICKNESSMAP
	uniform mat3 thicknessMapTransform;
	varying vec2 vThicknessMapUv;
#endif`,KXo=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
	varying vec2 vUv;
#endif
#ifdef USE_MAP
	uniform mat3 mapTransform;
	varying vec2 vMapUv;
#endif
#ifdef USE_ALPHAMAP
	uniform mat3 alphaMapTransform;
	varying vec2 vAlphaMapUv;
#endif
#ifdef USE_LIGHTMAP
	uniform mat3 lightMapTransform;
	varying vec2 vLightMapUv;
#endif
#ifdef USE_AOMAP
	uniform mat3 aoMapTransform;
	varying vec2 vAoMapUv;
#endif
#ifdef USE_BUMPMAP
	uniform mat3 bumpMapTransform;
	varying vec2 vBumpMapUv;
#endif
#ifdef USE_NORMALMAP
	uniform mat3 normalMapTransform;
	varying vec2 vNormalMapUv;
#endif
#ifdef USE_DISPLACEMENTMAP
	uniform mat3 displacementMapTransform;
	varying vec2 vDisplacementMapUv;
#endif
#ifdef USE_EMISSIVEMAP
	uniform mat3 emissiveMapTransform;
	varying vec2 vEmissiveMapUv;
#endif
#ifdef USE_METALNESSMAP
	uniform mat3 metalnessMapTransform;
	varying vec2 vMetalnessMapUv;
#endif
#ifdef USE_ROUGHNESSMAP
	uniform mat3 roughnessMapTransform;
	varying vec2 vRoughnessMapUv;
#endif
#ifdef USE_ANISOTROPYMAP
	uniform mat3 anisotropyMapTransform;
	varying vec2 vAnisotropyMapUv;
#endif
#ifdef USE_CLEARCOATMAP
	uniform mat3 clearcoatMapTransform;
	varying vec2 vClearcoatMapUv;
#endif
#ifdef USE_CLEARCOAT_NORMALMAP
	uniform mat3 clearcoatNormalMapTransform;
	varying vec2 vClearcoatNormalMapUv;
#endif
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
	uniform mat3 clearcoatRoughnessMapTransform;
	varying vec2 vClearcoatRoughnessMapUv;
#endif
#ifdef USE_SHEEN_COLORMAP
	uniform mat3 sheenColorMapTransform;
	varying vec2 vSheenColorMapUv;
#endif
#ifdef USE_SHEEN_ROUGHNESSMAP
	uniform mat3 sheenRoughnessMapTransform;
	varying vec2 vSheenRoughnessMapUv;
#endif
#ifdef USE_IRIDESCENCEMAP
	uniform mat3 iridescenceMapTransform;
	varying vec2 vIridescenceMapUv;
#endif
#ifdef USE_IRIDESCENCE_THICKNESSMAP
	uniform mat3 iridescenceThicknessMapTransform;
	varying vec2 vIridescenceThicknessMapUv;
#endif
#ifdef USE_SPECULARMAP
	uniform mat3 specularMapTransform;
	varying vec2 vSpecularMapUv;
#endif
#ifdef USE_SPECULAR_COLORMAP
	uniform mat3 specularColorMapTransform;
	varying vec2 vSpecularColorMapUv;
#endif
#ifdef USE_SPECULAR_INTENSITYMAP
	uniform mat3 specularIntensityMapTransform;
	varying vec2 vSpecularIntensityMapUv;
#endif
#ifdef USE_TRANSMISSIONMAP
	uniform mat3 transmissionMapTransform;
	varying vec2 vTransmissionMapUv;
#endif
#ifdef USE_THICKNESSMAP
	uniform mat3 thicknessMapTransform;
	varying vec2 vThicknessMapUv;
#endif`,VXo=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
	vUv = vec3( uv, 1 ).xy;
#endif
#ifdef USE_MAP
	vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;
#endif
#ifdef USE_ALPHAMAP
	vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_LIGHTMAP
	vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_AOMAP
	vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_BUMPMAP
	vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_NORMALMAP
	vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_DISPLACEMENTMAP
	vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_EMISSIVEMAP
	vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_METALNESSMAP
	vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_ROUGHNESSMAP
	vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_ANISOTROPYMAP
	vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_CLEARCOATMAP
	vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_CLEARCOAT_NORMALMAP
	vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
	vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_IRIDESCENCEMAP
	vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_IRIDESCENCE_THICKNESSMAP
	vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SHEEN_COLORMAP
	vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SHEEN_ROUGHNESSMAP
	vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SPECULARMAP
	vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SPECULAR_COLORMAP
	vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_SPECULAR_INTENSITYMAP
	vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_TRANSMISSIONMAP
	vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;
#endif
#ifdef USE_THICKNESSMAP
	vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;
#endif`,zXo=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0
	vec4 worldPosition = vec4( transformed, 1.0 );
	#ifdef USE_BATCHING
		worldPosition = batchingMatrix * worldPosition;
	#endif
	#ifdef USE_INSTANCING
		worldPosition = instanceMatrix * worldPosition;
	#endif
	worldPosition = modelMatrix * worldPosition;
#endif`;const OA={alphahash_fragment:W$o,alphahash_pars_fragment:j$o,alphamap_fragment:$$o,alphamap_pars_fragment:q$o,alphatest_fragment:X$o,alphatest_pars_fragment:Z$o,aomap_fragment:eqo,aomap_pars_fragment:tqo,batching_pars_vertex:nqo,batching_vertex:oqo,begin_vertex:iqo,beginnormal_vertex:rqo,bsdfs:sqo,iridescence_fragment:aqo,bumpmap_pars_fragment:Aqo,clipping_planes_fragment:cqo,clipping_planes_pars_fragment:lqo,clipping_planes_pars_vertex:uqo,clipping_planes_vertex:gqo,color_fragment:dqo,color_pars_fragment:hqo,color_pars_vertex:pqo,color_vertex:mqo,common:_qo,cube_uv_reflection_fragment:fqo,defaultnormal_vertex:Iqo,displacementmap_pars_vertex:Cqo,displacementmap_vertex:yqo,emissivemap_fragment:xqo,emissivemap_pars_fragment:Eqo,colorspace_fragment:Bqo,colorspace_pars_fragment:bqo,envmap_fragment:Sqo,envmap_common_pars_fragment:Qqo,envmap_pars_fragment:vqo,envmap_pars_vertex:wqo,envmap_physical_pars_fragment:Oqo,envmap_vertex:Pqo,fog_vertex:Mqo,fog_pars_vertex:Dqo,fog_fragment:Nqo,fog_pars_fragment:Rqo,gradientmap_pars_fragment:Tqo,lightmap_pars_fragment:kqo,lights_lambert_fragment:Fqo,lights_lambert_pars_fragment:Lqo,lights_pars_begin:Hqo,lights_toon_fragment:Gqo,lights_toon_pars_fragment:Yqo,lights_phong_fragment:Uqo,lights_phong_pars_fragment:Kqo,lights_physical_fragment:Vqo,lights_physical_pars_fragment:zqo,lights_fragment_begin:Jqo,lights_fragment_maps:Wqo,lights_fragment_end:jqo,logdepthbuf_fragment:$qo,logdepthbuf_pars_fragment:qqo,logdepthbuf_pars_vertex:Xqo,logdepthbuf_vertex:Zqo,map_fragment:eXo,map_pars_fragment:tXo,map_particle_fragment:nXo,map_particle_pars_fragment:oXo,metalnessmap_fragment:iXo,metalnessmap_pars_fragment:rXo,morphinstance_vertex:sXo,morphcolor_vertex:aXo,morphnormal_vertex:AXo,morphtarget_pars_vertex:cXo,morphtarget_vertex:lXo,normal_fragment_begin:uXo,normal_fragment_maps:gXo,normal_pars_fragment:dXo,normal_pars_vertex:hXo,normal_vertex:pXo,normalmap_pars_fragment:mXo,clearcoat_normal_fragment_begin:_Xo,clearcoat_normal_fragment_maps:fXo,clearcoat_pars_fragment:IXo,iridescence_pars_fragment:CXo,opaque_fragment:yXo,packing:xXo,premultiplied_alpha_fragment:EXo,project_vertex:BXo,dithering_fragment:bXo,dithering_pars_fragment:SXo,roughnessmap_fragment:QXo,roughnessmap_pars_fragment:vXo,shadowmap_pars_fragment:wXo,shadowmap_pars_vertex:PXo,shadowmap_vertex:MXo,shadowmask_pars_fragment:DXo,skinbase_vertex:NXo,skinning_pars_vertex:RXo,skinning_vertex:TXo,skinnormal_vertex:kXo,specularmap_fragment:FXo,specularmap_pars_fragment:LXo,tonemapping_fragment:HXo,tonemapping_pars_fragment:OXo,transmission_fragment:GXo,transmission_pars_fragment:YXo,uv_pars_fragment:UXo,uv_pars_vertex:KXo,uv_vertex:VXo,worldpos_vertex:zXo,background_vert:`varying vec2 vUv;
uniform mat3 uvTransform;
void main() {
	vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
	gl_Position = vec4( position.xy, 1.0, 1.0 );
}`,background_frag:`uniform sampler2D t2D;
uniform float backgroundIntensity;
varying vec2 vUv;
void main() {
	vec4 texColor = texture2D( t2D, vUv );
	#ifdef DECODE_VIDEO_TEXTURE
		texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );
	#endif
	texColor.rgb *= backgroundIntensity;
	gl_FragColor = texColor;
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
}`,backgroundCube_vert:`varying vec3 vWorldDirection;
#include <common>
void main() {
	vWorldDirection = transformDirection( position, modelMatrix );
	#include <begin_vertex>
	#include <project_vertex>
	gl_Position.z = gl_Position.w;
}`,backgroundCube_frag:`#ifdef ENVMAP_TYPE_CUBE
	uniform samplerCube envMap;
#elif defined( ENVMAP_TYPE_CUBE_UV )
	uniform sampler2D envMap;
#endif
uniform float flipEnvMap;
uniform float backgroundBlurriness;
uniform float backgroundIntensity;
uniform mat3 backgroundRotation;
varying vec3 vWorldDirection;
#include <cube_uv_reflection_fragment>
void main() {
	#ifdef ENVMAP_TYPE_CUBE
		vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );
	#elif defined( ENVMAP_TYPE_CUBE_UV )
		vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );
	#else
		vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );
	#endif
	texColor.rgb *= backgroundIntensity;
	gl_FragColor = texColor;
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
}`,cube_vert:`varying vec3 vWorldDirection;
#include <common>
void main() {
	vWorldDirection = transformDirection( position, modelMatrix );
	#include <begin_vertex>
	#include <project_vertex>
	gl_Position.z = gl_Position.w;
}`,cube_frag:`uniform samplerCube tCube;
uniform float tFlip;
uniform float opacity;
varying vec3 vWorldDirection;
void main() {
	vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );
	gl_FragColor = texColor;
	gl_FragColor.a *= opacity;
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
}`,depth_vert:`#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
varying vec2 vHighPrecisionZW;
void main() {
	#include <uv_vertex>
	#include <batching_vertex>
	#include <skinbase_vertex>
	#include <morphinstance_vertex>
	#ifdef USE_DISPLACEMENTMAP
		#include <beginnormal_vertex>
		#include <morphnormal_vertex>
		#include <skinnormal_vertex>
	#endif
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vHighPrecisionZW = gl_Position.zw;
}`,depth_frag:`#if DEPTH_PACKING == 3200
	uniform float opacity;
#endif
#include <common>
#include <packing>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
varying vec2 vHighPrecisionZW;
void main() {
	vec4 diffuseColor = vec4( 1.0 );
	#include <clipping_planes_fragment>
	#if DEPTH_PACKING == 3200
		diffuseColor.a = opacity;
	#endif
	#include <map_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <logdepthbuf_fragment>
	float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;
	#if DEPTH_PACKING == 3200
		gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );
	#elif DEPTH_PACKING == 3201
		gl_FragColor = packDepthToRGBA( fragCoordZ );
	#endif
}`,distanceRGBA_vert:`#define DISTANCE
varying vec3 vWorldPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <batching_vertex>
	#include <skinbase_vertex>
	#include <morphinstance_vertex>
	#ifdef USE_DISPLACEMENTMAP
		#include <beginnormal_vertex>
		#include <morphnormal_vertex>
		#include <skinnormal_vertex>
	#endif
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <worldpos_vertex>
	#include <clipping_planes_vertex>
	vWorldPosition = worldPosition.xyz;
}`,distanceRGBA_frag:`#define DISTANCE
uniform vec3 referencePosition;
uniform float nearDistance;
uniform float farDistance;
varying vec3 vWorldPosition;
#include <common>
#include <packing>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <clipping_planes_pars_fragment>
void main () {
	vec4 diffuseColor = vec4( 1.0 );
	#include <clipping_planes_fragment>
	#include <map_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	float dist = length( vWorldPosition - referencePosition );
	dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
	dist = saturate( dist );
	gl_FragColor = packDepthToRGBA( dist );
}`,equirect_vert:`varying vec3 vWorldDirection;
#include <common>
void main() {
	vWorldDirection = transformDirection( position, modelMatrix );
	#include <begin_vertex>
	#include <project_vertex>
}`,equirect_frag:`uniform sampler2D tEquirect;
varying vec3 vWorldDirection;
#include <common>
void main() {
	vec3 direction = normalize( vWorldDirection );
	vec2 sampleUV = equirectUv( direction );
	gl_FragColor = texture2D( tEquirect, sampleUV );
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
}`,linedashed_vert:`uniform float scale;
attribute float lineDistance;
varying float vLineDistance;
#include <common>
#include <uv_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <morphtarget_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	vLineDistance = scale * lineDistance;
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <fog_vertex>
}`,linedashed_frag:`uniform vec3 diffuse;
uniform float opacity;
uniform float dashSize;
uniform float totalSize;
varying float vLineDistance;
#include <common>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <fog_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	if ( mod( vLineDistance, totalSize ) > dashSize ) {
		discard;
	}
	vec3 outgoingLight = vec3( 0.0 );
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	outgoingLight = diffuseColor.rgb;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
}`,meshbasic_vert:`#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <envmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )
		#include <beginnormal_vertex>
		#include <morphnormal_vertex>
		#include <skinbase_vertex>
		#include <skinnormal_vertex>
		#include <defaultnormal_vertex>
	#endif
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <worldpos_vertex>
	#include <envmap_vertex>
	#include <fog_vertex>
}`,meshbasic_frag:`uniform vec3 diffuse;
uniform float opacity;
#ifndef FLAT_SHADED
	varying vec3 vNormal;
#endif
#include <common>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <envmap_common_pars_fragment>
#include <envmap_pars_fragment>
#include <fog_pars_fragment>
#include <specularmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <specularmap_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	#ifdef USE_LIGHTMAP
		vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
		reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;
	#else
		reflectedLight.indirectDiffuse += vec3( 1.0 );
	#endif
	#include <aomap_fragment>
	reflectedLight.indirectDiffuse *= diffuseColor.rgb;
	vec3 outgoingLight = reflectedLight.indirectDiffuse;
	#include <envmap_fragment>
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,meshlambert_vert:`#define LAMBERT
varying vec3 vViewPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <envmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <shadowmap_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vViewPosition = - mvPosition.xyz;
	#include <worldpos_vertex>
	#include <envmap_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
}`,meshlambert_frag:`#define LAMBERT
uniform vec3 diffuse;
uniform vec3 emissive;
uniform float opacity;
#include <common>
#include <packing>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment>
#include <envmap_common_pars_fragment>
#include <envmap_pars_fragment>
#include <fog_pars_fragment>
#include <bsdfs>
#include <lights_pars_begin>
#include <normal_pars_fragment>
#include <lights_lambert_pars_fragment>
#include <shadowmap_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <specularmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	vec3 totalEmissiveRadiance = emissive;
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <specularmap_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	#include <emissivemap_fragment>
	#include <lights_lambert_fragment>
	#include <lights_fragment_begin>
	#include <lights_fragment_maps>
	#include <lights_fragment_end>
	#include <aomap_fragment>
	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
	#include <envmap_fragment>
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,meshmatcap_vert:`#define MATCAP
varying vec3 vViewPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <color_pars_vertex>
#include <displacementmap_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <fog_vertex>
	vViewPosition = - mvPosition.xyz;
}`,meshmatcap_frag:`#define MATCAP
uniform vec3 diffuse;
uniform float opacity;
uniform sampler2D matcap;
varying vec3 vViewPosition;
#include <common>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <fog_pars_fragment>
#include <normal_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	vec3 viewDir = normalize( vViewPosition );
	vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
	vec3 y = cross( viewDir, x );
	vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
	#ifdef USE_MATCAP
		vec4 matcapColor = texture2D( matcap, uv );
	#else
		vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );
	#endif
	vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,meshnormal_vert:`#define NORMAL
#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
	varying vec3 vViewPosition;
#endif
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphinstance_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
	vViewPosition = - mvPosition.xyz;
#endif
}`,meshnormal_frag:`#define NORMAL
uniform float opacity;
#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
	varying vec3 vViewPosition;
#endif
#include <packing>
#include <uv_pars_fragment>
#include <normal_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );
	#include <clipping_planes_fragment>
	#include <logdepthbuf_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );
	#ifdef OPAQUE
		gl_FragColor.a = 1.0;
	#endif
}`,meshphong_vert:`#define PHONG
varying vec3 vViewPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <envmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <shadowmap_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphinstance_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vViewPosition = - mvPosition.xyz;
	#include <worldpos_vertex>
	#include <envmap_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
}`,meshphong_frag:`#define PHONG
uniform vec3 diffuse;
uniform vec3 emissive;
uniform vec3 specular;
uniform float shininess;
uniform float opacity;
#include <common>
#include <packing>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment>
#include <envmap_common_pars_fragment>
#include <envmap_pars_fragment>
#include <fog_pars_fragment>
#include <bsdfs>
#include <lights_pars_begin>
#include <normal_pars_fragment>
#include <lights_phong_pars_fragment>
#include <shadowmap_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <specularmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	vec3 totalEmissiveRadiance = emissive;
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <specularmap_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	#include <emissivemap_fragment>
	#include <lights_phong_fragment>
	#include <lights_fragment_begin>
	#include <lights_fragment_maps>
	#include <lights_fragment_end>
	#include <aomap_fragment>
	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
	#include <envmap_fragment>
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,meshphysical_vert:`#define STANDARD
varying vec3 vViewPosition;
#ifdef USE_TRANSMISSION
	varying vec3 vWorldPosition;
#endif
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <shadowmap_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vViewPosition = - mvPosition.xyz;
	#include <worldpos_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
#ifdef USE_TRANSMISSION
	vWorldPosition = worldPosition.xyz;
#endif
}`,meshphysical_frag:`#define STANDARD
#ifdef PHYSICAL
	#define IOR
	#define USE_SPECULAR
#endif
uniform vec3 diffuse;
uniform vec3 emissive;
uniform float roughness;
uniform float metalness;
uniform float opacity;
#ifdef IOR
	uniform float ior;
#endif
#ifdef USE_SPECULAR
	uniform float specularIntensity;
	uniform vec3 specularColor;
	#ifdef USE_SPECULAR_COLORMAP
		uniform sampler2D specularColorMap;
	#endif
	#ifdef USE_SPECULAR_INTENSITYMAP
		uniform sampler2D specularIntensityMap;
	#endif
#endif
#ifdef USE_CLEARCOAT
	uniform float clearcoat;
	uniform float clearcoatRoughness;
#endif
#ifdef USE_DISPERSION
	uniform float dispersion;
#endif
#ifdef USE_IRIDESCENCE
	uniform float iridescence;
	uniform float iridescenceIOR;
	uniform float iridescenceThicknessMinimum;
	uniform float iridescenceThicknessMaximum;
#endif
#ifdef USE_SHEEN
	uniform vec3 sheenColor;
	uniform float sheenRoughness;
	#ifdef USE_SHEEN_COLORMAP
		uniform sampler2D sheenColorMap;
	#endif
	#ifdef USE_SHEEN_ROUGHNESSMAP
		uniform sampler2D sheenRoughnessMap;
	#endif
#endif
#ifdef USE_ANISOTROPY
	uniform vec2 anisotropyVector;
	#ifdef USE_ANISOTROPYMAP
		uniform sampler2D anisotropyMap;
	#endif
#endif
varying vec3 vViewPosition;
#include <common>
#include <packing>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment>
#include <iridescence_fragment>
#include <cube_uv_reflection_fragment>
#include <envmap_common_pars_fragment>
#include <envmap_physical_pars_fragment>
#include <fog_pars_fragment>
#include <lights_pars_begin>
#include <normal_pars_fragment>
#include <lights_physical_pars_fragment>
#include <transmission_pars_fragment>
#include <shadowmap_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <clearcoat_pars_fragment>
#include <iridescence_pars_fragment>
#include <roughnessmap_pars_fragment>
#include <metalnessmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	vec3 totalEmissiveRadiance = emissive;
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <roughnessmap_fragment>
	#include <metalnessmap_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	#include <clearcoat_normal_fragment_begin>
	#include <clearcoat_normal_fragment_maps>
	#include <emissivemap_fragment>
	#include <lights_physical_fragment>
	#include <lights_fragment_begin>
	#include <lights_fragment_maps>
	#include <lights_fragment_end>
	#include <aomap_fragment>
	vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;
	vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;
	#include <transmission_fragment>
	vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;
	#ifdef USE_SHEEN
		float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );
		outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;
	#endif
	#ifdef USE_CLEARCOAT
		float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );
		vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
		outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;
	#endif
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,meshtoon_vert:`#define TOON
varying vec3 vViewPosition;
#include <common>
#include <batching_pars_vertex>
#include <uv_pars_vertex>
#include <displacementmap_pars_vertex>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <normal_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <shadowmap_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <normal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <displacementmap_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	vViewPosition = - mvPosition.xyz;
	#include <worldpos_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
}`,meshtoon_frag:`#define TOON
uniform vec3 diffuse;
uniform vec3 emissive;
uniform float opacity;
#include <common>
#include <packing>
#include <dithering_pars_fragment>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment>
#include <gradientmap_pars_fragment>
#include <fog_pars_fragment>
#include <bsdfs>
#include <lights_pars_begin>
#include <normal_pars_fragment>
#include <lights_toon_pars_fragment>
#include <shadowmap_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
	vec3 totalEmissiveRadiance = emissive;
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <color_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	#include <normal_fragment_begin>
	#include <normal_fragment_maps>
	#include <emissivemap_fragment>
	#include <lights_toon_fragment>
	#include <lights_fragment_begin>
	#include <lights_fragment_maps>
	#include <lights_fragment_end>
	#include <aomap_fragment>
	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
	#include <dithering_fragment>
}`,points_vert:`uniform float size;
uniform float scale;
#include <common>
#include <color_pars_vertex>
#include <fog_pars_vertex>
#include <morphtarget_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
#ifdef USE_POINTS_UV
	varying vec2 vUv;
	uniform mat3 uvTransform;
#endif
void main() {
	#ifdef USE_POINTS_UV
		vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
	#endif
	#include <color_vertex>
	#include <morphinstance_vertex>
	#include <morphcolor_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <project_vertex>
	gl_PointSize = size;
	#ifdef USE_SIZEATTENUATION
		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
		if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );
	#endif
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <worldpos_vertex>
	#include <fog_vertex>
}`,points_frag:`uniform vec3 diffuse;
uniform float opacity;
#include <common>
#include <color_pars_fragment>
#include <map_particle_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <fog_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	vec3 outgoingLight = vec3( 0.0 );
	#include <logdepthbuf_fragment>
	#include <map_particle_fragment>
	#include <color_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	outgoingLight = diffuseColor.rgb;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
	#include <premultiplied_alpha_fragment>
}`,shadow_vert:`#include <common>
#include <batching_pars_vertex>
#include <fog_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <shadowmap_pars_vertex>
void main() {
	#include <batching_vertex>
	#include <beginnormal_vertex>
	#include <morphinstance_vertex>
	#include <morphnormal_vertex>
	#include <skinbase_vertex>
	#include <skinnormal_vertex>
	#include <defaultnormal_vertex>
	#include <begin_vertex>
	#include <morphtarget_vertex>
	#include <skinning_vertex>
	#include <project_vertex>
	#include <logdepthbuf_vertex>
	#include <worldpos_vertex>
	#include <shadowmap_vertex>
	#include <fog_vertex>
}`,shadow_frag:`uniform vec3 color;
uniform float opacity;
#include <common>
#include <packing>
#include <fog_pars_fragment>
#include <bsdfs>
#include <lights_pars_begin>
#include <logdepthbuf_pars_fragment>
#include <shadowmap_pars_fragment>
#include <shadowmask_pars_fragment>
void main() {
	#include <logdepthbuf_fragment>
	gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
}`,sprite_vert:`uniform float rotation;
uniform vec2 center;
#include <common>
#include <uv_pars_vertex>
#include <fog_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
	#include <uv_vertex>
	vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );
	vec2 scale;
	scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );
	scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );
	#ifndef USE_SIZEATTENUATION
		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
		if ( isPerspective ) scale *= - mvPosition.z;
	#endif
	vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;
	vec2 rotatedPosition;
	rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
	rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
	mvPosition.xy += rotatedPosition;
	gl_Position = projectionMatrix * mvPosition;
	#include <logdepthbuf_vertex>
	#include <clipping_planes_vertex>
	#include <fog_vertex>
}`,sprite_frag:`uniform vec3 diffuse;
uniform float opacity;
#include <common>
#include <uv_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <alphatest_pars_fragment>
#include <alphahash_pars_fragment>
#include <fog_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
	vec4 diffuseColor = vec4( diffuse, opacity );
	#include <clipping_planes_fragment>
	vec3 outgoingLight = vec3( 0.0 );
	#include <logdepthbuf_fragment>
	#include <map_fragment>
	#include <alphamap_fragment>
	#include <alphatest_fragment>
	#include <alphahash_fragment>
	outgoingLight = diffuseColor.rgb;
	#include <opaque_fragment>
	#include <tonemapping_fragment>
	#include <colorspace_fragment>
	#include <fog_fragment>
}`},or={common:{diffuse:{value:new Vi(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new HA},alphaMap:{value:null},alphaMapTransform:{value:new HA},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new HA}},envmap:{envMap:{value:null},envMapRotation:{value:new HA},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new HA}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new HA}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new HA},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new HA},normalScale:{value:new ni(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new HA},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new HA}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new HA}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new HA}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Vi(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Vi(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new HA},alphaTest:{value:0},uvTransform:{value:new HA}},sprite:{diffuse:{value:new Vi(16777215)},opacity:{value:1},center:{value:new ni(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new HA},alphaMap:{value:null},alphaMapTransform:{value:new HA},alphaTest:{value:0}}},I6={basic:{uniforms:n2([or.common,or.specularmap,or.envmap,or.aomap,or.lightmap,or.fog]),vertexShader:OA.meshbasic_vert,fragmentShader:OA.meshbasic_frag},lambert:{uniforms:n2([or.common,or.specularmap,or.envmap,or.aomap,or.lightmap,or.emissivemap,or.bumpmap,or.normalmap,or.displacementmap,or.fog,or.lights,{emissive:{value:new Vi(0)}}]),vertexShader:OA.meshlambert_vert,fragmentShader:OA.meshlambert_frag},phong:{uniforms:n2([or.common,or.specularmap,or.envmap,or.aomap,or.lightmap,or.emissivemap,or.bumpmap,or.normalmap,or.displacementmap,or.fog,or.lights,{emissive:{value:new Vi(0)},specular:{value:new Vi(1118481)},shininess:{value:30}}]),vertexShader:OA.meshphong_vert,fragmentShader:OA.meshphong_frag},standard:{uniforms:n2([or.common,or.envmap,or.aomap,or.lightmap,or.emissivemap,or.bumpmap,or.normalmap,or.displacementmap,or.roughnessmap,or.metalnessmap,or.fog,or.lights,{emissive:{value:new Vi(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:OA.meshphysical_vert,fragmentShader:OA.meshphysical_frag},toon:{uniforms:n2([or.common,or.aomap,or.lightmap,or.emissivemap,or.bumpmap,or.normalmap,or.displacementmap,or.gradientmap,or.fog,or.lights,{emissive:{value:new Vi(0)}}]),vertexShader:OA.meshtoon_vert,fragmentShader:OA.meshtoon_frag},matcap:{uniforms:n2([or.common,or.bumpmap,or.normalmap,or.displacementmap,or.fog,{matcap:{value:null}}]),vertexShader:OA.meshmatcap_vert,fragmentShader:OA.meshmatcap_frag},points:{uniforms:n2([or.points,or.fog]),vertexShader:OA.points_vert,fragmentShader:OA.points_frag},dashed:{uniforms:n2([or.common,or.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:OA.linedashed_vert,fragmentShader:OA.linedashed_frag},depth:{uniforms:n2([or.common,or.displacementmap]),vertexShader:OA.depth_vert,fragmentShader:OA.depth_frag},normal:{uniforms:n2([or.common,or.bumpmap,or.normalmap,or.displacementmap,{opacity:{value:1}}]),vertexShader:OA.meshnormal_vert,fragmentShader:OA.meshnormal_frag},sprite:{uniforms:n2([or.sprite,or.fog]),vertexShader:OA.sprite_vert,fragmentShader:OA.sprite_frag},background:{uniforms:{uvTransform:{value:new HA},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:OA.background_vert,fragmentShader:OA.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new HA}},vertexShader:OA.backgroundCube_vert,fragmentShader:OA.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:OA.cube_vert,fragmentShader:OA.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:OA.equirect_vert,fragmentShader:OA.equirect_frag},distanceRGBA:{uniforms:n2([or.common,or.displacementmap,{referencePosition:{value:new jt},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:OA.distanceRGBA_vert,fragmentShader:OA.distanceRGBA_frag},shadow:{uniforms:n2([or.lights,or.fog,{color:{value:new Vi(0)},opacity:{value:1}}]),vertexShader:OA.shadow_vert,fragmentShader:OA.shadow_frag}};I6.physical={uniforms:n2([I6.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new HA},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new HA},clearcoatNormalScale:{value:new ni(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new HA},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new HA},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new HA},sheen:{value:0},sheenColor:{value:new Vi(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new HA},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new HA},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new HA},transmissionSamplerSize:{value:new ni},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new HA},attenuationDistance:{value:0},attenuationColor:{value:new Vi(0)},specularColor:{value:new Vi(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new HA},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new HA},anisotropyVector:{value:new ni},anisotropyMap:{value:null},anisotropyMapTransform:{value:new HA}}]),vertexShader:OA.meshphysical_vert,fragmentShader:OA.meshphysical_frag};const zde={r:0,b:0,g:0},OR=new t2,JXo=new va;function WXo(t,e,n,o,i,r,s){const a=new Vi(0);let A=r===!0?0:1,c,l,u=null,g=0,h=null;function d(f){let I=f.isScene===!0?f.background:null;return I&&I.isTexture&&(I=(f.backgroundBlurriness>0?n:e).get(I)),I}function p(f){let I=!1;const C=d(f);C===null?_(a,A):C&&C.isColor&&(_(C,1),I=!0);const y=t.xr.getEnvironmentBlendMode();y==="additive"?o.buffers.color.setClear(0,0,0,1,s):y==="alpha-blend"&&o.buffers.color.setClear(0,0,0,0,s),(t.autoClear||I)&&(o.buffers.depth.setTest(!0),o.buffers.depth.setMask(!0),o.buffers.color.setMask(!0),t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil))}function m(f,I){const C=d(I);C&&(C.isCubeTexture||C.mapping===Ide)?(l===void 0&&(l=new Er(new Yx(1,1,1),new f6({name:"BackgroundCubeMaterial",uniforms:nY(I6.backgroundCube.uniforms),vertexShader:I6.backgroundCube.vertexShader,fragmentShader:I6.backgroundCube.fragmentShader,side:uI,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(y,x,E){this.matrixWorld.copyPosition(E.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(l)),OR.copy(I.backgroundRotation),OR.x*=-1,OR.y*=-1,OR.z*=-1,C.isCubeTexture&&C.isRenderTargetTexture===!1&&(OR.y*=-1,OR.z*=-1),l.material.uniforms.envMap.value=C,l.material.uniforms.flipEnvMap.value=C.isCubeTexture&&C.isRenderTargetTexture===!1?-1:1,l.material.uniforms.backgroundBlurriness.value=I.backgroundBlurriness,l.material.uniforms.backgroundIntensity.value=I.backgroundIntensity,l.material.uniforms.backgroundRotation.value.setFromMatrix4(JXo.makeRotationFromEuler(OR)),l.material.toneMapped=iu.getTransfer(C.colorSpace)!==Ed,(u!==C||g!==C.version||h!==t.toneMapping)&&(l.material.needsUpdate=!0,u=C,g=C.version,h=t.toneMapping),l.layers.enableAll(),f.unshift(l,l.geometry,l.material,0,0,null)):C&&C.isTexture&&(c===void 0&&(c=new Er(new VB(2,2),new f6({name:"BackgroundMaterial",uniforms:nY(I6.background.uniforms),vertexShader:I6.background.vertexShader,fragmentShader:I6.background.fragmentShader,side:mE,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(c)),c.material.uniforms.t2D.value=C,c.material.uniforms.backgroundIntensity.value=I.backgroundIntensity,c.material.toneMapped=iu.getTransfer(C.colorSpace)!==Ed,C.matrixAutoUpdate===!0&&C.updateMatrix(),c.material.uniforms.uvTransform.value.copy(C.matrix),(u!==C||g!==C.version||h!==t.toneMapping)&&(c.material.needsUpdate=!0,u=C,g=C.version,h=t.toneMapping),c.layers.enableAll(),f.unshift(c,c.geometry,c.material,0,0,null))}function _(f,I){f.getRGB(zde,UVt(t)),o.buffers.color.setClear(zde.r,zde.g,zde.b,I,s)}return{getClearColor:function(){return a},setClearColor:function(f,I=1){a.set(f),A=I,_(a,A)},getClearAlpha:function(){return A},setClearAlpha:function(f){A=f,_(a,A)},render:p,addToRenderList:m}}function jXo(t,e){const n=t.getParameter(t.MAX_VERTEX_ATTRIBS),o={},i=g(null);let r=i,s=!1;function a(Q,w,M,k,R){let F=!1;const O=u(k,M,w);r!==O&&(r=O,c(r.object)),F=h(Q,k,M,R),F&&d(Q,k,M,R),R!==null&&e.update(R,t.ELEMENT_ARRAY_BUFFER),(F||s)&&(s=!1,C(Q,w,M,k),R!==null&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.get(R).buffer))}function A(){return t.createVertexArray()}function c(Q){return t.bindVertexArray(Q)}function l(Q){return t.deleteVertexArray(Q)}function u(Q,w,M){const k=M.wireframe===!0;let R=o[Q.id];R===void 0&&(R={},o[Q.id]=R);let F=R[w.id];F===void 0&&(F={},R[w.id]=F);let O=F[k];return O===void 0&&(O=g(A()),F[k]=O),O}function g(Q){const w=[],M=[],k=[];for(let R=0;R<n;R++)w[R]=0,M[R]=0,k[R]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:w,enabledAttributes:M,attributeDivisors:k,object:Q,attributes:{},index:null}}function h(Q,w,M,k){const R=r.attributes,F=w.attributes;let O=0;const U=M.getAttributes();for(const Y in U)if(U[Y].location>=0){const te=R[Y];let j=F[Y];if(j===void 0&&(Y==="instanceMatrix"&&Q.instanceMatrix&&(j=Q.instanceMatrix),Y==="instanceColor"&&Q.instanceColor&&(j=Q.instanceColor)),te===void 0||te.attribute!==j||j&&te.data!==j.data)return!0;O++}return r.attributesNum!==O||r.index!==k}function d(Q,w,M,k){const R={},F=w.attributes;let O=0;const U=M.getAttributes();for(const Y in U)if(U[Y].location>=0){let te=F[Y];te===void 0&&(Y==="instanceMatrix"&&Q.instanceMatrix&&(te=Q.instanceMatrix),Y==="instanceColor"&&Q.instanceColor&&(te=Q.instanceColor));const j={};j.attribute=te,te&&te.data&&(j.data=te.data),R[Y]=j,O++}r.attributes=R,r.attributesNum=O,r.index=k}function p(){const Q=r.newAttributes;for(let w=0,M=Q.length;w<M;w++)Q[w]=0}function m(Q){_(Q,0)}function _(Q,w){const M=r.newAttributes,k=r.enabledAttributes,R=r.attributeDivisors;M[Q]=1,k[Q]===0&&(t.enableVertexAttribArray(Q),k[Q]=1),R[Q]!==w&&(t.vertexAttribDivisor(Q,w),R[Q]=w)}function f(){const Q=r.newAttributes,w=r.enabledAttributes;for(let M=0,k=w.length;M<k;M++)w[M]!==Q[M]&&(t.disableVertexAttribArray(M),w[M]=0)}function I(Q,w,M,k,R,F,O){O===!0?t.vertexAttribIPointer(Q,w,M,R,F):t.vertexAttribPointer(Q,w,M,k,R,F)}function C(Q,w,M,k){p();const R=k.attributes,F=M.getAttributes(),O=w.defaultAttributeValues;for(const U in F){const Y=F[U];if(Y.location>=0){let W=R[U];if(W===void 0&&(U==="instanceMatrix"&&Q.instanceMatrix&&(W=Q.instanceMatrix),U==="instanceColor"&&Q.instanceColor&&(W=Q.instanceColor)),W!==void 0){const te=W.normalized,j=W.itemSize,J=e.get(W);if(J===void 0)continue;const oe=J.buffer,ie=J.type,ne=J.bytesPerElement,le=ie===t.INT||ie===t.UNSIGNED_INT||W.gpuType===NKt;if(W.isInterleavedBufferAttribute){const ge=W.data,_e=ge.stride,ue=W.offset;if(ge.isInstancedInterleavedBuffer){for(let fe=0;fe<Y.locationSize;fe++)_(Y.location+fe,ge.meshPerAttribute);Q.isInstancedMesh!==!0&&k._maxInstanceCount===void 0&&(k._maxInstanceCount=ge.meshPerAttribute*ge.count)}else for(let fe=0;fe<Y.locationSize;fe++)m(Y.location+fe);t.bindBuffer(t.ARRAY_BUFFER,oe);for(let fe=0;fe<Y.locationSize;fe++)I(Y.location+fe,j/Y.locationSize,ie,te,_e*ne,(ue+j/Y.locationSize*fe)*ne,le)}else{if(W.isInstancedBufferAttribute){for(let ge=0;ge<Y.locationSize;ge++)_(Y.location+ge,W.meshPerAttribute);Q.isInstancedMesh!==!0&&k._maxInstanceCount===void 0&&(k._maxInstanceCount=W.meshPerAttribute*W.count)}else for(let ge=0;ge<Y.locationSize;ge++)m(Y.location+ge);t.bindBuffer(t.ARRAY_BUFFER,oe);for(let ge=0;ge<Y.locationSize;ge++)I(Y.location+ge,j/Y.locationSize,ie,te,j*ne,j/Y.locationSize*ge*ne,le)}}else if(O!==void 0){const te=O[U];if(te!==void 0)switch(te.length){case 2:t.vertexAttrib2fv(Y.location,te);break;case 3:t.vertexAttrib3fv(Y.location,te);break;case 4:t.vertexAttrib4fv(Y.location,te);break;default:t.vertexAttrib1fv(Y.location,te)}}}}f()}function y(){B();for(const Q in o){const w=o[Q];for(const M in w){const k=w[M];for(const R in k)l(k[R].object),delete k[R];delete w[M]}delete o[Q]}}function x(Q){if(o[Q.id]===void 0)return;const w=o[Q.id];for(const M in w){const k=w[M];for(const R in k)l(k[R].object),delete k[R];delete w[M]}delete o[Q.id]}function E(Q){for(const w in o){const M=o[w];if(M[Q.id]===void 0)continue;const k=M[Q.id];for(const R in k)l(k[R].object),delete k[R];delete M[Q.id]}}function B(){S(),s=!0,r!==i&&(r=i,c(r.object))}function S(){i.geometry=null,i.program=null,i.wireframe=!1}return{setup:a,reset:B,resetDefaultState:S,dispose:y,releaseStatesOfGeometry:x,releaseStatesOfProgram:E,initAttributes:p,enableAttribute:m,disableUnusedAttributes:f}}function $Xo(t,e,n){let o;function i(c){o=c}function r(c,l){t.drawArrays(o,c,l),n.update(l,o,1)}function s(c,l,u){u!==0&&(t.drawArraysInstanced(o,c,l,u),n.update(l,o,u))}function a(c,l,u){if(u===0)return;const g=e.get("WEBGL_multi_draw");if(g===null)for(let h=0;h<u;h++)this.render(c[h],l[h]);else{g.multiDrawArraysWEBGL(o,c,0,l,0,u);let h=0;for(let d=0;d<u;d++)h+=l[d];n.update(h,o,1)}}function A(c,l,u,g){if(u===0)return;const h=e.get("WEBGL_multi_draw");if(h===null)for(let d=0;d<c.length;d++)s(c[d],l[d],g[d]);else{h.multiDrawArraysInstancedWEBGL(o,c,0,l,0,g,0,u);let d=0;for(let p=0;p<u;p++)d+=l[p];for(let p=0;p<g.length;p++)n.update(d,o,g[p])}}this.setMode=i,this.render=r,this.renderInstances=s,this.renderMultiDraw=a,this.renderMultiDrawInstances=A}function qXo(t,e,n,o){let i;function r(){if(i!==void 0)return i;if(e.has("EXT_texture_filter_anisotropic")===!0){const x=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(x.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i}function s(x){return!(x!==l4&&o.convert(x)!==t.getParameter(t.IMPLEMENTATION_COLOR_READ_FORMAT))}function a(x){const E=x===yde&&(e.has("EXT_color_buffer_half_float")||e.has("EXT_color_buffer_float"));return!(x!==Ww&&o.convert(x)!==t.getParameter(t.IMPLEMENTATION_COLOR_READ_TYPE)&&x!==m6&&!E)}function A(x){if(x==="highp"){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";x="mediump"}return x==="mediump"&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let c=n.precision!==void 0?n.precision:"highp";const l=A(c);l!==c&&(console.warn("THREE.WebGLRenderer:",c,"not supported, using",l,"instead."),c=l);const u=n.logarithmicDepthBuffer===!0,g=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),h=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=t.getParameter(t.MAX_TEXTURE_SIZE),p=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),m=t.getParameter(t.MAX_VERTEX_ATTRIBS),_=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),f=t.getParameter(t.MAX_VARYING_VECTORS),I=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),C=h>0,y=t.getParameter(t.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:r,getMaxPrecision:A,textureFormatReadable:s,textureTypeReadable:a,precision:c,logarithmicDepthBuffer:u,maxTextures:g,maxVertexTextures:h,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:_,maxVaryings:f,maxFragmentUniforms:I,vertexTextures:C,maxSamples:y}}function XXo(t){const e=this;let n=null,o=0,i=!1,r=!1;const s=new nP,a=new HA,A={value:null,needsUpdate:!1};this.uniform=A,this.numPlanes=0,this.numIntersection=0,this.init=function(u,g){const h=u.length!==0||g||o!==0||i;return i=g,o=u.length,h},this.beginShadows=function(){r=!0,l(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(u,g){n=l(u,g,0)},this.setState=function(u,g,h){const d=u.clippingPlanes,p=u.clipIntersection,m=u.clipShadows,_=t.get(u);if(!i||d===null||d.length===0||r&&!m)r?l(null):c();else{const f=r?0:o,I=f*4;let C=_.clippingState||null;A.value=C,C=l(d,g,I,h);for(let y=0;y!==I;++y)C[y]=n[y];_.clippingState=C,this.numIntersection=p?this.numPlanes:0,this.numPlanes+=f}};function c(){A.value!==n&&(A.value=n,A.needsUpdate=o>0),e.numPlanes=o,e.numIntersection=0}function l(u,g,h,d){const p=u!==null?u.length:0;let m=null;if(p!==0){if(m=A.value,d!==!0||m===null){const _=h+p*4,f=g.matrixWorldInverse;a.getNormalMatrix(f),(m===null||m.length<_)&&(m=new Float32Array(_));for(let I=0,C=h;I!==p;++I,C+=4)s.copy(u[I]).applyMatrix4(f,a),s.normal.toArray(m,C),m[C+3]=s.constant}A.value=m,A.needsUpdate=!0}return e.numPlanes=p,e.numIntersection=0,m}}function ZXo(t){let e=new WeakMap;function n(s,a){return a===fde?s.mapping=vG:a===zRe&&(s.mapping=wG),s}function o(s){if(s&&s.isTexture){const a=s.mapping;if(a===fde||a===zRe)if(e.has(s)){const A=e.get(s).texture;return n(A,s.mapping)}else{const A=s.image;if(A&&A.height>0){const c=new K$o(A.height);return c.fromEquirectangularTexture(t,s),e.set(s,c),s.addEventListener("dispose",i),n(c.texture,s.mapping)}else return null}}return s}function i(s){const a=s.target;a.removeEventListener("dispose",i);const A=e.get(a);A!==void 0&&(e.delete(a),A.dispose())}function r(){e=new WeakMap}return{get:o,dispose:r}}class rY extends VVt{constructor(e=-1,n=1,o=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=n,this.top=o,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,n,o,i,r,s){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=o,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),n=(this.top-this.bottom)/(2*this.zoom),o=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=o-e,s=o+e,a=i+n,A=i-n;if(this.view!==null&&this.view.enabled){const c=(this.right-this.left)/this.view.fullWidth/this.zoom,l=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=c*this.view.offsetX,s=r+c*this.view.width,a-=l*this.view.offsetY,A=a-l*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,A,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.zoom=this.zoom,n.object.left=this.left,n.object.right=this.right,n.object.top=this.top,n.object.bottom=this.bottom,n.object.near=this.near,n.object.far=this.far,this.view!==null&&(n.object.view=Object.assign({},this.view)),n}}const sY=4,$Vt=[.125,.215,.35,.446,.526,.582],GR=20,QTe=new rY,qVt=new Vi;let vTe=null,wTe=0,PTe=0,MTe=!1;const YR=(1+Math.sqrt(5))/2,aY=1/YR,XVt=[new jt(-YR,aY,0),new jt(YR,aY,0),new jt(-aY,0,YR),new jt(aY,0,YR),new jt(0,YR,-aY),new jt(0,YR,aY),new jt(-1,1,-1),new jt(1,1,-1),new jt(-1,1,1),new jt(1,1,1)];class DTe{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,n=0,o=.1,i=100){vTe=this._renderer.getRenderTarget(),wTe=this._renderer.getActiveCubeFace(),PTe=this._renderer.getActiveMipmapLevel(),MTe=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(e,o,i,r),n>0&&this._blur(r,0,0,n),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,n=null){return this._fromTexture(e,n)}fromCubemap(e,n=null){return this._fromTexture(e,n)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=tzt(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=ezt(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e<this._lodPlanes.length;e++)this._lodPlanes[e].dispose()}_cleanup(e){this._renderer.setRenderTarget(vTe,wTe,PTe),this._renderer.xr.enabled=MTe,e.scissorTest=!1,Jde(e,0,0,e.width,e.height)}_fromTexture(e,n){e.mapping===vG||e.mapping===wG?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4),vTe=this._renderer.getRenderTarget(),wTe=this._renderer.getActiveCubeFace(),PTe=this._renderer.getActiveMipmapLevel(),MTe=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;const o=n||this._allocateTargets();return this._textureToCubeUV(e,o),this._applyPMREM(o),this._cleanup(o),o}_allocateTargets(){const e=3*Math.max(this._cubeSize,112),n=4*this._cubeSize,o={magFilter:Fl,minFilter:Fl,generateMipmaps:!1,type:yde,format:l4,colorSpace:jw,depthBuffer:!1},i=ZVt(e,n,o);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==e||this._pingPongRenderTarget.height!==n){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=ZVt(e,n,o);const{_lodMax:r}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=eZo(r)),this._blurMaterial=tZo(r,e,n)}return i}_compileMaterial(e){const n=new Er(this._lodPlanes[0],e);this._renderer.compile(n,QTe)}_sceneToCubeUV(e,n,o,i){const a=new sf(90,1,n,o),A=[1,-1,1,1,1,1],c=[1,1,1,-1,-1,-1],l=this._renderer,u=l.autoClear,g=l.toneMapping;l.getClearColor(qVt),l.toneMapping=Jw,l.autoClear=!1;const h=new fE({name:"PMREM.Background",side:uI,depthWrite:!1,depthTest:!1}),d=new Er(new Yx,h);let p=!1;const m=e.background;m?m.isColor&&(h.color.copy(m),e.background=null,p=!0):(h.color.copy(qVt),p=!0);for(let _=0;_<6;_++){const f=_%3;f===0?(a.up.set(0,A[_],0),a.lookAt(c[_],0,0)):f===1?(a.up.set(0,0,A[_]),a.lookAt(0,c[_],0)):(a.up.set(0,A[_],0),a.lookAt(0,0,c[_]));const I=this._cubeSize;Jde(i,f*I,_>2?I:0,I,I),l.setRenderTarget(i),p&&l.render(d,a),l.render(e,a)}d.geometry.dispose(),d.material.dispose(),l.toneMapping=g,l.autoClear=u,e.background=m}_textureToCubeUV(e,n){const o=this._renderer,i=e.mapping===vG||e.mapping===wG;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=tzt()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=ezt());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Er(this._lodPlanes[0],r),a=r.uniforms;a.envMap.value=e;const A=this._cubeSize;Jde(n,0,0,3*A,2*A),o.setRenderTarget(n),o.render(s,QTe)}_applyPMREM(e){const n=this._renderer,o=n.autoClear;n.autoClear=!1;const i=this._lodPlanes.length;for(let r=1;r<i;r++){const s=Math.sqrt(this._sigmas[r]*this._sigmas[r]-this._sigmas[r-1]*this._sigmas[r-1]),a=XVt[(i-r-1)%XVt.length];this._blur(e,r-1,r,s,a)}n.autoClear=o}_blur(e,n,o,i,r){const s=this._pingPongRenderTarget;this._halfBlur(e,s,n,o,i,"latitudinal",r),this._halfBlur(s,e,o,o,i,"longitudinal",r)}_halfBlur(e,n,o,i,r,s,a){const A=this._renderer,c=this._blurMaterial;s!=="latitudinal"&&s!=="longitudinal"&&console.error("blur direction must be either latitudinal or longitudinal!");const l=3,u=new Er(this._lodPlanes[i],c),g=c.uniforms,h=this._sizeLods[o]-1,d=isFinite(r)?Math.PI/(2*h):2*Math.PI/(2*GR-1),p=r/d,m=isFinite(r)?1+Math.floor(l*p):GR;m>GR&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${GR}`);const _=[];let f=0;for(let E=0;E<GR;++E){const B=E/p,S=Math.exp(-B*B/2);_.push(S),E===0?f+=S:E<m&&(f+=2*S)}for(let E=0;E<_.length;E++)_[E]=_[E]/f;g.envMap.value=e.texture,g.samples.value=m,g.weights.value=_,g.latitudinal.value=s==="latitudinal",a&&(g.poleAxis.value=a);const{_lodMax:I}=this;g.dTheta.value=d,g.mipInt.value=I-o;const C=this._sizeLods[i],y=3*C*(i>I-sY?i-I+sY:0),x=4*(this._cubeSize-C);Jde(n,y,x,3*C,2*C),A.setRenderTarget(n),A.render(u,QTe)}}function eZo(t){const e=[],n=[],o=[];let i=t;const r=t-sY+1+$Vt.length;for(let s=0;s<r;s++){const a=Math.pow(2,i);n.push(a);let A=1/a;s>t-sY?A=$Vt[s-t+sY-1]:s===0&&(A=0),o.push(A);const c=1/(a-2),l=-c,u=1+c,g=[l,l,u,l,u,u,l,l,u,u,l,u],h=6,d=6,p=3,m=2,_=1,f=new Float32Array(p*d*h),I=new Float32Array(m*d*h),C=new Float32Array(_*d*h);for(let x=0;x<h;x++){const E=x%3*2/3-1,B=x>2?0:-1,S=[E,B,0,E+2/3,B,0,E+2/3,B+1,0,E,B,0,E+2/3,B+1,0,E,B+1,0];f.set(S,p*d*x),I.set(g,m*d*x);const Q=[x,x,x,x,x,x];C.set(Q,_*d*x)}const y=new Zl;y.setAttribute("position",new tg(f,p)),y.setAttribute("uv",new tg(I,m)),y.setAttribute("faceIndex",new tg(C,_)),e.push(y),i>sY&&i--}return{lodPlanes:e,sizeLods:n,sigmas:o}}function ZVt(t,e,n){const o=new TR(t,e,n);return o.texture.mapping=Ide,o.texture.name="PMREM.cubeUv",o.scissorTest=!0,o}function Jde(t,e,n,o,i){t.viewport.set(e,n,o,i),t.scissor.set(e,n,o,i)}function tZo(t,e,n){const o=new Float32Array(GR),i=new jt(0,1,0);return new f6({name:"SphericalGaussianBlur",defines:{n:GR,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:o},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:NTe(),fragmentShader:`

			precision mediump float;
			precision mediump int;

			varying vec3 vOutputDirection;

			uniform sampler2D envMap;
			uniform int samples;
			uniform float weights[ n ];
			uniform bool latitudinal;
			uniform float dTheta;
			uniform float mipInt;
			uniform vec3 poleAxis;

			#define ENVMAP_TYPE_CUBE_UV
			#include <cube_uv_reflection_fragment>

			vec3 getSample( float theta, vec3 axis ) {

				float cosTheta = cos( theta );
				// Rodrigues' axis-angle rotation
				vec3 sampleDirection = vOutputDirection * cosTheta
					+ cross( axis, vOutputDirection ) * sin( theta )
					+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );

				return bilinearCubeUV( envMap, sampleDirection, mipInt );

			}

			void main() {

				vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );

				if ( all( equal( axis, vec3( 0.0 ) ) ) ) {

					axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );

				}

				axis = normalize( axis );

				gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
				gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );

				for ( int i = 1; i < n; i++ ) {

					if ( i >= samples ) {

						break;

					}

					float theta = dTheta * float( i );
					gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );
					gl_FragColor.rgb += weights[ i ] * getSample( theta, axis );

				}

			}
		`,blending:zw,depthTest:!1,depthWrite:!1})}function ezt(){return new f6({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:NTe(),fragmentShader:`

			precision mediump float;
			precision mediump int;

			varying vec3 vOutputDirection;

			uniform sampler2D envMap;

			#include <common>

			void main() {

				vec3 outputDirection = normalize( vOutputDirection );
				vec2 uv = equirectUv( outputDirection );

				gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );

			}
		`,blending:zw,depthTest:!1,depthWrite:!1})}function tzt(){return new f6({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:NTe(),fragmentShader:`

			precision mediump float;
			precision mediump int;

			uniform float flipEnvMap;

			varying vec3 vOutputDirection;

			uniform samplerCube envMap;

			void main() {

				gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );

			}
		`,blending:zw,depthTest:!1,depthWrite:!1})}function NTe(){return`

		precision mediump float;
		precision mediump int;

		attribute float faceIndex;

		varying vec3 vOutputDirection;

		// RH coordinate system; PMREM face-indexing convention
		vec3 getDirection( vec2 uv, float face ) {

			uv = 2.0 * uv - 1.0;

			vec3 direction = vec3( uv, 1.0 );

			if ( face == 0.0 ) {

				direction = direction.zyx; // ( 1, v, u ) pos x

			} else if ( face == 1.0 ) {

				direction = direction.xzy;
				direction.xz *= -1.0; // ( -u, 1, -v ) pos y

			} else if ( face == 2.0 ) {

				direction.x *= -1.0; // ( -u, v, 1 ) pos z

			} else if ( face == 3.0 ) {

				direction = direction.zyx;
				direction.xz *= -1.0; // ( -1, v, -u ) neg x

			} else if ( face == 4.0 ) {

				direction = direction.xzy;
				direction.xy *= -1.0; // ( -u, -1, v ) neg y

			} else if ( face == 5.0 ) {

				direction.z *= -1.0; // ( u, v, -1 ) neg z

			}

			return direction;

		}

		void main() {

			vOutputDirection = getDirection( uv, faceIndex );
			gl_Position = vec4( position, 1.0 );

		}
	`}function nZo(t){let e=new WeakMap,n=null;function o(a){if(a&&a.isTexture){const A=a.mapping,c=A===fde||A===zRe,l=A===vG||A===wG;if(c||l){let u=e.get(a);const g=u!==void 0?u.texture.pmremVersion:0;if(a.isRenderTargetTexture&&a.pmremVersion!==g)return n===null&&(n=new DTe(t)),u=c?n.fromEquirectangular(a,u):n.fromCubemap(a,u),u.texture.pmremVersion=a.pmremVersion,e.set(a,u),u.texture;if(u!==void 0)return u.texture;{const h=a.image;return c&&h&&h.height>0||l&&h&&i(h)?(n===null&&(n=new DTe(t)),u=c?n.fromEquirectangular(a):n.fromCubemap(a),u.texture.pmremVersion=a.pmremVersion,e.set(a,u),a.addEventListener("dispose",r),u.texture):null}}}return a}function i(a){let A=0;const c=6;for(let l=0;l<c;l++)a[l]!==void 0&&A++;return A===c}function r(a){const A=a.target;A.removeEventListener("dispose",r);const c=e.get(A);c!==void 0&&(e.delete(A),c.dispose())}function s(){e=new WeakMap,n!==null&&(n.dispose(),n=null)}return{get:o,dispose:s}}function oZo(t){const e={};function n(o){if(e[o]!==void 0)return e[o];let i;switch(o){case"WEBGL_depth_texture":i=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=t.getExtension(o)}return e[o]=i,i}return{has:function(o){return n(o)!==null},init:function(){n("EXT_color_buffer_float"),n("WEBGL_clip_cull_distance"),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture"),n("WEBGL_render_shared_exponent")},get:function(o){const i=n(o);return i===null&&sTe("THREE.WebGLRenderer: "+o+" extension not supported."),i}}}function iZo(t,e,n,o){const i={},r=new WeakMap;function s(u){const g=u.target;g.index!==null&&e.remove(g.index);for(const d in g.attributes)e.remove(g.attributes[d]);for(const d in g.morphAttributes){const p=g.morphAttributes[d];for(let m=0,_=p.length;m<_;m++)e.remove(p[m])}g.removeEventListener("dispose",s),delete i[g.id];const h=r.get(g);h&&(e.remove(h),r.delete(g)),o.releaseStatesOfGeometry(g),g.isInstancedBufferGeometry===!0&&delete g._maxInstanceCount,n.memory.geometries--}function a(u,g){return i[g.id]===!0||(g.addEventListener("dispose",s),i[g.id]=!0,n.memory.geometries++),g}function A(u){const g=u.attributes;for(const d in g)e.update(g[d],t.ARRAY_BUFFER);const h=u.morphAttributes;for(const d in h){const p=h[d];for(let m=0,_=p.length;m<_;m++)e.update(p[m],t.ARRAY_BUFFER)}}function c(u){const g=[],h=u.index,d=u.attributes.position;let p=0;if(h!==null){const f=h.array;p=h.version;for(let I=0,C=f.length;I<C;I+=3){const y=f[I+0],x=f[I+1],E=f[I+2];g.push(y,x,x,E,E,y)}}else if(d!==void 0){const f=d.array;p=d.version;for(let I=0,C=f.length/3-1;I<C;I+=3){const y=I+0,x=I+1,E=I+2;g.push(y,x,x,E,E,y)}}else return;const m=new(yVt(g)?xTe:FVt)(g,1);m.version=p;const _=r.get(u);_&&e.remove(_),r.set(u,m)}function l(u){const g=r.get(u);if(g){const h=u.index;h!==null&&g.version<h.version&&c(u)}else c(u);return r.get(u)}return{get:a,update:A,getWireframeAttribute:l}}function rZo(t,e,n){let o;function i(g){o=g}let r,s;function a(g){r=g.type,s=g.bytesPerElement}function A(g,h){t.drawElements(o,h,r,g*s),n.update(h,o,1)}function c(g,h,d){d!==0&&(t.drawElementsInstanced(o,h,r,g*s,d),n.update(h,o,d))}function l(g,h,d){if(d===0)return;const p=e.get("WEBGL_multi_draw");if(p===null)for(let m=0;m<d;m++)this.render(g[m]/s,h[m]);else{p.multiDrawElementsWEBGL(o,h,0,r,g,0,d);let m=0;for(let _=0;_<d;_++)m+=h[_];n.update(m,o,1)}}function u(g,h,d,p){if(d===0)return;const m=e.get("WEBGL_multi_draw");if(m===null)for(let _=0;_<g.length;_++)c(g[_]/s,h[_],p[_]);else{m.multiDrawElementsInstancedWEBGL(o,h,0,r,g,0,p,0,d);let _=0;for(let f=0;f<d;f++)_+=h[f];for(let f=0;f<p.length;f++)n.update(_,o,p[f])}}this.setMode=i,this.setIndex=a,this.render=A,this.renderInstances=c,this.renderMultiDraw=l,this.renderMultiDrawInstances=u}function sZo(t){const e={geometries:0,textures:0},n={frame:0,calls:0,triangles:0,points:0,lines:0};function o(r,s,a){switch(n.calls++,s){case t.TRIANGLES:n.triangles+=a*(r/3);break;case t.LINES:n.lines+=a*(r/2);break;case t.LINE_STRIP:n.lines+=a*(r-1);break;case t.LINE_LOOP:n.lines+=a*r;break;case t.POINTS:n.points+=a*r;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",s);break}}function i(){n.calls=0,n.triangles=0,n.points=0,n.lines=0}return{memory:e,render:n,programs:null,autoReset:!0,reset:i,update:o}}function aZo(t,e,n){const o=new WeakMap,i=new ru;function r(s,a,A){const c=s.morphTargetInfluences,l=a.morphAttributes.position||a.morphAttributes.normal||a.morphAttributes.color,u=l!==void 0?l.length:0;let g=o.get(a);if(g===void 0||g.count!==u){let h=function(){B.dispose(),o.delete(a),a.removeEventListener("dispose",h)};g!==void 0&&g.texture.dispose();const d=a.morphAttributes.position!==void 0,p=a.morphAttributes.normal!==void 0,m=a.morphAttributes.color!==void 0,_=a.morphAttributes.position||[],f=a.morphAttributes.normal||[],I=a.morphAttributes.color||[];let C=0;d===!0&&(C=1),p===!0&&(C=2),m===!0&&(C=3);let y=a.attributes.position.count*C,x=1;y>e.maxTextureSize&&(x=Math.ceil(y/e.maxTextureSize),y=e.maxTextureSize);const E=new Float32Array(y*x*4*u),B=new SVt(E,y,x,u);B.type=m6,B.needsUpdate=!0;const S=C*4;for(let Q=0;Q<u;Q++){const w=_[Q],M=f[Q],k=I[Q],R=y*x*4*Q;for(let F=0;F<w.count;F++){const O=F*S;d===!0&&(i.fromBufferAttribute(w,F),E[R+O+0]=i.x,E[R+O+1]=i.y,E[R+O+2]=i.z,E[R+O+3]=0),p===!0&&(i.fromBufferAttribute(M,F),E[R+O+4]=i.x,E[R+O+5]=i.y,E[R+O+6]=i.z,E[R+O+7]=0),m===!0&&(i.fromBufferAttribute(k,F),E[R+O+8]=i.x,E[R+O+9]=i.y,E[R+O+10]=i.z,E[R+O+11]=k.itemSize===4?i.w:1)}}g={count:u,texture:B,size:new ni(y,x)},o.set(a,g),a.addEventListener("dispose",h)}if(s.isInstancedMesh===!0&&s.morphTexture!==null)A.getUniforms().setValue(t,"morphTexture",s.morphTexture,n);else{let h=0;for(let p=0;p<c.length;p++)h+=c[p];const d=a.morphTargetsRelative?1:1-h;A.getUniforms().setValue(t,"morphTargetBaseInfluence",d),A.getUniforms().setValue(t,"morphTargetInfluences",c)}A.getUniforms().setValue(t,"morphTargetsTexture",g.texture,n),A.getUniforms().setValue(t,"morphTargetsTextureSize",g.size)}return{update:r}}function AZo(t,e,n,o){let i=new WeakMap;function r(A){const c=o.render.frame,l=A.geometry,u=e.get(A,l);if(i.get(u)!==c&&(e.update(u),i.set(u,c)),A.isInstancedMesh&&(A.hasEventListener("dispose",a)===!1&&A.addEventListener("dispose",a),i.get(A)!==c&&(n.update(A.instanceMatrix,t.ARRAY_BUFFER),A.instanceColor!==null&&n.update(A.instanceColor,t.ARRAY_BUFFER),i.set(A,c))),A.isSkinnedMesh){const g=A.skeleton;i.get(g)!==c&&(g.update(),i.set(g,c))}return u}function s(){i=new WeakMap}function a(A){const c=A.target;c.removeEventListener("dispose",a),n.remove(c.instanceMatrix),c.instanceColor!==null&&n.remove(c.instanceColor)}return{update:r,dispose:s}}class nzt extends Hg{constructor(e,n,o,i,r,s,a,A,c,l=NG){if(l!==NG&&l!==RG)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");o===void 0&&l===NG&&(o=MG),o===void 0&&l===RG&&(o=DG),super(null,i,r,s,a,A,l,o,c),this.isDepthTexture=!0,this.image={width:e,height:n},this.magFilter=a!==void 0?a:wC,this.minFilter=A!==void 0?A:wC,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){const n=super.toJSON(e);return this.compareFunction!==null&&(n.compareFunction=this.compareFunction),n}}const ozt=new Hg,izt=new nzt(1,1);izt.compareFunction=fVt;const rzt=new SVt,szt=new w$o,azt=new WVt,Azt=[],czt=[],lzt=new Float32Array(16),uzt=new Float32Array(9),gzt=new Float32Array(4);function AY(t,e,n){const o=t[0];if(o<=0||o>0)return t;const i=e*n;let r=Azt[i];if(r===void 0&&(r=new Float32Array(i),Azt[i]=r),e!==0){o.toArray(r,0);for(let s=1,a=0;s!==e;++s)a+=n,t[s].toArray(r,a)}return r}function af(t,e){if(t.length!==e.length)return!1;for(let n=0,o=t.length;n<o;n++)if(t[n]!==e[n])return!1;return!0}function Af(t,e){for(let n=0,o=e.length;n<o;n++)t[n]=e[n]}function Wde(t,e){let n=czt[e];n===void 0&&(n=new Int32Array(e),czt[e]=n);for(let o=0;o!==e;++o)n[o]=t.allocateTextureUnit();return n}function cZo(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function lZo(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(af(n,e))return;t.uniform2fv(this.addr,e),Af(n,e)}}function uZo(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(e.r!==void 0)(n[0]!==e.r||n[1]!==e.g||n[2]!==e.b)&&(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(af(n,e))return;t.uniform3fv(this.addr,e),Af(n,e)}}function gZo(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(af(n,e))return;t.uniform4fv(this.addr,e),Af(n,e)}}function dZo(t,e){const n=this.cache,o=e.elements;if(o===void 0){if(af(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),Af(n,e)}else{if(af(n,o))return;gzt.set(o),t.uniformMatrix2fv(this.addr,!1,gzt),Af(n,o)}}function hZo(t,e){const n=this.cache,o=e.elements;if(o===void 0){if(af(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),Af(n,e)}else{if(af(n,o))return;uzt.set(o),t.uniformMatrix3fv(this.addr,!1,uzt),Af(n,o)}}function pZo(t,e){const n=this.cache,o=e.elements;if(o===void 0){if(af(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),Af(n,e)}else{if(af(n,o))return;lzt.set(o),t.uniformMatrix4fv(this.addr,!1,lzt),Af(n,o)}}function mZo(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function _Zo(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2i(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(af(n,e))return;t.uniform2iv(this.addr,e),Af(n,e)}}function fZo(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3i(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(af(n,e))return;t.uniform3iv(this.addr,e),Af(n,e)}}function IZo(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4i(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(af(n,e))return;t.uniform4iv(this.addr,e),Af(n,e)}}function CZo(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function yZo(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2ui(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(af(n,e))return;t.uniform2uiv(this.addr,e),Af(n,e)}}function xZo(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3ui(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(af(n,e))return;t.uniform3uiv(this.addr,e),Af(n,e)}}function EZo(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4ui(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(af(n,e))return;t.uniform4uiv(this.addr,e),Af(n,e)}}function BZo(t,e,n){const o=this.cache,i=n.allocateTextureUnit();o[0]!==i&&(t.uniform1i(this.addr,i),o[0]=i);const r=this.type===t.SAMPLER_2D_SHADOW?izt:ozt;n.setTexture2D(e||r,i)}function bZo(t,e,n){const o=this.cache,i=n.allocateTextureUnit();o[0]!==i&&(t.uniform1i(this.addr,i),o[0]=i),n.setTexture3D(e||szt,i)}function SZo(t,e,n){const o=this.cache,i=n.allocateTextureUnit();o[0]!==i&&(t.uniform1i(this.addr,i),o[0]=i),n.setTextureCube(e||azt,i)}function QZo(t,e,n){const o=this.cache,i=n.allocateTextureUnit();o[0]!==i&&(t.uniform1i(this.addr,i),o[0]=i),n.setTexture2DArray(e||rzt,i)}function vZo(t){switch(t){case 5126:return cZo;case 35664:return lZo;case 35665:return uZo;case 35666:return gZo;case 35674:return dZo;case 35675:return hZo;case 35676:return pZo;case 5124:case 35670:return mZo;case 35667:case 35671:return _Zo;case 35668:case 35672:return fZo;case 35669:case 35673:return IZo;case 5125:return CZo;case 36294:return yZo;case 36295:return xZo;case 36296:return EZo;case 35678:case 36198:case 36298:case 36306:case 35682:return BZo;case 35679:case 36299:case 36307:return bZo;case 35680:case 36300:case 36308:case 36293:return SZo;case 36289:case 36303:case 36311:case 36292:return QZo}}function wZo(t,e){t.uniform1fv(this.addr,e)}function PZo(t,e){const n=AY(e,this.size,2);t.uniform2fv(this.addr,n)}function MZo(t,e){const n=AY(e,this.size,3);t.uniform3fv(this.addr,n)}function DZo(t,e){const n=AY(e,this.size,4);t.uniform4fv(this.addr,n)}function NZo(t,e){const n=AY(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function RZo(t,e){const n=AY(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function TZo(t,e){const n=AY(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function kZo(t,e){t.uniform1iv(this.addr,e)}function FZo(t,e){t.uniform2iv(this.addr,e)}function LZo(t,e){t.uniform3iv(this.addr,e)}function HZo(t,e){t.uniform4iv(this.addr,e)}function OZo(t,e){t.uniform1uiv(this.addr,e)}function GZo(t,e){t.uniform2uiv(this.addr,e)}function YZo(t,e){t.uniform3uiv(this.addr,e)}function UZo(t,e){t.uniform4uiv(this.addr,e)}function KZo(t,e,n){const o=this.cache,i=e.length,r=Wde(n,i);af(o,r)||(t.uniform1iv(this.addr,r),Af(o,r));for(let s=0;s!==i;++s)n.setTexture2D(e[s]||ozt,r[s])}function VZo(t,e,n){const o=this.cache,i=e.length,r=Wde(n,i);af(o,r)||(t.uniform1iv(this.addr,r),Af(o,r));for(let s=0;s!==i;++s)n.setTexture3D(e[s]||szt,r[s])}function zZo(t,e,n){const o=this.cache,i=e.length,r=Wde(n,i);af(o,r)||(t.uniform1iv(this.addr,r),Af(o,r));for(let s=0;s!==i;++s)n.setTextureCube(e[s]||azt,r[s])}function JZo(t,e,n){const o=this.cache,i=e.length,r=Wde(n,i);af(o,r)||(t.uniform1iv(this.addr,r),Af(o,r));for(let s=0;s!==i;++s)n.setTexture2DArray(e[s]||rzt,r[s])}function WZo(t){switch(t){case 5126:return wZo;case 35664:return PZo;case 35665:return MZo;case 35666:return DZo;case 35674:return NZo;case 35675:return RZo;case 35676:return TZo;case 5124:case 35670:return kZo;case 35667:case 35671:return FZo;case 35668:case 35672:return LZo;case 35669:case 35673:return HZo;case 5125:return OZo;case 36294:return GZo;case 36295:return YZo;case 36296:return UZo;case 35678:case 36198:case 36298:case 36306:case 35682:return KZo;case 35679:case 36299:case 36307:return VZo;case 35680:case 36300:case 36308:case 36293:return zZo;case 36289:case 36303:case 36311:case 36292:return JZo}}class jZo{constructor(e,n,o){this.id=e,this.addr=o,this.cache=[],this.type=n.type,this.setValue=vZo(n.type)}}class $Zo{constructor(e,n,o){this.id=e,this.addr=o,this.cache=[],this.type=n.type,this.size=n.size,this.setValue=WZo(n.type)}}class qZo{constructor(e){this.id=e,this.seq=[],this.map={}}setValue(e,n,o){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const a=i[r];a.setValue(e,n[a.id],o)}}}const RTe=/(\w+)(\])?(\[|\.)?/g;function dzt(t,e){t.seq.push(e),t.map[e.id]=e}function XZo(t,e,n){const o=t.name,i=o.length;for(RTe.lastIndex=0;;){const r=RTe.exec(o),s=RTe.lastIndex;let a=r[1];const A=r[2]==="]",c=r[3];if(A&&(a=a|0),c===void 0||c==="["&&s+2===i){dzt(n,c===void 0?new jZo(a,t,e):new $Zo(a,t,e));break}else{let u=n.map[a];u===void 0&&(u=new qZo(a),dzt(n,u)),n=u}}}class jde{constructor(e,n){this.seq=[],this.map={};const o=e.getProgramParameter(n,e.ACTIVE_UNIFORMS);for(let i=0;i<o;++i){const r=e.getActiveUniform(n,i),s=e.getUniformLocation(n,r.name);XZo(r,s,this)}}setValue(e,n,o,i){const r=this.map[n];r!==void 0&&r.setValue(e,o,i)}setOptional(e,n,o){const i=n[o];i!==void 0&&this.setValue(e,o,i)}static upload(e,n,o,i){for(let r=0,s=n.length;r!==s;++r){const a=n[r],A=o[a.id];A.needsUpdate!==!1&&a.setValue(e,A.value,i)}}static seqWithValue(e,n){const o=[];for(let i=0,r=e.length;i!==r;++i){const s=e[i];s.id in n&&o.push(s)}return o}}function hzt(t,e,n){const o=t.createShader(e);return t.shaderSource(o,n),t.compileShader(o),o}const ZZo=37297;let eei=0;function tei(t,e){const n=t.split(`
`),o=[],i=Math.max(e-6,0),r=Math.min(e+6,n.length);for(let s=i;s<r;s++){const a=s+1;o.push(`${a===e?">":" "} ${a}: ${n[s]}`)}return o.join(`
`)}function nei(t){const e=iu.getPrimaries(iu.workingColorSpace),n=iu.getPrimaries(t);let o;switch(e===n?o="":e===bde&&n===Bde?o="LinearDisplayP3ToLinearSRGB":e===Bde&&n===bde&&(o="LinearSRGBToLinearDisplayP3"),t){case jw:case xde:return[o,"LinearTransferOETF"];case Ox:case nTe:return[o,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),[o,"LinearTransferOETF"]}}function pzt(t,e,n){const o=t.getShaderParameter(e,t.COMPILE_STATUS),i=t.getShaderInfoLog(e).trim();if(o&&i==="")return"";const r=/ERROR: 0:(\d+)/.exec(i);if(r){const s=parseInt(r[1]);return n.toUpperCase()+`

`+i+`

`+tei(t.getShaderSource(e),s)}else return i}function oei(t,e){const n=nei(e);return`vec4 ${t}( vec4 value ) { return ${n[0]}( ${n[1]}( value ) ); }`}function iei(t,e){let n;switch(e){case Njo:n="Linear";break;case Rjo:n="Reinhard";break;case Tjo:n="OptimizedCineon";break;case PKt:n="ACESFilmic";break;case Fjo:n="AgX";break;case Ljo:n="Neutral";break;case kjo:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function rei(t){return[t.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",t.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(Uq).join(`
`)}function sei(t){const e=[];for(const n in t){const o=t[n];o!==!1&&e.push("#define "+n+" "+o)}return e.join(`
`)}function aei(t,e){const n={},o=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let i=0;i<o;i++){const r=t.getActiveAttrib(e,i),s=r.name;let a=1;r.type===t.FLOAT_MAT2&&(a=2),r.type===t.FLOAT_MAT3&&(a=3),r.type===t.FLOAT_MAT4&&(a=4),n[s]={type:r.type,location:t.getAttribLocation(e,s),locationSize:a}}return n}function Uq(t){return t!==""}function mzt(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function _zt(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Aei=/^[ \t]*#include +<([\w\d./]+)>/gm;function TTe(t){return t.replace(Aei,lei)}const cei=new Map;function lei(t,e){let n=OA[e];if(n===void 0){const o=cei.get(e);if(o!==void 0)n=OA[o],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,o);else throw new Error("Can not resolve #include <"+e+">")}return TTe(n)}const uei=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function fzt(t){return t.replace(uei,gei)}function gei(t,e,n,o){let i="";for(let r=parseInt(e);r<parseInt(n);r++)i+=o.replace(/\[\s*i\s*\]/g,"[ "+r+" ]").replace(/UNROLLED_LOOP_INDEX/g,r);return i}function Izt(t){let e=`precision ${t.precision} float;
	precision ${t.precision} int;
	precision ${t.precision} sampler2D;
	precision ${t.precision} samplerCube;
	precision ${t.precision} sampler3D;
	precision ${t.precision} sampler2DArray;
	precision ${t.precision} sampler2DShadow;
	precision ${t.precision} samplerCubeShadow;
	precision ${t.precision} sampler2DArrayShadow;
	precision ${t.precision} isampler2D;
	precision ${t.precision} isampler3D;
	precision ${t.precision} isamplerCube;
	precision ${t.precision} isampler2DArray;
	precision ${t.precision} usampler2D;
	precision ${t.precision} usampler3D;
	precision ${t.precision} usamplerCube;
	precision ${t.precision} usampler2DArray;
	`;return t.precision==="highp"?e+=`
#define HIGH_PRECISION`:t.precision==="mediump"?e+=`
#define MEDIUM_PRECISION`:t.precision==="lowp"&&(e+=`
#define LOW_PRECISION`),e}function dei(t){let e="SHADOWMAP_TYPE_BASIC";return t.shadowMapType===bKt?e="SHADOWMAP_TYPE_PCF":t.shadowMapType===SKt?e="SHADOWMAP_TYPE_PCF_SOFT":t.shadowMapType===qb&&(e="SHADOWMAP_TYPE_VSM"),e}function hei(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case vG:case wG:e="ENVMAP_TYPE_CUBE";break;case Ide:e="ENVMAP_TYPE_CUBE_UV";break}return e}function pei(t){let e="ENVMAP_MODE_REFLECTION";return t.envMap&&t.envMapMode===wG&&(e="ENVMAP_MODE_REFRACTION"),e}function mei(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case VRe:e="ENVMAP_BLENDING_MULTIPLY";break;case Mjo:e="ENVMAP_BLENDING_MIX";break;case Djo:e="ENVMAP_BLENDING_ADD";break}return e}function _ei(t){const e=t.envMapCubeUVHeight;if(e===null)return null;const n=Math.log2(e)-2,o=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,n),112)),texelHeight:o,maxMip:n}}function fei(t,e,n,o){const i=t.getContext(),r=n.defines;let s=n.vertexShader,a=n.fragmentShader;const A=dei(n),c=hei(n),l=pei(n),u=mei(n),g=_ei(n),h=rei(n),d=sei(r),p=i.createProgram();let m,_,f=n.glslVersion?"#version "+n.glslVersion+`
`:"";n.isRawShaderMaterial?(m=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,d].filter(Uq).join(`
`),m.length>0&&(m+=`
`),_=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,d].filter(Uq).join(`
`),_.length>0&&(_+=`
`)):(m=[Izt(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,d,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+l:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&n.flatShading===!1?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+A:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","	attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","	attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","	uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","	attribute vec2 uv1;","#endif","#ifdef USE_UV2","	attribute vec2 uv2;","#endif","#ifdef USE_UV3","	attribute vec2 uv3;","#endif","#ifdef USE_TANGENT","	attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","	attribute vec4 color;","#elif defined( USE_COLOR )","	attribute vec3 color;","#endif","#ifdef USE_SKINNING","	attribute vec4 skinIndex;","	attribute vec4 skinWeight;","#endif",`
`].filter(Uq).join(`
`),_=[Izt(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,d,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+c:"",n.envMap?"#define "+l:"",n.envMap?"#define "+u:"",g?"#define CUBEUV_TEXEL_WIDTH "+g.texelWidth:"",g?"#define CUBEUV_TEXEL_HEIGHT "+g.texelHeight:"",g?"#define CUBEUV_MAX_MIP "+g.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor||n.batchingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+A:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==Jw?"#define TONE_MAPPING":"",n.toneMapping!==Jw?OA.tonemapping_pars_fragment:"",n.toneMapping!==Jw?iei("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",OA.colorspace_pars_fragment,oei("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"",`
`].filter(Uq).join(`
`)),s=TTe(s),s=mzt(s,n),s=_zt(s,n),a=TTe(a),a=mzt(a,n),a=_zt(a,n),s=fzt(s),a=fzt(a),n.isRawShaderMaterial!==!0&&(f=`#version 300 es
`,m=[h,"#define attribute in","#define varying out","#define texture2D texture"].join(`
`)+`
`+m,_=["#define varying in",n.glslVersion===IVt?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===IVt?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`
`)+`
`+_);const I=f+m+s,C=f+_+a,y=hzt(i,i.VERTEX_SHADER,I),x=hzt(i,i.FRAGMENT_SHADER,C);i.attachShader(p,y),i.attachShader(p,x),n.index0AttributeName!==void 0?i.bindAttribLocation(p,0,n.index0AttributeName):n.morphTargets===!0&&i.bindAttribLocation(p,0,"position"),i.linkProgram(p);function E(w){if(t.debug.checkShaderErrors){const M=i.getProgramInfoLog(p).trim(),k=i.getShaderInfoLog(y).trim(),R=i.getShaderInfoLog(x).trim();let F=!0,O=!0;if(i.getProgramParameter(p,i.LINK_STATUS)===!1)if(F=!1,typeof t.debug.onShaderError=="function")t.debug.onShaderError(i,p,y,x);else{const U=pzt(i,y,"vertex"),Y=pzt(i,x,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(p,i.VALIDATE_STATUS)+`

Material Name: `+w.name+`
Material Type: `+w.type+`

Program Info Log: `+M+`
`+U+`
`+Y)}else M!==""?console.warn("THREE.WebGLProgram: Program Info Log:",M):(k===""||R==="")&&(O=!1);O&&(w.diagnostics={runnable:F,programLog:M,vertexShader:{log:k,prefix:m},fragmentShader:{log:R,prefix:_}})}i.deleteShader(y),i.deleteShader(x),B=new jde(i,p),S=aei(i,p)}let B;this.getUniforms=function(){return B===void 0&&E(this),B};let S;this.getAttributes=function(){return S===void 0&&E(this),S};let Q=n.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return Q===!1&&(Q=i.getProgramParameter(p,ZZo)),Q},this.destroy=function(){o.releaseStatesOfProgram(this),i.deleteProgram(p),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=eei++,this.cacheKey=e,this.usedTimes=1,this.program=p,this.vertexShader=y,this.fragmentShader=x,this}let Iei=0;class Cei{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const n=e.vertexShader,o=e.fragmentShader,i=this._getShaderStage(n),r=this._getShaderStage(o),s=this._getShaderCacheForMaterial(e);return s.has(i)===!1&&(s.add(i),i.usedTimes++),s.has(r)===!1&&(s.add(r),r.usedTimes++),this}remove(e){const n=this.materialCache.get(e);for(const o of n)o.usedTimes--,o.usedTimes===0&&this.shaderCache.delete(o.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const n=this.materialCache;let o=n.get(e);return o===void 0&&(o=new Set,n.set(e,o)),o}_getShaderStage(e){const n=this.shaderCache;let o=n.get(e);return o===void 0&&(o=new yei(e),n.set(e,o)),o}}class yei{constructor(e){this.id=Iei++,this.code=e,this.usedTimes=0}}function xei(t,e,n,o,i,r,s){const a=new pTe,A=new Cei,c=new Set,l=[],u=i.logarithmicDepthBuffer,g=i.vertexTextures;let h=i.precision;const d={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function p(S){return c.add(S),S===0?"uv":`uv${S}`}function m(S,Q,w,M,k){const R=M.fog,F=k.geometry,O=S.isMeshStandardMaterial?M.environment:null,U=(S.isMeshStandardMaterial?n:e).get(S.envMap||O),Y=U&&U.mapping===Ide?U.image.height:null,W=d[S.type];S.precision!==null&&(h=i.getMaxPrecision(S.precision),h!==S.precision&&console.warn("THREE.WebGLProgram.getParameters:",S.precision,"not supported, using",h,"instead."));const te=F.morphAttributes.position||F.morphAttributes.normal||F.morphAttributes.color,j=te!==void 0?te.length:0;let J=0;F.morphAttributes.position!==void 0&&(J=1),F.morphAttributes.normal!==void 0&&(J=2),F.morphAttributes.color!==void 0&&(J=3);let oe,ie,ne,le;if(W){const dt=I6[W];oe=dt.vertexShader,ie=dt.fragmentShader}else oe=S.vertexShader,ie=S.fragmentShader,A.update(S),ne=A.getVertexShaderID(S),le=A.getFragmentShaderID(S);const ge=t.getRenderTarget(),_e=k.isInstancedMesh===!0,ue=k.isBatchedMesh===!0,fe=!!S.map,pe=!!S.matcap,ye=!!U,Me=!!S.aoMap,ve=!!S.lightMap,he=!!S.bumpMap,Qe=!!S.normalMap,Pe=!!S.displacementMap,we=!!S.emissiveMap,Te=!!S.metalnessMap,Re=!!S.roughnessMap,Ee=S.anisotropy>0,ke=S.clearcoat>0,Ce=S.dispersion>0,Le=S.iridescence>0,Ye=S.sheen>0,tt=S.transmission>0,At=Ee&&!!S.anisotropyMap,at=ke&&!!S.clearcoatMap,nt=ke&&!!S.clearcoatNormalMap,gt=ke&&!!S.clearcoatRoughnessMap,bt=Le&&!!S.iridescenceMap,Ct=Le&&!!S.iridescenceThicknessMap,Dt=Ye&&!!S.sheenColorMap,kt=Ye&&!!S.sheenRoughnessMap,it=!!S.specularMap,Yt=!!S.specularColorMap,pn=!!S.specularIntensityMap,be=tt&&!!S.transmissionMap,et=tt&&!!S.thicknessMap,It=!!S.gradientMap,Bt=!!S.alphaMap,mt=S.alphaTest>0,st=!!S.alphaHash,xt=!!S.extensions;let Xe=Jw;S.toneMapped&&(ge===null||ge.isXRRenderTarget===!0)&&(Xe=t.toneMapping);const Ze={shaderID:W,shaderType:S.type,shaderName:S.name,vertexShader:oe,fragmentShader:ie,defines:S.defines,customVertexShaderID:ne,customFragmentShaderID:le,isRawShaderMaterial:S.isRawShaderMaterial===!0,glslVersion:S.glslVersion,precision:h,batching:ue,batchingColor:ue&&k._colorsTexture!==null,instancing:_e,instancingColor:_e&&k.instanceColor!==null,instancingMorph:_e&&k.morphTexture!==null,supportsVertexTextures:g,outputColorSpace:ge===null?t.outputColorSpace:ge.isXRRenderTarget===!0?ge.texture.colorSpace:jw,alphaToCoverage:!!S.alphaToCoverage,map:fe,matcap:pe,envMap:ye,envMapMode:ye&&U.mapping,envMapCubeUVHeight:Y,aoMap:Me,lightMap:ve,bumpMap:he,normalMap:Qe,displacementMap:g&&Pe,emissiveMap:we,normalMapObjectSpace:Qe&&S.normalMapType===Xjo,normalMapTangentSpace:Qe&&S.normalMapType===tTe,metalnessMap:Te,roughnessMap:Re,anisotropy:Ee,anisotropyMap:At,clearcoat:ke,clearcoatMap:at,clearcoatNormalMap:nt,clearcoatRoughnessMap:gt,dispersion:Ce,iridescence:Le,iridescenceMap:bt,iridescenceThicknessMap:Ct,sheen:Ye,sheenColorMap:Dt,sheenRoughnessMap:kt,specularMap:it,specularColorMap:Yt,specularIntensityMap:pn,transmission:tt,transmissionMap:be,thicknessMap:et,gradientMap:It,opaque:S.transparent===!1&&S.blending===QG&&S.alphaToCoverage===!1,alphaMap:Bt,alphaTest:mt,alphaHash:st,combine:S.combine,mapUv:fe&&p(S.map.channel),aoMapUv:Me&&p(S.aoMap.channel),lightMapUv:ve&&p(S.lightMap.channel),bumpMapUv:he&&p(S.bumpMap.channel),normalMapUv:Qe&&p(S.normalMap.channel),displacementMapUv:Pe&&p(S.displacementMap.channel),emissiveMapUv:we&&p(S.emissiveMap.channel),metalnessMapUv:Te&&p(S.metalnessMap.channel),roughnessMapUv:Re&&p(S.roughnessMap.channel),anisotropyMapUv:At&&p(S.anisotropyMap.channel),clearcoatMapUv:at&&p(S.clearcoatMap.channel),clearcoatNormalMapUv:nt&&p(S.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:gt&&p(S.clearcoatRoughnessMap.channel),iridescenceMapUv:bt&&p(S.iridescenceMap.channel),iridescenceThicknessMapUv:Ct&&p(S.iridescenceThicknessMap.channel),sheenColorMapUv:Dt&&p(S.sheenColorMap.channel),sheenRoughnessMapUv:kt&&p(S.sheenRoughnessMap.channel),specularMapUv:it&&p(S.specularMap.channel),specularColorMapUv:Yt&&p(S.specularColorMap.channel),specularIntensityMapUv:pn&&p(S.specularIntensityMap.channel),transmissionMapUv:be&&p(S.transmissionMap.channel),thicknessMapUv:et&&p(S.thicknessMap.channel),alphaMapUv:Bt&&p(S.alphaMap.channel),vertexTangents:!!F.attributes.tangent&&(Qe||Ee),vertexColors:S.vertexColors,vertexAlphas:S.vertexColors===!0&&!!F.attributes.color&&F.attributes.color.itemSize===4,pointsUvs:k.isPoints===!0&&!!F.attributes.uv&&(fe||Bt),fog:!!R,useFog:S.fog===!0,fogExp2:!!R&&R.isFogExp2,flatShading:S.flatShading===!0,sizeAttenuation:S.sizeAttenuation===!0,logarithmicDepthBuffer:u,skinning:k.isSkinnedMesh===!0,morphTargets:F.morphAttributes.position!==void 0,morphNormals:F.morphAttributes.normal!==void 0,morphColors:F.morphAttributes.color!==void 0,morphTargetsCount:j,morphTextureStride:J,numDirLights:Q.directional.length,numPointLights:Q.point.length,numSpotLights:Q.spot.length,numSpotLightMaps:Q.spotLightMap.length,numRectAreaLights:Q.rectArea.length,numHemiLights:Q.hemi.length,numDirLightShadows:Q.directionalShadowMap.length,numPointLightShadows:Q.pointShadowMap.length,numSpotLightShadows:Q.spotShadowMap.length,numSpotLightShadowsWithMaps:Q.numSpotLightShadowsWithMaps,numLightProbes:Q.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:S.dithering,shadowMapEnabled:t.shadowMap.enabled&&w.length>0,shadowMapType:t.shadowMap.type,toneMapping:Xe,decodeVideoTexture:fe&&S.map.isVideoTexture===!0&&iu.getTransfer(S.map.colorSpace)===Ed,premultipliedAlpha:S.premultipliedAlpha,doubleSided:S.side===r_,flipSided:S.side===uI,useDepthPacking:S.depthPacking>=0,depthPacking:S.depthPacking||0,index0AttributeName:S.index0AttributeName,extensionClipCullDistance:xt&&S.extensions.clipCullDistance===!0&&o.has("WEBGL_clip_cull_distance"),extensionMultiDraw:xt&&S.extensions.multiDraw===!0&&o.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:o.has("KHR_parallel_shader_compile"),customProgramCacheKey:S.customProgramCacheKey()};return Ze.vertexUv1s=c.has(1),Ze.vertexUv2s=c.has(2),Ze.vertexUv3s=c.has(3),c.clear(),Ze}function _(S){const Q=[];if(S.shaderID?Q.push(S.shaderID):(Q.push(S.customVertexShaderID),Q.push(S.customFragmentShaderID)),S.defines!==void 0)for(const w in S.defines)Q.push(w),Q.push(S.defines[w]);return S.isRawShaderMaterial===!1&&(f(Q,S),I(Q,S),Q.push(t.outputColorSpace)),Q.push(S.customProgramCacheKey),Q.join()}function f(S,Q){S.push(Q.precision),S.push(Q.outputColorSpace),S.push(Q.envMapMode),S.push(Q.envMapCubeUVHeight),S.push(Q.mapUv),S.push(Q.alphaMapUv),S.push(Q.lightMapUv),S.push(Q.aoMapUv),S.push(Q.bumpMapUv),S.push(Q.normalMapUv),S.push(Q.displacementMapUv),S.push(Q.emissiveMapUv),S.push(Q.metalnessMapUv),S.push(Q.roughnessMapUv),S.push(Q.anisotropyMapUv),S.push(Q.clearcoatMapUv),S.push(Q.clearcoatNormalMapUv),S.push(Q.clearcoatRoughnessMapUv),S.push(Q.iridescenceMapUv),S.push(Q.iridescenceThicknessMapUv),S.push(Q.sheenColorMapUv),S.push(Q.sheenRoughnessMapUv),S.push(Q.specularMapUv),S.push(Q.specularColorMapUv),S.push(Q.specularIntensityMapUv),S.push(Q.transmissionMapUv),S.push(Q.thicknessMapUv),S.push(Q.combine),S.push(Q.fogExp2),S.push(Q.sizeAttenuation),S.push(Q.morphTargetsCount),S.push(Q.morphAttributeCount),S.push(Q.numDirLights),S.push(Q.numPointLights),S.push(Q.numSpotLights),S.push(Q.numSpotLightMaps),S.push(Q.numHemiLights),S.push(Q.numRectAreaLights),S.push(Q.numDirLightShadows),S.push(Q.numPointLightShadows),S.push(Q.numSpotLightShadows),S.push(Q.numSpotLightShadowsWithMaps),S.push(Q.numLightProbes),S.push(Q.shadowMapType),S.push(Q.toneMapping),S.push(Q.numClippingPlanes),S.push(Q.numClipIntersection),S.push(Q.depthPacking)}function I(S,Q){a.disableAll(),Q.supportsVertexTextures&&a.enable(0),Q.instancing&&a.enable(1),Q.instancingColor&&a.enable(2),Q.instancingMorph&&a.enable(3),Q.matcap&&a.enable(4),Q.envMap&&a.enable(5),Q.normalMapObjectSpace&&a.enable(6),Q.normalMapTangentSpace&&a.enable(7),Q.clearcoat&&a.enable(8),Q.iridescence&&a.enable(9),Q.alphaTest&&a.enable(10),Q.vertexColors&&a.enable(11),Q.vertexAlphas&&a.enable(12),Q.vertexUv1s&&a.enable(13),Q.vertexUv2s&&a.enable(14),Q.vertexUv3s&&a.enable(15),Q.vertexTangents&&a.enable(16),Q.anisotropy&&a.enable(17),Q.alphaHash&&a.enable(18),Q.batching&&a.enable(19),Q.dispersion&&a.enable(20),Q.batchingColor&&a.enable(21),S.push(a.mask),a.disableAll(),Q.fog&&a.enable(0),Q.useFog&&a.enable(1),Q.flatShading&&a.enable(2),Q.logarithmicDepthBuffer&&a.enable(3),Q.skinning&&a.enable(4),Q.morphTargets&&a.enable(5),Q.morphNormals&&a.enable(6),Q.morphColors&&a.enable(7),Q.premultipliedAlpha&&a.enable(8),Q.shadowMapEnabled&&a.enable(9),Q.doubleSided&&a.enable(10),Q.flipSided&&a.enable(11),Q.useDepthPacking&&a.enable(12),Q.dithering&&a.enable(13),Q.transmission&&a.enable(14),Q.sheen&&a.enable(15),Q.opaque&&a.enable(16),Q.pointsUvs&&a.enable(17),Q.decodeVideoTexture&&a.enable(18),Q.alphaToCoverage&&a.enable(19),S.push(a.mask)}function C(S){const Q=d[S.type];let w;if(Q){const M=I6[Q];w=KVt.clone(M.uniforms)}else w=S.uniforms;return w}function y(S,Q){let w;for(let M=0,k=l.length;M<k;M++){const R=l[M];if(R.cacheKey===Q){w=R,++w.usedTimes;break}}return w===void 0&&(w=new fei(t,Q,S,r),l.push(w)),w}function x(S){if(--S.usedTimes===0){const Q=l.indexOf(S);l[Q]=l[l.length-1],l.pop(),S.destroy()}}function E(S){A.remove(S)}function B(){A.dispose()}return{getParameters:m,getProgramCacheKey:_,getUniforms:C,acquireProgram:y,releaseProgram:x,releaseShaderCache:E,programs:l,dispose:B}}function Eei(){let t=new WeakMap;function e(r){let s=t.get(r);return s===void 0&&(s={},t.set(r,s)),s}function n(r){t.delete(r)}function o(r,s,a){t.get(r)[s]=a}function i(){t=new WeakMap}return{get:e,remove:n,update:o,dispose:i}}function Bei(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function Czt(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function yzt(){const t=[];let e=0;const n=[],o=[],i=[];function r(){e=0,n.length=0,o.length=0,i.length=0}function s(u,g,h,d,p,m){let _=t[e];return _===void 0?(_={id:u.id,object:u,geometry:g,material:h,groupOrder:d,renderOrder:u.renderOrder,z:p,group:m},t[e]=_):(_.id=u.id,_.object=u,_.geometry=g,_.material=h,_.groupOrder=d,_.renderOrder=u.renderOrder,_.z=p,_.group=m),e++,_}function a(u,g,h,d,p,m){const _=s(u,g,h,d,p,m);h.transmission>0?o.push(_):h.transparent===!0?i.push(_):n.push(_)}function A(u,g,h,d,p,m){const _=s(u,g,h,d,p,m);h.transmission>0?o.unshift(_):h.transparent===!0?i.unshift(_):n.unshift(_)}function c(u,g){n.length>1&&n.sort(u||Bei),o.length>1&&o.sort(g||Czt),i.length>1&&i.sort(g||Czt)}function l(){for(let u=e,g=t.length;u<g;u++){const h=t[u];if(h.id===null)break;h.id=null,h.object=null,h.geometry=null,h.material=null,h.group=null}}return{opaque:n,transmissive:o,transparent:i,init:r,push:a,unshift:A,finish:l,sort:c}}function bei(){let t=new WeakMap;function e(o,i){const r=t.get(o);let s;return r===void 0?(s=new yzt,t.set(o,[s])):i>=r.length?(s=new yzt,r.push(s)):s=r[i],s}function n(){t=new WeakMap}return{get:e,dispose:n}}function Sei(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new jt,color:new Vi};break;case"SpotLight":n={position:new jt,direction:new jt,color:new Vi,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new jt,color:new Vi,distance:0,decay:0};break;case"HemisphereLight":n={direction:new jt,skyColor:new Vi,groundColor:new Vi};break;case"RectAreaLight":n={color:new Vi,position:new jt,halfWidth:new jt,halfHeight:new jt};break}return t[e.id]=n,n}}}function Qei(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ni};break;case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ni};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ni,shadowCameraNear:1,shadowCameraFar:1e3};break}return t[e.id]=n,n}}}let vei=0;function wei(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function Pei(t){const e=new Sei,n=Qei(),o={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let c=0;c<9;c++)o.probe.push(new jt);const i=new jt,r=new va,s=new va;function a(c){let l=0,u=0,g=0;for(let S=0;S<9;S++)o.probe[S].set(0,0,0);let h=0,d=0,p=0,m=0,_=0,f=0,I=0,C=0,y=0,x=0,E=0;c.sort(wei);for(let S=0,Q=c.length;S<Q;S++){const w=c[S],M=w.color,k=w.intensity,R=w.distance,F=w.shadow&&w.shadow.map?w.shadow.map.texture:null;if(w.isAmbientLight)l+=M.r*k,u+=M.g*k,g+=M.b*k;else if(w.isLightProbe){for(let O=0;O<9;O++)o.probe[O].addScaledVector(w.sh.coefficients[O],k);E++}else if(w.isDirectionalLight){const O=e.get(w);if(O.color.copy(w.color).multiplyScalar(w.intensity),w.castShadow){const U=w.shadow,Y=n.get(w);Y.shadowBias=U.bias,Y.shadowNormalBias=U.normalBias,Y.shadowRadius=U.radius,Y.shadowMapSize=U.mapSize,o.directionalShadow[h]=Y,o.directionalShadowMap[h]=F,o.directionalShadowMatrix[h]=w.shadow.matrix,f++}o.directional[h]=O,h++}else if(w.isSpotLight){const O=e.get(w);O.position.setFromMatrixPosition(w.matrixWorld),O.color.copy(M).multiplyScalar(k),O.distance=R,O.coneCos=Math.cos(w.angle),O.penumbraCos=Math.cos(w.angle*(1-w.penumbra)),O.decay=w.decay,o.spot[p]=O;const U=w.shadow;if(w.map&&(o.spotLightMap[y]=w.map,y++,U.updateMatrices(w),w.castShadow&&x++),o.spotLightMatrix[p]=U.matrix,w.castShadow){const Y=n.get(w);Y.shadowBias=U.bias,Y.shadowNormalBias=U.normalBias,Y.shadowRadius=U.radius,Y.shadowMapSize=U.mapSize,o.spotShadow[p]=Y,o.spotShadowMap[p]=F,C++}p++}else if(w.isRectAreaLight){const O=e.get(w);O.color.copy(M).multiplyScalar(k),O.halfWidth.set(w.width*.5,0,0),O.halfHeight.set(0,w.height*.5,0),o.rectArea[m]=O,m++}else if(w.isPointLight){const O=e.get(w);if(O.color.copy(w.color).multiplyScalar(w.intensity),O.distance=w.distance,O.decay=w.decay,w.castShadow){const U=w.shadow,Y=n.get(w);Y.shadowBias=U.bias,Y.shadowNormalBias=U.normalBias,Y.shadowRadius=U.radius,Y.shadowMapSize=U.mapSize,Y.shadowCameraNear=U.camera.near,Y.shadowCameraFar=U.camera.far,o.pointShadow[d]=Y,o.pointShadowMap[d]=F,o.pointShadowMatrix[d]=w.shadow.matrix,I++}o.point[d]=O,d++}else if(w.isHemisphereLight){const O=e.get(w);O.skyColor.copy(w.color).multiplyScalar(k),O.groundColor.copy(w.groundColor).multiplyScalar(k),o.hemi[_]=O,_++}}m>0&&(t.has("OES_texture_float_linear")===!0?(o.rectAreaLTC1=or.LTC_FLOAT_1,o.rectAreaLTC2=or.LTC_FLOAT_2):(o.rectAreaLTC1=or.LTC_HALF_1,o.rectAreaLTC2=or.LTC_HALF_2)),o.ambient[0]=l,o.ambient[1]=u,o.ambient[2]=g;const B=o.hash;(B.directionalLength!==h||B.pointLength!==d||B.spotLength!==p||B.rectAreaLength!==m||B.hemiLength!==_||B.numDirectionalShadows!==f||B.numPointShadows!==I||B.numSpotShadows!==C||B.numSpotMaps!==y||B.numLightProbes!==E)&&(o.directional.length=h,o.spot.length=p,o.rectArea.length=m,o.point.length=d,o.hemi.length=_,o.directionalShadow.length=f,o.directionalShadowMap.length=f,o.pointShadow.length=I,o.pointShadowMap.length=I,o.spotShadow.length=C,o.spotShadowMap.length=C,o.directionalShadowMatrix.length=f,o.pointShadowMatrix.length=I,o.spotLightMatrix.length=C+y-x,o.spotLightMap.length=y,o.numSpotLightShadowsWithMaps=x,o.numLightProbes=E,B.directionalLength=h,B.pointLength=d,B.spotLength=p,B.rectAreaLength=m,B.hemiLength=_,B.numDirectionalShadows=f,B.numPointShadows=I,B.numSpotShadows=C,B.numSpotMaps=y,B.numLightProbes=E,o.version=vei++)}function A(c,l){let u=0,g=0,h=0,d=0,p=0;const m=l.matrixWorldInverse;for(let _=0,f=c.length;_<f;_++){const I=c[_];if(I.isDirectionalLight){const C=o.directional[u];C.direction.setFromMatrixPosition(I.matrixWorld),i.setFromMatrixPosition(I.target.matrixWorld),C.direction.sub(i),C.direction.transformDirection(m),u++}else if(I.isSpotLight){const C=o.spot[h];C.position.setFromMatrixPosition(I.matrixWorld),C.position.applyMatrix4(m),C.direction.setFromMatrixPosition(I.matrixWorld),i.setFromMatrixPosition(I.target.matrixWorld),C.direction.sub(i),C.direction.transformDirection(m),h++}else if(I.isRectAreaLight){const C=o.rectArea[d];C.position.setFromMatrixPosition(I.matrixWorld),C.position.applyMatrix4(m),s.identity(),r.copy(I.matrixWorld),r.premultiply(m),s.extractRotation(r),C.halfWidth.set(I.width*.5,0,0),C.halfHeight.set(0,I.height*.5,0),C.halfWidth.applyMatrix4(s),C.halfHeight.applyMatrix4(s),d++}else if(I.isPointLight){const C=o.point[g];C.position.setFromMatrixPosition(I.matrixWorld),C.position.applyMatrix4(m),g++}else if(I.isHemisphereLight){const C=o.hemi[p];C.direction.setFromMatrixPosition(I.matrixWorld),C.direction.transformDirection(m),p++}}}return{setup:a,setupView:A,state:o}}function xzt(t){const e=new Pei(t),n=[],o=[];function i(l){c.camera=l,n.length=0,o.length=0}function r(l){n.push(l)}function s(l){o.push(l)}function a(){e.setup(n)}function A(l){e.setupView(n,l)}const c={lightsArray:n,shadowsArray:o,camera:null,lights:e,transmissionRenderTarget:{}};return{init:i,state:c,setupLights:a,setupLightsView:A,pushLight:r,pushShadow:s}}function Mei(t){let e=new WeakMap;function n(i,r=0){const s=e.get(i);let a;return s===void 0?(a=new xzt(t),e.set(i,[a])):r>=s.length?(a=new xzt(t),s.push(a)):a=s[r],a}function o(){e=new WeakMap}return{get:n,dispose:o}}class Ezt extends Gx{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=qjo,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class Bzt extends Gx{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const Dei=`void main() {
	gl_Position = vec4( position, 1.0 );
}`,Nei=`uniform sampler2D shadow_pass;
uniform vec2 resolution;
uniform float radius;
#include <packing>
void main() {
	const float samples = float( VSM_SAMPLES );
	float mean = 0.0;
	float squared_mean = 0.0;
	float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );
	float uvStart = samples <= 1.0 ? 0.0 : - 1.0;
	for ( float i = 0.0; i < samples; i ++ ) {
		float uvOffset = uvStart + i * uvStride;
		#ifdef HORIZONTAL_PASS
			vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );
			mean += distribution.x;
			squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;
		#else
			float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );
			mean += depth;
			squared_mean += depth * depth;
		#endif
	}
	mean = mean / samples;
	squared_mean = squared_mean / samples;
	float std_dev = sqrt( squared_mean - mean * mean );
	gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
}`;function Rei(t,e,n){let o=new STe;const i=new ni,r=new ni,s=new ru,a=new Ezt({depthPacking:mVt}),A=new Bzt,c={},l=n.maxTextureSize,u={[mE]:uI,[uI]:mE,[r_]:r_},g=new f6({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new ni},radius:{value:4}},vertexShader:Dei,fragmentShader:Nei}),h=g.clone();h.defines.HORIZONTAL_PASS=1;const d=new Zl;d.setAttribute("position",new tg(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const p=new Er(d,g),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=bKt;let _=this.type;this.render=function(x,E,B){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||x.length===0)return;const S=t.getRenderTarget(),Q=t.getActiveCubeFace(),w=t.getActiveMipmapLevel(),M=t.state;M.setBlending(zw),M.buffers.color.setClear(1,1,1,1),M.buffers.depth.setTest(!0),M.setScissorTest(!1);const k=_!==qb&&this.type===qb,R=_===qb&&this.type!==qb;for(let F=0,O=x.length;F<O;F++){const U=x[F],Y=U.shadow;if(Y===void 0){console.warn("THREE.WebGLShadowMap:",U,"has no shadow.");continue}if(Y.autoUpdate===!1&&Y.needsUpdate===!1)continue;i.copy(Y.mapSize);const W=Y.getFrameExtents();if(i.multiply(W),r.copy(Y.mapSize),(i.x>l||i.y>l)&&(i.x>l&&(r.x=Math.floor(l/W.x),i.x=r.x*W.x,Y.mapSize.x=r.x),i.y>l&&(r.y=Math.floor(l/W.y),i.y=r.y*W.y,Y.mapSize.y=r.y)),Y.map===null||k===!0||R===!0){const j=this.type!==qb?{minFilter:wC,magFilter:wC}:{};Y.map!==null&&Y.map.dispose(),Y.map=new TR(i.x,i.y,j),Y.map.texture.name=U.name+".shadowMap",Y.camera.updateProjectionMatrix()}t.setRenderTarget(Y.map),t.clear();const te=Y.getViewportCount();for(let j=0;j<te;j++){const J=Y.getViewport(j);s.set(r.x*J.x,r.y*J.y,r.x*J.z,r.y*J.w),M.viewport(s),Y.updateMatrices(U,j),o=Y.getFrustum(),C(E,B,Y.camera,U,this.type)}Y.isPointLightShadow!==!0&&this.type===qb&&f(Y,B),Y.needsUpdate=!1}_=this.type,m.needsUpdate=!1,t.setRenderTarget(S,Q,w)};function f(x,E){const B=e.update(p);g.defines.VSM_SAMPLES!==x.blurSamples&&(g.defines.VSM_SAMPLES=x.blurSamples,h.defines.VSM_SAMPLES=x.blurSamples,g.needsUpdate=!0,h.needsUpdate=!0),x.mapPass===null&&(x.mapPass=new TR(i.x,i.y)),g.uniforms.shadow_pass.value=x.map.texture,g.uniforms.resolution.value=x.mapSize,g.uniforms.radius.value=x.radius,t.setRenderTarget(x.mapPass),t.clear(),t.renderBufferDirect(E,null,B,g,p,null),h.uniforms.shadow_pass.value=x.mapPass.texture,h.uniforms.resolution.value=x.mapSize,h.uniforms.radius.value=x.radius,t.setRenderTarget(x.map),t.clear(),t.renderBufferDirect(E,null,B,h,p,null)}function I(x,E,B,S){let Q=null;const w=B.isPointLight===!0?x.customDistanceMaterial:x.customDepthMaterial;if(w!==void 0)Q=w;else if(Q=B.isPointLight===!0?A:a,t.localClippingEnabled&&E.clipShadows===!0&&Array.isArray(E.clippingPlanes)&&E.clippingPlanes.length!==0||E.displacementMap&&E.displacementScale!==0||E.alphaMap&&E.alphaTest>0||E.map&&E.alphaTest>0){const M=Q.uuid,k=E.uuid;let R=c[M];R===void 0&&(R={},c[M]=R);let F=R[k];F===void 0&&(F=Q.clone(),R[k]=F,E.addEventListener("dispose",y)),Q=F}if(Q.visible=E.visible,Q.wireframe=E.wireframe,S===qb?Q.side=E.shadowSide!==null?E.shadowSide:E.side:Q.side=E.shadowSide!==null?E.shadowSide:u[E.side],Q.alphaMap=E.alphaMap,Q.alphaTest=E.alphaTest,Q.map=E.map,Q.clipShadows=E.clipShadows,Q.clippingPlanes=E.clippingPlanes,Q.clipIntersection=E.clipIntersection,Q.displacementMap=E.displacementMap,Q.displacementScale=E.displacementScale,Q.displacementBias=E.displacementBias,Q.wireframeLinewidth=E.wireframeLinewidth,Q.linewidth=E.linewidth,B.isPointLight===!0&&Q.isMeshDistanceMaterial===!0){const M=t.properties.get(Q);M.light=B}return Q}function C(x,E,B,S,Q){if(x.visible===!1)return;if(x.layers.test(E.layers)&&(x.isMesh||x.isLine||x.isPoints)&&(x.castShadow||x.receiveShadow&&Q===qb)&&(!x.frustumCulled||o.intersectsObject(x))){x.modelViewMatrix.multiplyMatrices(B.matrixWorldInverse,x.matrixWorld);const k=e.update(x),R=x.material;if(Array.isArray(R)){const F=k.groups;for(let O=0,U=F.length;O<U;O++){const Y=F[O],W=R[Y.materialIndex];if(W&&W.visible){const te=I(x,W,S,Q);x.onBeforeShadow(t,x,E,B,k,te,Y),t.renderBufferDirect(B,null,k,te,x,Y),x.onAfterShadow(t,x,E,B,k,te,Y)}}}else if(R.visible){const F=I(x,R,S,Q);x.onBeforeShadow(t,x,E,B,k,F,null),t.renderBufferDirect(B,null,k,F,x,null),x.onAfterShadow(t,x,E,B,k,F,null)}}const M=x.children;for(let k=0,R=M.length;k<R;k++)C(M[k],E,B,S,Q)}function y(x){x.target.removeEventListener("dispose",y);for(const B in c){const S=c[B],Q=x.target.uuid;Q in S&&(S[Q].dispose(),delete S[Q])}}}function Tei(t){function e(){let be=!1;const et=new ru;let It=null;const Bt=new ru(0,0,0,0);return{setMask:function(mt){It!==mt&&!be&&(t.colorMask(mt,mt,mt,mt),It=mt)},setLocked:function(mt){be=mt},setClear:function(mt,st,xt,Xe,Ze){Ze===!0&&(mt*=Xe,st*=Xe,xt*=Xe),et.set(mt,st,xt,Xe),Bt.equals(et)===!1&&(t.clearColor(mt,st,xt,Xe),Bt.copy(et))},reset:function(){be=!1,It=null,Bt.set(-1,0,0,0)}}}function n(){let be=!1,et=null,It=null,Bt=null;return{setTest:function(mt){mt?le(t.DEPTH_TEST):ge(t.DEPTH_TEST)},setMask:function(mt){et!==mt&&!be&&(t.depthMask(mt),et=mt)},setFunc:function(mt){if(It!==mt){switch(mt){case Bjo:t.depthFunc(t.NEVER);break;case bjo:t.depthFunc(t.ALWAYS);break;case Sjo:t.depthFunc(t.LESS);break;case _de:t.depthFunc(t.LEQUAL);break;case Qjo:t.depthFunc(t.EQUAL);break;case vjo:t.depthFunc(t.GEQUAL);break;case wjo:t.depthFunc(t.GREATER);break;case Pjo:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}It=mt}},setLocked:function(mt){be=mt},setClear:function(mt){Bt!==mt&&(t.clearDepth(mt),Bt=mt)},reset:function(){be=!1,et=null,It=null,Bt=null}}}function o(){let be=!1,et=null,It=null,Bt=null,mt=null,st=null,xt=null,Xe=null,Ze=null;return{setTest:function(dt){be||(dt?le(t.STENCIL_TEST):ge(t.STENCIL_TEST))},setMask:function(dt){et!==dt&&!be&&(t.stencilMask(dt),et=dt)},setFunc:function(dt,Ut,Wt){(It!==dt||Bt!==Ut||mt!==Wt)&&(t.stencilFunc(dt,Ut,Wt),It=dt,Bt=Ut,mt=Wt)},setOp:function(dt,Ut,Wt){(st!==dt||xt!==Ut||Xe!==Wt)&&(t.stencilOp(dt,Ut,Wt),st=dt,xt=Ut,Xe=Wt)},setLocked:function(dt){be=dt},setClear:function(dt){Ze!==dt&&(t.clearStencil(dt),Ze=dt)},reset:function(){be=!1,et=null,It=null,Bt=null,mt=null,st=null,xt=null,Xe=null,Ze=null}}}const i=new e,r=new n,s=new o,a=new WeakMap,A=new WeakMap;let c={},l={},u=new WeakMap,g=[],h=null,d=!1,p=null,m=null,_=null,f=null,I=null,C=null,y=null,x=new Vi(0,0,0),E=0,B=!1,S=null,Q=null,w=null,M=null,k=null;const R=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let F=!1,O=0;const U=t.getParameter(t.VERSION);U.indexOf("WebGL")!==-1?(O=parseFloat(/^WebGL (\d)/.exec(U)[1]),F=O>=1):U.indexOf("OpenGL ES")!==-1&&(O=parseFloat(/^OpenGL ES (\d)/.exec(U)[1]),F=O>=2);let Y=null,W={};const te=t.getParameter(t.SCISSOR_BOX),j=t.getParameter(t.VIEWPORT),J=new ru().fromArray(te),oe=new ru().fromArray(j);function ie(be,et,It,Bt){const mt=new Uint8Array(4),st=t.createTexture();t.bindTexture(be,st),t.texParameteri(be,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(be,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let xt=0;xt<It;xt++)be===t.TEXTURE_3D||be===t.TEXTURE_2D_ARRAY?t.texImage3D(et,0,t.RGBA,1,1,Bt,0,t.RGBA,t.UNSIGNED_BYTE,mt):t.texImage2D(et+xt,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,mt);return st}const ne={};ne[t.TEXTURE_2D]=ie(t.TEXTURE_2D,t.TEXTURE_2D,1),ne[t.TEXTURE_CUBE_MAP]=ie(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),ne[t.TEXTURE_2D_ARRAY]=ie(t.TEXTURE_2D_ARRAY,t.TEXTURE_2D_ARRAY,1,1),ne[t.TEXTURE_3D]=ie(t.TEXTURE_3D,t.TEXTURE_3D,1,1),i.setClear(0,0,0,1),r.setClear(1),s.setClear(0),le(t.DEPTH_TEST),r.setFunc(_de),he(!1),Qe(BKt),le(t.CULL_FACE),Me(zw);function le(be){c[be]!==!0&&(t.enable(be),c[be]=!0)}function ge(be){c[be]!==!1&&(t.disable(be),c[be]=!1)}function _e(be,et){return l[be]!==et?(t.bindFramebuffer(be,et),l[be]=et,be===t.DRAW_FRAMEBUFFER&&(l[t.FRAMEBUFFER]=et),be===t.FRAMEBUFFER&&(l[t.DRAW_FRAMEBUFFER]=et),!0):!1}function ue(be,et){let It=g,Bt=!1;if(be){It=u.get(et),It===void 0&&(It=[],u.set(et,It));const mt=be.textures;if(It.length!==mt.length||It[0]!==t.COLOR_ATTACHMENT0){for(let st=0,xt=mt.length;st<xt;st++)It[st]=t.COLOR_ATTACHMENT0+st;It.length=mt.length,Bt=!0}}else It[0]!==t.BACK&&(It[0]=t.BACK,Bt=!0);Bt&&t.drawBuffers(It)}function fe(be){return h!==be?(t.useProgram(be),h=be,!0):!1}const pe={[NR]:t.FUNC_ADD,[ajo]:t.FUNC_SUBTRACT,[Ajo]:t.FUNC_REVERSE_SUBTRACT};pe[cjo]=t.MIN,pe[ljo]=t.MAX;const ye={[ujo]:t.ZERO,[gjo]:t.ONE,[djo]:t.SRC_COLOR,[URe]:t.SRC_ALPHA,[Ijo]:t.SRC_ALPHA_SATURATE,[_jo]:t.DST_COLOR,[pjo]:t.DST_ALPHA,[hjo]:t.ONE_MINUS_SRC_COLOR,[KRe]:t.ONE_MINUS_SRC_ALPHA,[fjo]:t.ONE_MINUS_DST_COLOR,[mjo]:t.ONE_MINUS_DST_ALPHA,[Cjo]:t.CONSTANT_COLOR,[yjo]:t.ONE_MINUS_CONSTANT_COLOR,[xjo]:t.CONSTANT_ALPHA,[Ejo]:t.ONE_MINUS_CONSTANT_ALPHA};function Me(be,et,It,Bt,mt,st,xt,Xe,Ze,dt){if(be===zw){d===!0&&(ge(t.BLEND),d=!1);return}if(d===!1&&(le(t.BLEND),d=!0),be!==sjo){if(be!==p||dt!==B){if((m!==NR||I!==NR)&&(t.blendEquation(t.FUNC_ADD),m=NR,I=NR),dt)switch(be){case QG:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case QKt:t.blendFunc(t.ONE,t.ONE);break;case vKt:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case wKt:t.blendFuncSeparate(t.ZERO,t.SRC_COLOR,t.ZERO,t.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",be);break}else switch(be){case QG:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case QKt:t.blendFunc(t.SRC_ALPHA,t.ONE);break;case vKt:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case wKt:t.blendFunc(t.ZERO,t.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",be);break}_=null,f=null,C=null,y=null,x.set(0,0,0),E=0,p=be,B=dt}return}mt=mt||et,st=st||It,xt=xt||Bt,(et!==m||mt!==I)&&(t.blendEquationSeparate(pe[et],pe[mt]),m=et,I=mt),(It!==_||Bt!==f||st!==C||xt!==y)&&(t.blendFuncSeparate(ye[It],ye[Bt],ye[st],ye[xt]),_=It,f=Bt,C=st,y=xt),(Xe.equals(x)===!1||Ze!==E)&&(t.blendColor(Xe.r,Xe.g,Xe.b,Ze),x.copy(Xe),E=Ze),p=be,B=!1}function ve(be,et){be.side===r_?ge(t.CULL_FACE):le(t.CULL_FACE);let It=be.side===uI;et&&(It=!It),he(It),be.blending===QG&&be.transparent===!1?Me(zw):Me(be.blending,be.blendEquation,be.blendSrc,be.blendDst,be.blendEquationAlpha,be.blendSrcAlpha,be.blendDstAlpha,be.blendColor,be.blendAlpha,be.premultipliedAlpha),r.setFunc(be.depthFunc),r.setTest(be.depthTest),r.setMask(be.depthWrite),i.setMask(be.colorWrite);const Bt=be.stencilWrite;s.setTest(Bt),Bt&&(s.setMask(be.stencilWriteMask),s.setFunc(be.stencilFunc,be.stencilRef,be.stencilFuncMask),s.setOp(be.stencilFail,be.stencilZFail,be.stencilZPass)),we(be.polygonOffset,be.polygonOffsetFactor,be.polygonOffsetUnits),be.alphaToCoverage===!0?le(t.SAMPLE_ALPHA_TO_COVERAGE):ge(t.SAMPLE_ALPHA_TO_COVERAGE)}function he(be){S!==be&&(be?t.frontFace(t.CW):t.frontFace(t.CCW),S=be)}function Qe(be){be!==ijo?(le(t.CULL_FACE),be!==Q&&(be===BKt?t.cullFace(t.BACK):be===rjo?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):ge(t.CULL_FACE),Q=be}function Pe(be){be!==w&&(F&&t.lineWidth(be),w=be)}function we(be,et,It){be?(le(t.POLYGON_OFFSET_FILL),(M!==et||k!==It)&&(t.polygonOffset(et,It),M=et,k=It)):ge(t.POLYGON_OFFSET_FILL)}function Te(be){be?le(t.SCISSOR_TEST):ge(t.SCISSOR_TEST)}function Re(be){be===void 0&&(be=t.TEXTURE0+R-1),Y!==be&&(t.activeTexture(be),Y=be)}function Ee(be,et,It){It===void 0&&(Y===null?It=t.TEXTURE0+R-1:It=Y);let Bt=W[It];Bt===void 0&&(Bt={type:void 0,texture:void 0},W[It]=Bt),(Bt.type!==be||Bt.texture!==et)&&(Y!==It&&(t.activeTexture(It),Y=It),t.bindTexture(be,et||ne[be]),Bt.type=be,Bt.texture=et)}function ke(){const be=W[Y];be!==void 0&&be.type!==void 0&&(t.bindTexture(be.type,null),be.type=void 0,be.texture=void 0)}function Ce(){try{t.compressedTexImage2D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function Le(){try{t.compressedTexImage3D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function Ye(){try{t.texSubImage2D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function tt(){try{t.texSubImage3D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function At(){try{t.compressedTexSubImage2D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function at(){try{t.compressedTexSubImage3D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function nt(){try{t.texStorage2D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function gt(){try{t.texStorage3D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function bt(){try{t.texImage2D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function Ct(){try{t.texImage3D.apply(t,arguments)}catch(be){console.error("THREE.WebGLState:",be)}}function Dt(be){J.equals(be)===!1&&(t.scissor(be.x,be.y,be.z,be.w),J.copy(be))}function kt(be){oe.equals(be)===!1&&(t.viewport(be.x,be.y,be.z,be.w),oe.copy(be))}function it(be,et){let It=A.get(et);It===void 0&&(It=new WeakMap,A.set(et,It));let Bt=It.get(be);Bt===void 0&&(Bt=t.getUniformBlockIndex(et,be.name),It.set(be,Bt))}function Yt(be,et){const Bt=A.get(et).get(be);a.get(et)!==Bt&&(t.uniformBlockBinding(et,Bt,be.__bindingPointIndex),a.set(et,Bt))}function pn(){t.disable(t.BLEND),t.disable(t.CULL_FACE),t.disable(t.DEPTH_TEST),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SCISSOR_TEST),t.disable(t.STENCIL_TEST),t.disable(t.SAMPLE_ALPHA_TO_COVERAGE),t.blendEquation(t.FUNC_ADD),t.blendFunc(t.ONE,t.ZERO),t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ZERO),t.blendColor(0,0,0,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(t.LESS),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(t.ALWAYS,0,4294967295),t.stencilOp(t.KEEP,t.KEEP,t.KEEP),t.clearStencil(0),t.cullFace(t.BACK),t.frontFace(t.CCW),t.polygonOffset(0,0),t.activeTexture(t.TEXTURE0),t.bindFramebuffer(t.FRAMEBUFFER,null),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),t.bindFramebuffer(t.READ_FRAMEBUFFER,null),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),c={},Y=null,W={},l={},u=new WeakMap,g=[],h=null,d=!1,p=null,m=null,_=null,f=null,I=null,C=null,y=null,x=new Vi(0,0,0),E=0,B=!1,S=null,Q=null,w=null,M=null,k=null,J.set(0,0,t.canvas.width,t.canvas.height),oe.set(0,0,t.canvas.width,t.canvas.height),i.reset(),r.reset(),s.reset()}return{buffers:{color:i,depth:r,stencil:s},enable:le,disable:ge,bindFramebuffer:_e,drawBuffers:ue,useProgram:fe,setBlending:Me,setMaterial:ve,setFlipSided:he,setCullFace:Qe,setLineWidth:Pe,setPolygonOffset:we,setScissorTest:Te,activeTexture:Re,bindTexture:Ee,unbindTexture:ke,compressedTexImage2D:Ce,compressedTexImage3D:Le,texImage2D:bt,texImage3D:Ct,updateUBOMapping:it,uniformBlockBinding:Yt,texStorage2D:nt,texStorage3D:gt,texSubImage2D:Ye,texSubImage3D:tt,compressedTexSubImage2D:At,compressedTexSubImage3D:at,scissor:Dt,viewport:kt,reset:pn}}function kei(t,e,n,o,i,r,s){const a=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,A=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new ni,l=new WeakMap;let u;const g=new WeakMap;let h=!1;try{h=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function d(Re,Ee){return h?new OffscreenCanvas(Re,Ee):Lq("canvas")}function p(Re,Ee,ke){let Ce=1;const Le=Te(Re);if((Le.width>ke||Le.height>ke)&&(Ce=ke/Math.max(Le.width,Le.height)),Ce<1)if(typeof HTMLImageElement<"u"&&Re instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&Re instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&Re instanceof ImageBitmap||typeof VideoFrame<"u"&&Re instanceof VideoFrame){const Ye=Math.floor(Ce*Le.width),tt=Math.floor(Ce*Le.height);u===void 0&&(u=d(Ye,tt));const At=Ee?d(Ye,tt):u;return At.width=Ye,At.height=tt,At.getContext("2d").drawImage(Re,0,0,Ye,tt),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Le.width+"x"+Le.height+") to ("+Ye+"x"+tt+")."),At}else return"data"in Re&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Le.width+"x"+Le.height+")."),Re;return Re}function m(Re){return Re.generateMipmaps&&Re.minFilter!==wC&&Re.minFilter!==Fl}function _(Re){t.generateMipmap(Re)}function f(Re,Ee,ke,Ce,Le=!1){if(Re!==null){if(t[Re]!==void 0)return t[Re];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+Re+"'")}let Ye=Ee;if(Ee===t.RED&&(ke===t.FLOAT&&(Ye=t.R32F),ke===t.HALF_FLOAT&&(Ye=t.R16F),ke===t.UNSIGNED_BYTE&&(Ye=t.R8)),Ee===t.RED_INTEGER&&(ke===t.UNSIGNED_BYTE&&(Ye=t.R8UI),ke===t.UNSIGNED_SHORT&&(Ye=t.R16UI),ke===t.UNSIGNED_INT&&(Ye=t.R32UI),ke===t.BYTE&&(Ye=t.R8I),ke===t.SHORT&&(Ye=t.R16I),ke===t.INT&&(Ye=t.R32I)),Ee===t.RG&&(ke===t.FLOAT&&(Ye=t.RG32F),ke===t.HALF_FLOAT&&(Ye=t.RG16F),ke===t.UNSIGNED_BYTE&&(Ye=t.RG8)),Ee===t.RG_INTEGER&&(ke===t.UNSIGNED_BYTE&&(Ye=t.RG8UI),ke===t.UNSIGNED_SHORT&&(Ye=t.RG16UI),ke===t.UNSIGNED_INT&&(Ye=t.RG32UI),ke===t.BYTE&&(Ye=t.RG8I),ke===t.SHORT&&(Ye=t.RG16I),ke===t.INT&&(Ye=t.RG32I)),Ee===t.RGB&&ke===t.UNSIGNED_INT_5_9_9_9_REV&&(Ye=t.RGB9_E5),Ee===t.RGBA){const tt=Le?Ede:iu.getTransfer(Ce);ke===t.FLOAT&&(Ye=t.RGBA32F),ke===t.HALF_FLOAT&&(Ye=t.RGBA16F),ke===t.UNSIGNED_BYTE&&(Ye=tt===Ed?t.SRGB8_ALPHA8:t.RGBA8),ke===t.UNSIGNED_SHORT_4_4_4_4&&(Ye=t.RGBA4),ke===t.UNSIGNED_SHORT_5_5_5_1&&(Ye=t.RGB5_A1)}return(Ye===t.R16F||Ye===t.R32F||Ye===t.RG16F||Ye===t.RG32F||Ye===t.RGBA16F||Ye===t.RGBA32F)&&e.get("EXT_color_buffer_float"),Ye}function I(Re,Ee){let ke;return Re?Ee===null||Ee===MG||Ee===DG?ke=t.DEPTH24_STENCIL8:Ee===m6?ke=t.DEPTH32F_STENCIL8:Ee===Cde&&(ke=t.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):Ee===null||Ee===MG||Ee===DG?ke=t.DEPTH_COMPONENT24:Ee===m6?ke=t.DEPTH_COMPONENT32F:Ee===Cde&&(ke=t.DEPTH_COMPONENT16),ke}function C(Re,Ee){return m(Re)===!0||Re.isFramebufferTexture&&Re.minFilter!==wC&&Re.minFilter!==Fl?Math.log2(Math.max(Ee.width,Ee.height))+1:Re.mipmaps!==void 0&&Re.mipmaps.length>0?Re.mipmaps.length:Re.isCompressedTexture&&Array.isArray(Re.image)?Ee.mipmaps.length:1}function y(Re){const Ee=Re.target;Ee.removeEventListener("dispose",y),E(Ee),Ee.isVideoTexture&&l.delete(Ee)}function x(Re){const Ee=Re.target;Ee.removeEventListener("dispose",x),S(Ee)}function E(Re){const Ee=o.get(Re);if(Ee.__webglInit===void 0)return;const ke=Re.source,Ce=g.get(ke);if(Ce){const Le=Ce[Ee.__cacheKey];Le.usedTimes--,Le.usedTimes===0&&B(Re),Object.keys(Ce).length===0&&g.delete(ke)}o.remove(Re)}function B(Re){const Ee=o.get(Re);t.deleteTexture(Ee.__webglTexture);const ke=Re.source,Ce=g.get(ke);delete Ce[Ee.__cacheKey],s.memory.textures--}function S(Re){const Ee=o.get(Re);if(Re.depthTexture&&Re.depthTexture.dispose(),Re.isWebGLCubeRenderTarget)for(let Ce=0;Ce<6;Ce++){if(Array.isArray(Ee.__webglFramebuffer[Ce]))for(let Le=0;Le<Ee.__webglFramebuffer[Ce].length;Le++)t.deleteFramebuffer(Ee.__webglFramebuffer[Ce][Le]);else t.deleteFramebuffer(Ee.__webglFramebuffer[Ce]);Ee.__webglDepthbuffer&&t.deleteRenderbuffer(Ee.__webglDepthbuffer[Ce])}else{if(Array.isArray(Ee.__webglFramebuffer))for(let Ce=0;Ce<Ee.__webglFramebuffer.length;Ce++)t.deleteFramebuffer(Ee.__webglFramebuffer[Ce]);else t.deleteFramebuffer(Ee.__webglFramebuffer);if(Ee.__webglDepthbuffer&&t.deleteRenderbuffer(Ee.__webglDepthbuffer),Ee.__webglMultisampledFramebuffer&&t.deleteFramebuffer(Ee.__webglMultisampledFramebuffer),Ee.__webglColorRenderbuffer)for(let Ce=0;Ce<Ee.__webglColorRenderbuffer.length;Ce++)Ee.__webglColorRenderbuffer[Ce]&&t.deleteRenderbuffer(Ee.__webglColorRenderbuffer[Ce]);Ee.__webglDepthRenderbuffer&&t.deleteRenderbuffer(Ee.__webglDepthRenderbuffer)}const ke=Re.textures;for(let Ce=0,Le=ke.length;Ce<Le;Ce++){const Ye=o.get(ke[Ce]);Ye.__webglTexture&&(t.deleteTexture(Ye.__webglTexture),s.memory.textures--),o.remove(ke[Ce])}o.remove(Re)}let Q=0;function w(){Q=0}function M(){const Re=Q;return Re>=i.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+Re+" texture units while this GPU supports only "+i.maxTextures),Q+=1,Re}function k(Re){const Ee=[];return Ee.push(Re.wrapS),Ee.push(Re.wrapT),Ee.push(Re.wrapR||0),Ee.push(Re.magFilter),Ee.push(Re.minFilter),Ee.push(Re.anisotropy),Ee.push(Re.internalFormat),Ee.push(Re.format),Ee.push(Re.type),Ee.push(Re.generateMipmaps),Ee.push(Re.premultiplyAlpha),Ee.push(Re.flipY),Ee.push(Re.unpackAlignment),Ee.push(Re.colorSpace),Ee.join()}function R(Re,Ee){const ke=o.get(Re);if(Re.isVideoTexture&&Pe(Re),Re.isRenderTargetTexture===!1&&Re.version>0&&ke.__version!==Re.version){const Ce=Re.image;if(Ce===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Ce.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{oe(ke,Re,Ee);return}}n.bindTexture(t.TEXTURE_2D,ke.__webglTexture,t.TEXTURE0+Ee)}function F(Re,Ee){const ke=o.get(Re);if(Re.version>0&&ke.__version!==Re.version){oe(ke,Re,Ee);return}n.bindTexture(t.TEXTURE_2D_ARRAY,ke.__webglTexture,t.TEXTURE0+Ee)}function O(Re,Ee){const ke=o.get(Re);if(Re.version>0&&ke.__version!==Re.version){oe(ke,Re,Ee);return}n.bindTexture(t.TEXTURE_3D,ke.__webglTexture,t.TEXTURE0+Ee)}function U(Re,Ee){const ke=o.get(Re);if(Re.version>0&&ke.__version!==Re.version){ie(ke,Re,Ee);return}n.bindTexture(t.TEXTURE_CUBE_MAP,ke.__webglTexture,t.TEXTURE0+Ee)}const Y={[c4]:t.REPEAT,[Xy]:t.CLAMP_TO_EDGE,[Tq]:t.MIRRORED_REPEAT},W={[wC]:t.NEAREST,[JRe]:t.NEAREST_MIPMAP_NEAREST,[PG]:t.NEAREST_MIPMAP_LINEAR,[Fl]:t.LINEAR,[kq]:t.LINEAR_MIPMAP_NEAREST,[gm]:t.LINEAR_MIPMAP_LINEAR},te={[Zjo]:t.NEVER,[r$o]:t.ALWAYS,[e$o]:t.LESS,[fVt]:t.LEQUAL,[t$o]:t.EQUAL,[i$o]:t.GEQUAL,[n$o]:t.GREATER,[o$o]:t.NOTEQUAL};function j(Re,Ee){if(Ee.type===m6&&e.has("OES_texture_float_linear")===!1&&(Ee.magFilter===Fl||Ee.magFilter===kq||Ee.magFilter===PG||Ee.magFilter===gm||Ee.minFilter===Fl||Ee.minFilter===kq||Ee.minFilter===PG||Ee.minFilter===gm)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),t.texParameteri(Re,t.TEXTURE_WRAP_S,Y[Ee.wrapS]),t.texParameteri(Re,t.TEXTURE_WRAP_T,Y[Ee.wrapT]),(Re===t.TEXTURE_3D||Re===t.TEXTURE_2D_ARRAY)&&t.texParameteri(Re,t.TEXTURE_WRAP_R,Y[Ee.wrapR]),t.texParameteri(Re,t.TEXTURE_MAG_FILTER,W[Ee.magFilter]),t.texParameteri(Re,t.TEXTURE_MIN_FILTER,W[Ee.minFilter]),Ee.compareFunction&&(t.texParameteri(Re,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(Re,t.TEXTURE_COMPARE_FUNC,te[Ee.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(Ee.magFilter===wC||Ee.minFilter!==PG&&Ee.minFilter!==gm||Ee.type===m6&&e.has("OES_texture_float_linear")===!1)return;if(Ee.anisotropy>1||o.get(Ee).__currentAnisotropy){const ke=e.get("EXT_texture_filter_anisotropic");t.texParameterf(Re,ke.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(Ee.anisotropy,i.getMaxAnisotropy())),o.get(Ee).__currentAnisotropy=Ee.anisotropy}}}function J(Re,Ee){let ke=!1;Re.__webglInit===void 0&&(Re.__webglInit=!0,Ee.addEventListener("dispose",y));const Ce=Ee.source;let Le=g.get(Ce);Le===void 0&&(Le={},g.set(Ce,Le));const Ye=k(Ee);if(Ye!==Re.__cacheKey){Le[Ye]===void 0&&(Le[Ye]={texture:t.createTexture(),usedTimes:0},s.memory.textures++,ke=!0),Le[Ye].usedTimes++;const tt=Le[Re.__cacheKey];tt!==void 0&&(Le[Re.__cacheKey].usedTimes--,tt.usedTimes===0&&B(Ee)),Re.__cacheKey=Ye,Re.__webglTexture=Le[Ye].texture}return ke}function oe(Re,Ee,ke){let Ce=t.TEXTURE_2D;(Ee.isDataArrayTexture||Ee.isCompressedArrayTexture)&&(Ce=t.TEXTURE_2D_ARRAY),Ee.isData3DTexture&&(Ce=t.TEXTURE_3D);const Le=J(Re,Ee),Ye=Ee.source;n.bindTexture(Ce,Re.__webglTexture,t.TEXTURE0+ke);const tt=o.get(Ye);if(Ye.version!==tt.__version||Le===!0){n.activeTexture(t.TEXTURE0+ke);const At=iu.getPrimaries(iu.workingColorSpace),at=Ee.colorSpace===_6?null:iu.getPrimaries(Ee.colorSpace),nt=Ee.colorSpace===_6||At===at?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,Ee.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ee.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,Ee.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,nt);let gt=p(Ee.image,!1,i.maxTextureSize);gt=we(Ee,gt);const bt=r.convert(Ee.format,Ee.colorSpace),Ct=r.convert(Ee.type);let Dt=f(Ee.internalFormat,bt,Ct,Ee.colorSpace,Ee.isVideoTexture);j(Ce,Ee);let kt;const it=Ee.mipmaps,Yt=Ee.isVideoTexture!==!0,pn=tt.__version===void 0||Le===!0,be=Ye.dataReady,et=C(Ee,gt);if(Ee.isDepthTexture)Dt=I(Ee.format===RG,Ee.type),pn&&(Yt?n.texStorage2D(t.TEXTURE_2D,1,Dt,gt.width,gt.height):n.texImage2D(t.TEXTURE_2D,0,Dt,gt.width,gt.height,0,bt,Ct,null));else if(Ee.isDataTexture)if(it.length>0){Yt&&pn&&n.texStorage2D(t.TEXTURE_2D,et,Dt,it[0].width,it[0].height);for(let It=0,Bt=it.length;It<Bt;It++)kt=it[It],Yt?be&&n.texSubImage2D(t.TEXTURE_2D,It,0,0,kt.width,kt.height,bt,Ct,kt.data):n.texImage2D(t.TEXTURE_2D,It,Dt,kt.width,kt.height,0,bt,Ct,kt.data);Ee.generateMipmaps=!1}else Yt?(pn&&n.texStorage2D(t.TEXTURE_2D,et,Dt,gt.width,gt.height),be&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,gt.width,gt.height,bt,Ct,gt.data)):n.texImage2D(t.TEXTURE_2D,0,Dt,gt.width,gt.height,0,bt,Ct,gt.data);else if(Ee.isCompressedTexture)if(Ee.isCompressedArrayTexture){Yt&&pn&&n.texStorage3D(t.TEXTURE_2D_ARRAY,et,Dt,it[0].width,it[0].height,gt.depth);for(let It=0,Bt=it.length;It<Bt;It++)if(kt=it[It],Ee.format!==l4)if(bt!==null)if(Yt){if(be)if(Ee.layerUpdates.size>0){for(const mt of Ee.layerUpdates){const st=kt.width*kt.height;n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,It,0,0,mt,kt.width,kt.height,1,bt,kt.data.slice(st*mt,st*(mt+1)),0,0)}Ee.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,It,0,0,0,kt.width,kt.height,gt.depth,bt,kt.data,0,0)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,It,Dt,kt.width,kt.height,gt.depth,0,kt.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else Yt?be&&n.texSubImage3D(t.TEXTURE_2D_ARRAY,It,0,0,0,kt.width,kt.height,gt.depth,bt,Ct,kt.data):n.texImage3D(t.TEXTURE_2D_ARRAY,It,Dt,kt.width,kt.height,gt.depth,0,bt,Ct,kt.data)}else{Yt&&pn&&n.texStorage2D(t.TEXTURE_2D,et,Dt,it[0].width,it[0].height);for(let It=0,Bt=it.length;It<Bt;It++)kt=it[It],Ee.format!==l4?bt!==null?Yt?be&&n.compressedTexSubImage2D(t.TEXTURE_2D,It,0,0,kt.width,kt.height,bt,kt.data):n.compressedTexImage2D(t.TEXTURE_2D,It,Dt,kt.width,kt.height,0,kt.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Yt?be&&n.texSubImage2D(t.TEXTURE_2D,It,0,0,kt.width,kt.height,bt,Ct,kt.data):n.texImage2D(t.TEXTURE_2D,It,Dt,kt.width,kt.height,0,bt,Ct,kt.data)}else if(Ee.isDataArrayTexture)if(Yt){if(pn&&n.texStorage3D(t.TEXTURE_2D_ARRAY,et,Dt,gt.width,gt.height,gt.depth),be)if(Ee.layerUpdates.size>0){let It;switch(Ct){case t.UNSIGNED_BYTE:switch(bt){case t.ALPHA:It=1;break;case t.LUMINANCE:It=1;break;case t.LUMINANCE_ALPHA:It=2;break;case t.RGB:It=3;break;case t.RGBA:It=4;break;default:throw new Error(`Unknown texel size for format ${bt}.`)}break;case t.UNSIGNED_SHORT_4_4_4_4:case t.UNSIGNED_SHORT_5_5_5_1:case t.UNSIGNED_SHORT_5_6_5:It=1;break;default:throw new Error(`Unknown texel size for type ${Ct}.`)}const Bt=gt.width*gt.height*It;for(const mt of Ee.layerUpdates)n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,mt,gt.width,gt.height,1,bt,Ct,gt.data.slice(Bt*mt,Bt*(mt+1)));Ee.clearLayerUpdates()}else n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,gt.width,gt.height,gt.depth,bt,Ct,gt.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,0,Dt,gt.width,gt.height,gt.depth,0,bt,Ct,gt.data);else if(Ee.isData3DTexture)Yt?(pn&&n.texStorage3D(t.TEXTURE_3D,et,Dt,gt.width,gt.height,gt.depth),be&&n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,gt.width,gt.height,gt.depth,bt,Ct,gt.data)):n.texImage3D(t.TEXTURE_3D,0,Dt,gt.width,gt.height,gt.depth,0,bt,Ct,gt.data);else if(Ee.isFramebufferTexture){if(pn)if(Yt)n.texStorage2D(t.TEXTURE_2D,et,Dt,gt.width,gt.height);else{let It=gt.width,Bt=gt.height;for(let mt=0;mt<et;mt++)n.texImage2D(t.TEXTURE_2D,mt,Dt,It,Bt,0,bt,Ct,null),It>>=1,Bt>>=1}}else if(it.length>0){if(Yt&&pn){const It=Te(it[0]);n.texStorage2D(t.TEXTURE_2D,et,Dt,It.width,It.height)}for(let It=0,Bt=it.length;It<Bt;It++)kt=it[It],Yt?be&&n.texSubImage2D(t.TEXTURE_2D,It,0,0,bt,Ct,kt):n.texImage2D(t.TEXTURE_2D,It,Dt,bt,Ct,kt);Ee.generateMipmaps=!1}else if(Yt){if(pn){const It=Te(gt);n.texStorage2D(t.TEXTURE_2D,et,Dt,It.width,It.height)}be&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,bt,Ct,gt)}else n.texImage2D(t.TEXTURE_2D,0,Dt,bt,Ct,gt);m(Ee)&&_(Ce),tt.__version=Ye.version,Ee.onUpdate&&Ee.onUpdate(Ee)}Re.__version=Ee.version}function ie(Re,Ee,ke){if(Ee.image.length!==6)return;const Ce=J(Re,Ee),Le=Ee.source;n.bindTexture(t.TEXTURE_CUBE_MAP,Re.__webglTexture,t.TEXTURE0+ke);const Ye=o.get(Le);if(Le.version!==Ye.__version||Ce===!0){n.activeTexture(t.TEXTURE0+ke);const tt=iu.getPrimaries(iu.workingColorSpace),At=Ee.colorSpace===_6?null:iu.getPrimaries(Ee.colorSpace),at=Ee.colorSpace===_6||tt===At?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,Ee.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ee.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,Ee.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,at);const nt=Ee.isCompressedTexture||Ee.image[0].isCompressedTexture,gt=Ee.image[0]&&Ee.image[0].isDataTexture,bt=[];for(let Bt=0;Bt<6;Bt++)!nt&&!gt?bt[Bt]=p(Ee.image[Bt],!0,i.maxCubemapSize):bt[Bt]=gt?Ee.image[Bt].image:Ee.image[Bt],bt[Bt]=we(Ee,bt[Bt]);const Ct=bt[0],Dt=r.convert(Ee.format,Ee.colorSpace),kt=r.convert(Ee.type),it=f(Ee.internalFormat,Dt,kt,Ee.colorSpace),Yt=Ee.isVideoTexture!==!0,pn=Ye.__version===void 0||Ce===!0,be=Le.dataReady;let et=C(Ee,Ct);j(t.TEXTURE_CUBE_MAP,Ee);let It;if(nt){Yt&&pn&&n.texStorage2D(t.TEXTURE_CUBE_MAP,et,it,Ct.width,Ct.height);for(let Bt=0;Bt<6;Bt++){It=bt[Bt].mipmaps;for(let mt=0;mt<It.length;mt++){const st=It[mt];Ee.format!==l4?Dt!==null?Yt?be&&n.compressedTexSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,mt,0,0,st.width,st.height,Dt,st.data):n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,mt,it,st.width,st.height,0,st.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):Yt?be&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,mt,0,0,st.width,st.height,Dt,kt,st.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,mt,it,st.width,st.height,0,Dt,kt,st.data)}}}else{if(It=Ee.mipmaps,Yt&&pn){It.length>0&&et++;const Bt=Te(bt[0]);n.texStorage2D(t.TEXTURE_CUBE_MAP,et,it,Bt.width,Bt.height)}for(let Bt=0;Bt<6;Bt++)if(gt){Yt?be&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,0,0,0,bt[Bt].width,bt[Bt].height,Dt,kt,bt[Bt].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,0,it,bt[Bt].width,bt[Bt].height,0,Dt,kt,bt[Bt].data);for(let mt=0;mt<It.length;mt++){const xt=It[mt].image[Bt].image;Yt?be&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,mt+1,0,0,xt.width,xt.height,Dt,kt,xt.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,mt+1,it,xt.width,xt.height,0,Dt,kt,xt.data)}}else{Yt?be&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,0,0,0,Dt,kt,bt[Bt]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,0,it,Dt,kt,bt[Bt]);for(let mt=0;mt<It.length;mt++){const st=It[mt];Yt?be&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,mt+1,0,0,Dt,kt,st.image[Bt]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+Bt,mt+1,it,Dt,kt,st.image[Bt])}}}m(Ee)&&_(t.TEXTURE_CUBE_MAP),Ye.__version=Le.version,Ee.onUpdate&&Ee.onUpdate(Ee)}Re.__version=Ee.version}function ne(Re,Ee,ke,Ce,Le,Ye){const tt=r.convert(ke.format,ke.colorSpace),At=r.convert(ke.type),at=f(ke.internalFormat,tt,At,ke.colorSpace);if(!o.get(Ee).__hasExternalTextures){const gt=Math.max(1,Ee.width>>Ye),bt=Math.max(1,Ee.height>>Ye);Le===t.TEXTURE_3D||Le===t.TEXTURE_2D_ARRAY?n.texImage3D(Le,Ye,at,gt,bt,Ee.depth,0,tt,At,null):n.texImage2D(Le,Ye,at,gt,bt,0,tt,At,null)}n.bindFramebuffer(t.FRAMEBUFFER,Re),Qe(Ee)?a.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,Ce,Le,o.get(ke).__webglTexture,0,he(Ee)):(Le===t.TEXTURE_2D||Le>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&Le<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,Ce,Le,o.get(ke).__webglTexture,Ye),n.bindFramebuffer(t.FRAMEBUFFER,null)}function le(Re,Ee,ke){if(t.bindRenderbuffer(t.RENDERBUFFER,Re),Ee.depthBuffer){const Ce=Ee.depthTexture,Le=Ce&&Ce.isDepthTexture?Ce.type:null,Ye=I(Ee.stencilBuffer,Le),tt=Ee.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,At=he(Ee);Qe(Ee)?a.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,At,Ye,Ee.width,Ee.height):ke?t.renderbufferStorageMultisample(t.RENDERBUFFER,At,Ye,Ee.width,Ee.height):t.renderbufferStorage(t.RENDERBUFFER,Ye,Ee.width,Ee.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,tt,t.RENDERBUFFER,Re)}else{const Ce=Ee.textures;for(let Le=0;Le<Ce.length;Le++){const Ye=Ce[Le],tt=r.convert(Ye.format,Ye.colorSpace),At=r.convert(Ye.type),at=f(Ye.internalFormat,tt,At,Ye.colorSpace),nt=he(Ee);ke&&Qe(Ee)===!1?t.renderbufferStorageMultisample(t.RENDERBUFFER,nt,at,Ee.width,Ee.height):Qe(Ee)?a.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,nt,at,Ee.width,Ee.height):t.renderbufferStorage(t.RENDERBUFFER,at,Ee.width,Ee.height)}}t.bindRenderbuffer(t.RENDERBUFFER,null)}function ge(Re,Ee){if(Ee&&Ee.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(t.FRAMEBUFFER,Re),!(Ee.depthTexture&&Ee.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!o.get(Ee.depthTexture).__webglTexture||Ee.depthTexture.image.width!==Ee.width||Ee.depthTexture.image.height!==Ee.height)&&(Ee.depthTexture.image.width=Ee.width,Ee.depthTexture.image.height=Ee.height,Ee.depthTexture.needsUpdate=!0),R(Ee.depthTexture,0);const Ce=o.get(Ee.depthTexture).__webglTexture,Le=he(Ee);if(Ee.depthTexture.format===NG)Qe(Ee)?a.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,Ce,0,Le):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,Ce,0);else if(Ee.depthTexture.format===RG)Qe(Ee)?a.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,Ce,0,Le):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,Ce,0);else throw new Error("Unknown depthTexture format")}function _e(Re){const Ee=o.get(Re),ke=Re.isWebGLCubeRenderTarget===!0;if(Re.depthTexture&&!Ee.__autoAllocateDepthBuffer){if(ke)throw new Error("target.depthTexture not supported in Cube render targets");ge(Ee.__webglFramebuffer,Re)}else if(ke){Ee.__webglDepthbuffer=[];for(let Ce=0;Ce<6;Ce++)n.bindFramebuffer(t.FRAMEBUFFER,Ee.__webglFramebuffer[Ce]),Ee.__webglDepthbuffer[Ce]=t.createRenderbuffer(),le(Ee.__webglDepthbuffer[Ce],Re,!1)}else n.bindFramebuffer(t.FRAMEBUFFER,Ee.__webglFramebuffer),Ee.__webglDepthbuffer=t.createRenderbuffer(),le(Ee.__webglDepthbuffer,Re,!1);n.bindFramebuffer(t.FRAMEBUFFER,null)}function ue(Re,Ee,ke){const Ce=o.get(Re);Ee!==void 0&&ne(Ce.__webglFramebuffer,Re,Re.texture,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,0),ke!==void 0&&_e(Re)}function fe(Re){const Ee=Re.texture,ke=o.get(Re),Ce=o.get(Ee);Re.addEventListener("dispose",x);const Le=Re.textures,Ye=Re.isWebGLCubeRenderTarget===!0,tt=Le.length>1;if(tt||(Ce.__webglTexture===void 0&&(Ce.__webglTexture=t.createTexture()),Ce.__version=Ee.version,s.memory.textures++),Ye){ke.__webglFramebuffer=[];for(let At=0;At<6;At++)if(Ee.mipmaps&&Ee.mipmaps.length>0){ke.__webglFramebuffer[At]=[];for(let at=0;at<Ee.mipmaps.length;at++)ke.__webglFramebuffer[At][at]=t.createFramebuffer()}else ke.__webglFramebuffer[At]=t.createFramebuffer()}else{if(Ee.mipmaps&&Ee.mipmaps.length>0){ke.__webglFramebuffer=[];for(let At=0;At<Ee.mipmaps.length;At++)ke.__webglFramebuffer[At]=t.createFramebuffer()}else ke.__webglFramebuffer=t.createFramebuffer();if(tt)for(let At=0,at=Le.length;At<at;At++){const nt=o.get(Le[At]);nt.__webglTexture===void 0&&(nt.__webglTexture=t.createTexture(),s.memory.textures++)}if(Re.samples>0&&Qe(Re)===!1){ke.__webglMultisampledFramebuffer=t.createFramebuffer(),ke.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,ke.__webglMultisampledFramebuffer);for(let At=0;At<Le.length;At++){const at=Le[At];ke.__webglColorRenderbuffer[At]=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,ke.__webglColorRenderbuffer[At]);const nt=r.convert(at.format,at.colorSpace),gt=r.convert(at.type),bt=f(at.internalFormat,nt,gt,at.colorSpace,Re.isXRRenderTarget===!0),Ct=he(Re);t.renderbufferStorageMultisample(t.RENDERBUFFER,Ct,bt,Re.width,Re.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+At,t.RENDERBUFFER,ke.__webglColorRenderbuffer[At])}t.bindRenderbuffer(t.RENDERBUFFER,null),Re.depthBuffer&&(ke.__webglDepthRenderbuffer=t.createRenderbuffer(),le(ke.__webglDepthRenderbuffer,Re,!0)),n.bindFramebuffer(t.FRAMEBUFFER,null)}}if(Ye){n.bindTexture(t.TEXTURE_CUBE_MAP,Ce.__webglTexture),j(t.TEXTURE_CUBE_MAP,Ee);for(let At=0;At<6;At++)if(Ee.mipmaps&&Ee.mipmaps.length>0)for(let at=0;at<Ee.mipmaps.length;at++)ne(ke.__webglFramebuffer[At][at],Re,Ee,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+At,at);else ne(ke.__webglFramebuffer[At],Re,Ee,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+At,0);m(Ee)&&_(t.TEXTURE_CUBE_MAP),n.unbindTexture()}else if(tt){for(let At=0,at=Le.length;At<at;At++){const nt=Le[At],gt=o.get(nt);n.bindTexture(t.TEXTURE_2D,gt.__webglTexture),j(t.TEXTURE_2D,nt),ne(ke.__webglFramebuffer,Re,nt,t.COLOR_ATTACHMENT0+At,t.TEXTURE_2D,0),m(nt)&&_(t.TEXTURE_2D)}n.unbindTexture()}else{let At=t.TEXTURE_2D;if((Re.isWebGL3DRenderTarget||Re.isWebGLArrayRenderTarget)&&(At=Re.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY),n.bindTexture(At,Ce.__webglTexture),j(At,Ee),Ee.mipmaps&&Ee.mipmaps.length>0)for(let at=0;at<Ee.mipmaps.length;at++)ne(ke.__webglFramebuffer[at],Re,Ee,t.COLOR_ATTACHMENT0,At,at);else ne(ke.__webglFramebuffer,Re,Ee,t.COLOR_ATTACHMENT0,At,0);m(Ee)&&_(At),n.unbindTexture()}Re.depthBuffer&&_e(Re)}function pe(Re){const Ee=Re.textures;for(let ke=0,Ce=Ee.length;ke<Ce;ke++){const Le=Ee[ke];if(m(Le)){const Ye=Re.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D,tt=o.get(Le).__webglTexture;n.bindTexture(Ye,tt),_(Ye),n.unbindTexture()}}}const ye=[],Me=[];function ve(Re){if(Re.samples>0){if(Qe(Re)===!1){const Ee=Re.textures,ke=Re.width,Ce=Re.height;let Le=t.COLOR_BUFFER_BIT;const Ye=Re.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,tt=o.get(Re),At=Ee.length>1;if(At)for(let at=0;at<Ee.length;at++)n.bindFramebuffer(t.FRAMEBUFFER,tt.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+at,t.RENDERBUFFER,null),n.bindFramebuffer(t.FRAMEBUFFER,tt.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+at,t.TEXTURE_2D,null,0);n.bindFramebuffer(t.READ_FRAMEBUFFER,tt.__webglMultisampledFramebuffer),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,tt.__webglFramebuffer);for(let at=0;at<Ee.length;at++){if(Re.resolveDepthBuffer&&(Re.depthBuffer&&(Le|=t.DEPTH_BUFFER_BIT),Re.stencilBuffer&&Re.resolveStencilBuffer&&(Le|=t.STENCIL_BUFFER_BIT)),At){t.framebufferRenderbuffer(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,tt.__webglColorRenderbuffer[at]);const nt=o.get(Ee[at]).__webglTexture;t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,nt,0)}t.blitFramebuffer(0,0,ke,Ce,0,0,ke,Ce,Le,t.NEAREST),A===!0&&(ye.length=0,Me.length=0,ye.push(t.COLOR_ATTACHMENT0+at),Re.depthBuffer&&Re.resolveDepthBuffer===!1&&(ye.push(Ye),Me.push(Ye),t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,Me)),t.invalidateFramebuffer(t.READ_FRAMEBUFFER,ye))}if(n.bindFramebuffer(t.READ_FRAMEBUFFER,null),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),At)for(let at=0;at<Ee.length;at++){n.bindFramebuffer(t.FRAMEBUFFER,tt.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+at,t.RENDERBUFFER,tt.__webglColorRenderbuffer[at]);const nt=o.get(Ee[at]).__webglTexture;n.bindFramebuffer(t.FRAMEBUFFER,tt.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+at,t.TEXTURE_2D,nt,0)}n.bindFramebuffer(t.DRAW_FRAMEBUFFER,tt.__webglMultisampledFramebuffer)}else if(Re.depthBuffer&&Re.resolveDepthBuffer===!1&&A){const Ee=Re.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,[Ee])}}}function he(Re){return Math.min(i.maxSamples,Re.samples)}function Qe(Re){const Ee=o.get(Re);return Re.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&Ee.__useRenderToTexture!==!1}function Pe(Re){const Ee=s.render.frame;l.get(Re)!==Ee&&(l.set(Re,Ee),Re.update())}function we(Re,Ee){const ke=Re.colorSpace,Ce=Re.format,Le=Re.type;return Re.isCompressedTexture===!0||Re.isVideoTexture===!0||ke!==jw&&ke!==_6&&(iu.getTransfer(ke)===Ed?(Ce!==l4||Le!==Ww)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ke)),Ee}function Te(Re){return typeof HTMLImageElement<"u"&&Re instanceof HTMLImageElement?(c.width=Re.naturalWidth||Re.width,c.height=Re.naturalHeight||Re.height):typeof VideoFrame<"u"&&Re instanceof VideoFrame?(c.width=Re.displayWidth,c.height=Re.displayHeight):(c.width=Re.width,c.height=Re.height),c}this.allocateTextureUnit=M,this.resetTextureUnits=w,this.setTexture2D=R,this.setTexture2DArray=F,this.setTexture3D=O,this.setTextureCube=U,this.rebindTextures=ue,this.setupRenderTarget=fe,this.updateRenderTargetMipmap=pe,this.updateMultisampleRenderTarget=ve,this.setupDepthRenderbuffer=_e,this.setupFrameBufferTexture=ne,this.useMultisampledRTT=Qe}function Fei(t,e){function n(o,i=_6){let r;const s=iu.getTransfer(i);if(o===Ww)return t.UNSIGNED_BYTE;if(o===RKt)return t.UNSIGNED_SHORT_4_4_4_4;if(o===TKt)return t.UNSIGNED_SHORT_5_5_5_1;if(o===Yjo)return t.UNSIGNED_INT_5_9_9_9_REV;if(o===Ojo)return t.BYTE;if(o===Gjo)return t.SHORT;if(o===Cde)return t.UNSIGNED_SHORT;if(o===NKt)return t.INT;if(o===MG)return t.UNSIGNED_INT;if(o===m6)return t.FLOAT;if(o===yde)return t.HALF_FLOAT;if(o===Ujo)return t.ALPHA;if(o===Kjo)return t.RGB;if(o===l4)return t.RGBA;if(o===Vjo)return t.LUMINANCE;if(o===zjo)return t.LUMINANCE_ALPHA;if(o===NG)return t.DEPTH_COMPONENT;if(o===RG)return t.DEPTH_STENCIL;if(o===kKt)return t.RED;if(o===FKt)return t.RED_INTEGER;if(o===Jjo)return t.RG;if(o===LKt)return t.RG_INTEGER;if(o===HKt)return t.RGBA_INTEGER;if(o===WRe||o===jRe||o===$Re||o===qRe)if(s===Ed)if(r=e.get("WEBGL_compressed_texture_s3tc_srgb"),r!==null){if(o===WRe)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(o===jRe)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(o===$Re)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(o===qRe)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(r=e.get("WEBGL_compressed_texture_s3tc"),r!==null){if(o===WRe)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(o===jRe)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(o===$Re)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(o===qRe)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(o===OKt||o===GKt||o===YKt||o===UKt)if(r=e.get("WEBGL_compressed_texture_pvrtc"),r!==null){if(o===OKt)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(o===GKt)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(o===YKt)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(o===UKt)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(o===KKt||o===VKt||o===zKt)if(r=e.get("WEBGL_compressed_texture_etc"),r!==null){if(o===KKt||o===VKt)return s===Ed?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(o===zKt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(o===JKt||o===WKt||o===jKt||o===$Kt||o===qKt||o===XKt||o===ZKt||o===eVt||o===tVt||o===nVt||o===oVt||o===iVt||o===rVt||o===sVt)if(r=e.get("WEBGL_compressed_texture_astc"),r!==null){if(o===JKt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(o===WKt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(o===jKt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(o===$Kt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(o===qKt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(o===XKt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(o===ZKt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(o===eVt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(o===tVt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(o===nVt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(o===oVt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(o===iVt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(o===rVt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(o===sVt)return s===Ed?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(o===XRe||o===aVt||o===AVt)if(r=e.get("EXT_texture_compression_bptc"),r!==null){if(o===XRe)return s===Ed?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(o===aVt)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(o===AVt)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(o===Wjo||o===cVt||o===lVt||o===uVt)if(r=e.get("EXT_texture_compression_rgtc"),r!==null){if(o===XRe)return r.COMPRESSED_RED_RGTC1_EXT;if(o===cVt)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(o===lVt)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(o===uVt)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return o===DG?t.UNSIGNED_INT_24_8:t[o]!==void 0?t[o]:null}return{convert:n}}class Lei extends sf{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class lh extends T0{constructor(){super(),this.isGroup=!0,this.type="Group"}}const Hei={type:"move"};class kTe{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new lh,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new lh,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new jt,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new jt),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new lh,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new jt,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new jt),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const n=this._hand;if(n)for(const o of e.hand.values())this._getHandJoint(n,o)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,n,o){let i=null,r=null,s=null;const a=this._targetRay,A=this._grip,c=this._hand;if(e&&n.session.visibilityState!=="visible-blurred"){if(c&&e.hand){s=!0;for(const p of e.hand.values()){const m=n.getJointPose(p,o),_=this._getHandJoint(c,p);m!==null&&(_.matrix.fromArray(m.transform.matrix),_.matrix.decompose(_.position,_.rotation,_.scale),_.matrixWorldNeedsUpdate=!0,_.jointRadius=m.radius),_.visible=m!==null}const l=c.joints["index-finger-tip"],u=c.joints["thumb-tip"],g=l.position.distanceTo(u.position),h=.02,d=.005;c.inputState.pinching&&g>h+d?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&g<=h-d&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else A!==null&&e.gripSpace&&(r=n.getPose(e.gripSpace,o),r!==null&&(A.matrix.fromArray(r.transform.matrix),A.matrix.decompose(A.position,A.rotation,A.scale),A.matrixWorldNeedsUpdate=!0,r.linearVelocity?(A.hasLinearVelocity=!0,A.linearVelocity.copy(r.linearVelocity)):A.hasLinearVelocity=!1,r.angularVelocity?(A.hasAngularVelocity=!0,A.angularVelocity.copy(r.angularVelocity)):A.hasAngularVelocity=!1));a!==null&&(i=n.getPose(e.targetRaySpace,o),i===null&&r!==null&&(i=r),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Hei)))}return a!==null&&(a.visible=i!==null),A!==null&&(A.visible=r!==null),c!==null&&(c.visible=s!==null),this}_getHandJoint(e,n){if(e.joints[n.jointName]===void 0){const o=new lh;o.matrixAutoUpdate=!1,o.visible=!1,e.joints[n.jointName]=o,e.add(o)}return e.joints[n.jointName]}}const Oei=`
void main() {

	gl_Position = vec4( position, 1.0 );

}`,Gei=`
uniform sampler2DArray depthColor;
uniform float depthWidth;
uniform float depthHeight;

void main() {

	vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );

	if ( coord.x >= 1.0 ) {

		gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;

	} else {

		gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;

	}

}`;class Yei{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,n,o){if(this.texture===null){const i=new Hg,r=e.properties.get(i);r.__webglTexture=n.texture,(n.depthNear!=o.depthNear||n.depthFar!=o.depthFar)&&(this.depthNear=n.depthNear,this.depthFar=n.depthFar),this.texture=i}}getMesh(e){if(this.texture!==null&&this.mesh===null){const n=e.cameras[0].viewport,o=new f6({vertexShader:Oei,fragmentShader:Gei,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Er(new VB(20,20),o)}return this.mesh}reset(){this.texture=null,this.mesh=null}}class Uei extends RR{constructor(e,n){super();const o=this;let i=null,r=1,s=null,a="local-floor",A=1,c=null,l=null,u=null,g=null,h=null,d=null;const p=new Yei,m=n.getContextAttributes();let _=null,f=null;const I=[],C=[],y=new ni;let x=null;const E=new sf;E.layers.enable(1),E.viewport=new ru;const B=new sf;B.layers.enable(2),B.viewport=new ru;const S=[E,B],Q=new Lei;Q.layers.enable(1),Q.layers.enable(2);let w=null,M=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(ie){let ne=I[ie];return ne===void 0&&(ne=new kTe,I[ie]=ne),ne.getTargetRaySpace()},this.getControllerGrip=function(ie){let ne=I[ie];return ne===void 0&&(ne=new kTe,I[ie]=ne),ne.getGripSpace()},this.getHand=function(ie){let ne=I[ie];return ne===void 0&&(ne=new kTe,I[ie]=ne),ne.getHandSpace()};function k(ie){const ne=C.indexOf(ie.inputSource);if(ne===-1)return;const le=I[ne];le!==void 0&&(le.update(ie.inputSource,ie.frame,c||s),le.dispatchEvent({type:ie.type,data:ie.inputSource}))}function R(){i.removeEventListener("select",k),i.removeEventListener("selectstart",k),i.removeEventListener("selectend",k),i.removeEventListener("squeeze",k),i.removeEventListener("squeezestart",k),i.removeEventListener("squeezeend",k),i.removeEventListener("end",R),i.removeEventListener("inputsourceschange",F);for(let ie=0;ie<I.length;ie++){const ne=C[ie];ne!==null&&(C[ie]=null,I[ie].disconnect(ne))}w=null,M=null,p.reset(),e.setRenderTarget(_),h=null,g=null,u=null,i=null,f=null,oe.stop(),o.isPresenting=!1,e.setPixelRatio(x),e.setSize(y.width,y.height,!1),o.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(ie){r=ie,o.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(ie){a=ie,o.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||s},this.setReferenceSpace=function(ie){c=ie},this.getBaseLayer=function(){return g!==null?g:h},this.getBinding=function(){return u},this.getFrame=function(){return d},this.getSession=function(){return i},this.setSession=async function(ie){if(i=ie,i!==null){if(_=e.getRenderTarget(),i.addEventListener("select",k),i.addEventListener("selectstart",k),i.addEventListener("selectend",k),i.addEventListener("squeeze",k),i.addEventListener("squeezestart",k),i.addEventListener("squeezeend",k),i.addEventListener("end",R),i.addEventListener("inputsourceschange",F),m.xrCompatible!==!0&&await n.makeXRCompatible(),x=e.getPixelRatio(),e.getSize(y),i.renderState.layers===void 0){const ne={antialias:m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};h=new XRWebGLLayer(i,n,ne),i.updateRenderState({baseLayer:h}),e.setPixelRatio(1),e.setSize(h.framebufferWidth,h.framebufferHeight,!1),f=new TR(h.framebufferWidth,h.framebufferHeight,{format:l4,type:Ww,colorSpace:e.outputColorSpace,stencilBuffer:m.stencil})}else{let ne=null,le=null,ge=null;m.depth&&(ge=m.stencil?n.DEPTH24_STENCIL8:n.DEPTH_COMPONENT24,ne=m.stencil?RG:NG,le=m.stencil?DG:MG);const _e={colorFormat:n.RGBA8,depthFormat:ge,scaleFactor:r};u=new XRWebGLBinding(i,n),g=u.createProjectionLayer(_e),i.updateRenderState({layers:[g]}),e.setPixelRatio(1),e.setSize(g.textureWidth,g.textureHeight,!1),f=new TR(g.textureWidth,g.textureHeight,{format:l4,type:Ww,depthTexture:new nzt(g.textureWidth,g.textureHeight,le,void 0,void 0,void 0,void 0,void 0,void 0,ne),stencilBuffer:m.stencil,colorSpace:e.outputColorSpace,samples:m.antialias?4:0,resolveDepthBuffer:g.ignoreDepthValues===!1})}f.isXRRenderTarget=!0,this.setFoveation(A),c=null,s=await i.requestReferenceSpace(a),oe.setContext(i),oe.start(),o.isPresenting=!0,o.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(i!==null)return i.environmentBlendMode};function F(ie){for(let ne=0;ne<ie.removed.length;ne++){const le=ie.removed[ne],ge=C.indexOf(le);ge>=0&&(C[ge]=null,I[ge].disconnect(le))}for(let ne=0;ne<ie.added.length;ne++){const le=ie.added[ne];let ge=C.indexOf(le);if(ge===-1){for(let ue=0;ue<I.length;ue++)if(ue>=C.length){C.push(le),ge=ue;break}else if(C[ue]===null){C[ue]=le,ge=ue;break}if(ge===-1)break}const _e=I[ge];_e&&_e.connect(le)}}const O=new jt,U=new jt;function Y(ie,ne,le){O.setFromMatrixPosition(ne.matrixWorld),U.setFromMatrixPosition(le.matrixWorld);const ge=O.distanceTo(U),_e=ne.projectionMatrix.elements,ue=le.projectionMatrix.elements,fe=_e[14]/(_e[10]-1),pe=_e[14]/(_e[10]+1),ye=(_e[9]+1)/_e[5],Me=(_e[9]-1)/_e[5],ve=(_e[8]-1)/_e[0],he=(ue[8]+1)/ue[0],Qe=fe*ve,Pe=fe*he,we=ge/(-ve+he),Te=we*-ve;ne.matrixWorld.decompose(ie.position,ie.quaternion,ie.scale),ie.translateX(Te),ie.translateZ(we),ie.matrixWorld.compose(ie.position,ie.quaternion,ie.scale),ie.matrixWorldInverse.copy(ie.matrixWorld).invert();const Re=fe+we,Ee=pe+we,ke=Qe-Te,Ce=Pe+(ge-Te),Le=ye*pe/Ee*Re,Ye=Me*pe/Ee*Re;ie.projectionMatrix.makePerspective(ke,Ce,Le,Ye,Re,Ee),ie.projectionMatrixInverse.copy(ie.projectionMatrix).invert()}function W(ie,ne){ne===null?ie.matrixWorld.copy(ie.matrix):ie.matrixWorld.multiplyMatrices(ne.matrixWorld,ie.matrix),ie.matrixWorldInverse.copy(ie.matrixWorld).invert()}this.updateCamera=function(ie){if(i===null)return;p.texture!==null&&(ie.near=p.depthNear,ie.far=p.depthFar),Q.near=B.near=E.near=ie.near,Q.far=B.far=E.far=ie.far,(w!==Q.near||M!==Q.far)&&(i.updateRenderState({depthNear:Q.near,depthFar:Q.far}),w=Q.near,M=Q.far,E.near=w,E.far=M,B.near=w,B.far=M,E.updateProjectionMatrix(),B.updateProjectionMatrix(),ie.updateProjectionMatrix());const ne=ie.parent,le=Q.cameras;W(Q,ne);for(let ge=0;ge<le.length;ge++)W(le[ge],ne);le.length===2?Y(Q,E,B):Q.projectionMatrix.copy(E.projectionMatrix),te(ie,Q,ne)};function te(ie,ne,le){le===null?ie.matrix.copy(ne.matrixWorld):(ie.matrix.copy(le.matrixWorld),ie.matrix.invert(),ie.matrix.multiply(ne.matrixWorld)),ie.matrix.decompose(ie.position,ie.quaternion,ie.scale),ie.updateMatrixWorld(!0),ie.projectionMatrix.copy(ne.projectionMatrix),ie.projectionMatrixInverse.copy(ne.projectionMatrixInverse),ie.isPerspectiveCamera&&(ie.fov=HG*2*Math.atan(1/ie.projectionMatrix.elements[5]),ie.zoom=1)}this.getCamera=function(){return Q},this.getFoveation=function(){if(!(g===null&&h===null))return A},this.setFoveation=function(ie){A=ie,g!==null&&(g.fixedFoveation=ie),h!==null&&h.fixedFoveation!==void 0&&(h.fixedFoveation=ie)},this.hasDepthSensing=function(){return p.texture!==null},this.getDepthSensingMesh=function(){return p.getMesh(Q)};let j=null;function J(ie,ne){if(l=ne.getViewerPose(c||s),d=ne,l!==null){const le=l.views;h!==null&&(e.setRenderTargetFramebuffer(f,h.framebuffer),e.setRenderTarget(f));let ge=!1;le.length!==Q.cameras.length&&(Q.cameras.length=0,ge=!0);for(let ue=0;ue<le.length;ue++){const fe=le[ue];let pe=null;if(h!==null)pe=h.getViewport(fe);else{const Me=u.getViewSubImage(g,fe);pe=Me.viewport,ue===0&&(e.setRenderTargetTextures(f,Me.colorTexture,g.ignoreDepthValues?void 0:Me.depthStencilTexture),e.setRenderTarget(f))}let ye=S[ue];ye===void 0&&(ye=new sf,ye.layers.enable(ue),ye.viewport=new ru,S[ue]=ye),ye.matrix.fromArray(fe.transform.matrix),ye.matrix.decompose(ye.position,ye.quaternion,ye.scale),ye.projectionMatrix.fromArray(fe.projectionMatrix),ye.projectionMatrixInverse.copy(ye.projectionMatrix).invert(),ye.viewport.set(pe.x,pe.y,pe.width,pe.height),ue===0&&(Q.matrix.copy(ye.matrix),Q.matrix.decompose(Q.position,Q.quaternion,Q.scale)),ge===!0&&Q.cameras.push(ye)}const _e=i.enabledFeatures;if(_e&&_e.includes("depth-sensing")){const ue=u.getDepthInformation(le[0]);ue&&ue.isValid&&ue.texture&&p.init(e,ue,i.renderState)}}for(let le=0;le<I.length;le++){const ge=C[le],_e=I[le];ge!==null&&_e!==void 0&&_e.update(ge,ne,c||s)}j&&j(ie,ne),ne.detectedPlanes&&o.dispatchEvent({type:"planesdetected",data:ne}),d=null}const oe=new jVt;oe.setAnimationLoop(J),this.setAnimationLoop=function(ie){j=ie},this.dispose=function(){}}}const UR=new t2,Kei=new va;function Vei(t,e){function n(m,_){m.matrixAutoUpdate===!0&&m.updateMatrix(),_.value.copy(m.matrix)}function o(m,_){_.color.getRGB(m.fogColor.value,UVt(t)),_.isFog?(m.fogNear.value=_.near,m.fogFar.value=_.far):_.isFogExp2&&(m.fogDensity.value=_.density)}function i(m,_,f,I,C){_.isMeshBasicMaterial||_.isMeshLambertMaterial?r(m,_):_.isMeshToonMaterial?(r(m,_),u(m,_)):_.isMeshPhongMaterial?(r(m,_),l(m,_)):_.isMeshStandardMaterial?(r(m,_),g(m,_),_.isMeshPhysicalMaterial&&h(m,_,C)):_.isMeshMatcapMaterial?(r(m,_),d(m,_)):_.isMeshDepthMaterial?r(m,_):_.isMeshDistanceMaterial?(r(m,_),p(m,_)):_.isMeshNormalMaterial?r(m,_):_.isLineBasicMaterial?(s(m,_),_.isLineDashedMaterial&&a(m,_)):_.isPointsMaterial?A(m,_,f,I):_.isSpriteMaterial?c(m,_):_.isShadowMaterial?(m.color.value.copy(_.color),m.opacity.value=_.opacity):_.isShaderMaterial&&(_.uniformsNeedUpdate=!1)}function r(m,_){m.opacity.value=_.opacity,_.color&&m.diffuse.value.copy(_.color),_.emissive&&m.emissive.value.copy(_.emissive).multiplyScalar(_.emissiveIntensity),_.map&&(m.map.value=_.map,n(_.map,m.mapTransform)),_.alphaMap&&(m.alphaMap.value=_.alphaMap,n(_.alphaMap,m.alphaMapTransform)),_.bumpMap&&(m.bumpMap.value=_.bumpMap,n(_.bumpMap,m.bumpMapTransform),m.bumpScale.value=_.bumpScale,_.side===uI&&(m.bumpScale.value*=-1)),_.normalMap&&(m.normalMap.value=_.normalMap,n(_.normalMap,m.normalMapTransform),m.normalScale.value.copy(_.normalScale),_.side===uI&&m.normalScale.value.negate()),_.displacementMap&&(m.displacementMap.value=_.displacementMap,n(_.displacementMap,m.displacementMapTransform),m.displacementScale.value=_.displacementScale,m.displacementBias.value=_.displacementBias),_.emissiveMap&&(m.emissiveMap.value=_.emissiveMap,n(_.emissiveMap,m.emissiveMapTransform)),_.specularMap&&(m.specularMap.value=_.specularMap,n(_.specularMap,m.specularMapTransform)),_.alphaTest>0&&(m.alphaTest.value=_.alphaTest);const f=e.get(_),I=f.envMap,C=f.envMapRotation;I&&(m.envMap.value=I,UR.copy(C),UR.x*=-1,UR.y*=-1,UR.z*=-1,I.isCubeTexture&&I.isRenderTargetTexture===!1&&(UR.y*=-1,UR.z*=-1),m.envMapRotation.value.setFromMatrix4(Kei.makeRotationFromEuler(UR)),m.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=_.reflectivity,m.ior.value=_.ior,m.refractionRatio.value=_.refractionRatio),_.lightMap&&(m.lightMap.value=_.lightMap,m.lightMapIntensity.value=_.lightMapIntensity,n(_.lightMap,m.lightMapTransform)),_.aoMap&&(m.aoMap.value=_.aoMap,m.aoMapIntensity.value=_.aoMapIntensity,n(_.aoMap,m.aoMapTransform))}function s(m,_){m.diffuse.value.copy(_.color),m.opacity.value=_.opacity,_.map&&(m.map.value=_.map,n(_.map,m.mapTransform))}function a(m,_){m.dashSize.value=_.dashSize,m.totalSize.value=_.dashSize+_.gapSize,m.scale.value=_.scale}function A(m,_,f,I){m.diffuse.value.copy(_.color),m.opacity.value=_.opacity,m.size.value=_.size*f,m.scale.value=I*.5,_.map&&(m.map.value=_.map,n(_.map,m.uvTransform)),_.alphaMap&&(m.alphaMap.value=_.alphaMap,n(_.alphaMap,m.alphaMapTransform)),_.alphaTest>0&&(m.alphaTest.value=_.alphaTest)}function c(m,_){m.diffuse.value.copy(_.color),m.opacity.value=_.opacity,m.rotation.value=_.rotation,_.map&&(m.map.value=_.map,n(_.map,m.mapTransform)),_.alphaMap&&(m.alphaMap.value=_.alphaMap,n(_.alphaMap,m.alphaMapTransform)),_.alphaTest>0&&(m.alphaTest.value=_.alphaTest)}function l(m,_){m.specular.value.copy(_.specular),m.shininess.value=Math.max(_.shininess,1e-4)}function u(m,_){_.gradientMap&&(m.gradientMap.value=_.gradientMap)}function g(m,_){m.metalness.value=_.metalness,_.metalnessMap&&(m.metalnessMap.value=_.metalnessMap,n(_.metalnessMap,m.metalnessMapTransform)),m.roughness.value=_.roughness,_.roughnessMap&&(m.roughnessMap.value=_.roughnessMap,n(_.roughnessMap,m.roughnessMapTransform)),_.envMap&&(m.envMapIntensity.value=_.envMapIntensity)}function h(m,_,f){m.ior.value=_.ior,_.sheen>0&&(m.sheenColor.value.copy(_.sheenColor).multiplyScalar(_.sheen),m.sheenRoughness.value=_.sheenRoughness,_.sheenColorMap&&(m.sheenColorMap.value=_.sheenColorMap,n(_.sheenColorMap,m.sheenColorMapTransform)),_.sheenRoughnessMap&&(m.sheenRoughnessMap.value=_.sheenRoughnessMap,n(_.sheenRoughnessMap,m.sheenRoughnessMapTransform))),_.clearcoat>0&&(m.clearcoat.value=_.clearcoat,m.clearcoatRoughness.value=_.clearcoatRoughness,_.clearcoatMap&&(m.clearcoatMap.value=_.clearcoatMap,n(_.clearcoatMap,m.clearcoatMapTransform)),_.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=_.clearcoatRoughnessMap,n(_.clearcoatRoughnessMap,m.clearcoatRoughnessMapTransform)),_.clearcoatNormalMap&&(m.clearcoatNormalMap.value=_.clearcoatNormalMap,n(_.clearcoatNormalMap,m.clearcoatNormalMapTransform),m.clearcoatNormalScale.value.copy(_.clearcoatNormalScale),_.side===uI&&m.clearcoatNormalScale.value.negate())),_.dispersion>0&&(m.dispersion.value=_.dispersion),_.iridescence>0&&(m.iridescence.value=_.iridescence,m.iridescenceIOR.value=_.iridescenceIOR,m.iridescenceThicknessMinimum.value=_.iridescenceThicknessRange[0],m.iridescenceThicknessMaximum.value=_.iridescenceThicknessRange[1],_.iridescenceMap&&(m.iridescenceMap.value=_.iridescenceMap,n(_.iridescenceMap,m.iridescenceMapTransform)),_.iridescenceThicknessMap&&(m.iridescenceThicknessMap.value=_.iridescenceThicknessMap,n(_.iridescenceThicknessMap,m.iridescenceThicknessMapTransform))),_.transmission>0&&(m.transmission.value=_.transmission,m.transmissionSamplerMap.value=f.texture,m.transmissionSamplerSize.value.set(f.width,f.height),_.transmissionMap&&(m.transmissionMap.value=_.transmissionMap,n(_.transmissionMap,m.transmissionMapTransform)),m.thickness.value=_.thickness,_.thicknessMap&&(m.thicknessMap.value=_.thicknessMap,n(_.thicknessMap,m.thicknessMapTransform)),m.attenuationDistance.value=_.attenuationDistance,m.attenuationColor.value.copy(_.attenuationColor)),_.anisotropy>0&&(m.anisotropyVector.value.set(_.anisotropy*Math.cos(_.anisotropyRotation),_.anisotropy*Math.sin(_.anisotropyRotation)),_.anisotropyMap&&(m.anisotropyMap.value=_.anisotropyMap,n(_.anisotropyMap,m.anisotropyMapTransform))),m.specularIntensity.value=_.specularIntensity,m.specularColor.value.copy(_.specularColor),_.specularColorMap&&(m.specularColorMap.value=_.specularColorMap,n(_.specularColorMap,m.specularColorMapTransform)),_.specularIntensityMap&&(m.specularIntensityMap.value=_.specularIntensityMap,n(_.specularIntensityMap,m.specularIntensityMapTransform))}function d(m,_){_.matcap&&(m.matcap.value=_.matcap)}function p(m,_){const f=e.get(_).light;m.referencePosition.value.setFromMatrixPosition(f.matrixWorld),m.nearDistance.value=f.shadow.camera.near,m.farDistance.value=f.shadow.camera.far}return{refreshFogUniforms:o,refreshMaterialUniforms:i}}function zei(t,e,n,o){let i={},r={},s=[];const a=t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS);function A(f,I){const C=I.program;o.uniformBlockBinding(f,C)}function c(f,I){let C=i[f.id];C===void 0&&(d(f),C=l(f),i[f.id]=C,f.addEventListener("dispose",m));const y=I.program;o.updateUBOMapping(f,y);const x=e.render.frame;r[f.id]!==x&&(g(f),r[f.id]=x)}function l(f){const I=u();f.__bindingPointIndex=I;const C=t.createBuffer(),y=f.__size,x=f.usage;return t.bindBuffer(t.UNIFORM_BUFFER,C),t.bufferData(t.UNIFORM_BUFFER,y,x),t.bindBuffer(t.UNIFORM_BUFFER,null),t.bindBufferBase(t.UNIFORM_BUFFER,I,C),C}function u(){for(let f=0;f<a;f++)if(s.indexOf(f)===-1)return s.push(f),f;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function g(f){const I=i[f.id],C=f.uniforms,y=f.__cache;t.bindBuffer(t.UNIFORM_BUFFER,I);for(let x=0,E=C.length;x<E;x++){const B=Array.isArray(C[x])?C[x]:[C[x]];for(let S=0,Q=B.length;S<Q;S++){const w=B[S];if(h(w,x,S,y)===!0){const M=w.__offset,k=Array.isArray(w.value)?w.value:[w.value];let R=0;for(let F=0;F<k.length;F++){const O=k[F],U=p(O);typeof O=="number"||typeof O=="boolean"?(w.__data[0]=O,t.bufferSubData(t.UNIFORM_BUFFER,M+R,w.__data)):O.isMatrix3?(w.__data[0]=O.elements[0],w.__data[1]=O.elements[1],w.__data[2]=O.elements[2],w.__data[3]=0,w.__data[4]=O.elements[3],w.__data[5]=O.elements[4],w.__data[6]=O.elements[5],w.__data[7]=0,w.__data[8]=O.elements[6],w.__data[9]=O.elements[7],w.__data[10]=O.elements[8],w.__data[11]=0):(O.toArray(w.__data,R),R+=U.storage/Float32Array.BYTES_PER_ELEMENT)}t.bufferSubData(t.UNIFORM_BUFFER,M,w.__data)}}}t.bindBuffer(t.UNIFORM_BUFFER,null)}function h(f,I,C,y){const x=f.value,E=I+"_"+C;if(y[E]===void 0)return typeof x=="number"||typeof x=="boolean"?y[E]=x:y[E]=x.clone(),!0;{const B=y[E];if(typeof x=="number"||typeof x=="boolean"){if(B!==x)return y[E]=x,!0}else if(B.equals(x)===!1)return B.copy(x),!0}return!1}function d(f){const I=f.uniforms;let C=0;const y=16;for(let E=0,B=I.length;E<B;E++){const S=Array.isArray(I[E])?I[E]:[I[E]];for(let Q=0,w=S.length;Q<w;Q++){const M=S[Q],k=Array.isArray(M.value)?M.value:[M.value];for(let R=0,F=k.length;R<F;R++){const O=k[R],U=p(O),Y=C%y;Y!==0&&y-Y<U.boundary&&(C+=y-Y),M.__data=new Float32Array(U.storage/Float32Array.BYTES_PER_ELEMENT),M.__offset=C,C+=U.storage}}}const x=C%y;return x>0&&(C+=y-x),f.__size=C,f.__cache={},this}function p(f){const I={boundary:0,storage:0};return typeof f=="number"||typeof f=="boolean"?(I.boundary=4,I.storage=4):f.isVector2?(I.boundary=8,I.storage=8):f.isVector3||f.isColor?(I.boundary=16,I.storage=12):f.isVector4?(I.boundary=16,I.storage=16):f.isMatrix3?(I.boundary=48,I.storage=48):f.isMatrix4?(I.boundary=64,I.storage=64):f.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",f),I}function m(f){const I=f.target;I.removeEventListener("dispose",m);const C=s.indexOf(I.__bindingPointIndex);s.splice(C,1),t.deleteBuffer(i[I.id]),delete i[I.id],delete r[I.id]}function _(){for(const f in i)t.deleteBuffer(i[f]);s=[],i={},r={}}return{bind:A,update:c,dispose:_}}class $de{constructor(e={}){const{canvas:n=x$o(),context:o=null,depth:i=!0,stencil:r=!1,alpha:s=!1,antialias:a=!1,premultipliedAlpha:A=!0,preserveDrawingBuffer:c=!1,powerPreference:l="default",failIfMajorPerformanceCaveat:u=!1}=e;this.isWebGLRenderer=!0;let g;if(o!==null){if(typeof WebGLRenderingContext<"u"&&o instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");g=o.getContextAttributes().alpha}else g=s;const h=new Uint32Array(4),d=new Int32Array(4);let p=null,m=null;const _=[],f=[];this.domElement=n,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Ox,this.toneMapping=Jw,this.toneMappingExposure=1;const I=this;let C=!1,y=0,x=0,E=null,B=-1,S=null;const Q=new ru,w=new ru;let M=null;const k=new Vi(0);let R=0,F=n.width,O=n.height,U=1,Y=null,W=null;const te=new ru(0,0,F,O),j=new ru(0,0,F,O);let J=!1;const oe=new STe;let ie=!1,ne=!1;const le=new va,ge=new jt,_e={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let ue=!1;function fe(){return E===null?U:1}let pe=o;function ye(qe,vt){return n.getContext(qe,vt)}try{const qe={alpha:!0,depth:i,stencil:r,antialias:a,premultipliedAlpha:A,preserveDrawingBuffer:c,powerPreference:l,failIfMajorPerformanceCaveat:u};if("setAttribute"in n&&n.setAttribute("data-engine",`three.js r${mde}`),n.addEventListener("webglcontextlost",et,!1),n.addEventListener("webglcontextrestored",It,!1),n.addEventListener("webglcontextcreationerror",Bt,!1),pe===null){const vt="webgl2";if(pe=ye(vt,qe),pe===null)throw ye(vt)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(qe){throw console.error("THREE.WebGLRenderer: "+qe.message),qe}let Me,ve,he,Qe,Pe,we,Te,Re,Ee,ke,Ce,Le,Ye,tt,At,at,nt,gt,bt,Ct,Dt,kt,it,Yt;function pn(){Me=new oZo(pe),Me.init(),kt=new Fei(pe,Me),ve=new qXo(pe,Me,e,kt),he=new Tei(pe),Qe=new sZo(pe),Pe=new Eei,we=new kei(pe,Me,he,Pe,ve,kt,Qe),Te=new ZXo(I),Re=new nZo(I),Ee=new J$o(pe),it=new jXo(pe,Ee),ke=new iZo(pe,Ee,Qe,it),Ce=new AZo(pe,ke,Ee,Qe),bt=new aZo(pe,ve,we),at=new XXo(Pe),Le=new xei(I,Te,Re,Me,ve,it,at),Ye=new Vei(I,Pe),tt=new bei,At=new Mei(Me),gt=new WXo(I,Te,Re,he,Ce,g,A),nt=new Rei(I,Ce,ve),Yt=new zei(pe,Qe,ve,he),Ct=new $Xo(pe,Me,Qe),Dt=new rZo(pe,Me,Qe),Qe.programs=Le.programs,I.capabilities=ve,I.extensions=Me,I.properties=Pe,I.renderLists=tt,I.shadowMap=nt,I.state=he,I.info=Qe}pn();const be=new Uei(I,pe);this.xr=be,this.getContext=function(){return pe},this.getContextAttributes=function(){return pe.getContextAttributes()},this.forceContextLoss=function(){const qe=Me.get("WEBGL_lose_context");qe&&qe.loseContext()},this.forceContextRestore=function(){const qe=Me.get("WEBGL_lose_context");qe&&qe.restoreContext()},this.getPixelRatio=function(){return U},this.setPixelRatio=function(qe){qe!==void 0&&(U=qe,this.setSize(F,O,!1))},this.getSize=function(qe){return qe.set(F,O)},this.setSize=function(qe,vt,qt=!0){if(be.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}F=qe,O=vt,n.width=Math.floor(qe*U),n.height=Math.floor(vt*U),qt===!0&&(n.style.width=qe+"px",n.style.height=vt+"px"),this.setViewport(0,0,qe,vt)},this.getDrawingBufferSize=function(qe){return qe.set(F*U,O*U).floor()},this.setDrawingBufferSize=function(qe,vt,qt){F=qe,O=vt,U=qt,n.width=Math.floor(qe*qt),n.height=Math.floor(vt*qt),this.setViewport(0,0,qe,vt)},this.getCurrentViewport=function(qe){return qe.copy(Q)},this.getViewport=function(qe){return qe.copy(te)},this.setViewport=function(qe,vt,qt,Zt){qe.isVector4?te.set(qe.x,qe.y,qe.z,qe.w):te.set(qe,vt,qt,Zt),he.viewport(Q.copy(te).multiplyScalar(U).round())},this.getScissor=function(qe){return qe.copy(j)},this.setScissor=function(qe,vt,qt,Zt){qe.isVector4?j.set(qe.x,qe.y,qe.z,qe.w):j.set(qe,vt,qt,Zt),he.scissor(w.copy(j).multiplyScalar(U).round())},this.getScissorTest=function(){return J},this.setScissorTest=function(qe){he.setScissorTest(J=qe)},this.setOpaqueSort=function(qe){Y=qe},this.setTransparentSort=function(qe){W=qe},this.getClearColor=function(qe){return qe.copy(gt.getClearColor())},this.setClearColor=function(){gt.setClearColor.apply(gt,arguments)},this.getClearAlpha=function(){return gt.getClearAlpha()},this.setClearAlpha=function(){gt.setClearAlpha.apply(gt,arguments)},this.clear=function(qe=!0,vt=!0,qt=!0){let Zt=0;if(qe){let nn=!1;if(E!==null){const zn=E.texture.format;nn=zn===HKt||zn===LKt||zn===FKt}if(nn){const zn=E.texture.type,Nn=zn===Ww||zn===MG||zn===Cde||zn===DG||zn===RKt||zn===TKt,Co=gt.getClearColor(),ei=gt.getClearAlpha(),ro=Co.r,To=Co.g,yo=Co.b;Nn?(h[0]=ro,h[1]=To,h[2]=yo,h[3]=ei,pe.clearBufferuiv(pe.COLOR,0,h)):(d[0]=ro,d[1]=To,d[2]=yo,d[3]=ei,pe.clearBufferiv(pe.COLOR,0,d))}else Zt|=pe.COLOR_BUFFER_BIT}vt&&(Zt|=pe.DEPTH_BUFFER_BIT),qt&&(Zt|=pe.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),pe.clear(Zt)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){n.removeEventListener("webglcontextlost",et,!1),n.removeEventListener("webglcontextrestored",It,!1),n.removeEventListener("webglcontextcreationerror",Bt,!1),tt.dispose(),At.dispose(),Pe.dispose(),Te.dispose(),Re.dispose(),Ce.dispose(),it.dispose(),Yt.dispose(),Le.dispose(),be.dispose(),be.removeEventListener("sessionstart",Ut),be.removeEventListener("sessionend",Wt),Xt.stop()};function et(qe){qe.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),C=!0}function It(){console.log("THREE.WebGLRenderer: Context Restored."),C=!1;const qe=Qe.autoReset,vt=nt.enabled,qt=nt.autoUpdate,Zt=nt.needsUpdate,nn=nt.type;pn(),Qe.autoReset=qe,nt.enabled=vt,nt.autoUpdate=qt,nt.needsUpdate=Zt,nt.type=nn}function Bt(qe){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",qe.statusMessage)}function mt(qe){const vt=qe.target;vt.removeEventListener("dispose",mt),st(vt)}function st(qe){xt(qe),Pe.remove(qe)}function xt(qe){const vt=Pe.get(qe).programs;vt!==void 0&&(vt.forEach(function(qt){Le.releaseProgram(qt)}),qe.isShaderMaterial&&Le.releaseShaderCache(qe))}this.renderBufferDirect=function(qe,vt,qt,Zt,nn,zn){vt===null&&(vt=_e);const Nn=nn.isMesh&&nn.matrixWorld.determinant()<0,Co=Lt(qe,vt,qt,Zt,nn);he.setMaterial(Zt,Nn);let ei=qt.index,ro=1;if(Zt.wireframe===!0){if(ei=ke.getWireframeAttribute(qt),ei===void 0)return;ro=2}const To=qt.drawRange,yo=qt.attributes.position;let Ro=To.start*ro,On=(To.start+To.count)*ro;zn!==null&&(Ro=Math.max(Ro,zn.start*ro),On=Math.min(On,(zn.start+zn.count)*ro)),ei!==null?(Ro=Math.max(Ro,0),On=Math.min(On,ei.count)):yo!=null&&(Ro=Math.max(Ro,0),On=Math.min(On,yo.count));const uo=On-Ro;if(uo<0||uo===1/0)return;it.setup(nn,Zt,Co,qt,ei);let Oo,ko=Ct;if(ei!==null&&(Oo=Ee.get(ei),ko=Dt,ko.setIndex(Oo)),nn.isMesh)Zt.wireframe===!0?(he.setLineWidth(Zt.wireframeLinewidth*fe()),ko.setMode(pe.LINES)):ko.setMode(pe.TRIANGLES);else if(nn.isLine){let Ko=Zt.linewidth;Ko===void 0&&(Ko=1),he.setLineWidth(Ko*fe()),nn.isLineSegments?ko.setMode(pe.LINES):nn.isLineLoop?ko.setMode(pe.LINE_LOOP):ko.setMode(pe.LINE_STRIP)}else nn.isPoints?ko.setMode(pe.POINTS):nn.isSprite&&ko.setMode(pe.TRIANGLES);if(nn.isBatchedMesh)nn._multiDrawInstances!==null?ko.renderMultiDrawInstances(nn._multiDrawStarts,nn._multiDrawCounts,nn._multiDrawCount,nn._multiDrawInstances):ko.renderMultiDraw(nn._multiDrawStarts,nn._multiDrawCounts,nn._multiDrawCount);else if(nn.isInstancedMesh)ko.renderInstances(Ro,uo,nn.count);else if(qt.isInstancedBufferGeometry){const Ko=qt._maxInstanceCount!==void 0?qt._maxInstanceCount:1/0,mi=Math.min(qt.instanceCount,Ko);ko.renderInstances(Ro,uo,mi)}else ko.render(Ro,uo)};function Xe(qe,vt,qt){qe.transparent===!0&&qe.side===r_&&qe.forceSinglePass===!1?(qe.side=uI,qe.needsUpdate=!0,ht(qe,vt,qt),qe.side=mE,qe.needsUpdate=!0,ht(qe,vt,qt),qe.side=r_):ht(qe,vt,qt)}this.compile=function(qe,vt,qt=null){qt===null&&(qt=qe),m=At.get(qt),m.init(vt),f.push(m),qt.traverseVisible(function(nn){nn.isLight&&nn.layers.test(vt.layers)&&(m.pushLight(nn),nn.castShadow&&m.pushShadow(nn))}),qe!==qt&&qe.traverseVisible(function(nn){nn.isLight&&nn.layers.test(vt.layers)&&(m.pushLight(nn),nn.castShadow&&m.pushShadow(nn))}),m.setupLights();const Zt=new Set;return qe.traverse(function(nn){const zn=nn.material;if(zn)if(Array.isArray(zn))for(let Nn=0;Nn<zn.length;Nn++){const Co=zn[Nn];Xe(Co,qt,nn),Zt.add(Co)}else Xe(zn,qt,nn),Zt.add(zn)}),f.pop(),m=null,Zt},this.compileAsync=function(qe,vt,qt=null){const Zt=this.compile(qe,vt,qt);return new Promise(nn=>{function zn(){if(Zt.forEach(function(Nn){Pe.get(Nn).currentProgram.isReady()&&Zt.delete(Nn)}),Zt.size===0){nn(qe);return}setTimeout(zn,10)}Me.get("KHR_parallel_shader_compile")!==null?zn():setTimeout(zn,10)})};let Ze=null;function dt(qe){Ze&&Ze(qe)}function Ut(){Xt.stop()}function Wt(){Xt.start()}const Xt=new jVt;Xt.setAnimationLoop(dt),typeof self<"u"&&Xt.setContext(self),this.setAnimationLoop=function(qe){Ze=qe,be.setAnimationLoop(qe),qe===null?Xt.stop():Xt.start()},be.addEventListener("sessionstart",Ut),be.addEventListener("sessionend",Wt),this.render=function(qe,vt){if(vt!==void 0&&vt.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(C===!0)return;if(qe.matrixWorldAutoUpdate===!0&&qe.updateMatrixWorld(),vt.parent===null&&vt.matrixWorldAutoUpdate===!0&&vt.updateMatrixWorld(),be.enabled===!0&&be.isPresenting===!0&&(be.cameraAutoUpdate===!0&&be.updateCamera(vt),vt=be.getCamera()),qe.isScene===!0&&qe.onBeforeRender(I,qe,vt,E),m=At.get(qe,f.length),m.init(vt),f.push(m),le.multiplyMatrices(vt.projectionMatrix,vt.matrixWorldInverse),oe.setFromProjectionMatrix(le),ne=this.localClippingEnabled,ie=at.init(this.clippingPlanes,ne),p=tt.get(qe,_.length),p.init(),_.push(p),be.enabled===!0&&be.isPresenting===!0){const zn=I.xr.getDepthSensingMesh();zn!==null&&Jt(zn,vt,-1/0,I.sortObjects)}Jt(qe,vt,0,I.sortObjects),p.finish(),I.sortObjects===!0&&p.sort(Y,W),ue=be.enabled===!1||be.isPresenting===!1||be.hasDepthSensing()===!1,ue&&gt.addToRenderList(p,qe),this.info.render.frame++,ie===!0&&at.beginShadows();const qt=m.state.shadowsArray;nt.render(qt,qe,vt),ie===!0&&at.endShadows(),this.info.autoReset===!0&&this.info.reset();const Zt=p.opaque,nn=p.transmissive;if(m.setupLights(),vt.isArrayCamera){const zn=vt.cameras;if(nn.length>0)for(let Nn=0,Co=zn.length;Nn<Co;Nn++){const ei=zn[Nn];An(Zt,nn,qe,ei)}ue&&gt.render(qe);for(let Nn=0,Co=zn.length;Nn<Co;Nn++){const ei=zn[Nn];yn(p,qe,ei,ei.viewport)}}else nn.length>0&&An(Zt,nn,qe,vt),ue&&gt.render(qe),yn(p,qe,vt);E!==null&&(we.updateMultisampleRenderTarget(E),we.updateRenderTargetMipmap(E)),qe.isScene===!0&&qe.onAfterRender(I,qe,vt),it.resetDefaultState(),B=-1,S=null,f.pop(),f.length>0?(m=f[f.length-1],ie===!0&&at.setGlobalState(I.clippingPlanes,m.state.camera)):m=null,_.pop(),_.length>0?p=_[_.length-1]:p=null};function Jt(qe,vt,qt,Zt){if(qe.visible===!1)return;if(qe.layers.test(vt.layers)){if(qe.isGroup)qt=qe.renderOrder;else if(qe.isLOD)qe.autoUpdate===!0&&qe.update(vt);else if(qe.isLight)m.pushLight(qe),qe.castShadow&&m.pushShadow(qe);else if(qe.isSprite){if(!qe.frustumCulled||oe.intersectsSprite(qe)){Zt&&ge.setFromMatrixPosition(qe.matrixWorld).applyMatrix4(le);const Nn=Ce.update(qe),Co=qe.material;Co.visible&&p.push(qe,Nn,Co,qt,ge.z,null)}}else if((qe.isMesh||qe.isLine||qe.isPoints)&&(!qe.frustumCulled||oe.intersectsObject(qe))){const Nn=Ce.update(qe),Co=qe.material;if(Zt&&(qe.boundingSphere!==void 0?(qe.boundingSphere===null&&qe.computeBoundingSphere(),ge.copy(qe.boundingSphere.center)):(Nn.boundingSphere===null&&Nn.computeBoundingSphere(),ge.copy(Nn.boundingSphere.center)),ge.applyMatrix4(qe.matrixWorld).applyMatrix4(le)),Array.isArray(Co)){const ei=Nn.groups;for(let ro=0,To=ei.length;ro<To;ro++){const yo=ei[ro],Ro=Co[yo.materialIndex];Ro&&Ro.visible&&p.push(qe,Nn,Ro,qt,ge.z,yo)}}else Co.visible&&p.push(qe,Nn,Co,qt,ge.z,null)}}const zn=qe.children;for(let Nn=0,Co=zn.length;Nn<Co;Nn++)Jt(zn[Nn],vt,qt,Zt)}function yn(qe,vt,qt,Zt){const nn=qe.opaque,zn=qe.transmissive,Nn=qe.transparent;m.setupLightsView(qt),ie===!0&&at.setGlobalState(I.clippingPlanes,qt),Zt&&he.viewport(Q.copy(Zt)),nn.length>0&&kn(nn,vt,qt),zn.length>0&&kn(zn,vt,qt),Nn.length>0&&kn(Nn,vt,qt),he.buffers.depth.setTest(!0),he.buffers.depth.setMask(!0),he.buffers.color.setMask(!0),he.setPolygonOffset(!1)}function An(qe,vt,qt,Zt){if((qt.isScene===!0?qt.overrideMaterial:null)!==null)return;m.state.transmissionRenderTarget[Zt.id]===void 0&&(m.state.transmissionRenderTarget[Zt.id]=new TR(1,1,{generateMipmaps:!0,type:Me.has("EXT_color_buffer_half_float")||Me.has("EXT_color_buffer_float")?yde:Ww,minFilter:gm,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:iu.workingColorSpace}));const zn=m.state.transmissionRenderTarget[Zt.id],Nn=Zt.viewport||Q;zn.setSize(Nn.z,Nn.w);const Co=I.getRenderTarget();I.setRenderTarget(zn),I.getClearColor(k),R=I.getClearAlpha(),R<1&&I.setClearColor(16777215,.5),ue?gt.render(qt):I.clear();const ei=I.toneMapping;I.toneMapping=Jw;const ro=Zt.viewport;if(Zt.viewport!==void 0&&(Zt.viewport=void 0),m.setupLightsView(Zt),ie===!0&&at.setGlobalState(I.clippingPlanes,Zt),kn(qe,qt,Zt),we.updateMultisampleRenderTarget(zn),we.updateRenderTargetMipmap(zn),Me.has("WEBGL_multisampled_render_to_texture")===!1){let To=!1;for(let yo=0,Ro=vt.length;yo<Ro;yo++){const On=vt[yo],uo=On.object,Oo=On.geometry,ko=On.material,Ko=On.group;if(ko.side===r_&&uo.layers.test(Zt.layers)){const mi=ko.side;ko.side=uI,ko.needsUpdate=!0,$n(uo,qt,Zt,Oo,ko,Ko),ko.side=mi,ko.needsUpdate=!0,To=!0}}To===!0&&(we.updateMultisampleRenderTarget(zn),we.updateRenderTargetMipmap(zn))}I.setRenderTarget(Co),I.setClearColor(k,R),ro!==void 0&&(Zt.viewport=ro),I.toneMapping=ei}function kn(qe,vt,qt){const Zt=vt.isScene===!0?vt.overrideMaterial:null;for(let nn=0,zn=qe.length;nn<zn;nn++){const Nn=qe[nn],Co=Nn.object,ei=Nn.geometry,ro=Zt===null?Nn.material:Zt,To=Nn.group;Co.layers.test(qt.layers)&&$n(Co,vt,qt,ei,ro,To)}}function $n(qe,vt,qt,Zt,nn,zn){qe.onBeforeRender(I,vt,qt,Zt,nn,zn),qe.modelViewMatrix.multiplyMatrices(qt.matrixWorldInverse,qe.matrixWorld),qe.normalMatrix.getNormalMatrix(qe.modelViewMatrix),nn.onBeforeRender(I,vt,qt,Zt,qe,zn),nn.transparent===!0&&nn.side===r_&&nn.forceSinglePass===!1?(nn.side=uI,nn.needsUpdate=!0,I.renderBufferDirect(qt,vt,Zt,nn,qe,zn),nn.side=mE,nn.needsUpdate=!0,I.renderBufferDirect(qt,vt,Zt,nn,qe,zn),nn.side=r_):I.renderBufferDirect(qt,vt,Zt,nn,qe,zn),qe.onAfterRender(I,vt,qt,Zt,nn,zn)}function ht(qe,vt,qt){vt.isScene!==!0&&(vt=_e);const Zt=Pe.get(qe),nn=m.state.lights,zn=m.state.shadowsArray,Nn=nn.state.version,Co=Le.getParameters(qe,nn.state,zn,vt,qt),ei=Le.getProgramCacheKey(Co);let ro=Zt.programs;Zt.environment=qe.isMeshStandardMaterial?vt.environment:null,Zt.fog=vt.fog,Zt.envMap=(qe.isMeshStandardMaterial?Re:Te).get(qe.envMap||Zt.environment),Zt.envMapRotation=Zt.environment!==null&&qe.envMap===null?vt.environmentRotation:qe.envMapRotation,ro===void 0&&(qe.addEventListener("dispose",mt),ro=new Map,Zt.programs=ro);let To=ro.get(ei);if(To!==void 0){if(Zt.currentProgram===To&&Zt.lightsStateVersion===Nn)return rn(qe,Co),To}else Co.uniforms=Le.getUniforms(qe),qe.onBuild(qt,Co,I),qe.onBeforeCompile(Co,I),To=Le.acquireProgram(Co,ei),ro.set(ei,To),Zt.uniforms=Co.uniforms;const yo=Zt.uniforms;return(!qe.isShaderMaterial&&!qe.isRawShaderMaterial||qe.clipping===!0)&&(yo.clippingPlanes=at.uniform),rn(qe,Co),Zt.needsLights=Ao(qe),Zt.lightsStateVersion=Nn,Zt.needsLights&&(yo.ambientLightColor.value=nn.state.ambient,yo.lightProbe.value=nn.state.probe,yo.directionalLights.value=nn.state.directional,yo.directionalLightShadows.value=nn.state.directionalShadow,yo.spotLights.value=nn.state.spot,yo.spotLightShadows.value=nn.state.spotShadow,yo.rectAreaLights.value=nn.state.rectArea,yo.ltc_1.value=nn.state.rectAreaLTC1,yo.ltc_2.value=nn.state.rectAreaLTC2,yo.pointLights.value=nn.state.point,yo.pointLightShadows.value=nn.state.pointShadow,yo.hemisphereLights.value=nn.state.hemi,yo.directionalShadowMap.value=nn.state.directionalShadowMap,yo.directionalShadowMatrix.value=nn.state.directionalShadowMatrix,yo.spotShadowMap.value=nn.state.spotShadowMap,yo.spotLightMatrix.value=nn.state.spotLightMatrix,yo.spotLightMap.value=nn.state.spotLightMap,yo.pointShadowMap.value=nn.state.pointShadowMap,yo.pointShadowMatrix.value=nn.state.pointShadowMatrix),Zt.currentProgram=To,Zt.uniformsList=null,To}function Kt(qe){if(qe.uniformsList===null){const vt=qe.currentProgram.getUniforms();qe.uniformsList=jde.seqWithValue(vt.seq,qe.uniforms)}return qe.uniformsList}function rn(qe,vt){const qt=Pe.get(qe);qt.outputColorSpace=vt.outputColorSpace,qt.batching=vt.batching,qt.batchingColor=vt.batchingColor,qt.instancing=vt.instancing,qt.instancingColor=vt.instancingColor,qt.instancingMorph=vt.instancingMorph,qt.skinning=vt.skinning,qt.morphTargets=vt.morphTargets,qt.morphNormals=vt.morphNormals,qt.morphColors=vt.morphColors,qt.morphTargetsCount=vt.morphTargetsCount,qt.numClippingPlanes=vt.numClippingPlanes,qt.numIntersection=vt.numClipIntersection,qt.vertexAlphas=vt.vertexAlphas,qt.vertexTangents=vt.vertexTangents,qt.toneMapping=vt.toneMapping}function Lt(qe,vt,qt,Zt,nn){vt.isScene!==!0&&(vt=_e),we.resetTextureUnits();const zn=vt.fog,Nn=Zt.isMeshStandardMaterial?vt.environment:null,Co=E===null?I.outputColorSpace:E.isXRRenderTarget===!0?E.texture.colorSpace:jw,ei=(Zt.isMeshStandardMaterial?Re:Te).get(Zt.envMap||Nn),ro=Zt.vertexColors===!0&&!!qt.attributes.color&&qt.attributes.color.itemSize===4,To=!!qt.attributes.tangent&&(!!Zt.normalMap||Zt.anisotropy>0),yo=!!qt.morphAttributes.position,Ro=!!qt.morphAttributes.normal,On=!!qt.morphAttributes.color;let uo=Jw;Zt.toneMapped&&(E===null||E.isXRRenderTarget===!0)&&(uo=I.toneMapping);const Oo=qt.morphAttributes.position||qt.morphAttributes.normal||qt.morphAttributes.color,ko=Oo!==void 0?Oo.length:0,Ko=Pe.get(Zt),mi=m.state.lights;if(ie===!0&&(ne===!0||qe!==S)){const ds=qe===S&&Zt.id===B;at.setState(Zt,qe,ds)}let Fo=!1;Zt.version===Ko.__version?(Ko.needsLights&&Ko.lightsStateVersion!==mi.state.version||Ko.outputColorSpace!==Co||nn.isBatchedMesh&&Ko.batching===!1||!nn.isBatchedMesh&&Ko.batching===!0||nn.isBatchedMesh&&Ko.batchingColor===!0&&nn.colorTexture===null||nn.isBatchedMesh&&Ko.batchingColor===!1&&nn.colorTexture!==null||nn.isInstancedMesh&&Ko.instancing===!1||!nn.isInstancedMesh&&Ko.instancing===!0||nn.isSkinnedMesh&&Ko.skinning===!1||!nn.isSkinnedMesh&&Ko.skinning===!0||nn.isInstancedMesh&&Ko.instancingColor===!0&&nn.instanceColor===null||nn.isInstancedMesh&&Ko.instancingColor===!1&&nn.instanceColor!==null||nn.isInstancedMesh&&Ko.instancingMorph===!0&&nn.morphTexture===null||nn.isInstancedMesh&&Ko.instancingMorph===!1&&nn.morphTexture!==null||Ko.envMap!==ei||Zt.fog===!0&&Ko.fog!==zn||Ko.numClippingPlanes!==void 0&&(Ko.numClippingPlanes!==at.numPlanes||Ko.numIntersection!==at.numIntersection)||Ko.vertexAlphas!==ro||Ko.vertexTangents!==To||Ko.morphTargets!==yo||Ko.morphNormals!==Ro||Ko.morphColors!==On||Ko.toneMapping!==uo||Ko.morphTargetsCount!==ko)&&(Fo=!0):(Fo=!0,Ko.__version=Zt.version);let Nr=Ko.currentProgram;Fo===!0&&(Nr=ht(Zt,vt,nn));let Rs=!1,ur=!1,zi=!1;const bi=Nr.getUniforms(),Ar=Ko.uniforms;if(he.useProgram(Nr.program)&&(Rs=!0,ur=!0,zi=!0),Zt.id!==B&&(B=Zt.id,ur=!0),Rs||S!==qe){bi.setValue(pe,"projectionMatrix",qe.projectionMatrix),bi.setValue(pe,"viewMatrix",qe.matrixWorldInverse);const ds=bi.map.cameraPosition;ds!==void 0&&ds.setValue(pe,ge.setFromMatrixPosition(qe.matrixWorld)),ve.logarithmicDepthBuffer&&bi.setValue(pe,"logDepthBufFC",2/(Math.log(qe.far+1)/Math.LN2)),(Zt.isMeshPhongMaterial||Zt.isMeshToonMaterial||Zt.isMeshLambertMaterial||Zt.isMeshBasicMaterial||Zt.isMeshStandardMaterial||Zt.isShaderMaterial)&&bi.setValue(pe,"isOrthographic",qe.isOrthographicCamera===!0),S!==qe&&(S=qe,ur=!0,zi=!0)}if(nn.isSkinnedMesh){bi.setOptional(pe,nn,"bindMatrix"),bi.setOptional(pe,nn,"bindMatrixInverse");const ds=nn.skeleton;ds&&(ds.boneTexture===null&&ds.computeBoneTexture(),bi.setValue(pe,"boneTexture",ds.boneTexture,we))}nn.isBatchedMesh&&(bi.setOptional(pe,nn,"batchingTexture"),bi.setValue(pe,"batchingTexture",nn._matricesTexture,we),bi.setOptional(pe,nn,"batchingColorTexture"),nn._colorsTexture!==null&&bi.setValue(pe,"batchingColorTexture",nn._colorsTexture,we));const ws=qt.morphAttributes;if((ws.position!==void 0||ws.normal!==void 0||ws.color!==void 0)&&bt.update(nn,qt,Nr),(ur||Ko.receiveShadow!==nn.receiveShadow)&&(Ko.receiveShadow=nn.receiveShadow,bi.setValue(pe,"receiveShadow",nn.receiveShadow)),Zt.isMeshGouraudMaterial&&Zt.envMap!==null&&(Ar.envMap.value=ei,Ar.flipEnvMap.value=ei.isCubeTexture&&ei.isRenderTargetTexture===!1?-1:1),Zt.isMeshStandardMaterial&&Zt.envMap===null&&vt.environment!==null&&(Ar.envMapIntensity.value=vt.environmentIntensity),ur&&(bi.setValue(pe,"toneMappingExposure",I.toneMappingExposure),Ko.needsLights&&Ho(Ar,zi),zn&&Zt.fog===!0&&Ye.refreshFogUniforms(Ar,zn),Ye.refreshMaterialUniforms(Ar,Zt,U,O,m.state.transmissionRenderTarget[qe.id]),jde.upload(pe,Kt(Ko),Ar,we)),Zt.isShaderMaterial&&Zt.uniformsNeedUpdate===!0&&(jde.upload(pe,Kt(Ko),Ar,we),Zt.uniformsNeedUpdate=!1),Zt.isSpriteMaterial&&bi.setValue(pe,"center",nn.center),bi.setValue(pe,"modelViewMatrix",nn.modelViewMatrix),bi.setValue(pe,"normalMatrix",nn.normalMatrix),bi.setValue(pe,"modelMatrix",nn.matrixWorld),Zt.isShaderMaterial||Zt.isRawShaderMaterial){const ds=Zt.uniformsGroups;for(let Et=0,Gt=ds.length;Et<Gt;Et++){const Rt=ds[Et];Yt.update(Rt,Nr),Yt.bind(Rt,Nr)}}return Nr}function Ho(qe,vt){qe.ambientLightColor.needsUpdate=vt,qe.lightProbe.needsUpdate=vt,qe.directionalLights.needsUpdate=vt,qe.directionalLightShadows.needsUpdate=vt,qe.pointLights.needsUpdate=vt,qe.pointLightShadows.needsUpdate=vt,qe.spotLights.needsUpdate=vt,qe.spotLightShadows.needsUpdate=vt,qe.rectAreaLights.needsUpdate=vt,qe.hemisphereLights.needsUpdate=vt}function Ao(qe){return qe.isMeshLambertMaterial||qe.isMeshToonMaterial||qe.isMeshPhongMaterial||qe.isMeshStandardMaterial||qe.isShadowMaterial||qe.isShaderMaterial&&qe.lights===!0}this.getActiveCubeFace=function(){return y},this.getActiveMipmapLevel=function(){return x},this.getRenderTarget=function(){return E},this.setRenderTargetTextures=function(qe,vt,qt){Pe.get(qe.texture).__webglTexture=vt,Pe.get(qe.depthTexture).__webglTexture=qt;const Zt=Pe.get(qe);Zt.__hasExternalTextures=!0,Zt.__autoAllocateDepthBuffer=qt===void 0,Zt.__autoAllocateDepthBuffer||Me.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),Zt.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(qe,vt){const qt=Pe.get(qe);qt.__webglFramebuffer=vt,qt.__useDefaultFramebuffer=vt===void 0},this.setRenderTarget=function(qe,vt=0,qt=0){E=qe,y=vt,x=qt;let Zt=!0,nn=null,zn=!1,Nn=!1;if(qe){const ei=Pe.get(qe);ei.__useDefaultFramebuffer!==void 0?(he.bindFramebuffer(pe.FRAMEBUFFER,null),Zt=!1):ei.__webglFramebuffer===void 0?we.setupRenderTarget(qe):ei.__hasExternalTextures&&we.rebindTextures(qe,Pe.get(qe.texture).__webglTexture,Pe.get(qe.depthTexture).__webglTexture);const ro=qe.texture;(ro.isData3DTexture||ro.isDataArrayTexture||ro.isCompressedArrayTexture)&&(Nn=!0);const To=Pe.get(qe).__webglFramebuffer;qe.isWebGLCubeRenderTarget?(Array.isArray(To[vt])?nn=To[vt][qt]:nn=To[vt],zn=!0):qe.samples>0&&we.useMultisampledRTT(qe)===!1?nn=Pe.get(qe).__webglMultisampledFramebuffer:Array.isArray(To)?nn=To[qt]:nn=To,Q.copy(qe.viewport),w.copy(qe.scissor),M=qe.scissorTest}else Q.copy(te).multiplyScalar(U).floor(),w.copy(j).multiplyScalar(U).floor(),M=J;if(he.bindFramebuffer(pe.FRAMEBUFFER,nn)&&Zt&&he.drawBuffers(qe,nn),he.viewport(Q),he.scissor(w),he.setScissorTest(M),zn){const ei=Pe.get(qe.texture);pe.framebufferTexture2D(pe.FRAMEBUFFER,pe.COLOR_ATTACHMENT0,pe.TEXTURE_CUBE_MAP_POSITIVE_X+vt,ei.__webglTexture,qt)}else if(Nn){const ei=Pe.get(qe.texture),ro=vt||0;pe.framebufferTextureLayer(pe.FRAMEBUFFER,pe.COLOR_ATTACHMENT0,ei.__webglTexture,qt||0,ro)}B=-1},this.readRenderTargetPixels=function(qe,vt,qt,Zt,nn,zn,Nn){if(!(qe&&qe.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Co=Pe.get(qe).__webglFramebuffer;if(qe.isWebGLCubeRenderTarget&&Nn!==void 0&&(Co=Co[Nn]),Co){he.bindFramebuffer(pe.FRAMEBUFFER,Co);try{const ei=qe.texture,ro=ei.format,To=ei.type;if(!ve.textureFormatReadable(ro)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!ve.textureTypeReadable(To)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}vt>=0&&vt<=qe.width-Zt&&qt>=0&&qt<=qe.height-nn&&pe.readPixels(vt,qt,Zt,nn,kt.convert(ro),kt.convert(To),zn)}finally{const ei=E!==null?Pe.get(E).__webglFramebuffer:null;he.bindFramebuffer(pe.FRAMEBUFFER,ei)}}},this.readRenderTargetPixelsAsync=async function(qe,vt,qt,Zt,nn,zn,Nn){if(!(qe&&qe.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Co=Pe.get(qe).__webglFramebuffer;if(qe.isWebGLCubeRenderTarget&&Nn!==void 0&&(Co=Co[Nn]),Co){he.bindFramebuffer(pe.FRAMEBUFFER,Co);try{const ei=qe.texture,ro=ei.format,To=ei.type;if(!ve.textureFormatReadable(ro))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!ve.textureTypeReadable(To))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(vt>=0&&vt<=qe.width-Zt&&qt>=0&&qt<=qe.height-nn){const yo=pe.createBuffer();pe.bindBuffer(pe.PIXEL_PACK_BUFFER,yo),pe.bufferData(pe.PIXEL_PACK_BUFFER,zn.byteLength,pe.STREAM_READ),pe.readPixels(vt,qt,Zt,nn,kt.convert(ro),kt.convert(To),0),pe.flush();const Ro=pe.fenceSync(pe.SYNC_GPU_COMMANDS_COMPLETE,0);await E$o(pe,Ro,4);try{pe.bindBuffer(pe.PIXEL_PACK_BUFFER,yo),pe.getBufferSubData(pe.PIXEL_PACK_BUFFER,0,zn)}finally{pe.deleteBuffer(yo),pe.deleteSync(Ro)}return zn}}finally{const ei=E!==null?Pe.get(E).__webglFramebuffer:null;he.bindFramebuffer(pe.FRAMEBUFFER,ei)}}},this.copyFramebufferToTexture=function(qe,vt=null,qt=0){qe.isTexture!==!0&&(console.warn("WebGLRenderer: copyFramebufferToTexture function signature has changed."),vt=arguments[0]||null,qe=arguments[1]);const Zt=Math.pow(2,-qt),nn=Math.floor(qe.image.width*Zt),zn=Math.floor(qe.image.height*Zt),Nn=vt!==null?vt.x:0,Co=vt!==null?vt.y:0;we.setTexture2D(qe,0),pe.copyTexSubImage2D(pe.TEXTURE_2D,qt,0,0,Nn,Co,nn,zn),he.unbindTexture()},this.copyTextureToTexture=function(qe,vt,qt=null,Zt=null,nn=0){qe.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture function signature has changed."),Zt=arguments[0]||null,qe=arguments[1],vt=arguments[2],nn=arguments[3]||0,qt=null);let zn,Nn,Co,ei,ro,To;qt!==null?(zn=qt.max.x-qt.min.x,Nn=qt.max.y-qt.min.y,Co=qt.min.x,ei=qt.min.y):(zn=qe.image.width,Nn=qe.image.height,Co=0,ei=0),Zt!==null?(ro=Zt.x,To=Zt.y):(ro=0,To=0);const yo=kt.convert(vt.format),Ro=kt.convert(vt.type);we.setTexture2D(vt,0),pe.pixelStorei(pe.UNPACK_FLIP_Y_WEBGL,vt.flipY),pe.pixelStorei(pe.UNPACK_PREMULTIPLY_ALPHA_WEBGL,vt.premultiplyAlpha),pe.pixelStorei(pe.UNPACK_ALIGNMENT,vt.unpackAlignment);const On=pe.getParameter(pe.UNPACK_ROW_LENGTH),uo=pe.getParameter(pe.UNPACK_IMAGE_HEIGHT),Oo=pe.getParameter(pe.UNPACK_SKIP_PIXELS),ko=pe.getParameter(pe.UNPACK_SKIP_ROWS),Ko=pe.getParameter(pe.UNPACK_SKIP_IMAGES),mi=qe.isCompressedTexture?qe.mipmaps[nn]:qe.image;pe.pixelStorei(pe.UNPACK_ROW_LENGTH,mi.width),pe.pixelStorei(pe.UNPACK_IMAGE_HEIGHT,mi.height),pe.pixelStorei(pe.UNPACK_SKIP_PIXELS,Co),pe.pixelStorei(pe.UNPACK_SKIP_ROWS,ei),qe.isDataTexture?pe.texSubImage2D(pe.TEXTURE_2D,nn,ro,To,zn,Nn,yo,Ro,mi.data):qe.isCompressedTexture?pe.compressedTexSubImage2D(pe.TEXTURE_2D,nn,ro,To,mi.width,mi.height,yo,mi.data):pe.texSubImage2D(pe.TEXTURE_2D,nn,ro,To,yo,Ro,mi),pe.pixelStorei(pe.UNPACK_ROW_LENGTH,On),pe.pixelStorei(pe.UNPACK_IMAGE_HEIGHT,uo),pe.pixelStorei(pe.UNPACK_SKIP_PIXELS,Oo),pe.pixelStorei(pe.UNPACK_SKIP_ROWS,ko),pe.pixelStorei(pe.UNPACK_SKIP_IMAGES,Ko),nn===0&&vt.generateMipmaps&&pe.generateMipmap(pe.TEXTURE_2D),he.unbindTexture()},this.copyTextureToTexture3D=function(qe,vt,qt=null,Zt=null,nn=0){qe.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture3D function signature has changed."),qt=arguments[0]||null,Zt=arguments[1]||null,qe=arguments[2],vt=arguments[3],nn=arguments[4]||0);let zn,Nn,Co,ei,ro,To,yo,Ro,On;const uo=qe.isCompressedTexture?qe.mipmaps[nn]:qe.image;qt!==null?(zn=qt.max.x-qt.min.x,Nn=qt.max.y-qt.min.y,Co=qt.max.z-qt.min.z,ei=qt.min.x,ro=qt.min.y,To=qt.min.z):(zn=uo.width,Nn=uo.height,Co=uo.depth,ei=0,ro=0,To=0),Zt!==null?(yo=Zt.x,Ro=Zt.y,On=Zt.z):(yo=0,Ro=0,On=0);const Oo=kt.convert(vt.format),ko=kt.convert(vt.type);let Ko;if(vt.isData3DTexture)we.setTexture3D(vt,0),Ko=pe.TEXTURE_3D;else if(vt.isDataArrayTexture||vt.isCompressedArrayTexture)we.setTexture2DArray(vt,0),Ko=pe.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}pe.pixelStorei(pe.UNPACK_FLIP_Y_WEBGL,vt.flipY),pe.pixelStorei(pe.UNPACK_PREMULTIPLY_ALPHA_WEBGL,vt.premultiplyAlpha),pe.pixelStorei(pe.UNPACK_ALIGNMENT,vt.unpackAlignment);const mi=pe.getParameter(pe.UNPACK_ROW_LENGTH),Fo=pe.getParameter(pe.UNPACK_IMAGE_HEIGHT),Nr=pe.getParameter(pe.UNPACK_SKIP_PIXELS),Rs=pe.getParameter(pe.UNPACK_SKIP_ROWS),ur=pe.getParameter(pe.UNPACK_SKIP_IMAGES);pe.pixelStorei(pe.UNPACK_ROW_LENGTH,uo.width),pe.pixelStorei(pe.UNPACK_IMAGE_HEIGHT,uo.height),pe.pixelStorei(pe.UNPACK_SKIP_PIXELS,ei),pe.pixelStorei(pe.UNPACK_SKIP_ROWS,ro),pe.pixelStorei(pe.UNPACK_SKIP_IMAGES,To),qe.isDataTexture||qe.isData3DTexture?pe.texSubImage3D(Ko,nn,yo,Ro,On,zn,Nn,Co,Oo,ko,uo.data):vt.isCompressedArrayTexture?pe.compressedTexSubImage3D(Ko,nn,yo,Ro,On,zn,Nn,Co,Oo,uo.data):pe.texSubImage3D(Ko,nn,yo,Ro,On,zn,Nn,Co,Oo,ko,uo),pe.pixelStorei(pe.UNPACK_ROW_LENGTH,mi),pe.pixelStorei(pe.UNPACK_IMAGE_HEIGHT,Fo),pe.pixelStorei(pe.UNPACK_SKIP_PIXELS,Nr),pe.pixelStorei(pe.UNPACK_SKIP_ROWS,Rs),pe.pixelStorei(pe.UNPACK_SKIP_IMAGES,ur),nn===0&&vt.generateMipmaps&&pe.generateMipmap(Ko),he.unbindTexture()},this.initRenderTarget=function(qe){Pe.get(qe).__webglFramebuffer===void 0&&we.setupRenderTarget(qe)},this.initTexture=function(qe){qe.isCubeTexture?we.setTextureCube(qe,0):qe.isData3DTexture?we.setTexture3D(qe,0):qe.isDataArrayTexture||qe.isCompressedArrayTexture?we.setTexture2DArray(qe,0):we.setTexture2D(qe,0),he.unbindTexture()},this.resetState=function(){y=0,x=0,E=null,he.reset(),it.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Xb}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const n=this.getContext();n.drawingBufferColorSpace=e===nTe?"display-p3":"srgb",n.unpackColorSpace=iu.workingColorSpace===xde?"display-p3":"srgb"}}class KR extends T0{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new t2,this.environmentIntensity=1,this.environmentRotation=new t2,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,n){return super.copy(e,n),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const n=super.toJSON(e);return this.fog!==null&&(n.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(n.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(n.object.backgroundIntensity=this.backgroundIntensity),n.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(n.object.environmentIntensity=this.environmentIntensity),n.object.environmentRotation=this.environmentRotation.toArray(),n}}class Jei{constructor(e,n){this.isInterleavedBuffer=!0,this.array=e,this.stride=n,this.count=e!==void 0?e.length/n:0,this.usage=oTe,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=u4()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return sTe("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,n,o){e*=this.stride,o*=n.stride;for(let i=0,r=this.stride;i<r;i++)this.array[e+i]=n.array[o+i];return this}set(e,n=0){return this.array.set(e,n),this}clone(e){e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=u4()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const n=new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]),o=new this.constructor(n,this.stride);return o.setUsage(this.usage),o}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){return e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=u4()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}const o2=new jt;class FTe{constructor(e,n,o,i=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=e,this.itemSize=n,this.offset=o,this.normalized=i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(e){this.data.needsUpdate=e}applyMatrix4(e){for(let n=0,o=this.data.count;n<o;n++)o2.fromBufferAttribute(this,n),o2.applyMatrix4(e),this.setXYZ(n,o2.x,o2.y,o2.z);return this}applyNormalMatrix(e){for(let n=0,o=this.count;n<o;n++)o2.fromBufferAttribute(this,n),o2.applyNormalMatrix(e),this.setXYZ(n,o2.x,o2.y,o2.z);return this}transformDirection(e){for(let n=0,o=this.count;n<o;n++)o2.fromBufferAttribute(this,n),o2.transformDirection(e),this.setXYZ(n,o2.x,o2.y,o2.z);return this}getComponent(e,n){let o=this.array[e*this.data.stride+this.offset+n];return this.normalized&&(o=HB(o,this.array)),o}setComponent(e,n,o){return this.normalized&&(o=ou(o,this.array)),this.data.array[e*this.data.stride+this.offset+n]=o,this}setX(e,n){return this.normalized&&(n=ou(n,this.array)),this.data.array[e*this.data.stride+this.offset]=n,this}setY(e,n){return this.normalized&&(n=ou(n,this.array)),this.data.array[e*this.data.stride+this.offset+1]=n,this}setZ(e,n){return this.normalized&&(n=ou(n,this.array)),this.data.array[e*this.data.stride+this.offset+2]=n,this}setW(e,n){return this.normalized&&(n=ou(n,this.array)),this.data.array[e*this.data.stride+this.offset+3]=n,this}getX(e){let n=this.data.array[e*this.data.stride+this.offset];return this.normalized&&(n=HB(n,this.array)),n}getY(e){let n=this.data.array[e*this.data.stride+this.offset+1];return this.normalized&&(n=HB(n,this.array)),n}getZ(e){let n=this.data.array[e*this.data.stride+this.offset+2];return this.normalized&&(n=HB(n,this.array)),n}getW(e){let n=this.data.array[e*this.data.stride+this.offset+3];return this.normalized&&(n=HB(n,this.array)),n}setXY(e,n,o){return e=e*this.data.stride+this.offset,this.normalized&&(n=ou(n,this.array),o=ou(o,this.array)),this.data.array[e+0]=n,this.data.array[e+1]=o,this}setXYZ(e,n,o,i){return e=e*this.data.stride+this.offset,this.normalized&&(n=ou(n,this.array),o=ou(o,this.array),i=ou(i,this.array)),this.data.array[e+0]=n,this.data.array[e+1]=o,this.data.array[e+2]=i,this}setXYZW(e,n,o,i,r){return e=e*this.data.stride+this.offset,this.normalized&&(n=ou(n,this.array),o=ou(o,this.array),i=ou(i,this.array),r=ou(r,this.array)),this.data.array[e+0]=n,this.data.array[e+1]=o,this.data.array[e+2]=i,this.data.array[e+3]=r,this}clone(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");const n=[];for(let o=0;o<this.count;o++){const i=o*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)n.push(this.data.array[i+r])}return new tg(new this.array.constructor(n),this.itemSize,this.normalized)}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e)),new FTe(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");const n=[];for(let o=0;o<this.count;o++){const i=o*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)n.push(this.data.array[i+r])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:n,normalized:this.normalized}}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.toJSON(e)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}const bzt=new jt,Szt=new ru,Qzt=new ru,Wei=new jt,vzt=new va,qde=new jt,LTe=new GB,wzt=new va,HTe=new zG;class jei extends Er{constructor(e,n){super(e,n),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=MKt,this.bindMatrix=new va,this.bindMatrixInverse=new va,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const e=this.geometry;this.boundingBox===null&&(this.boundingBox=new e2),this.boundingBox.makeEmpty();const n=e.getAttribute("position");for(let o=0;o<n.count;o++)this.getVertexPosition(o,qde),this.boundingBox.expandByPoint(qde)}computeBoundingSphere(){const e=this.geometry;this.boundingSphere===null&&(this.boundingSphere=new GB),this.boundingSphere.makeEmpty();const n=e.getAttribute("position");for(let o=0;o<n.count;o++)this.getVertexPosition(o,qde),this.boundingSphere.expandByPoint(qde)}copy(e,n){return super.copy(e,n),this.bindMode=e.bindMode,this.bindMatrix.copy(e.bindMatrix),this.bindMatrixInverse.copy(e.bindMatrixInverse),this.skeleton=e.skeleton,e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}raycast(e,n){const o=this.material,i=this.matrixWorld;o!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),LTe.copy(this.boundingSphere),LTe.applyMatrix4(i),e.ray.intersectsSphere(LTe)!==!1&&(wzt.copy(i).invert(),HTe.copy(e.ray).applyMatrix4(wzt),!(this.boundingBox!==null&&HTe.intersectsBox(this.boundingBox)===!1)&&this._computeIntersections(e,n,HTe)))}getVertexPosition(e,n){return super.getVertexPosition(e,n),this.applyBoneTransform(e,n),n}bind(e,n){this.skeleton=e,n===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),n=this.matrixWorld),this.bindMatrix.copy(n),this.bindMatrixInverse.copy(n).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const e=new ru,n=this.geometry.attributes.skinWeight;for(let o=0,i=n.count;o<i;o++){e.fromBufferAttribute(n,o);const r=1/e.manhattanLength();r!==1/0?e.multiplyScalar(r):e.set(1,0,0,0),n.setXYZW(o,e.x,e.y,e.z,e.w)}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.bindMode===MKt?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===Hjo?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}applyBoneTransform(e,n){const o=this.skeleton,i=this.geometry;Szt.fromBufferAttribute(i.attributes.skinIndex,e),Qzt.fromBufferAttribute(i.attributes.skinWeight,e),bzt.copy(n).applyMatrix4(this.bindMatrix),n.set(0,0,0);for(let r=0;r<4;r++){const s=Qzt.getComponent(r);if(s!==0){const a=Szt.getComponent(r);vzt.multiplyMatrices(o.bones[a].matrixWorld,o.boneInverses[a]),n.addScaledVector(Wei.copy(bzt).applyMatrix4(vzt),s)}}return n.applyMatrix4(this.bindMatrixInverse)}}class Pzt extends T0{constructor(){super(),this.isBone=!0,this.type="Bone"}}class OTe extends Hg{constructor(e=null,n=1,o=1,i,r,s,a,A,c=wC,l=wC,u,g){super(null,s,a,A,c,l,i,r,u,g),this.isDataTexture=!0,this.image={data:e,width:n,height:o},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}const Mzt=new va,$ei=new va;class GTe{constructor(e=[],n=[]){this.uuid=u4(),this.bones=e.slice(0),this.boneInverses=n,this.boneMatrices=null,this.boneTexture=null,this.init()}init(){const e=this.bones,n=this.boneInverses;if(this.boneMatrices=new Float32Array(e.length*16),n.length===0)this.calculateInverses();else if(e.length!==n.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let o=0,i=this.bones.length;o<i;o++)this.boneInverses.push(new va)}}calculateInverses(){this.boneInverses.length=0;for(let e=0,n=this.bones.length;e<n;e++){const o=new va;this.bones[e]&&o.copy(this.bones[e].matrixWorld).invert(),this.boneInverses.push(o)}}pose(){for(let e=0,n=this.bones.length;e<n;e++){const o=this.bones[e];o&&o.matrixWorld.copy(this.boneInverses[e]).invert()}for(let e=0,n=this.bones.length;e<n;e++){const o=this.bones[e];o&&(o.parent&&o.parent.isBone?(o.matrix.copy(o.parent.matrixWorld).invert(),o.matrix.multiply(o.matrixWorld)):o.matrix.copy(o.matrixWorld),o.matrix.decompose(o.position,o.quaternion,o.scale))}}update(){const e=this.bones,n=this.boneInverses,o=this.boneMatrices,i=this.boneTexture;for(let r=0,s=e.length;r<s;r++){const a=e[r]?e[r].matrixWorld:$ei;Mzt.multiplyMatrices(a,n[r]),Mzt.toArray(o,r*16)}i!==null&&(i.needsUpdate=!0)}clone(){return new GTe(this.bones,this.boneInverses)}computeBoneTexture(){let e=Math.sqrt(this.bones.length*4);e=Math.ceil(e/4)*4,e=Math.max(e,4);const n=new Float32Array(e*e*4);n.set(this.boneMatrices);const o=new OTe(n,e,e,l4,m6);return o.needsUpdate=!0,this.boneMatrices=n,this.boneTexture=o,this}getBoneByName(e){for(let n=0,o=this.bones.length;n<o;n++){const i=this.bones[n];if(i.name===e)return i}}dispose(){this.boneTexture!==null&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(e,n){this.uuid=e.uuid;for(let o=0,i=e.bones.length;o<i;o++){const r=e.bones[o];let s=n[r];s===void 0&&(console.warn("THREE.Skeleton: No bone found with UUID:",r),s=new Pzt),this.bones.push(s),this.boneInverses.push(new va().fromArray(e.boneInverses[o]))}return this.init(),this}toJSON(){const e={metadata:{version:4.6,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};e.uuid=this.uuid;const n=this.bones,o=this.boneInverses;for(let i=0,r=n.length;i<r;i++){const s=n[i];e.bones.push(s.uuid);const a=o[i];e.boneInverses.push(a.toArray())}return e}}class Xde extends tg{constructor(e,n,o,i=1){super(e,n,o),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=i}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}toJSON(){const e=super.toJSON();return e.meshPerAttribute=this.meshPerAttribute,e.isInstancedBufferAttribute=!0,e}}const cY=new va,Dzt=new va,Zde=[],Nzt=new e2,qei=new va,Kq=new Er,Vq=new GB;class Xei extends Er{constructor(e,n,o){super(e,n),this.isInstancedMesh=!0,this.instanceMatrix=new Xde(new Float32Array(o*16),16),this.instanceColor=null,this.morphTexture=null,this.count=o,this.boundingBox=null,this.boundingSphere=null;for(let i=0;i<o;i++)this.setMatrixAt(i,qei)}computeBoundingBox(){const e=this.geometry,n=this.count;this.boundingBox===null&&(this.boundingBox=new e2),e.boundingBox===null&&e.computeBoundingBox(),this.boundingBox.makeEmpty();for(let o=0;o<n;o++)this.getMatrixAt(o,cY),Nzt.copy(e.boundingBox).applyMatrix4(cY),this.boundingBox.union(Nzt)}computeBoundingSphere(){const e=this.geometry,n=this.count;this.boundingSphere===null&&(this.boundingSphere=new GB),e.boundingSphere===null&&e.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let o=0;o<n;o++)this.getMatrixAt(o,cY),Vq.copy(e.boundingSphere).applyMatrix4(cY),this.boundingSphere.union(Vq)}copy(e,n){return super.copy(e,n),this.instanceMatrix.copy(e.instanceMatrix),e.morphTexture!==null&&(this.morphTexture=e.morphTexture.clone()),e.instanceColor!==null&&(this.instanceColor=e.instanceColor.clone()),this.count=e.count,e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}getColorAt(e,n){n.fromArray(this.instanceColor.array,e*3)}getMatrixAt(e,n){n.fromArray(this.instanceMatrix.array,e*16)}getMorphAt(e,n){const o=n.morphTargetInfluences,i=this.morphTexture.source.data.data,r=o.length+1,s=e*r+1;for(let a=0;a<o.length;a++)o[a]=i[s+a]}raycast(e,n){const o=this.matrixWorld,i=this.count;if(Kq.geometry=this.geometry,Kq.material=this.material,Kq.material!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),Vq.copy(this.boundingSphere),Vq.applyMatrix4(o),e.ray.intersectsSphere(Vq)!==!1))for(let r=0;r<i;r++){this.getMatrixAt(r,cY),Dzt.multiplyMatrices(o,cY),Kq.matrixWorld=Dzt,Kq.raycast(e,Zde);for(let s=0,a=Zde.length;s<a;s++){const A=Zde[s];A.instanceId=r,A.object=this,n.push(A)}Zde.length=0}}setColorAt(e,n){this.instanceColor===null&&(this.instanceColor=new Xde(new Float32Array(this.instanceMatrix.count*3),3)),n.toArray(this.instanceColor.array,e*3)}setMatrixAt(e,n){n.toArray(this.instanceMatrix.array,e*16)}setMorphAt(e,n){const o=n.morphTargetInfluences,i=o.length+1;this.morphTexture===null&&(this.morphTexture=new OTe(new Float32Array(i*this.count),i,this.count,kKt,m6));const r=this.morphTexture.source.data.data;let s=0;for(let c=0;c<o.length;c++)s+=o[c];const a=this.geometry.morphTargetsRelative?1:1-s,A=i*e;r[A]=a,r.set(o,A+1)}updateMorphTargets(){}dispose(){return this.dispatchEvent({type:"dispose"}),this.morphTexture!==null&&(this.morphTexture.dispose(),this.morphTexture=null),this}}class VR extends Gx{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Vi(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}}const ehe=new jt,the=new jt,Rzt=new va,zq=new zG,nhe=new GB,YTe=new jt,Tzt=new jt;let UTe=class extends T0{constructor(e=new Zl,n=new VR){super(),this.isLine=!0,this.type="Line",this.geometry=e,this.material=n,this.updateMorphTargets()}copy(e,n){return super.copy(e,n),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}computeLineDistances(){const e=this.geometry;if(e.index===null){const n=e.attributes.position,o=[0];for(let i=1,r=n.count;i<r;i++)ehe.fromBufferAttribute(n,i-1),the.fromBufferAttribute(n,i),o[i]=o[i-1],o[i]+=ehe.distanceTo(the);e.setAttribute("lineDistance",new Bs(o,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(e,n){const o=this.geometry,i=this.matrixWorld,r=e.params.Line.threshold,s=o.drawRange;if(o.boundingSphere===null&&o.computeBoundingSphere(),nhe.copy(o.boundingSphere),nhe.applyMatrix4(i),nhe.radius+=r,e.ray.intersectsSphere(nhe)===!1)return;Rzt.copy(i).invert(),zq.copy(e.ray).applyMatrix4(Rzt);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),A=a*a,c=this.isLineSegments?2:1,l=o.index,g=o.attributes.position;if(l!==null){const h=Math.max(0,s.start),d=Math.min(l.count,s.start+s.count);for(let p=h,m=d-1;p<m;p+=c){const _=l.getX(p),f=l.getX(p+1),I=ohe(this,e,zq,A,_,f);I&&n.push(I)}if(this.isLineLoop){const p=l.getX(d-1),m=l.getX(h),_=ohe(this,e,zq,A,p,m);_&&n.push(_)}}else{const h=Math.max(0,s.start),d=Math.min(g.count,s.start+s.count);for(let p=h,m=d-1;p<m;p+=c){const _=ohe(this,e,zq,A,p,p+1);_&&n.push(_)}if(this.isLineLoop){const p=ohe(this,e,zq,A,d-1,h);p&&n.push(p)}}}updateMorphTargets(){const n=this.geometry.morphAttributes,o=Object.keys(n);if(o.length>0){const i=n[o[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,s=i.length;r<s;r++){const a=i[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r}}}}};function ohe(t,e,n,o,i,r){const s=t.geometry.attributes.position;if(ehe.fromBufferAttribute(s,i),the.fromBufferAttribute(s,r),n.distanceSqToSegment(ehe,the,YTe,Tzt)>o)return;YTe.applyMatrix4(t.matrixWorld);const A=e.ray.origin.distanceTo(YTe);if(!(A<e.near||A>e.far))return{distance:A,point:Tzt.clone().applyMatrix4(t.matrixWorld),index:i,face:null,faceIndex:null,object:t}}const kzt=new jt,Fzt=new jt;class Jq extends UTe{constructor(e,n){super(e,n),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.index===null){const n=e.attributes.position,o=[];for(let i=0,r=n.count;i<r;i+=2)kzt.fromBufferAttribute(n,i),Fzt.fromBufferAttribute(n,i+1),o[i]=i===0?0:o[i-1],o[i+1]=o[i]+kzt.distanceTo(Fzt);e.setAttribute("lineDistance",new Bs(o,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}}class Zei extends UTe{constructor(e,n){super(e,n),this.isLineLoop=!0,this.type="LineLoop"}}class zR extends Gx{constructor(e){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new Vi(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}}const Lzt=new va,KTe=new zG,ihe=new GB,rhe=new jt;class Wq extends T0{constructor(e=new Zl,n=new zR){super(),this.isPoints=!0,this.type="Points",this.geometry=e,this.material=n,this.updateMorphTargets()}copy(e,n){return super.copy(e,n),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}raycast(e,n){const o=this.geometry,i=this.matrixWorld,r=e.params.Points.threshold,s=o.drawRange;if(o.boundingSphere===null&&o.computeBoundingSphere(),ihe.copy(o.boundingSphere),ihe.applyMatrix4(i),ihe.radius+=r,e.ray.intersectsSphere(ihe)===!1)return;Lzt.copy(i).invert(),KTe.copy(e.ray).applyMatrix4(Lzt);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),A=a*a,c=o.index,u=o.attributes.position;if(c!==null){const g=Math.max(0,s.start),h=Math.min(c.count,s.start+s.count);for(let d=g,p=h;d<p;d++){const m=c.getX(d);rhe.fromBufferAttribute(u,m),Hzt(rhe,m,A,i,e,n,this)}}else{const g=Math.max(0,s.start),h=Math.min(u.count,s.start+s.count);for(let d=g,p=h;d<p;d++)rhe.fromBufferAttribute(u,d),Hzt(rhe,d,A,i,e,n,this)}}updateMorphTargets(){const n=this.geometry.morphAttributes,o=Object.keys(n);if(o.length>0){const i=n[o[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,s=i.length;r<s;r++){const a=i[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r}}}}}function Hzt(t,e,n,o,i,r,s){const a=KTe.distanceSqToPoint(t);if(a<n){const A=new jt;KTe.closestPointToPoint(t,A),A.applyMatrix4(o);const c=i.ray.origin.distanceTo(A);if(c<i.near||c>i.far)return;r.push({distance:c,distanceToRay:Math.sqrt(a),point:A,index:e,face:null,object:s})}}class VTe extends Hg{constructor(e,n,o,i,r,s,a,A,c,l,u,g){super(null,s,a,A,c,l,i,r,u,g),this.isCompressedTexture=!0,this.image={width:n,height:o},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class Ux extends Hg{constructor(e,n,o,i,r,s,a,A,c){super(e,n,o,i,r,s,a,A,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class C6{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,n){const o=this.getUtoTmapping(e);return this.getPoint(o,n)}getPoints(e=5){const n=[];for(let o=0;o<=e;o++)n.push(this.getPoint(o/e));return n}getSpacedPoints(e=5){const n=[];for(let o=0;o<=e;o++)n.push(this.getPointAt(o/e));return n}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const n=[];let o,i=this.getPoint(0),r=0;n.push(0);for(let s=1;s<=e;s++)o=this.getPoint(s/e),r+=o.distanceTo(i),n.push(r),i=o;return this.cacheArcLengths=n,n}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,n){const o=this.getLengths();let i=0;const r=o.length;let s;n?s=n:s=e*o[r-1];let a=0,A=r-1,c;for(;a<=A;)if(i=Math.floor(a+(A-a)/2),c=o[i]-s,c<0)a=i+1;else if(c>0)A=i-1;else{A=i;break}if(i=A,o[i]===s)return i/(r-1);const l=o[i],g=o[i+1]-l,h=(s-l)/g;return(i+h)/(r-1)}getTangent(e,n){let i=e-1e-4,r=e+1e-4;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),A=n||(s.isVector2?new ni:new jt);return A.copy(a).sub(s).normalize(),A}getTangentAt(e,n){const o=this.getUtoTmapping(e);return this.getTangent(o,n)}computeFrenetFrames(e,n){const o=new jt,i=[],r=[],s=[],a=new jt,A=new va;for(let h=0;h<=e;h++){const d=h/e;i[h]=this.getTangentAt(d,new jt)}r[0]=new jt,s[0]=new jt;let c=Number.MAX_VALUE;const l=Math.abs(i[0].x),u=Math.abs(i[0].y),g=Math.abs(i[0].z);l<=c&&(c=l,o.set(1,0,0)),u<=c&&(c=u,o.set(0,1,0)),g<=c&&o.set(0,0,1),a.crossVectors(i[0],o).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let h=1;h<=e;h++){if(r[h]=r[h-1].clone(),s[h]=s[h-1].clone(),a.crossVectors(i[h-1],i[h]),a.length()>Number.EPSILON){a.normalize();const d=Math.acos(rf(i[h-1].dot(i[h]),-1,1));r[h].applyMatrix4(A.makeRotationAxis(a,d))}s[h].crossVectors(i[h],r[h])}if(n===!0){let h=Math.acos(rf(r[0].dot(r[e]),-1,1));h/=e,i[0].dot(a.crossVectors(r[0],r[e]))>0&&(h=-h);for(let d=1;d<=e;d++)r[d].applyMatrix4(A.makeRotationAxis(i[d],h*d)),s[d].crossVectors(i[d],r[d])}return{tangents:i,normals:r,binormals:s}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class zTe extends C6{constructor(e=0,n=0,o=1,i=1,r=0,s=Math.PI*2,a=!1,A=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=n,this.xRadius=o,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=A}getPoint(e,n=new ni){const o=n,i=Math.PI*2;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(s?r=0:r=i),this.aClockwise===!0&&!s&&(r===i?r=-i:r=r-i);const a=this.aStartAngle+e*r;let A=this.aX+this.xRadius*Math.cos(a),c=this.aY+this.yRadius*Math.sin(a);if(this.aRotation!==0){const l=Math.cos(this.aRotation),u=Math.sin(this.aRotation),g=A-this.aX,h=c-this.aY;A=g*l-h*u+this.aX,c=g*u+h*l+this.aY}return o.set(A,c)}copy(e){return super.copy(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}toJSON(){const e=super.toJSON();return e.aX=this.aX,e.aY=this.aY,e.xRadius=this.xRadius,e.yRadius=this.yRadius,e.aStartAngle=this.aStartAngle,e.aEndAngle=this.aEndAngle,e.aClockwise=this.aClockwise,e.aRotation=this.aRotation,e}fromJSON(e){return super.fromJSON(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}}class eti extends zTe{constructor(e,n,o,i,r,s){super(e,n,o,o,i,r,s),this.isArcCurve=!0,this.type="ArcCurve"}}function JTe(){let t=0,e=0,n=0,o=0;function i(r,s,a,A){t=r,e=a,n=-3*r+3*s-2*a-A,o=2*r-2*s+a+A}return{initCatmullRom:function(r,s,a,A,c){i(s,a,c*(a-r),c*(A-s))},initNonuniformCatmullRom:function(r,s,a,A,c,l,u){let g=(s-r)/c-(a-r)/(c+l)+(a-s)/l,h=(a-s)/l-(A-s)/(l+u)+(A-a)/u;g*=l,h*=l,i(s,a,g,h)},calc:function(r){const s=r*r,a=s*r;return t+e*r+n*s+o*a}}}const she=new jt,WTe=new JTe,jTe=new JTe,$Te=new JTe;class Ozt extends C6{constructor(e=[],n=!1,o="centripetal",i=.5){super(),this.isCatmullRomCurve3=!0,this.type="CatmullRomCurve3",this.points=e,this.closed=n,this.curveType=o,this.tension=i}getPoint(e,n=new jt){const o=n,i=this.points,r=i.length,s=(r-(this.closed?0:1))*e;let a=Math.floor(s),A=s-a;this.closed?a+=a>0?0:(Math.floor(Math.abs(a)/r)+1)*r:A===0&&a===r-1&&(a=r-2,A=1);let c,l;this.closed||a>0?c=i[(a-1)%r]:(she.subVectors(i[0],i[1]).add(i[0]),c=she);const u=i[a%r],g=i[(a+1)%r];if(this.closed||a+2<r?l=i[(a+2)%r]:(she.subVectors(i[r-1],i[r-2]).add(i[r-1]),l=she),this.curveType==="centripetal"||this.curveType==="chordal"){const h=this.curveType==="chordal"?.5:.25;let d=Math.pow(c.distanceToSquared(u),h),p=Math.pow(u.distanceToSquared(g),h),m=Math.pow(g.distanceToSquared(l),h);p<1e-4&&(p=1),d<1e-4&&(d=p),m<1e-4&&(m=p),WTe.initNonuniformCatmullRom(c.x,u.x,g.x,l.x,d,p,m),jTe.initNonuniformCatmullRom(c.y,u.y,g.y,l.y,d,p,m),$Te.initNonuniformCatmullRom(c.z,u.z,g.z,l.z,d,p,m)}else this.curveType==="catmullrom"&&(WTe.initCatmullRom(c.x,u.x,g.x,l.x,this.tension),jTe.initCatmullRom(c.y,u.y,g.y,l.y,this.tension),$Te.initCatmullRom(c.z,u.z,g.z,l.z,this.tension));return o.set(WTe.calc(A),jTe.calc(A),$Te.calc(A)),o}copy(e){super.copy(e),this.points=[];for(let n=0,o=e.points.length;n<o;n++){const i=e.points[n];this.points.push(i.clone())}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}toJSON(){const e=super.toJSON();e.points=[];for(let n=0,o=this.points.length;n<o;n++){const i=this.points[n];e.points.push(i.toArray())}return e.closed=this.closed,e.curveType=this.curveType,e.tension=this.tension,e}fromJSON(e){super.fromJSON(e),this.points=[];for(let n=0,o=e.points.length;n<o;n++){const i=e.points[n];this.points.push(new jt().fromArray(i))}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}}function Gzt(t,e,n,o,i){const r=(o-e)*.5,s=(i-n)*.5,a=t*t,A=t*a;return(2*n-2*o+r+s)*A+(-3*n+3*o-2*r-s)*a+r*t+n}function tti(t,e){const n=1-t;return n*n*e}function nti(t,e){return 2*(1-t)*t*e}function oti(t,e){return t*t*e}function jq(t,e,n,o){return tti(t,e)+nti(t,n)+oti(t,o)}function iti(t,e){const n=1-t;return n*n*n*e}function rti(t,e){const n=1-t;return 3*n*n*t*e}function sti(t,e){return 3*(1-t)*t*t*e}function ati(t,e){return t*t*t*e}function $q(t,e,n,o,i){return iti(t,e)+rti(t,n)+sti(t,o)+ati(t,i)}class Yzt extends C6{constructor(e=new ni,n=new ni,o=new ni,i=new ni){super(),this.isCubicBezierCurve=!0,this.type="CubicBezierCurve",this.v0=e,this.v1=n,this.v2=o,this.v3=i}getPoint(e,n=new ni){const o=n,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return o.set($q(e,i.x,r.x,s.x,a.x),$q(e,i.y,r.y,s.y,a.y)),o}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}}class Ati extends C6{constructor(e=new jt,n=new jt,o=new jt,i=new jt){super(),this.isCubicBezierCurve3=!0,this.type="CubicBezierCurve3",this.v0=e,this.v1=n,this.v2=o,this.v3=i}getPoint(e,n=new jt){const o=n,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return o.set($q(e,i.x,r.x,s.x,a.x),$q(e,i.y,r.y,s.y,a.y),$q(e,i.z,r.z,s.z,a.z)),o}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}}class Uzt extends C6{constructor(e=new ni,n=new ni){super(),this.isLineCurve=!0,this.type="LineCurve",this.v1=e,this.v2=n}getPoint(e,n=new ni){const o=n;return e===1?o.copy(this.v2):(o.copy(this.v2).sub(this.v1),o.multiplyScalar(e).add(this.v1)),o}getPointAt(e,n){return this.getPoint(e,n)}getTangent(e,n=new ni){return n.subVectors(this.v2,this.v1).normalize()}getTangentAt(e,n){return this.getTangent(e,n)}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class cti extends C6{constructor(e=new jt,n=new jt){super(),this.isLineCurve3=!0,this.type="LineCurve3",this.v1=e,this.v2=n}getPoint(e,n=new jt){const o=n;return e===1?o.copy(this.v2):(o.copy(this.v2).sub(this.v1),o.multiplyScalar(e).add(this.v1)),o}getPointAt(e,n){return this.getPoint(e,n)}getTangent(e,n=new jt){return n.subVectors(this.v2,this.v1).normalize()}getTangentAt(e,n){return this.getTangent(e,n)}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class Kzt extends C6{constructor(e=new ni,n=new ni,o=new ni){super(),this.isQuadraticBezierCurve=!0,this.type="QuadraticBezierCurve",this.v0=e,this.v1=n,this.v2=o}getPoint(e,n=new ni){const o=n,i=this.v0,r=this.v1,s=this.v2;return o.set(jq(e,i.x,r.x,s.x),jq(e,i.y,r.y,s.y)),o}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class lti extends C6{constructor(e=new jt,n=new jt,o=new jt){super(),this.isQuadraticBezierCurve3=!0,this.type="QuadraticBezierCurve3",this.v0=e,this.v1=n,this.v2=o}getPoint(e,n=new jt){const o=n,i=this.v0,r=this.v1,s=this.v2;return o.set(jq(e,i.x,r.x,s.x),jq(e,i.y,r.y,s.y),jq(e,i.z,r.z,s.z)),o}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class Vzt extends C6{constructor(e=[]){super(),this.isSplineCurve=!0,this.type="SplineCurve",this.points=e}getPoint(e,n=new ni){const o=n,i=this.points,r=(i.length-1)*e,s=Math.floor(r),a=r-s,A=i[s===0?s:s-1],c=i[s],l=i[s>i.length-2?i.length-1:s+1],u=i[s>i.length-3?i.length-1:s+2];return o.set(Gzt(a,A.x,c.x,l.x,u.x),Gzt(a,A.y,c.y,l.y,u.y)),o}copy(e){super.copy(e),this.points=[];for(let n=0,o=e.points.length;n<o;n++){const i=e.points[n];this.points.push(i.clone())}return this}toJSON(){const e=super.toJSON();e.points=[];for(let n=0,o=this.points.length;n<o;n++){const i=this.points[n];e.points.push(i.toArray())}return e}fromJSON(e){super.fromJSON(e),this.points=[];for(let n=0,o=e.points.length;n<o;n++){const i=e.points[n];this.points.push(new ni().fromArray(i))}return this}}var qTe=Object.freeze({__proto__:null,ArcCurve:eti,CatmullRomCurve3:Ozt,CubicBezierCurve:Yzt,CubicBezierCurve3:Ati,EllipseCurve:zTe,LineCurve:Uzt,LineCurve3:cti,QuadraticBezierCurve:Kzt,QuadraticBezierCurve3:lti,SplineCurve:Vzt});class uti extends C6{constructor(){super(),this.type="CurvePath",this.curves=[],this.autoClose=!1}add(e){this.curves.push(e)}closePath(){const e=this.curves[0].getPoint(0),n=this.curves[this.curves.length-1].getPoint(1);if(!e.equals(n)){const o=e.isVector2===!0?"LineCurve":"LineCurve3";this.curves.push(new qTe[o](n,e))}return this}getPoint(e,n){const o=e*this.getLength(),i=this.getCurveLengths();let r=0;for(;r<i.length;){if(i[r]>=o){const s=i[r]-o,a=this.curves[r],A=a.getLength(),c=A===0?0:1-s/A;return a.getPointAt(c,n)}r++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let n=0;for(let o=0,i=this.curves.length;o<i;o++)n+=this.curves[o].getLength(),e.push(n);return this.cacheLengths=e,e}getSpacedPoints(e=40){const n=[];for(let o=0;o<=e;o++)n.push(this.getPoint(o/e));return this.autoClose&&n.push(n[0]),n}getPoints(e=12){const n=[];let o;for(let i=0,r=this.curves;i<r.length;i++){const s=r[i],a=s.isEllipseCurve?e*2:s.isLineCurve||s.isLineCurve3?1:s.isSplineCurve?e*s.points.length:e,A=s.getPoints(a);for(let c=0;c<A.length;c++){const l=A[c];o&&o.equals(l)||(n.push(l),o=l)}}return this.autoClose&&n.length>1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n}copy(e){super.copy(e),this.curves=[];for(let n=0,o=e.curves.length;n<o;n++){const i=e.curves[n];this.curves.push(i.clone())}return this.autoClose=e.autoClose,this}toJSON(){const e=super.toJSON();e.autoClose=this.autoClose,e.curves=[];for(let n=0,o=this.curves.length;n<o;n++){const i=this.curves[n];e.curves.push(i.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.autoClose=e.autoClose,this.curves=[];for(let n=0,o=e.curves.length;n<o;n++){const i=e.curves[n];this.curves.push(new qTe[i.type]().fromJSON(i))}return this}}class XTe extends uti{constructor(e){super(),this.type="Path",this.currentPoint=new ni,e&&this.setFromPoints(e)}setFromPoints(e){this.moveTo(e[0].x,e[0].y);for(let n=1,o=e.length;n<o;n++)this.lineTo(e[n].x,e[n].y);return this}moveTo(e,n){return this.currentPoint.set(e,n),this}lineTo(e,n){const o=new Uzt(this.currentPoint.clone(),new ni(e,n));return this.curves.push(o),this.currentPoint.set(e,n),this}quadraticCurveTo(e,n,o,i){const r=new Kzt(this.currentPoint.clone(),new ni(e,n),new ni(o,i));return this.curves.push(r),this.currentPoint.set(o,i),this}bezierCurveTo(e,n,o,i,r,s){const a=new Yzt(this.currentPoint.clone(),new ni(e,n),new ni(o,i),new ni(r,s));return this.curves.push(a),this.currentPoint.set(r,s),this}splineThru(e){const n=[this.currentPoint.clone()].concat(e),o=new Vzt(n);return this.curves.push(o),this.currentPoint.copy(e[e.length-1]),this}arc(e,n,o,i,r,s){const a=this.currentPoint.x,A=this.currentPoint.y;return this.absarc(e+a,n+A,o,i,r,s),this}absarc(e,n,o,i,r,s){return this.absellipse(e,n,o,o,i,r,s),this}ellipse(e,n,o,i,r,s,a,A){const c=this.currentPoint.x,l=this.currentPoint.y;return this.absellipse(e+c,n+l,o,i,r,s,a,A),this}absellipse(e,n,o,i,r,s,a,A){const c=new zTe(e,n,o,i,r,s,a,A);if(this.curves.length>0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const l=c.getPoint(1);return this.currentPoint.copy(l),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class lY extends Zl{constructor(e=1,n=1,o=1,i=32,r=1,s=!1,a=0,A=Math.PI*2){super(),this.type="CylinderGeometry",this.parameters={radiusTop:e,radiusBottom:n,height:o,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:A};const c=this;i=Math.floor(i),r=Math.floor(r);const l=[],u=[],g=[],h=[];let d=0;const p=[],m=o/2;let _=0;f(),s===!1&&(e>0&&I(!0),n>0&&I(!1)),this.setIndex(l),this.setAttribute("position",new Bs(u,3)),this.setAttribute("normal",new Bs(g,3)),this.setAttribute("uv",new Bs(h,2));function f(){const C=new jt,y=new jt;let x=0;const E=(n-e)/o;for(let B=0;B<=r;B++){const S=[],Q=B/r,w=Q*(n-e)+e;for(let M=0;M<=i;M++){const k=M/i,R=k*A+a,F=Math.sin(R),O=Math.cos(R);y.x=w*F,y.y=-Q*o+m,y.z=w*O,u.push(y.x,y.y,y.z),C.set(F,E,O).normalize(),g.push(C.x,C.y,C.z),h.push(k,1-Q),S.push(d++)}p.push(S)}for(let B=0;B<i;B++)for(let S=0;S<r;S++){const Q=p[S][B],w=p[S+1][B],M=p[S+1][B+1],k=p[S][B+1];l.push(Q,w,k),l.push(w,M,k),x+=6}c.addGroup(_,x,0),_+=x}function I(C){const y=d,x=new ni,E=new jt;let B=0;const S=C===!0?e:n,Q=C===!0?1:-1;for(let M=1;M<=i;M++)u.push(0,m*Q,0),g.push(0,Q,0),h.push(.5,.5),d++;const w=d;for(let M=0;M<=i;M++){const R=M/i*A+a,F=Math.cos(R),O=Math.sin(R);E.x=S*O,E.y=m*Q,E.z=S*F,u.push(E.x,E.y,E.z),g.push(0,Q,0),x.x=F*.5+.5,x.y=O*.5*Q+.5,h.push(x.x,x.y),d++}for(let M=0;M<i;M++){const k=y+M,R=w+M;C===!0?l.push(R,R+1,k):l.push(R+1,R,k),B+=3}c.addGroup(_,B,C===!0?1:2),_+=B}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new lY(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class ZTe extends lY{constructor(e=1,n=1,o=32,i=1,r=!1,s=0,a=Math.PI*2){super(0,e,n,o,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:e,height:n,radialSegments:o,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(e){return new ZTe(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}const ahe=new jt,Ahe=new jt,eke=new jt,che=new KB;class gti extends Zl{constructor(e=null,n=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:n},e!==null){const i=Math.pow(10,4),r=Math.cos(LG*n),s=e.getIndex(),a=e.getAttribute("position"),A=s?s.count:a.count,c=[0,0,0],l=["a","b","c"],u=new Array(3),g={},h=[];for(let d=0;d<A;d+=3){s?(c[0]=s.getX(d),c[1]=s.getX(d+1),c[2]=s.getX(d+2)):(c[0]=d,c[1]=d+1,c[2]=d+2);const{a:p,b:m,c:_}=che;if(p.fromBufferAttribute(a,c[0]),m.fromBufferAttribute(a,c[1]),_.fromBufferAttribute(a,c[2]),che.getNormal(eke),u[0]=`${Math.round(p.x*i)},${Math.round(p.y*i)},${Math.round(p.z*i)}`,u[1]=`${Math.round(m.x*i)},${Math.round(m.y*i)},${Math.round(m.z*i)}`,u[2]=`${Math.round(_.x*i)},${Math.round(_.y*i)},${Math.round(_.z*i)}`,!(u[0]===u[1]||u[1]===u[2]||u[2]===u[0]))for(let f=0;f<3;f++){const I=(f+1)%3,C=u[f],y=u[I],x=che[l[f]],E=che[l[I]],B=`${C}_${y}`,S=`${y}_${C}`;S in g&&g[S]?(eke.dot(g[S].normal)<=r&&(h.push(x.x,x.y,x.z),h.push(E.x,E.y,E.z)),g[S]=null):B in g||(g[B]={index0:c[f],index1:c[I],normal:eke.clone()})}}for(const d in g)if(g[d]){const{index0:p,index1:m}=g[d];ahe.fromBufferAttribute(a,p),Ahe.fromBufferAttribute(a,m),h.push(ahe.x,ahe.y,ahe.z),h.push(Ahe.x,Ahe.y,Ahe.z)}this.setAttribute("position",new Bs(h,3))}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}}let zzt=class extends XTe{constructor(e){super(e),this.uuid=u4(),this.type="Shape",this.holes=[]}getPointsHoles(e){const n=[];for(let o=0,i=this.holes.length;o<i;o++)n[o]=this.holes[o].getPoints(e);return n}extractPoints(e){return{shape:this.getPoints(e),holes:this.getPointsHoles(e)}}copy(e){super.copy(e),this.holes=[];for(let n=0,o=e.holes.length;n<o;n++){const i=e.holes[n];this.holes.push(i.clone())}return this}toJSON(){const e=super.toJSON();e.uuid=this.uuid,e.holes=[];for(let n=0,o=this.holes.length;n<o;n++){const i=this.holes[n];e.holes.push(i.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.uuid=e.uuid,this.holes=[];for(let n=0,o=e.holes.length;n<o;n++){const i=e.holes[n];this.holes.push(new XTe().fromJSON(i))}return this}};const dti={triangulate:function(t,e,n=2){const o=e&&e.length,i=o?e[0]*n:t.length;let r=Jzt(t,0,i,n,!0);const s=[];if(!r||r.next===r.prev)return s;let a,A,c,l,u,g,h;if(o&&(r=fti(t,e,r,n)),t.length>80*n){a=c=t[0],A=l=t[1];for(let d=n;d<i;d+=n)u=t[d],g=t[d+1],u<a&&(a=u),g<A&&(A=g),u>c&&(c=u),g>l&&(l=g);h=Math.max(c-a,l-A),h=h!==0?32767/h:0}return qq(r,s,n,a,A,h,0),s}};function Jzt(t,e,n,o,i){let r,s;if(i===wti(t,e,n,o)>0)for(r=e;r<n;r+=o)s=$zt(r,t[r],t[r+1],s);else for(r=n-o;r>=e;r-=o)s=$zt(r,t[r],t[r+1],s);return s&&lhe(s,s.next)&&(Zq(s),s=s.next),s}function JR(t,e){if(!t)return t;e||(e=t);let n=t,o;do if(o=!1,!n.steiner&&(lhe(n,n.next)||jh(n.prev,n,n.next)===0)){if(Zq(n),n=e=n.prev,n===n.next)break;o=!0}else n=n.next;while(o||n!==e);return e}function qq(t,e,n,o,i,r,s){if(!t)return;!s&&r&&Eti(t,o,i,r);let a=t,A,c;for(;t.prev!==t.next;){if(A=t.prev,c=t.next,r?pti(t,o,i,r):hti(t)){e.push(A.i/n|0),e.push(t.i/n|0),e.push(c.i/n|0),Zq(t),t=c.next,a=c.next;continue}if(t=c,t===a){s?s===1?(t=mti(JR(t),e,n),qq(t,e,n,o,i,r,2)):s===2&&_ti(t,e,n,o,i,r):qq(JR(t),e,n,o,i,r,1);break}}}function hti(t){const e=t.prev,n=t,o=t.next;if(jh(e,n,o)>=0)return!1;const i=e.x,r=n.x,s=o.x,a=e.y,A=n.y,c=o.y,l=i<r?i<s?i:s:r<s?r:s,u=a<A?a<c?a:c:A<c?A:c,g=i>r?i>s?i:s:r>s?r:s,h=a>A?a>c?a:c:A>c?A:c;let d=o.next;for(;d!==e;){if(d.x>=l&&d.x<=g&&d.y>=u&&d.y<=h&&uY(i,a,r,A,s,c,d.x,d.y)&&jh(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function pti(t,e,n,o){const i=t.prev,r=t,s=t.next;if(jh(i,r,s)>=0)return!1;const a=i.x,A=r.x,c=s.x,l=i.y,u=r.y,g=s.y,h=a<A?a<c?a:c:A<c?A:c,d=l<u?l<g?l:g:u<g?u:g,p=a>A?a>c?a:c:A>c?A:c,m=l>u?l>g?l:g:u>g?u:g,_=tke(h,d,e,n,o),f=tke(p,m,e,n,o);let I=t.prevZ,C=t.nextZ;for(;I&&I.z>=_&&C&&C.z<=f;){if(I.x>=h&&I.x<=p&&I.y>=d&&I.y<=m&&I!==i&&I!==s&&uY(a,l,A,u,c,g,I.x,I.y)&&jh(I.prev,I,I.next)>=0||(I=I.prevZ,C.x>=h&&C.x<=p&&C.y>=d&&C.y<=m&&C!==i&&C!==s&&uY(a,l,A,u,c,g,C.x,C.y)&&jh(C.prev,C,C.next)>=0))return!1;C=C.nextZ}for(;I&&I.z>=_;){if(I.x>=h&&I.x<=p&&I.y>=d&&I.y<=m&&I!==i&&I!==s&&uY(a,l,A,u,c,g,I.x,I.y)&&jh(I.prev,I,I.next)>=0)return!1;I=I.prevZ}for(;C&&C.z<=f;){if(C.x>=h&&C.x<=p&&C.y>=d&&C.y<=m&&C!==i&&C!==s&&uY(a,l,A,u,c,g,C.x,C.y)&&jh(C.prev,C,C.next)>=0)return!1;C=C.nextZ}return!0}function mti(t,e,n){let o=t;do{const i=o.prev,r=o.next.next;!lhe(i,r)&&Wzt(i,o,o.next,r)&&Xq(i,r)&&Xq(r,i)&&(e.push(i.i/n|0),e.push(o.i/n|0),e.push(r.i/n|0),Zq(o),Zq(o.next),o=t=r),o=o.next}while(o!==t);return JR(o)}function _ti(t,e,n,o,i,r){let s=t;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&Sti(s,a)){let A=jzt(s,a);s=JR(s,s.next),A=JR(A,A.next),qq(s,e,n,o,i,r,0),qq(A,e,n,o,i,r,0);return}a=a.next}s=s.next}while(s!==t)}function fti(t,e,n,o){const i=[];let r,s,a,A,c;for(r=0,s=e.length;r<s;r++)a=e[r]*o,A=r<s-1?e[r+1]*o:t.length,c=Jzt(t,a,A,o,!1),c===c.next&&(c.steiner=!0),i.push(bti(c));for(i.sort(Iti),r=0;r<i.length;r++)n=Cti(i[r],n);return n}function Iti(t,e){return t.x-e.x}function Cti(t,e){const n=yti(t,e);if(!n)return e;const o=jzt(n,t);return JR(o,o.next),JR(n,n.next)}function yti(t,e){let n=e,o=-1/0,i;const r=t.x,s=t.y;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){const g=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(g<=r&&g>o&&(o=g,i=n.x<n.next.x?n:n.next,g===r))return i}n=n.next}while(n!==e);if(!i)return null;const a=i,A=i.x,c=i.y;let l=1/0,u;n=i;do r>=n.x&&n.x>=A&&r!==n.x&&uY(s<c?r:o,s,A,c,s<c?o:r,s,n.x,n.y)&&(u=Math.abs(s-n.y)/(r-n.x),Xq(n,t)&&(u<l||u===l&&(n.x>i.x||n.x===i.x&&xti(i,n)))&&(i=n,l=u)),n=n.next;while(n!==a);return i}function xti(t,e){return jh(t.prev,t,e.prev)<0&&jh(e.next,t,t.next)<0}function Eti(t,e,n,o){let i=t;do i.z===0&&(i.z=tke(i.x,i.y,e,n,o)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,Bti(i)}function Bti(t){let e,n,o,i,r,s,a,A,c=1;do{for(n=t,t=null,r=null,s=0;n;){for(s++,o=n,a=0,e=0;e<c&&(a++,o=o.nextZ,!!o);e++);for(A=c;a>0||A>0&&o;)a!==0&&(A===0||!o||n.z<=o.z)?(i=n,n=n.nextZ,a--):(i=o,o=o.nextZ,A--),r?r.nextZ=i:t=i,i.prevZ=r,r=i;n=o}r.nextZ=null,c*=2}while(s>1);return t}function tke(t,e,n,o,i){return t=(t-n)*i|0,e=(e-o)*i|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function bti(t){let e=t,n=t;do(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next;while(e!==t);return n}function uY(t,e,n,o,i,r,s,a){return(i-s)*(e-a)>=(t-s)*(r-a)&&(t-s)*(o-a)>=(n-s)*(e-a)&&(n-s)*(r-a)>=(i-s)*(o-a)}function Sti(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!Qti(t,e)&&(Xq(t,e)&&Xq(e,t)&&vti(t,e)&&(jh(t.prev,t,e.prev)||jh(t,e.prev,e))||lhe(t,e)&&jh(t.prev,t,t.next)>0&&jh(e.prev,e,e.next)>0)}function jh(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function lhe(t,e){return t.x===e.x&&t.y===e.y}function Wzt(t,e,n,o){const i=ghe(jh(t,e,n)),r=ghe(jh(t,e,o)),s=ghe(jh(n,o,t)),a=ghe(jh(n,o,e));return!!(i!==r&&s!==a||i===0&&uhe(t,n,e)||r===0&&uhe(t,o,e)||s===0&&uhe(n,t,o)||a===0&&uhe(n,e,o))}function uhe(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function ghe(t){return t>0?1:t<0?-1:0}function Qti(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Wzt(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}function Xq(t,e){return jh(t.prev,t,t.next)<0?jh(t,e,t.next)>=0&&jh(t,t.prev,e)>=0:jh(t,e,t.prev)<0||jh(t,t.next,e)<0}function vti(t,e){let n=t,o=!1;const i=(t.x+e.x)/2,r=(t.y+e.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&i<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(o=!o),n=n.next;while(n!==t);return o}function jzt(t,e){const n=new nke(t.i,t.x,t.y),o=new nke(e.i,e.x,e.y),i=t.next,r=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,o.next=n,n.prev=o,r.next=o,o.prev=r,o}function $zt(t,e,n,o){const i=new nke(t,e,n);return o?(i.next=o.next,i.prev=o,o.next.prev=i,o.next=i):(i.prev=i,i.next=i),i}function Zq(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function nke(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function wti(t,e,n,o){let i=0;for(let r=e,s=n-o;r<n;r+=o)i+=(t[s]-t[r])*(t[r+1]+t[s+1]),s=r;return i}class gY{static area(e){const n=e.length;let o=0;for(let i=n-1,r=0;r<n;i=r++)o+=e[i].x*e[r].y-e[r].x*e[i].y;return o*.5}static isClockWise(e){return gY.area(e)<0}static triangulateShape(e,n){const o=[],i=[],r=[];qzt(e),Xzt(o,e);let s=e.length;n.forEach(qzt);for(let A=0;A<n.length;A++)i.push(s),s+=n[A].length,Xzt(o,n[A]);const a=dti.triangulate(o,i);for(let A=0;A<a.length;A+=3)r.push(a.slice(A,A+3));return r}}function qzt(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function Xzt(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class oke extends Zl{constructor(e=new zzt([new ni(.5,.5),new ni(-.5,.5),new ni(-.5,-.5),new ni(.5,-.5)]),n={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:e,options:n},e=Array.isArray(e)?e:[e];const o=this,i=[],r=[];for(let a=0,A=e.length;a<A;a++){const c=e[a];s(c)}this.setAttribute("position",new Bs(i,3)),this.setAttribute("uv",new Bs(r,2)),this.computeVertexNormals();function s(a){const A=[],c=n.curveSegments!==void 0?n.curveSegments:12,l=n.steps!==void 0?n.steps:1,u=n.depth!==void 0?n.depth:1;let g=n.bevelEnabled!==void 0?n.bevelEnabled:!0,h=n.bevelThickness!==void 0?n.bevelThickness:.2,d=n.bevelSize!==void 0?n.bevelSize:h-.1,p=n.bevelOffset!==void 0?n.bevelOffset:0,m=n.bevelSegments!==void 0?n.bevelSegments:3;const _=n.extrudePath,f=n.UVGenerator!==void 0?n.UVGenerator:Pti;let I,C=!1,y,x,E,B;_&&(I=_.getSpacedPoints(l),C=!0,g=!1,y=_.computeFrenetFrames(l,!1),x=new jt,E=new jt,B=new jt),g||(m=0,h=0,d=0,p=0);const S=a.extractPoints(c);let Q=S.shape;const w=S.holes;if(!gY.isClockWise(Q)){Q=Q.reverse();for(let ye=0,Me=w.length;ye<Me;ye++){const ve=w[ye];gY.isClockWise(ve)&&(w[ye]=ve.reverse())}}const k=gY.triangulateShape(Q,w),R=Q;for(let ye=0,Me=w.length;ye<Me;ye++){const ve=w[ye];Q=Q.concat(ve)}function F(ye,Me,ve){return Me||console.error("THREE.ExtrudeGeometry: vec does not exist"),ye.clone().addScaledVector(Me,ve)}const O=Q.length,U=k.length;function Y(ye,Me,ve){let he,Qe,Pe;const we=ye.x-Me.x,Te=ye.y-Me.y,Re=ve.x-ye.x,Ee=ve.y-ye.y,ke=we*we+Te*Te,Ce=we*Ee-Te*Re;if(Math.abs(Ce)>Number.EPSILON){const Le=Math.sqrt(ke),Ye=Math.sqrt(Re*Re+Ee*Ee),tt=Me.x-Te/Le,At=Me.y+we/Le,at=ve.x-Ee/Ye,nt=ve.y+Re/Ye,gt=((at-tt)*Ee-(nt-At)*Re)/(we*Ee-Te*Re);he=tt+we*gt-ye.x,Qe=At+Te*gt-ye.y;const bt=he*he+Qe*Qe;if(bt<=2)return new ni(he,Qe);Pe=Math.sqrt(bt/2)}else{let Le=!1;we>Number.EPSILON?Re>Number.EPSILON&&(Le=!0):we<-Number.EPSILON?Re<-Number.EPSILON&&(Le=!0):Math.sign(Te)===Math.sign(Ee)&&(Le=!0),Le?(he=-Te,Qe=we,Pe=Math.sqrt(ke)):(he=we,Qe=Te,Pe=Math.sqrt(ke/2))}return new ni(he/Pe,Qe/Pe)}const W=[];for(let ye=0,Me=R.length,ve=Me-1,he=ye+1;ye<Me;ye++,ve++,he++)ve===Me&&(ve=0),he===Me&&(he=0),W[ye]=Y(R[ye],R[ve],R[he]);const te=[];let j,J=W.concat();for(let ye=0,Me=w.length;ye<Me;ye++){const ve=w[ye];j=[];for(let he=0,Qe=ve.length,Pe=Qe-1,we=he+1;he<Qe;he++,Pe++,we++)Pe===Qe&&(Pe=0),we===Qe&&(we=0),j[he]=Y(ve[he],ve[Pe],ve[we]);te.push(j),J=J.concat(j)}for(let ye=0;ye<m;ye++){const Me=ye/m,ve=h*Math.cos(Me*Math.PI/2),he=d*Math.sin(Me*Math.PI/2)+p;for(let Qe=0,Pe=R.length;Qe<Pe;Qe++){const we=F(R[Qe],W[Qe],he);ge(we.x,we.y,-ve)}for(let Qe=0,Pe=w.length;Qe<Pe;Qe++){const we=w[Qe];j=te[Qe];for(let Te=0,Re=we.length;Te<Re;Te++){const Ee=F(we[Te],j[Te],he);ge(Ee.x,Ee.y,-ve)}}}const oe=d+p;for(let ye=0;ye<O;ye++){const Me=g?F(Q[ye],J[ye],oe):Q[ye];C?(E.copy(y.normals[0]).multiplyScalar(Me.x),x.copy(y.binormals[0]).multiplyScalar(Me.y),B.copy(I[0]).add(E).add(x),ge(B.x,B.y,B.z)):ge(Me.x,Me.y,0)}for(let ye=1;ye<=l;ye++)for(let Me=0;Me<O;Me++){const ve=g?F(Q[Me],J[Me],oe):Q[Me];C?(E.copy(y.normals[ye]).multiplyScalar(ve.x),x.copy(y.binormals[ye]).multiplyScalar(ve.y),B.copy(I[ye]).add(E).add(x),ge(B.x,B.y,B.z)):ge(ve.x,ve.y,u/l*ye)}for(let ye=m-1;ye>=0;ye--){const Me=ye/m,ve=h*Math.cos(Me*Math.PI/2),he=d*Math.sin(Me*Math.PI/2)+p;for(let Qe=0,Pe=R.length;Qe<Pe;Qe++){const we=F(R[Qe],W[Qe],he);ge(we.x,we.y,u+ve)}for(let Qe=0,Pe=w.length;Qe<Pe;Qe++){const we=w[Qe];j=te[Qe];for(let Te=0,Re=we.length;Te<Re;Te++){const Ee=F(we[Te],j[Te],he);C?ge(Ee.x,Ee.y+I[l-1].y,I[l-1].x+ve):ge(Ee.x,Ee.y,u+ve)}}}ie(),ne();function ie(){const ye=i.length/3;if(g){let Me=0,ve=O*Me;for(let he=0;he<U;he++){const Qe=k[he];_e(Qe[2]+ve,Qe[1]+ve,Qe[0]+ve)}Me=l+m*2,ve=O*Me;for(let he=0;he<U;he++){const Qe=k[he];_e(Qe[0]+ve,Qe[1]+ve,Qe[2]+ve)}}else{for(let Me=0;Me<U;Me++){const ve=k[Me];_e(ve[2],ve[1],ve[0])}for(let Me=0;Me<U;Me++){const ve=k[Me];_e(ve[0]+O*l,ve[1]+O*l,ve[2]+O*l)}}o.addGroup(ye,i.length/3-ye,0)}function ne(){const ye=i.length/3;let Me=0;le(R,Me),Me+=R.length;for(let ve=0,he=w.length;ve<he;ve++){const Qe=w[ve];le(Qe,Me),Me+=Qe.length}o.addGroup(ye,i.length/3-ye,1)}function le(ye,Me){let ve=ye.length;for(;--ve>=0;){const he=ve;let Qe=ve-1;Qe<0&&(Qe=ye.length-1);for(let Pe=0,we=l+m*2;Pe<we;Pe++){const Te=O*Pe,Re=O*(Pe+1),Ee=Me+he+Te,ke=Me+Qe+Te,Ce=Me+Qe+Re,Le=Me+he+Re;ue(Ee,ke,Ce,Le)}}}function ge(ye,Me,ve){A.push(ye),A.push(Me),A.push(ve)}function _e(ye,Me,ve){fe(ye),fe(Me),fe(ve);const he=i.length/3,Qe=f.generateTopUV(o,i,he-3,he-2,he-1);pe(Qe[0]),pe(Qe[1]),pe(Qe[2])}function ue(ye,Me,ve,he){fe(ye),fe(Me),fe(he),fe(Me),fe(ve),fe(he);const Qe=i.length/3,Pe=f.generateSideWallUV(o,i,Qe-6,Qe-3,Qe-2,Qe-1);pe(Pe[0]),pe(Pe[1]),pe(Pe[3]),pe(Pe[1]),pe(Pe[2]),pe(Pe[3])}function fe(ye){i.push(A[ye*3+0]),i.push(A[ye*3+1]),i.push(A[ye*3+2])}function pe(ye){r.push(ye.x),r.push(ye.y)}}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}toJSON(){const e=super.toJSON(),n=this.parameters.shapes,o=this.parameters.options;return Mti(n,o,e)}static fromJSON(e,n){const o=[];for(let r=0,s=e.shapes.length;r<s;r++){const a=n[e.shapes[r]];o.push(a)}const i=e.options.extrudePath;return i!==void 0&&(e.options.extrudePath=new qTe[i.type]().fromJSON(i)),new oke(o,e.options)}}const Pti={generateTopUV:function(t,e,n,o,i){const r=e[n*3],s=e[n*3+1],a=e[o*3],A=e[o*3+1],c=e[i*3],l=e[i*3+1];return[new ni(r,s),new ni(a,A),new ni(c,l)]},generateSideWallUV:function(t,e,n,o,i,r){const s=e[n*3],a=e[n*3+1],A=e[n*3+2],c=e[o*3],l=e[o*3+1],u=e[o*3+2],g=e[i*3],h=e[i*3+1],d=e[i*3+2],p=e[r*3],m=e[r*3+1],_=e[r*3+2];return Math.abs(a-l)<Math.abs(s-c)?[new ni(s,1-A),new ni(c,1-u),new ni(g,1-d),new ni(p,1-_)]:[new ni(a,1-A),new ni(l,1-u),new ni(h,1-d),new ni(m,1-_)]}};function Mti(t,e,n){if(n.shapes=[],Array.isArray(t))for(let o=0,i=t.length;o<i;o++){const r=t[o];n.shapes.push(r.uuid)}else n.shapes.push(t.uuid);return n.options=Object.assign({},e),e.extrudePath!==void 0&&(n.options.extrudePath=e.extrudePath.toJSON()),n}class WR extends Zl{constructor(e=1,n=32,o=16,i=0,r=Math.PI*2,s=0,a=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:e,widthSegments:n,heightSegments:o,phiStart:i,phiLength:r,thetaStart:s,thetaLength:a},n=Math.max(3,Math.floor(n)),o=Math.max(2,Math.floor(o));const A=Math.min(s+a,Math.PI);let c=0;const l=[],u=new jt,g=new jt,h=[],d=[],p=[],m=[];for(let _=0;_<=o;_++){const f=[],I=_/o;let C=0;_===0&&s===0?C=.5/n:_===o&&A===Math.PI&&(C=-.5/n);for(let y=0;y<=n;y++){const x=y/n;u.x=-e*Math.cos(i+x*r)*Math.sin(s+I*a),u.y=e*Math.cos(s+I*a),u.z=e*Math.sin(i+x*r)*Math.sin(s+I*a),d.push(u.x,u.y,u.z),g.copy(u).normalize(),p.push(g.x,g.y,g.z),m.push(x+C,1-I),f.push(c++)}l.push(f)}for(let _=0;_<o;_++)for(let f=0;f<n;f++){const I=l[_][f+1],C=l[_][f],y=l[_+1][f],x=l[_+1][f+1];(_!==0||s>0)&&h.push(I,C,x),(_!==o-1||A<Math.PI)&&h.push(C,y,x)}this.setIndex(h),this.setAttribute("position",new Bs(d,3)),this.setAttribute("normal",new Bs(p,3)),this.setAttribute("uv",new Bs(m,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new WR(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength)}}class su extends Gx{constructor(e){super(),this.isMeshStandardMaterial=!0,this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Vi(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=tTe,this.normalScale=new ni(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new t2,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.envMapIntensity=e.envMapIntensity,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class CE extends su{constructor(e){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new ni(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return rf(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(n){this.ior=(1+.4*n)/(1-.4*n)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Vi(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Vi(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Vi(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(e)}get anisotropy(){return this._anisotropy}set anisotropy(e){this._anisotropy>0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class ike extends Gx{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Vi(16777215),this.specular=new Vi(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=tTe,this.normalScale=new ni(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new t2,this.combine=VRe,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}function dhe(t,e,n){return!t||!n&&t.constructor===e?t:typeof e.BYTES_PER_ELEMENT=="number"?new e(t):Array.prototype.slice.call(t)}function Dti(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Nti(t){function e(i,r){return t[i]-t[r]}const n=t.length,o=new Array(n);for(let i=0;i!==n;++i)o[i]=i;return o.sort(e),o}function Zzt(t,e,n){const o=t.length,i=new t.constructor(o);for(let r=0,s=0;s!==o;++r){const a=n[r]*e;for(let A=0;A!==e;++A)i[s++]=t[a+A]}return i}function eJt(t,e,n,o){let i=1,r=t[0];for(;r!==void 0&&r[o]===void 0;)r=t[i++];if(r===void 0)return;let s=r[o];if(s!==void 0)if(Array.isArray(s))do s=r[o],s!==void 0&&(e.push(r.time),n.push.apply(n,s)),r=t[i++];while(r!==void 0);else if(s.toArray!==void 0)do s=r[o],s!==void 0&&(e.push(r.time),s.toArray(n,n.length)),r=t[i++];while(r!==void 0);else do s=r[o],s!==void 0&&(e.push(r.time),n.push(s)),r=t[i++];while(r!==void 0)}class eX{constructor(e,n,o,i){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new n.constructor(o),this.sampleValues=n,this.valueSize=o,this.settings=null,this.DefaultSettings_={}}evaluate(e){const n=this.parameterPositions;let o=this._cachedIndex,i=n[o],r=n[o-1];e:{t:{let s;n:{o:if(!(e<i)){for(let a=o+2;;){if(i===void 0){if(e<r)break o;return o=n.length,this._cachedIndex=o,this.copySampleValue_(o-1)}if(o===a)break;if(r=i,i=n[++o],e<i)break t}s=n.length;break n}if(!(e>=r)){const a=n[1];e<a&&(o=2,r=a);for(let A=o-2;;){if(r===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(o===A)break;if(i=r,r=n[--o-1],e>=r)break t}s=o,o=0;break n}break e}for(;o<s;){const a=o+s>>>1;e<n[a]?s=a:o=a+1}if(i=n[o],r=n[o-1],r===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(i===void 0)return o=n.length,this._cachedIndex=o,this.copySampleValue_(o-1)}this._cachedIndex=o,this.intervalChanged_(o,r,i)}return this.interpolate_(o,r,e,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){const n=this.resultBuffer,o=this.sampleValues,i=this.valueSize,r=e*i;for(let s=0;s!==i;++s)n[s]=o[r+s];return n}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}class Rti extends eX{constructor(e,n,o,i){super(e,n,o,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:gVt,endingEnd:gVt}}intervalChanged_(e,n,o){const i=this.parameterPositions;let r=e-2,s=e+1,a=i[r],A=i[s];if(a===void 0)switch(this.getSettings_().endingStart){case dVt:r=e,a=2*n-o;break;case hVt:r=i.length-2,a=n+i[r]-i[r+1];break;default:r=e,a=o}if(A===void 0)switch(this.getSettings_().endingEnd){case dVt:s=e,A=2*o-n;break;case hVt:s=1,A=o+i[1]-i[0];break;default:s=e-1,A=n}const c=(o-n)*.5,l=this.valueSize;this._weightPrev=c/(n-a),this._weightNext=c/(A-o),this._offsetPrev=r*l,this._offsetNext=s*l}interpolate_(e,n,o,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,A=e*a,c=A-a,l=this._offsetPrev,u=this._offsetNext,g=this._weightPrev,h=this._weightNext,d=(o-n)/(i-n),p=d*d,m=p*d,_=-g*m+2*g*p-g*d,f=(1+g)*m+(-1.5-2*g)*p+(-.5+g)*d+1,I=(-1-h)*m+(1.5+h)*p+.5*d,C=h*m-h*p;for(let y=0;y!==a;++y)r[y]=_*s[l+y]+f*s[c+y]+I*s[A+y]+C*s[u+y];return r}}class Tti extends eX{constructor(e,n,o,i){super(e,n,o,i)}interpolate_(e,n,o,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,A=e*a,c=A-a,l=(o-n)/(i-n),u=1-l;for(let g=0;g!==a;++g)r[g]=s[c+g]*u+s[A+g]*l;return r}}class kti extends eX{constructor(e,n,o,i){super(e,n,o,i)}interpolate_(e){return this.copySampleValue_(e-1)}}class y6{constructor(e,n,o,i){if(e===void 0)throw new Error("THREE.KeyframeTrack: track name is undefined");if(n===void 0||n.length===0)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+e);this.name=e,this.times=dhe(n,this.TimeBufferType),this.values=dhe(o,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(e){const n=e.constructor;let o;if(n.toJSON!==this.toJSON)o=n.toJSON(e);else{o={name:e.name,times:dhe(e.times,Array),values:dhe(e.values,Array)};const i=e.getInterpolation();i!==e.DefaultInterpolation&&(o.interpolation=i)}return o.type=e.ValueTypeName,o}InterpolantFactoryMethodDiscrete(e){return new kti(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new Tti(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new Rti(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let n;switch(e){case TG:n=this.InterpolantFactoryMethodDiscrete;break;case kG:n=this.InterpolantFactoryMethodLinear;break;case ZRe:n=this.InterpolantFactoryMethodSmooth;break}if(n===void 0){const o="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(this.createInterpolant===void 0)if(e!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(o);return console.warn("THREE.KeyframeTrack:",o),this}return this.createInterpolant=n,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return TG;case this.InterpolantFactoryMethodLinear:return kG;case this.InterpolantFactoryMethodSmooth:return ZRe}}getValueSize(){return this.values.length/this.times.length}shift(e){if(e!==0){const n=this.times;for(let o=0,i=n.length;o!==i;++o)n[o]+=e}return this}scale(e){if(e!==1){const n=this.times;for(let o=0,i=n.length;o!==i;++o)n[o]*=e}return this}trim(e,n){const o=this.times,i=o.length;let r=0,s=i-1;for(;r!==i&&o[r]<e;)++r;for(;s!==-1&&o[s]>n;)--s;if(++s,r!==0||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const a=this.getValueSize();this.times=o.slice(r,s),this.values=this.values.slice(r*a,s*a)}return this}validate(){let e=!0;const n=this.getValueSize();n-Math.floor(n)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const o=this.times,i=this.values,r=o.length;r===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let a=0;a!==r;a++){const A=o[a];if(typeof A=="number"&&isNaN(A)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,A),e=!1;break}if(s!==null&&s>A){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,A,s),e=!1;break}s=A}if(i!==void 0&&Dti(i))for(let a=0,A=i.length;a!==A;++a){const c=i[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),e=!1;break}}return e}optimize(){const e=this.times.slice(),n=this.values.slice(),o=this.getValueSize(),i=this.getInterpolation()===ZRe,r=e.length-1;let s=1;for(let a=1;a<r;++a){let A=!1;const c=e[a],l=e[a+1];if(c!==l&&(a!==1||c!==e[0]))if(i)A=!0;else{const u=a*o,g=u-o,h=u+o;for(let d=0;d!==o;++d){const p=n[u+d];if(p!==n[g+d]||p!==n[h+d]){A=!0;break}}}if(A){if(a!==s){e[s]=e[a];const u=a*o,g=s*o;for(let h=0;h!==o;++h)n[g+h]=n[u+h]}++s}}if(r>0){e[s]=e[r];for(let a=r*o,A=s*o,c=0;c!==o;++c)n[A+c]=n[a+c];++s}return s!==e.length?(this.times=e.slice(0,s),this.values=n.slice(0,s*o)):(this.times=e,this.values=n),this}clone(){const e=this.times.slice(),n=this.values.slice(),o=this.constructor,i=new o(this.name,e,n);return i.createInterpolant=this.createInterpolant,i}}y6.prototype.TimeBufferType=Float32Array,y6.prototype.ValueBufferType=Float32Array,y6.prototype.DefaultInterpolation=kG;class dY extends y6{constructor(e,n,o){super(e,n,o)}}dY.prototype.ValueTypeName="bool",dY.prototype.ValueBufferType=Array,dY.prototype.DefaultInterpolation=TG,dY.prototype.InterpolantFactoryMethodLinear=void 0,dY.prototype.InterpolantFactoryMethodSmooth=void 0;class tJt extends y6{}tJt.prototype.ValueTypeName="color";class hY extends y6{}hY.prototype.ValueTypeName="number";class Fti extends eX{constructor(e,n,o,i){super(e,n,o,i)}interpolate_(e,n,o,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,A=(o-n)/(i-n);let c=e*a;for(let l=c+a;c!==l;c+=4)Zy.slerpFlat(r,0,s,c-a,s,c,A);return r}}class pY extends y6{InterpolantFactoryMethodLinear(e){return new Fti(this.times,this.values,this.getValueSize(),e)}}pY.prototype.ValueTypeName="quaternion",pY.prototype.InterpolantFactoryMethodSmooth=void 0;class mY extends y6{constructor(e,n,o){super(e,n,o)}}mY.prototype.ValueTypeName="string",mY.prototype.ValueBufferType=Array,mY.prototype.DefaultInterpolation=TG,mY.prototype.InterpolantFactoryMethodLinear=void 0,mY.prototype.InterpolantFactoryMethodSmooth=void 0;class _Y extends y6{}_Y.prototype.ValueTypeName="vector";class Lti{constructor(e="",n=-1,o=[],i=jjo){this.name=e,this.tracks=o,this.duration=n,this.blendMode=i,this.uuid=u4(),this.duration<0&&this.resetDuration()}static parse(e){const n=[],o=e.tracks,i=1/(e.fps||1);for(let s=0,a=o.length;s!==a;++s)n.push(Oti(o[s]).scale(i));const r=new this(e.name,e.duration,n,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){const n=[],o=e.tracks,i={name:e.name,duration:e.duration,tracks:n,uuid:e.uuid,blendMode:e.blendMode};for(let r=0,s=o.length;r!==s;++r)n.push(y6.toJSON(o[r]));return i}static CreateFromMorphTargetSequence(e,n,o,i){const r=n.length,s=[];for(let a=0;a<r;a++){let A=[],c=[];A.push((a+r-1)%r,a,(a+1)%r),c.push(0,1,0);const l=Nti(A);A=Zzt(A,1,l),c=Zzt(c,1,l),!i&&A[0]===0&&(A.push(r),c.push(c[0])),s.push(new hY(".morphTargetInfluences["+n[a].name+"]",A,c).scale(1/o))}return new this(e,-1,s)}static findByName(e,n){let o=e;if(!Array.isArray(e)){const i=e;o=i.geometry&&i.geometry.animations||i.animations}for(let i=0;i<o.length;i++)if(o[i].name===n)return o[i];return null}static CreateClipsFromMorphTargetSequences(e,n,o){const i={},r=/^([\w-]*?)([\d]+)$/;for(let a=0,A=e.length;a<A;a++){const c=e[a],l=c.name.match(r);if(l&&l.length>1){const u=l[1];let g=i[u];g||(i[u]=g=[]),g.push(c)}}const s=[];for(const a in i)s.push(this.CreateFromMorphTargetSequence(a,i[a],n,o));return s}static parseAnimation(e,n){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const o=function(u,g,h,d,p){if(h.length!==0){const m=[],_=[];eJt(h,m,_,d),m.length!==0&&p.push(new u(g,m,_))}},i=[],r=e.name||"default",s=e.fps||30,a=e.blendMode;let A=e.length||-1;const c=e.hierarchy||[];for(let u=0;u<c.length;u++){const g=c[u].keys;if(!(!g||g.length===0))if(g[0].morphTargets){const h={};let d;for(d=0;d<g.length;d++)if(g[d].morphTargets)for(let p=0;p<g[d].morphTargets.length;p++)h[g[d].morphTargets[p]]=-1;for(const p in h){const m=[],_=[];for(let f=0;f!==g[d].morphTargets.length;++f){const I=g[d];m.push(I.time),_.push(I.morphTarget===p?1:0)}i.push(new hY(".morphTargetInfluence["+p+"]",m,_))}A=h.length*s}else{const h=".bones["+n[u].name+"]";o(_Y,h+".position",g,"pos",i),o(pY,h+".quaternion",g,"rot",i),o(_Y,h+".scale",g,"scl",i)}}return i.length===0?null:new this(r,A,i,a)}resetDuration(){const e=this.tracks;let n=0;for(let o=0,i=e.length;o!==i;++o){const r=this.tracks[o];n=Math.max(n,r.times[r.times.length-1])}return this.duration=n,this}trim(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this}validate(){let e=!0;for(let n=0;n<this.tracks.length;n++)e=e&&this.tracks[n].validate();return e}optimize(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}clone(){const e=[];for(let n=0;n<this.tracks.length;n++)e.push(this.tracks[n].clone());return new this.constructor(this.name,this.duration,e,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function Hti(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return hY;case"vector":case"vector2":case"vector3":case"vector4":return _Y;case"color":return tJt;case"quaternion":return pY;case"bool":case"boolean":return dY;case"string":return mY}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+t)}function Oti(t){if(t.type===void 0)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const e=Hti(t.type);if(t.times===void 0){const n=[],o=[];eJt(t.keys,n,o,"value"),t.times=n,t.values=o}return e.parse!==void 0?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const oP={enabled:!1,files:{},add:function(t,e){this.enabled!==!1&&(this.files[t]=e)},get:function(t){if(this.enabled!==!1)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class Gti{constructor(e,n,o){const i=this;let r=!1,s=0,a=0,A;const c=[];this.onStart=void 0,this.onLoad=e,this.onProgress=n,this.onError=o,this.itemStart=function(l){a++,r===!1&&i.onStart!==void 0&&i.onStart(l,s,a),r=!0},this.itemEnd=function(l){s++,i.onProgress!==void 0&&i.onProgress(l,s,a),s===a&&(r=!1,i.onLoad!==void 0&&i.onLoad())},this.itemError=function(l){i.onError!==void 0&&i.onError(l)},this.resolveURL=function(l){return A?A(l):l},this.setURLModifier=function(l){return A=l,this},this.addHandler=function(l,u){return c.push(l,u),this},this.removeHandler=function(l){const u=c.indexOf(l);return u!==-1&&c.splice(u,2),this},this.getHandler=function(l){for(let u=0,g=c.length;u<g;u+=2){const h=c[u],d=c[u+1];if(h.global&&(h.lastIndex=0),h.test(l))return d}return null}}}const nJt=new Gti;class x6{constructor(e){this.manager=e!==void 0?e:nJt,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,n){const o=this;return new Promise(function(i,r){o.load(e,i,n,r)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}}x6.DEFAULT_MATERIAL_NAME="__DEFAULT";const iS={};class Yti extends Error{constructor(e,n){super(e),this.response=n}}class fY extends x6{constructor(e){super(e)}load(e,n,o,i){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=oP.get(e);if(r!==void 0)return this.manager.itemStart(e),setTimeout(()=>{n&&n(r),this.manager.itemEnd(e)},0),r;if(iS[e]!==void 0){iS[e].push({onLoad:n,onProgress:o,onError:i});return}iS[e]=[],iS[e].push({onLoad:n,onProgress:o,onError:i});const s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,A=this.responseType;fetch(s).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||c.body===void 0||c.body.getReader===void 0)return c;const l=iS[e],u=c.body.getReader(),g=c.headers.get("X-File-Size")||c.headers.get("Content-Length"),h=g?parseInt(g):0,d=h!==0;let p=0;const m=new ReadableStream({start(_){f();function f(){u.read().then(({done:I,value:C})=>{if(I)_.close();else{p+=C.byteLength;const y=new ProgressEvent("progress",{lengthComputable:d,loaded:p,total:h});for(let x=0,E=l.length;x<E;x++){const B=l[x];B.onProgress&&B.onProgress(y)}_.enqueue(C),f()}},I=>{_.error(I)})}}});return new Response(m)}else throw new Yti(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`,c)}).then(c=>{switch(A){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(l=>new DOMParser().parseFromString(l,a));case"json":return c.json();default:if(a===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),g=u&&u[1]?u[1].toLowerCase():void 0,h=new TextDecoder(g);return c.arrayBuffer().then(d=>h.decode(d))}}}).then(c=>{oP.add(e,c);const l=iS[e];delete iS[e];for(let u=0,g=l.length;u<g;u++){const h=l[u];h.onLoad&&h.onLoad(c)}}).catch(c=>{const l=iS[e];if(l===void 0)throw this.manager.itemError(e),c;delete iS[e];for(let u=0,g=l.length;u<g;u++){const h=l[u];h.onError&&h.onError(c)}this.manager.itemError(e)}).finally(()=>{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class Uti extends x6{constructor(e){super(e)}load(e,n,o,i){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=this,s=oP.get(e);if(s!==void 0)return r.manager.itemStart(e),setTimeout(function(){n&&n(s),r.manager.itemEnd(e)},0),s;const a=Lq("img");function A(){l(),oP.add(e,this),n&&n(this),r.manager.itemEnd(e)}function c(u){l(),i&&i(u),r.manager.itemError(e),r.manager.itemEnd(e)}function l(){a.removeEventListener("load",A,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",A,!1),a.addEventListener("error",c,!1),e.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(e),a.src=e,a}}class rke extends x6{constructor(e){super(e)}load(e,n,o,i){const r=new Hg,s=new Uti(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(e,function(a){r.image=a,r.needsUpdate=!0,n!==void 0&&n(r)},o,i),r}}class tX extends T0{constructor(e,n=1){super(),this.isLight=!0,this.type="Light",this.color=new Vi(e),this.intensity=n}dispose(){}copy(e,n){return super.copy(e,n),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const n=super.toJSON(e);return n.object.color=this.color.getHex(),n.object.intensity=this.intensity,this.groundColor!==void 0&&(n.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(n.object.distance=this.distance),this.angle!==void 0&&(n.object.angle=this.angle),this.decay!==void 0&&(n.object.decay=this.decay),this.penumbra!==void 0&&(n.object.penumbra=this.penumbra),this.shadow!==void 0&&(n.object.shadow=this.shadow.toJSON()),n}}class Kti extends tX{constructor(e,n,o){super(e,o),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(T0.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Vi(n)}copy(e,n){return super.copy(e,n),this.groundColor.copy(e.groundColor),this}}const ske=new va,oJt=new jt,iJt=new jt;class ake{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new ni(512,512),this.map=null,this.mapPass=null,this.matrix=new va,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new STe,this._frameExtents=new ni(1,1),this._viewportCount=1,this._viewports=[new ru(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const n=this.camera,o=this.matrix;oJt.setFromMatrixPosition(e.matrixWorld),n.position.copy(oJt),iJt.setFromMatrixPosition(e.target.matrixWorld),n.lookAt(iJt),n.updateMatrixWorld(),ske.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(ske),o.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),o.multiply(ske)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const e={};return this.bias!==0&&(e.bias=this.bias),this.normalBias!==0&&(e.normalBias=this.normalBias),this.radius!==1&&(e.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}class Vti extends ake{constructor(){super(new sf(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){const n=this.camera,o=HG*2*e.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=e.distance||n.far;(o!==n.fov||i!==n.aspect||r!==n.far)&&(n.fov=o,n.aspect=i,n.far=r,n.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}}class zti extends tX{constructor(e,n,o=0,i=Math.PI/3,r=0,s=2){super(e,n),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(T0.DEFAULT_UP),this.updateMatrix(),this.target=new T0,this.distance=o,this.angle=i,this.penumbra=r,this.decay=s,this.map=null,this.shadow=new Vti}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e,n){return super.copy(e,n),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}const rJt=new va,nX=new jt,Ake=new jt;class Jti extends ake{constructor(){super(new sf(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new ni(4,2),this._viewportCount=6,this._viewports=[new ru(2,1,1,1),new ru(0,1,1,1),new ru(3,1,1,1),new ru(1,1,1,1),new ru(3,0,1,1),new ru(1,0,1,1)],this._cubeDirections=[new jt(1,0,0),new jt(-1,0,0),new jt(0,0,1),new jt(0,0,-1),new jt(0,1,0),new jt(0,-1,0)],this._cubeUps=[new jt(0,1,0),new jt(0,1,0),new jt(0,1,0),new jt(0,1,0),new jt(0,0,1),new jt(0,0,-1)]}updateMatrices(e,n=0){const o=this.camera,i=this.matrix,r=e.distance||o.far;r!==o.far&&(o.far=r,o.updateProjectionMatrix()),nX.setFromMatrixPosition(e.matrixWorld),o.position.copy(nX),Ake.copy(o.position),Ake.add(this._cubeDirections[n]),o.up.copy(this._cubeUps[n]),o.lookAt(Ake),o.updateMatrixWorld(),i.makeTranslation(-nX.x,-nX.y,-nX.z),rJt.multiplyMatrices(o.projectionMatrix,o.matrixWorldInverse),this._frustum.setFromProjectionMatrix(rJt)}}class sJt extends tX{constructor(e,n,o=0,i=2){super(e,n),this.isPointLight=!0,this.type="PointLight",this.distance=o,this.decay=i,this.shadow=new Jti}get power(){return this.intensity*4*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e,n){return super.copy(e,n),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}class Wti extends ake{constructor(){super(new rY(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class aJt extends tX{constructor(e,n){super(e,n),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(T0.DEFAULT_UP),this.updateMatrix(),this.target=new T0,this.shadow=new Wti}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}class AJt extends tX{constructor(e,n){super(e,n),this.isAmbientLight=!0,this.type="AmbientLight"}}class jR{static decodeText(e){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),typeof TextDecoder<"u")return new TextDecoder().decode(e);let n="";for(let o=0,i=e.length;o<i;o++)n+=String.fromCharCode(e[o]);try{return decodeURIComponent(escape(n))}catch{return n}}static extractUrlBase(e){const n=e.lastIndexOf("/");return n===-1?"./":e.slice(0,n+1)}static resolveURL(e,n){return typeof e!="string"||e===""?"":(/^https?:\/\//i.test(n)&&/^\//.test(e)&&(n=n.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:n+e)}}class jti extends Zl{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}toJSON(){const e=super.toJSON();return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}}class $ti extends x6{constructor(e){super(e),this.isImageBitmapLoader=!0,typeof createImageBitmap>"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,n,o,i){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=this,s=oP.get(e);if(s!==void 0){if(r.manager.itemStart(e),s.then){s.then(c=>{n&&n(c),r.manager.itemEnd(e)}).catch(c=>{i&&i(c)});return}return setTimeout(function(){n&&n(s),r.manager.itemEnd(e)},0),s}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const A=fetch(e,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(c){return oP.add(e,c),n&&n(c),r.manager.itemEnd(e),c}).catch(function(c){i&&i(c),oP.remove(e),r.manager.itemError(e),r.manager.itemEnd(e)});oP.add(e,A),r.manager.itemStart(e)}}let qti=class{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=cJt(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const n=cJt();e=(n-this.oldTime)/1e3,this.oldTime=n,this.elapsedTime+=e}return e}};function cJt(){return(typeof performance>"u"?Date:performance).now()}const cke="\\[\\]\\.:\\/",Xti=new RegExp("["+cke+"]","g"),lke="[^"+cke+"]",Zti="[^"+cke.replace("\\.","")+"]",eni=/((?:WC+[\/:])*)/.source.replace("WC",lke),tni=/(WCOD+)?/.source.replace("WCOD",Zti),nni=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",lke),oni=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",lke),ini=new RegExp("^"+eni+tni+nni+oni+"$"),rni=["material","materials","bones","map"];class sni{constructor(e,n,o){const i=o||Ll.parseTrackName(n);this._targetGroup=e,this._bindings=e.subscribe_(n,i)}getValue(e,n){this.bind();const o=this._targetGroup.nCachedObjects_,i=this._bindings[o];i!==void 0&&i.getValue(e,n)}setValue(e,n){const o=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=o.length;i!==r;++i)o[i].setValue(e,n)}bind(){const e=this._bindings;for(let n=this._targetGroup.nCachedObjects_,o=e.length;n!==o;++n)e[n].bind()}unbind(){const e=this._bindings;for(let n=this._targetGroup.nCachedObjects_,o=e.length;n!==o;++n)e[n].unbind()}}class Ll{constructor(e,n,o){this.path=n,this.parsedPath=o||Ll.parseTrackName(n),this.node=Ll.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,n,o){return e&&e.isAnimationObjectGroup?new Ll.Composite(e,n,o):new Ll(e,n,o)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Xti,"")}static parseTrackName(e){const n=ini.exec(e);if(n===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const o={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]},i=o.nodeName&&o.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){const r=o.nodeName.substring(i+1);rni.indexOf(r)!==-1&&(o.nodeName=o.nodeName.substring(0,i),o.objectName=r)}if(o.propertyName===null||o.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return o}static findNode(e,n){if(n===void 0||n===""||n==="."||n===-1||n===e.name||n===e.uuid)return e;if(e.skeleton){const o=e.skeleton.getBoneByName(n);if(o!==void 0)return o}if(e.children){const o=function(r){for(let s=0;s<r.length;s++){const a=r[s];if(a.name===n||a.uuid===n)return a;const A=o(a.children);if(A)return A}return null},i=o(e.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(e,n){e[n]=this.targetObject[this.propertyName]}_getValue_array(e,n){const o=this.resolvedProperty;for(let i=0,r=o.length;i!==r;++i)e[n++]=o[i]}_getValue_arrayElement(e,n){e[n]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(e,n){this.resolvedProperty.toArray(e,n)}_setValue_direct(e,n){this.targetObject[this.propertyName]=e[n]}_setValue_direct_setNeedsUpdate(e,n){this.targetObject[this.propertyName]=e[n],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(e,n){this.targetObject[this.propertyName]=e[n],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(e,n){const o=this.resolvedProperty;for(let i=0,r=o.length;i!==r;++i)o[i]=e[n++]}_setValue_array_setNeedsUpdate(e,n){const o=this.resolvedProperty;for(let i=0,r=o.length;i!==r;++i)o[i]=e[n++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(e,n){const o=this.resolvedProperty;for(let i=0,r=o.length;i!==r;++i)o[i]=e[n++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(e,n){this.resolvedProperty[this.propertyIndex]=e[n]}_setValue_arrayElement_setNeedsUpdate(e,n){this.resolvedProperty[this.propertyIndex]=e[n],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(e,n){this.resolvedProperty[this.propertyIndex]=e[n],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(e,n){this.resolvedProperty.fromArray(e,n)}_setValue_fromArray_setNeedsUpdate(e,n){this.resolvedProperty.fromArray(e,n),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(e,n){this.resolvedProperty.fromArray(e,n),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(e,n){this.bind(),this.getValue(e,n)}_setValue_unbound(e,n){this.bind(),this.setValue(e,n)}bind(){let e=this.node;const n=this.parsedPath,o=n.objectName,i=n.propertyName;let r=n.propertyIndex;if(e||(e=Ll.findNode(this.rootNode,n.nodeName),this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e){console.warn("THREE.PropertyBinding: No target node found for track: "+this.path+".");return}if(o){let c=n.objectIndex;switch(o){case"materials":if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}e=e.material.materials;break;case"bones":if(!e.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}e=e.skeleton.bones;for(let l=0;l<e.length;l++)if(e[l].name===c){c=l;break}break;case"map":if("map"in e){e=e.map;break}if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.map){console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);return}e=e.material.map;break;default:if(e[o]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}e=e[o]}if(c!==void 0){if(e[c]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);return}e=e[c]}}const s=e[i];if(s===void 0){const c=n.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+c+"."+i+" but it wasn't found.",e);return}let a=this.Versioning.None;this.targetObject=e,e.needsUpdate!==void 0?a=this.Versioning.NeedsUpdate:e.matrixWorldNeedsUpdate!==void 0&&(a=this.Versioning.MatrixWorldNeedsUpdate);let A=this.BindingType.Direct;if(r!==void 0){if(i==="morphTargetInfluences"){if(!e.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(!e.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}e.morphTargetDictionary[r]!==void 0&&(r=e.morphTargetDictionary[r])}A=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=r}else s.fromArray!==void 0&&s.toArray!==void 0?(A=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(A=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=i;this.getValue=this.GetterByBindingType[A],this.setValue=this.SetterByBindingTypeAndVersioning[A][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}Ll.Composite=sni,Ll.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Ll.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},Ll.prototype.GetterByBindingType=[Ll.prototype._getValue_direct,Ll.prototype._getValue_array,Ll.prototype._getValue_arrayElement,Ll.prototype._getValue_toArray],Ll.prototype.SetterByBindingTypeAndVersioning=[[Ll.prototype._setValue_direct,Ll.prototype._setValue_direct_setNeedsUpdate,Ll.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Ll.prototype._setValue_array,Ll.prototype._setValue_array_setNeedsUpdate,Ll.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Ll.prototype._setValue_arrayElement,Ll.prototype._setValue_arrayElement_setNeedsUpdate,Ll.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Ll.prototype._setValue_fromArray,Ll.prototype._setValue_fromArray_setNeedsUpdate,Ll.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class uke{constructor(e){this.value=e}clone(){return new uke(this.value.clone===void 0?this.value:this.value.clone())}}const lJt=new va;class uJt{constructor(e,n,o=0,i=1/0){this.ray=new zG(e,n),this.near=o,this.far=i,this.camera=null,this.layers=new pTe,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(e,n){this.ray.set(e,n)}setFromCamera(e,n){n.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(n.matrixWorld),this.ray.direction.set(e.x,e.y,.5).unproject(n).sub(this.ray.origin).normalize(),this.camera=n):n.isOrthographicCamera?(this.ray.origin.set(e.x,e.y,(n.near+n.far)/(n.near-n.far)).unproject(n),this.ray.direction.set(0,0,-1).transformDirection(n.matrixWorld),this.camera=n):console.error("THREE.Raycaster: Unsupported camera type: "+n.type)}setFromXRController(e){return lJt.identity().extractRotation(e.matrixWorld),this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(0,0,-1).applyMatrix4(lJt),this}intersectObject(e,n=!0,o=[]){return gke(e,this,o,n),o.sort(gJt),o}intersectObjects(e,n=!0,o=[]){for(let i=0,r=e.length;i<r;i++)gke(e[i],this,o,n);return o.sort(gJt),o}}function gJt(t,e){return t.distance-e.distance}function gke(t,e,n,o){let i=!0;if(t.layers.test(e.layers)&&t.raycast(e,n)===!1&&(i=!1),i===!0&&o===!0){const r=t.children;for(let s=0,a=r.length;s<a;s++)gke(r[s],e,n,!0)}}class dJt{constructor(e=1,n=0,o=0){return this.radius=e,this.phi=n,this.theta=o,this}set(e,n,o){return this.radius=e,this.phi=n,this.theta=o,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,n,o){return this.radius=Math.sqrt(e*e+n*n+o*o),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,o),this.phi=Math.acos(rf(n/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:mde}})),typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=mde);const hJt=parseInt(mde.replace(/\D+/g,""));function pJt(t,e){if(e===$jo)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),t;if(e===eTe||e===pVt){let n=t.getIndex();if(n===null){const s=[],a=t.getAttribute("position");if(a!==void 0){for(let A=0;A<a.count;A++)s.push(A);t.setIndex(s),n=t.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),t}const o=n.count-2,i=[];if(n)if(e===eTe)for(let s=1;s<=o;s++)i.push(n.getX(0)),i.push(n.getX(s)),i.push(n.getX(s+1));else for(let s=0;s<o;s++)s%2===0?(i.push(n.getX(s)),i.push(n.getX(s+1)),i.push(n.getX(s+2))):(i.push(n.getX(s+2)),i.push(n.getX(s+1)),i.push(n.getX(s)));i.length/3!==o&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const r=t.clone();return r.setIndex(i),r.clearGroups(),r}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),t}var ani=Object.defineProperty,Ani=(t,e,n)=>e in t?ani(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,cni=(t,e,n)=>(Ani(t,e+"",n),n);async function mJt(t){const e=await t.arrayBuffer(),n=btoa(String.fromCharCode(...new Uint8Array(e)));return`data:${t.type||""};base64,${n}`}let hhe,dke,IY,phe;function hke(t,e=1/0,n=null){dke||(dke=new VB(2,2,1,1)),IY||(IY=new f6({uniforms:{blitTexture:new uke(t)},vertexShader:`
        varying vec2 vUv;
        void main(){
            vUv = uv;
            gl_Position = vec4(position.xy * 1.0,0.,.999999);
        }
      `,fragmentShader:`
          uniform sampler2D blitTexture; 
          varying vec2 vUv;

          void main(){ 
              gl_FragColor = vec4(vUv.xy, 0, 1);
              
              #ifdef IS_SRGB
              gl_FragColor = LinearTosRGB( texture2D( blitTexture, vUv) );
              #else
              gl_FragColor = texture2D( blitTexture, vUv);
              #endif
          }
      `})),IY.uniforms.blitTexture.value=t,IY.defines.IS_SRGB="colorSpace"in t?t.colorSpace==="srgb":t.encoding===3001,IY.needsUpdate=!0,phe||(phe=new Er(dke,IY),phe.frustrumCulled=!1);const o=new sf,i=new KR;i.add(phe),n||(n=hhe=new $de({antialias:!1})),n.setSize(Math.min(t.image.width,e),Math.min(t.image.height,e)),n.clear(),n.render(i,o);const r=new Hg(n.domElement);return r.minFilter=t.minFilter,r.magFilter=t.magFilter,r.wrapS=t.wrapS,r.wrapT=t.wrapT,r.name=t.name,hhe&&(hhe.dispose(),hhe=null),r}const _Jt={POSITION:["byte","byte normalized","unsigned byte","unsigned byte normalized","short","short normalized","unsigned short","unsigned short normalized"],NORMAL:["byte normalized","short normalized"],TANGENT:["byte normalized","short normalized"],TEXCOORD:["byte","byte normalized","unsigned byte","short","short normalized","unsigned short"]},pke=(()=>{class t{constructor(){this.pluginCallbacks=[],this.register(function(n){return new Ini(n)}),this.register(function(n){return new Cni(n)}),this.register(function(n){return new Eni(n)}),this.register(function(n){return new Bni(n)}),this.register(function(n){return new bni(n)}),this.register(function(n){return new Sni(n)}),this.register(function(n){return new yni(n)}),this.register(function(n){return new xni(n)}),this.register(function(n){return new Qni(n)}),this.register(function(n){return new vni(n)}),this.register(function(n){return new wni(n)})}register(n){return this.pluginCallbacks.indexOf(n)===-1&&this.pluginCallbacks.push(n),this}unregister(n){return this.pluginCallbacks.indexOf(n)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(n),1),this}parse(n,o,i,r){const s=new fni,a=[];for(let A=0,c=this.pluginCallbacks.length;A<c;A++)a.push(this.pluginCallbacks[A](s));s.setPlugins(a),s.write(n,o,r).catch(i)}parseAsync(n,o){const i=this;return new Promise(function(r,s){i.parse(n,r,s,o)})}}return cni(t,"Utils",{insertKeyframe:function(e,n){const i=e.getValueSize(),r=new e.TimeBufferType(e.times.length+1),s=new e.ValueBufferType(e.values.length+i),a=e.createInterpolant(new e.ValueBufferType(i));let A;if(e.times.length===0){r[0]=n;for(let c=0;c<i;c++)s[c]=0;A=0}else if(n<e.times[0]){if(Math.abs(e.times[0]-n)<.001)return 0;r[0]=n,r.set(e.times,1),s.set(a.evaluate(n),0),s.set(e.values,i),A=0}else if(n>e.times[e.times.length-1]){if(Math.abs(e.times[e.times.length-1]-n)<.001)return e.times.length-1;r[r.length-1]=n,r.set(e.times,0),s.set(e.values,0),s.set(a.evaluate(n),e.values.length),A=r.length-1}else for(let c=0;c<e.times.length;c++){if(Math.abs(e.times[c]-n)<.001)return c;if(e.times[c]<n&&e.times[c+1]>n){r.set(e.times.slice(0,c+1),0),r[c+1]=n,r.set(e.times.slice(c+1),c+2),s.set(e.values.slice(0,(c+1)*i),0),s.set(a.evaluate(n),(c+1)*i),s.set(e.values.slice((c+1)*i),(c+2)*i),A=c+1;break}}return e.times=r,e.values=s,A},mergeMorphTargetTracks:function(e,n){const o=[],i={},r=e.tracks;for(let s=0;s<r.length;++s){let a=r[s];const A=Ll.parseTrackName(a.name),c=Ll.findNode(n,A.nodeName);if(A.propertyName!=="morphTargetInfluences"||A.propertyIndex===void 0){o.push(a);continue}if(a.createInterpolant!==a.InterpolantFactoryMethodDiscrete&&a.createInterpolant!==a.InterpolantFactoryMethodLinear){if(a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline)throw new Error("THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.");console.warn("THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead."),a=a.clone(),a.setInterpolation(kG)}const l=c.morphTargetInfluences.length,u=c.morphTargetDictionary[A.propertyIndex];if(u===void 0)throw new Error("THREE.GLTFExporter: Morph target name not found: "+A.propertyIndex);let g;if(i[c.uuid]===void 0){g=a.clone();const d=new g.ValueBufferType(l*g.times.length);for(let p=0;p<g.times.length;p++)d[p*l+u]=g.values[p];g.name=(A.nodeName||"")+".morphTargetInfluences",g.values=d,i[c.uuid]=g,o.push(g);continue}const h=a.createInterpolant(new a.ValueBufferType(1));g=i[c.uuid];for(let d=0;d<g.times.length;d++)g.values[d*l+u]=h.evaluate(g.times[d]);for(let d=0;d<a.times.length;d++){const p=this.insertKeyframe(g,a.times[d]);g.values[p*l+u]=a.values[d]}}return e.tracks=o,e}}),t})(),Nc={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497},mke="KHR_mesh_quantization",yE={};yE[wC]=Nc.NEAREST,yE[JRe]=Nc.NEAREST_MIPMAP_NEAREST,yE[PG]=Nc.NEAREST_MIPMAP_LINEAR,yE[Fl]=Nc.LINEAR,yE[kq]=Nc.LINEAR_MIPMAP_NEAREST,yE[gm]=Nc.LINEAR_MIPMAP_LINEAR,yE[Xy]=Nc.CLAMP_TO_EDGE,yE[c4]=Nc.REPEAT,yE[Tq]=Nc.MIRRORED_REPEAT;const fJt={scale:"scale",position:"translation",quaternion:"rotation",morphTargetInfluences:"weights"},lni=new Vi,IJt=12,uni=1179937895,gni=2,CJt=8,dni=1313821514,hni=5130562;function oX(t,e){return t.length===e.length&&t.every(function(n,o){return n===e[o]})}function pni(t){return new TextEncoder().encode(t).buffer}function mni(t){return oX(t.elements,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}function _ni(t,e,n){const o={min:new Array(t.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(t.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let i=e;i<e+n;i++)for(let r=0;r<t.itemSize;r++){let s;t.itemSize>4?s=t.array[i*t.itemSize+r]:(r===0?s=t.getX(i):r===1?s=t.getY(i):r===2?s=t.getZ(i):r===3&&(s=t.getW(i)),t.normalized===!0&&(s=OG.normalize(s,t.array))),o.min[r]=Math.min(o.min[r],s),o.max[r]=Math.max(o.max[r],s)}return o}function yJt(t){return Math.ceil(t/4)*4}function _ke(t,e=0){const n=yJt(t.byteLength);if(n!==t.byteLength){const o=new Uint8Array(n);if(o.set(new Uint8Array(t)),e!==0)for(let i=t.byteLength;i<n;i++)o[i]=e;return o.buffer}return t}function xJt(){return typeof document>"u"&&typeof OffscreenCanvas<"u"?new OffscreenCanvas(1,1):document.createElement("canvas")}function EJt(t,e){if(t.toBlob!==void 0)return new Promise(o=>t.toBlob(o,e));let n;return e==="image/jpeg"?n=.92:e==="image/webp"&&(n=.8),t.convertToBlob({type:e,quality:n})}class fni{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}async write(e,n,o={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},o),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(e),await Promise.all(this.pending);const i=this,r=i.buffers,s=i.json;o=i.options;const a=i.extensionsUsed,A=i.extensionsRequired,c=new Blob(r,{type:"application/octet-stream"}),l=Object.keys(a),u=Object.keys(A);l.length>0&&(s.extensionsUsed=l),u.length>0&&(s.extensionsRequired=u),s.buffers&&s.buffers.length>0&&(s.buffers[0].byteLength=c.size),o.binary===!0?c.arrayBuffer().then(g=>{const h=_ke(g),d=new DataView(new ArrayBuffer(CJt));d.setUint32(0,h.byteLength,!0),d.setUint32(4,hni,!0);const p=_ke(pni(JSON.stringify(s)),32),m=new DataView(new ArrayBuffer(CJt));m.setUint32(0,p.byteLength,!0),m.setUint32(4,dni,!0);const _=new ArrayBuffer(IJt),f=new DataView(_);f.setUint32(0,uni,!0),f.setUint32(4,gni,!0);const I=IJt+m.byteLength+p.byteLength+d.byteLength+h.byteLength;f.setUint32(8,I,!0),new Blob([_,m,p,d,h],{type:"application/octet-stream"}).arrayBuffer().then(n)}):s.buffers&&s.buffers.length>0?mJt(c).then(g=>{s.buffers[0].uri=g,n(s)}):n(s)}serializeUserData(e,n){if(Object.keys(e.userData).length===0)return;const o=this.options,i=this.extensionsUsed;try{const r=JSON.parse(JSON.stringify(e.userData));if(o.includeCustomExtensions&&r.gltfExtensions){n.extensions===void 0&&(n.extensions={});for(const s in r.gltfExtensions)n.extensions[s]=r.gltfExtensions[s],i[s]=!0;delete r.gltfExtensions}Object.keys(r).length>0&&(n.extras=r)}catch(r){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+r.message)}}getUID(e,n=!1){if(this.uids.has(e)===!1){const i=new Map;i.set(!0,this.uid++),i.set(!1,this.uid++),this.uids.set(e,i)}return this.uids.get(e).get(n)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;const o=new jt;for(let i=0,r=e.count;i<r;i++)if(Math.abs(o.fromBufferAttribute(e,i).length()-1)>5e-4)return!1;return!0}createNormalizedNormalAttribute(e){const n=this.cache;if(n.attributesNormalized.has(e))return n.attributesNormalized.get(e);const o=e.clone(),i=new jt;for(let r=0,s=o.count;r<s;r++)i.fromBufferAttribute(o,r),i.x===0&&i.y===0&&i.z===0?i.setX(1):i.normalize(),o.setXYZ(r,i.x,i.y,i.z);return n.attributesNormalized.set(e,o),o}applyTextureTransform(e,n){let o=!1;const i={};(n.offset.x!==0||n.offset.y!==0)&&(i.offset=n.offset.toArray(),o=!0),n.rotation!==0&&(i.rotation=n.rotation,o=!0),(n.repeat.x!==1||n.repeat.y!==1)&&(i.scale=n.repeat.toArray(),o=!0),o&&(e.extensions=e.extensions||{},e.extensions.KHR_texture_transform=i,this.extensionsUsed.KHR_texture_transform=!0)}buildMetalRoughTexture(e,n){if(e===n)return e;function o(h){return("colorSpace"in h?h.colorSpace==="srgb":h.encoding===3001)?function(p){return p<.04045?p*.0773993808:Math.pow(p*.9478672986+.0521327014,2.4)}:function(p){return p}}console.warn("THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures."),e instanceof VTe&&(e=hke(e)),n instanceof VTe&&(n=hke(n));const i=e?e.image:null,r=n?n.image:null,s=Math.max(i?i.width:0,r?r.width:0),a=Math.max(i?i.height:0,r?r.height:0),A=xJt();A.width=s,A.height=a;const c=A.getContext("2d");c.fillStyle="#00ffff",c.fillRect(0,0,s,a);const l=c.getImageData(0,0,s,a);if(i){c.drawImage(i,0,0,s,a);const h=o(e),d=c.getImageData(0,0,s,a).data;for(let p=2;p<d.length;p+=4)l.data[p]=h(d[p]/256)*256}if(r){c.drawImage(r,0,0,s,a);const h=o(n),d=c.getImageData(0,0,s,a).data;for(let p=1;p<d.length;p+=4)l.data[p]=h(d[p]/256)*256}c.putImageData(l,0,0);const g=(e||n).clone();return g.source=new Hg(A).source,"colorSpace"in g?g.colorSpace="":g.encoding=3e3,g.channel=(e||n).channel,e&&n&&e.channel!==n.channel&&console.warn("THREE.GLTFExporter: UV channels for metalnessMap and roughnessMap textures must match."),g}processBuffer(e){const n=this.json,o=this.buffers;return n.buffers||(n.buffers=[{byteLength:0}]),o.push(e),0}processBufferView(e,n,o,i,r){const s=this.json;s.bufferViews||(s.bufferViews=[]);let a;switch(n){case Nc.BYTE:case Nc.UNSIGNED_BYTE:a=1;break;case Nc.SHORT:case Nc.UNSIGNED_SHORT:a=2;break;default:a=4}let A=e.itemSize*a;r===Nc.ARRAY_BUFFER&&(A=Math.ceil(A/4)*4);const c=yJt(i*A),l=new DataView(new ArrayBuffer(c));let u=0;for(let d=o;d<o+i;d++){for(let p=0;p<e.itemSize;p++){let m;e.itemSize>4?m=e.array[d*e.itemSize+p]:(p===0?m=e.getX(d):p===1?m=e.getY(d):p===2?m=e.getZ(d):p===3&&(m=e.getW(d)),e.normalized===!0&&(m=OG.normalize(m,e.array))),n===Nc.FLOAT?l.setFloat32(u,m,!0):n===Nc.INT?l.setInt32(u,m,!0):n===Nc.UNSIGNED_INT?l.setUint32(u,m,!0):n===Nc.SHORT?l.setInt16(u,m,!0):n===Nc.UNSIGNED_SHORT?l.setUint16(u,m,!0):n===Nc.BYTE?l.setInt8(u,m):n===Nc.UNSIGNED_BYTE&&l.setUint8(u,m),u+=a}u%A!==0&&(u+=A-u%A)}const g={buffer:this.processBuffer(l.buffer),byteOffset:this.byteOffset,byteLength:c};return r!==void 0&&(g.target=r),r===Nc.ARRAY_BUFFER&&(g.byteStride=A),this.byteOffset+=c,s.bufferViews.push(g),{id:s.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){const n=this,o=n.json;return o.bufferViews||(o.bufferViews=[]),e.arrayBuffer().then(i=>{const r=_ke(i),s={buffer:n.processBuffer(r),byteOffset:n.byteOffset,byteLength:r.byteLength};return n.byteOffset+=r.byteLength,o.bufferViews.push(s)-1})}processAccessor(e,n,o,i){const r=this.json,s={1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"};let a;if(e.array.constructor===Float32Array)a=Nc.FLOAT;else if(e.array.constructor===Int32Array)a=Nc.INT;else if(e.array.constructor===Uint32Array)a=Nc.UNSIGNED_INT;else if(e.array.constructor===Int16Array)a=Nc.SHORT;else if(e.array.constructor===Uint16Array)a=Nc.UNSIGNED_SHORT;else if(e.array.constructor===Int8Array)a=Nc.BYTE;else if(e.array.constructor===Uint8Array)a=Nc.UNSIGNED_BYTE;else throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);if(o===void 0&&(o=0),i===void 0&&(i=e.count),i===0)return null;const A=_ni(e,o,i);let c;n!==void 0&&(c=e===n.index?Nc.ELEMENT_ARRAY_BUFFER:Nc.ARRAY_BUFFER);const l=this.processBufferView(e,a,o,i,c),u={bufferView:l.id,byteOffset:l.byteOffset,componentType:a,count:i,max:A.max,min:A.min,type:s[e.itemSize]};return e.normalized===!0&&(u.normalized=!0),r.accessors||(r.accessors=[]),r.accessors.push(u)-1}processImage(e,n,o,i="image/png"){if(e!==null){const r=this,s=r.cache,a=r.json,A=r.options,c=r.pending;s.images.has(e)||s.images.set(e,{});const l=s.images.get(e),u=i+":flipY/"+o.toString();if(l[u]!==void 0)return l[u];a.images||(a.images=[]);const g={mimeType:i},h=xJt();h.width=Math.min(e.width,A.maxTextureSize),h.height=Math.min(e.height,A.maxTextureSize);const d=h.getContext("2d");if(o===!0&&(d.translate(0,h.height),d.scale(1,-1)),e.data!==void 0){n!==l4&&console.error("GLTFExporter: Only RGBAFormat is supported.",n),(e.width>A.maxTextureSize||e.height>A.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);const m=new Uint8ClampedArray(e.height*e.width*4);for(let _=0;_<m.length;_+=4)m[_+0]=e.data[_+0],m[_+1]=e.data[_+1],m[_+2]=e.data[_+2],m[_+3]=e.data[_+3];d.putImageData(new ImageData(m,e.width,e.height),0,0)}else d.drawImage(e,0,0,h.width,h.height);A.binary===!0?c.push(EJt(h,i).then(m=>r.processBufferViewImage(m)).then(m=>{g.bufferView=m})):h.toDataURL!==void 0?g.uri=h.toDataURL(i):c.push(EJt(h,i).then(mJt).then(m=>{g.uri=m}));const p=a.images.push(g)-1;return l[u]=p,p}else throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){const n=this.json;n.samplers||(n.samplers=[]);const o={magFilter:yE[e.magFilter],minFilter:yE[e.minFilter],wrapS:yE[e.wrapS],wrapT:yE[e.wrapT]};return n.samplers.push(o)-1}processTexture(e){const o=this.options,i=this.cache,r=this.json;if(i.textures.has(e))return i.textures.get(e);r.textures||(r.textures=[]),e instanceof VTe&&(e=hke(e,o.maxTextureSize));let s=e.userData.mimeType;s==="image/webp"&&(s="image/png");const a={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,s)};e.name&&(a.name=e.name),this._invokeAll(function(c){c.writeTexture&&c.writeTexture(e,a)});const A=r.textures.push(a)-1;return i.textures.set(e,A),A}processMaterial(e){const n=this.cache,o=this.json;if(n.materials.has(e))return n.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;o.materials||(o.materials=[]);const i={pbrMetallicRoughness:{}};e.isMeshStandardMaterial!==!0&&e.isMeshBasicMaterial!==!0&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");const r=e.color.toArray().concat([e.opacity]);if(oX(r,[1,1,1,1])||(i.pbrMetallicRoughness.baseColorFactor=r),e.isMeshStandardMaterial?(i.pbrMetallicRoughness.metallicFactor=e.metalness,i.pbrMetallicRoughness.roughnessFactor=e.roughness):(i.pbrMetallicRoughness.metallicFactor=.5,i.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){const a=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),A={index:this.processTexture(a),channel:a.channel};this.applyTextureTransform(A,a),i.pbrMetallicRoughness.metallicRoughnessTexture=A}if(e.map){const a={index:this.processTexture(e.map),texCoord:e.map.channel};this.applyTextureTransform(a,e.map),i.pbrMetallicRoughness.baseColorTexture=a}if(e.emissive){const a=e.emissive;if(Math.max(a.r,a.g,a.b)>0&&(i.emissiveFactor=e.emissive.toArray()),e.emissiveMap){const c={index:this.processTexture(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(c,e.emissiveMap),i.emissiveTexture=c}}if(e.normalMap){const a={index:this.processTexture(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&e.normalScale.x!==1&&(a.scale=e.normalScale.x),this.applyTextureTransform(a,e.normalMap),i.normalTexture=a}if(e.aoMap){const a={index:this.processTexture(e.aoMap),texCoord:e.aoMap.channel};e.aoMapIntensity!==1&&(a.strength=e.aoMapIntensity),this.applyTextureTransform(a,e.aoMap),i.occlusionTexture=a}e.transparent?i.alphaMode="BLEND":e.alphaTest>0&&(i.alphaMode="MASK",i.alphaCutoff=e.alphaTest),e.side===r_&&(i.doubleSided=!0),e.name!==""&&(i.name=e.name),this.serializeUserData(e,i),this._invokeAll(function(a){a.writeMaterial&&a.writeMaterial(e,i)});const s=o.materials.push(i)-1;return n.materials.set(e,s),s}processMesh(e){const n=this.cache,o=this.json,i=[e.geometry.uuid];if(Array.isArray(e.material))for(let I=0,C=e.material.length;I<C;I++)i.push(e.material[I].uuid);else i.push(e.material.uuid);const r=i.join(":");if(n.meshes.has(r))return n.meshes.get(r);const s=e.geometry;let a;e.isLineSegments?a=Nc.LINES:e.isLineLoop?a=Nc.LINE_LOOP:e.isLine?a=Nc.LINE_STRIP:e.isPoints?a=Nc.POINTS:a=e.material.wireframe?Nc.LINES:Nc.TRIANGLES;const A={},c={},l=[],u=[],g={...hJt>=152?{uv:"TEXCOORD_0",uv1:"TEXCOORD_1",uv2:"TEXCOORD_2",uv3:"TEXCOORD_3"}:{uv:"TEXCOORD_0",uv2:"TEXCOORD_1"},color:"COLOR_0",skinWeight:"WEIGHTS_0",skinIndex:"JOINTS_0"},h=s.getAttribute("normal");h!==void 0&&!this.isNormalizedNormalAttribute(h)&&(console.warn("THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one."),s.setAttribute("normal",this.createNormalizedNormalAttribute(h)));let d=null;for(let I in s.attributes){if(I.slice(0,5)==="morph")continue;const C=s.attributes[I];if(I=g[I]||I.toUpperCase(),/^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(I)||(I="_"+I),n.attributes.has(this.getUID(C))){c[I]=n.attributes.get(this.getUID(C));continue}d=null;const x=C.array;I==="JOINTS_0"&&!(x instanceof Uint16Array)&&!(x instanceof Uint8Array)&&(console.warn('GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.'),d=new tg(new Uint16Array(x),C.itemSize,C.normalized));const E=this.processAccessor(d||C,s);E!==null&&(I.startsWith("_")||this.detectMeshQuantization(I,C),c[I]=E,n.attributes.set(this.getUID(C),E))}if(h!==void 0&&s.setAttribute("normal",h),Object.keys(c).length===0)return null;if(e.morphTargetInfluences!==void 0&&e.morphTargetInfluences.length>0){const I=[],C=[],y={};if(e.morphTargetDictionary!==void 0)for(const x in e.morphTargetDictionary)y[e.morphTargetDictionary[x]]=x;for(let x=0;x<e.morphTargetInfluences.length;++x){const E={};let B=!1;for(const S in s.morphAttributes){if(S!=="position"&&S!=="normal"){B||(console.warn("GLTFExporter: Only POSITION and NORMAL morph are supported."),B=!0);continue}const Q=s.morphAttributes[S][x],w=S.toUpperCase(),M=s.attributes[S];if(n.attributes.has(this.getUID(Q,!0))){E[w]=n.attributes.get(this.getUID(Q,!0));continue}const k=Q.clone();if(!s.morphTargetsRelative)for(let R=0,F=Q.count;R<F;R++)for(let O=0;O<Q.itemSize;O++)O===0&&k.setX(R,Q.getX(R)-M.getX(R)),O===1&&k.setY(R,Q.getY(R)-M.getY(R)),O===2&&k.setZ(R,Q.getZ(R)-M.getZ(R)),O===3&&k.setW(R,Q.getW(R)-M.getW(R));E[w]=this.processAccessor(k,s),n.attributes.set(this.getUID(M,!0),E[w])}u.push(E),I.push(e.morphTargetInfluences[x]),e.morphTargetDictionary!==void 0&&C.push(y[x])}A.weights=I,C.length>0&&(A.extras={},A.extras.targetNames=C)}const p=Array.isArray(e.material);if(p&&s.groups.length===0)return null;const m=p?e.material:[e.material],_=p?s.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let I=0,C=_.length;I<C;I++){const y={mode:a,attributes:c};if(this.serializeUserData(s,y),u.length>0&&(y.targets=u),s.index!==null){let E=this.getUID(s.index);(_[I].start!==void 0||_[I].count!==void 0)&&(E+=":"+_[I].start+":"+_[I].count),n.attributes.has(E)?y.indices=n.attributes.get(E):(y.indices=this.processAccessor(s.index,s,_[I].start,_[I].count),n.attributes.set(E,y.indices)),y.indices===null&&delete y.indices}const x=this.processMaterial(m[_[I].materialIndex]);x!==null&&(y.material=x),l.push(y)}A.primitives=l,o.meshes||(o.meshes=[]),this._invokeAll(function(I){I.writeMesh&&I.writeMesh(e,A)});const f=o.meshes.push(A)-1;return n.meshes.set(r,f),f}detectMeshQuantization(e,n){if(this.extensionsUsed[mke])return;let o;switch(n.array.constructor){case Int8Array:o="byte";break;case Uint8Array:o="unsigned byte";break;case Int16Array:o="short";break;case Uint16Array:o="unsigned short";break;default:return}n.normalized&&(o+=" normalized");const i=e.split("_",1)[0];_Jt[i]&&_Jt[i].includes(o)&&(this.extensionsUsed[mke]=!0,this.extensionsRequired[mke]=!0)}processCamera(e){const n=this.json;n.cameras||(n.cameras=[]);const o=e.isOrthographicCamera,i={type:o?"orthographic":"perspective"};return o?i.orthographic={xmag:e.right*2,ymag:e.top*2,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:i.perspective={aspectRatio:e.aspect,yfov:OG.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},e.name!==""&&(i.name=e.type),n.cameras.push(i)-1}processAnimation(e,n){const o=this.json,i=this.nodeMap;o.animations||(o.animations=[]),e=pke.Utils.mergeMorphTargetTracks(e.clone(),n);const r=e.tracks,s=[],a=[];for(let A=0;A<r.length;++A){const c=r[A],l=Ll.parseTrackName(c.name);let u=Ll.findNode(n,l.nodeName);const g=fJt[l.propertyName];if(l.objectName==="bones"&&(u.isSkinnedMesh===!0?u=u.skeleton.getBoneByName(l.objectIndex):u=void 0),!u||!g)return console.warn('THREE.GLTFExporter: Could not export animation track "%s".',c.name),null;const h=1;let d=c.values.length/c.times.length;g===fJt.morphTargetInfluences&&(d/=u.morphTargetInfluences.length);let p;c.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline===!0?(p="CUBICSPLINE",d/=3):c.getInterpolation()===TG?p="STEP":p="LINEAR",a.push({input:this.processAccessor(new tg(c.times,h)),output:this.processAccessor(new tg(c.values,d)),interpolation:p}),s.push({sampler:a.length-1,target:{node:i.get(u),path:g}})}return o.animations.push({name:e.name||"clip_"+o.animations.length,samplers:a,channels:s}),o.animations.length-1}processSkin(e){const n=this.json,o=this.nodeMap,i=n.nodes[o.get(e)],r=e.skeleton;if(r===void 0)return null;const s=e.skeleton.bones[0];if(s===void 0)return null;const a=[],A=new Float32Array(r.bones.length*16),c=new va;for(let u=0;u<r.bones.length;++u)a.push(o.get(r.bones[u])),c.copy(r.boneInverses[u]),c.multiply(e.bindMatrix).toArray(A,u*16);return n.skins===void 0&&(n.skins=[]),n.skins.push({inverseBindMatrices:this.processAccessor(new tg(A,16)),joints:a,skeleton:o.get(s)}),i.skin=n.skins.length-1}processNode(e){const n=this.json,o=this.options,i=this.nodeMap;n.nodes||(n.nodes=[]);const r={};if(o.trs){const a=e.quaternion.toArray(),A=e.position.toArray(),c=e.scale.toArray();oX(a,[0,0,0,1])||(r.rotation=a),oX(A,[0,0,0])||(r.translation=A),oX(c,[1,1,1])||(r.scale=c)}else e.matrixAutoUpdate&&e.updateMatrix(),mni(e.matrix)===!1&&(r.matrix=e.matrix.elements);if(e.name!==""&&(r.name=String(e.name)),this.serializeUserData(e,r),e.isMesh||e.isLine||e.isPoints){const a=this.processMesh(e);a!==null&&(r.mesh=a)}else e.isCamera&&(r.camera=this.processCamera(e));if(e.isSkinnedMesh&&this.skins.push(e),e.children.length>0){const a=[];for(let A=0,c=e.children.length;A<c;A++){const l=e.children[A];if(l.visible||o.onlyVisible===!1){const u=this.processNode(l);u!==null&&a.push(u)}}a.length>0&&(r.children=a)}this._invokeAll(function(a){a.writeNode&&a.writeNode(e,r)});const s=n.nodes.push(r)-1;return i.set(e,s),s}processScene(e){const n=this.json,o=this.options;n.scenes||(n.scenes=[],n.scene=0);const i={};e.name!==""&&(i.name=e.name),n.scenes.push(i);const r=[];for(let s=0,a=e.children.length;s<a;s++){const A=e.children[s];if(A.visible||o.onlyVisible===!1){const c=this.processNode(A);c!==null&&r.push(c)}}r.length>0&&(i.nodes=r),this.serializeUserData(e,i)}processObjects(e){const n=new KR;n.name="AuxScene";for(let o=0;o<e.length;o++)n.children.push(e[o]);this.processScene(n)}processInput(e){const n=this.options;e=e instanceof Array?e:[e],this._invokeAll(function(i){i.beforeParse&&i.beforeParse(e)});const o=[];for(let i=0;i<e.length;i++)e[i]instanceof KR?this.processScene(e[i]):o.push(e[i]);o.length>0&&this.processObjects(o);for(let i=0;i<this.skins.length;++i)this.processSkin(this.skins[i]);for(let i=0;i<n.animations.length;++i)this.processAnimation(n.animations[i],e[0]);this._invokeAll(function(i){i.afterParse&&i.afterParse(e)})}_invokeAll(e){for(let n=0,o=this.plugins.length;n<o;n++)e(this.plugins[n])}}class Ini{constructor(e){this.writer=e,this.name="KHR_lights_punctual"}writeNode(e,n){if(!e.isLight)return;if(!e.isDirectionalLight&&!e.isPointLight&&!e.isSpotLight){console.warn("THREE.GLTFExporter: Only directional, point, and spot lights are supported.",e);return}const o=this.writer,i=o.json,r=o.extensionsUsed,s={};e.name&&(s.name=e.name),s.color=e.color.toArray(),s.intensity=e.intensity,e.isDirectionalLight?s.type="directional":e.isPointLight?(s.type="point",e.distance>0&&(s.range=e.distance)):e.isSpotLight&&(s.type="spot",e.distance>0&&(s.range=e.distance),s.spot={},s.spot.innerConeAngle=(e.penumbra-1)*e.angle*-1,s.spot.outerConeAngle=e.angle),e.decay!==void 0&&e.decay!==2&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||e.target.position.x!==0||e.target.position.y!==0||e.target.position.z!==-1)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),r[this.name]||(i.extensions=i.extensions||{},i.extensions[this.name]={lights:[]},r[this.name]=!0);const a=i.extensions[this.name].lights;a.push(s),n.extensions=n.extensions||{},n.extensions[this.name]={light:a.length-1}}}let Cni=class{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}writeMaterial(e,n){if(!e.isMeshBasicMaterial)return;const i=this.writer.extensionsUsed;n.extensions=n.extensions||{},n.extensions[this.name]={},i[this.name]=!0,n.pbrMetallicRoughness.metallicFactor=0,n.pbrMetallicRoughness.roughnessFactor=.9}},yni=class{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}writeMaterial(e,n){if(!e.isMeshPhysicalMaterial||e.clearcoat===0)return;const o=this.writer,i=o.extensionsUsed,r={};if(r.clearcoatFactor=e.clearcoat,e.clearcoatMap){const s={index:o.processTexture(e.clearcoatMap),texCoord:e.clearcoatMap.channel};o.applyTextureTransform(s,e.clearcoatMap),r.clearcoatTexture=s}if(r.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){const s={index:o.processTexture(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};o.applyTextureTransform(s,e.clearcoatRoughnessMap),r.clearcoatRoughnessTexture=s}if(e.clearcoatNormalMap){const s={index:o.processTexture(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};o.applyTextureTransform(s,e.clearcoatNormalMap),r.clearcoatNormalTexture=s}n.extensions=n.extensions||{},n.extensions[this.name]=r,i[this.name]=!0}},xni=class{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}writeMaterial(e,n){if(!e.isMeshPhysicalMaterial||e.iridescence===0)return;const o=this.writer,i=o.extensionsUsed,r={};if(r.iridescenceFactor=e.iridescence,e.iridescenceMap){const s={index:o.processTexture(e.iridescenceMap),texCoord:e.iridescenceMap.channel};o.applyTextureTransform(s,e.iridescenceMap),r.iridescenceTexture=s}if(r.iridescenceIor=e.iridescenceIOR,r.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],r.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){const s={index:o.processTexture(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};o.applyTextureTransform(s,e.iridescenceThicknessMap),r.iridescenceThicknessTexture=s}n.extensions=n.extensions||{},n.extensions[this.name]=r,i[this.name]=!0}},Eni=class{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}writeMaterial(e,n){if(!e.isMeshPhysicalMaterial||e.transmission===0)return;const o=this.writer,i=o.extensionsUsed,r={};if(r.transmissionFactor=e.transmission,e.transmissionMap){const s={index:o.processTexture(e.transmissionMap),texCoord:e.transmissionMap.channel};o.applyTextureTransform(s,e.transmissionMap),r.transmissionTexture=s}n.extensions=n.extensions||{},n.extensions[this.name]=r,i[this.name]=!0}},Bni=class{constructor(e){this.writer=e,this.name="KHR_materials_volume"}writeMaterial(e,n){if(!e.isMeshPhysicalMaterial||e.transmission===0)return;const o=this.writer,i=o.extensionsUsed,r={};if(r.thicknessFactor=e.thickness,e.thicknessMap){const s={index:o.processTexture(e.thicknessMap),texCoord:e.thicknessMap.channel};o.applyTextureTransform(s,e.thicknessMap),r.thicknessTexture=s}r.attenuationDistance=e.attenuationDistance,r.attenuationColor=e.attenuationColor.toArray(),n.extensions=n.extensions||{},n.extensions[this.name]=r,i[this.name]=!0}},bni=class{constructor(e){this.writer=e,this.name="KHR_materials_ior"}writeMaterial(e,n){if(!e.isMeshPhysicalMaterial||e.ior===1.5)return;const i=this.writer.extensionsUsed,r={};r.ior=e.ior,n.extensions=n.extensions||{},n.extensions[this.name]=r,i[this.name]=!0}},Sni=class{constructor(e){this.writer=e,this.name="KHR_materials_specular"}writeMaterial(e,n){if(!e.isMeshPhysicalMaterial||e.specularIntensity===1&&e.specularColor.equals(lni)&&!e.specularIntensityMap&&!e.specularColorTexture)return;const o=this.writer,i=o.extensionsUsed,r={};if(e.specularIntensityMap){const s={index:o.processTexture(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};o.applyTextureTransform(s,e.specularIntensityMap),r.specularTexture=s}if(e.specularColorMap){const s={index:o.processTexture(e.specularColorMap),texCoord:e.specularColorMap.channel};o.applyTextureTransform(s,e.specularColorMap),r.specularColorTexture=s}r.specularFactor=e.specularIntensity,r.specularColorFactor=e.specularColor.toArray(),n.extensions=n.extensions||{},n.extensions[this.name]=r,i[this.name]=!0}},Qni=class{constructor(e){this.writer=e,this.name="KHR_materials_sheen"}writeMaterial(e,n){if(!e.isMeshPhysicalMaterial||e.sheen==0)return;const o=this.writer,i=o.extensionsUsed,r={};if(e.sheenRoughnessMap){const s={index:o.processTexture(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};o.applyTextureTransform(s,e.sheenRoughnessMap),r.sheenRoughnessTexture=s}if(e.sheenColorMap){const s={index:o.processTexture(e.sheenColorMap),texCoord:e.sheenColorMap.channel};o.applyTextureTransform(s,e.sheenColorMap),r.sheenColorTexture=s}r.sheenRoughnessFactor=e.sheenRoughness,r.sheenColorFactor=e.sheenColor.toArray(),n.extensions=n.extensions||{},n.extensions[this.name]=r,i[this.name]=!0}},vni=class{constructor(e){this.writer=e,this.name="KHR_materials_anisotropy"}writeMaterial(e,n){if(!e.isMeshPhysicalMaterial||e.anisotropy==0)return;const o=this.writer,i=o.extensionsUsed,r={};if(e.anisotropyMap){const s={index:o.processTexture(e.anisotropyMap)};o.applyTextureTransform(s,e.anisotropyMap),r.anisotropyTexture=s}r.anisotropyStrength=e.anisotropy,r.anisotropyRotation=e.anisotropyRotation,n.extensions=n.extensions||{},n.extensions[this.name]=r,i[this.name]=!0}},wni=class{constructor(e){this.writer=e,this.name="KHR_materials_emissive_strength"}writeMaterial(e,n){if(!e.isMeshStandardMaterial||e.emissiveIntensity===1)return;const i=this.writer.extensionsUsed,r={};r.emissiveStrength=e.emissiveIntensity,n.extensions=n.extensions||{},n.extensions[this.name]=r,i[this.name]=!0}};function Pni(){const t=new KR,e=new Yx;e.deleteAttribute("uv");const n=new su({side:uI}),o=new su,i=new sJt(16777215,5,28,2);i.position.set(.418,16.199,.3),t.add(i);const r=new Er(e,n);r.position.set(-.757,13.219,.717),r.scale.set(31.713,28.305,28.591),t.add(r);const s=new Er(e,o);s.position.set(-10.906,2.009,1.846),s.rotation.set(0,-.195,0),s.scale.set(2.328,7.905,4.651),t.add(s);const a=new Er(e,o);a.position.set(-5.607,-.754,-.758),a.rotation.set(0,.994,0),a.scale.set(1.97,1.534,3.955),t.add(a);const A=new Er(e,o);A.position.set(6.167,.857,7.803),A.rotation.set(0,.561,0),A.scale.set(3.927,6.285,3.687),t.add(A);const c=new Er(e,o);c.position.set(-2.017,.018,6.124),c.rotation.set(0,.333,0),c.scale.set(2.002,4.566,2.064),t.add(c);const l=new Er(e,o);l.position.set(2.291,-.756,-2.621),l.rotation.set(0,-.286,0),l.scale.set(1.546,1.552,1.496),t.add(l);const u=new Er(e,o);u.position.set(-2.193,-.369,-5.547),u.rotation.set(0,.516,0),u.scale.set(3.875,3.487,2.986),t.add(u);const g=new Er(e,f(50));g.position.set(-16.116,14.37,8.208),g.scale.set(.1,2.428,2.739),t.add(g);const h=new Er(e,f(50));h.position.set(-16.109,18.021,-8.207),h.scale.set(.1,2.425,2.751),t.add(h);const d=new Er(e,f(17));d.position.set(14.904,12.198,-1.832),d.scale.set(.15,4.265,6.331),t.add(d);const p=new Er(e,f(43));p.position.set(-.462,8.89,14.52),p.scale.set(4.38,5.441,.088),t.add(p);const m=new Er(e,f(20));m.position.set(3.235,11.486,-12.541),m.scale.set(2.5,2,.1),t.add(m);const _=new Er(e,f(100));_.position.set(0,20,0),_.scale.set(1,.1,1),t.add(_);function f(I){const C=new fE;return C.color.setScalar(I),C}return t}function iX(t){if(typeof TextDecoder<"u")return new TextDecoder().decode(t);let e="";for(let n=0,o=t.length;n<o;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch{return e}}const $R="srgb",rS="srgb-linear",BJt=3001,Mni=3e3;class Dni extends x6{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(n){return new Fni(n)}),this.register(function(n){return new Lni(n)}),this.register(function(n){return new Jni(n)}),this.register(function(n){return new Wni(n)}),this.register(function(n){return new jni(n)}),this.register(function(n){return new Oni(n)}),this.register(function(n){return new Gni(n)}),this.register(function(n){return new Yni(n)}),this.register(function(n){return new Uni(n)}),this.register(function(n){return new kni(n)}),this.register(function(n){return new Kni(n)}),this.register(function(n){return new Hni(n)}),this.register(function(n){return new zni(n)}),this.register(function(n){return new Vni(n)}),this.register(function(n){return new Rni(n)}),this.register(function(n){return new $ni(n)}),this.register(function(n){return new qni(n)})}load(e,n,o,i){const r=this;let s;if(this.resourcePath!=="")s=this.resourcePath;else if(this.path!==""){const c=jR.extractUrlBase(e);s=jR.resolveURL(c,this.path)}else s=jR.extractUrlBase(e);this.manager.itemStart(e);const a=function(c){i?i(c):console.error(c),r.manager.itemError(e),r.manager.itemEnd(e)},A=new fY(this.manager);A.setPath(this.path),A.setResponseType("arraybuffer"),A.setRequestHeader(this.requestHeader),A.setWithCredentials(this.withCredentials),A.load(e,function(c){try{r.parse(c,s,function(l){n(l),r.manager.itemEnd(e)},a)}catch(l){a(l)}},o,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,n,o,i){let r;const s={},a={};if(typeof e=="string")r=JSON.parse(e);else if(e instanceof ArrayBuffer)if(iX(new Uint8Array(e.slice(0,4)))===bJt){try{s[Rc.KHR_BINARY_GLTF]=new Xni(e)}catch(l){i&&i(l);return}r=JSON.parse(s[Rc.KHR_BINARY_GLTF].content)}else r=JSON.parse(iX(new Uint8Array(e)));else r=e;if(r.asset===void 0||r.asset.version[0]<2){i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const A=new uoi(r,{path:n||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});A.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c<this.pluginCallbacks.length;c++){const l=this.pluginCallbacks[c](A);l.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),a[l.name]=l,s[l.name]=!0}if(r.extensionsUsed)for(let c=0;c<r.extensionsUsed.length;++c){const l=r.extensionsUsed[c],u=r.extensionsRequired||[];switch(l){case Rc.KHR_MATERIALS_UNLIT:s[l]=new Tni;break;case Rc.KHR_DRACO_MESH_COMPRESSION:s[l]=new Zni(r,this.dracoLoader);break;case Rc.KHR_TEXTURE_TRANSFORM:s[l]=new eoi;break;case Rc.KHR_MESH_QUANTIZATION:s[l]=new toi;break;default:u.indexOf(l)>=0&&a[l]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+l+'".')}}A.setExtensions(s),A.setPlugins(a),A.parse(o,i)}parseAsync(e,n){const o=this;return new Promise(function(i,r){o.parse(e,n,i,r)})}}function Nni(){let t={};return{get:function(e){return t[e]},add:function(e,n){t[e]=n},remove:function(e){delete t[e]},removeAll:function(){t={}}}}const Rc={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Rni{constructor(e){this.parser=e,this.name=Rc.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,n=this.parser.json.nodes||[];for(let o=0,i=n.length;o<i;o++){const r=n[o];r.extensions&&r.extensions[this.name]&&r.extensions[this.name].light!==void 0&&e._addNodeRef(this.cache,r.extensions[this.name].light)}}_loadLight(e){const n=this.parser,o="light:"+e;let i=n.cache.get(o);if(i)return i;const r=n.json,A=((r.extensions&&r.extensions[this.name]||{}).lights||[])[e];let c;const l=new Vi(16777215);A.color!==void 0&&l.setRGB(A.color[0],A.color[1],A.color[2],rS);const u=A.range!==void 0?A.range:0;switch(A.type){case"directional":c=new aJt(l),c.target.position.set(0,0,-1),c.add(c.target);break;case"point":c=new sJt(l),c.distance=u;break;case"spot":c=new zti(l),c.distance=u,A.spot=A.spot||{},A.spot.innerConeAngle=A.spot.innerConeAngle!==void 0?A.spot.innerConeAngle:0,A.spot.outerConeAngle=A.spot.outerConeAngle!==void 0?A.spot.outerConeAngle:Math.PI/4,c.angle=A.spot.outerConeAngle,c.penumbra=1-A.spot.innerConeAngle/A.spot.outerConeAngle,c.target.position.set(0,0,-1),c.add(c.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+A.type)}return c.position.set(0,0,0),c.decay=2,sS(c,A),A.intensity!==void 0&&(c.intensity=A.intensity),c.name=n.createUniqueName(A.name||"light_"+e),i=Promise.resolve(c),n.cache.add(o,i),i}getDependency(e,n){if(e==="light")return this._loadLight(n)}createNodeAttachment(e){const n=this,o=this.parser,r=o.json.nodes[e],a=(r.extensions&&r.extensions[this.name]||{}).light;return a===void 0?null:this._loadLight(a).then(function(A){return o._getNodeRef(n.cache,a,A)})}}class Tni{constructor(){this.name=Rc.KHR_MATERIALS_UNLIT}getMaterialType(){return fE}extendParams(e,n,o){const i=[];e.color=new Vi(1,1,1),e.opacity=1;const r=n.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){const s=r.baseColorFactor;e.color.setRGB(s[0],s[1],s[2],rS),e.opacity=s[3]}r.baseColorTexture!==void 0&&i.push(o.assignTexture(e,"map",r.baseColorTexture,$R))}return Promise.all(i)}}class kni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,n){const i=this.parser.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=i.extensions[this.name].emissiveStrength;return r!==void 0&&(n.emissiveIntensity=r),Promise.resolve()}}class Fni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const o=this.parser,i=o.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];if(s.clearcoatFactor!==void 0&&(n.clearcoat=s.clearcoatFactor),s.clearcoatTexture!==void 0&&r.push(o.assignTexture(n,"clearcoatMap",s.clearcoatTexture)),s.clearcoatRoughnessFactor!==void 0&&(n.clearcoatRoughness=s.clearcoatRoughnessFactor),s.clearcoatRoughnessTexture!==void 0&&r.push(o.assignTexture(n,"clearcoatRoughnessMap",s.clearcoatRoughnessTexture)),s.clearcoatNormalTexture!==void 0&&(r.push(o.assignTexture(n,"clearcoatNormalMap",s.clearcoatNormalTexture)),s.clearcoatNormalTexture.scale!==void 0)){const a=s.clearcoatNormalTexture.scale;n.clearcoatNormalScale=new ni(a,a)}return Promise.all(r)}}class Lni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_DISPERSION}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const i=this.parser.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=i.extensions[this.name];return n.dispersion=r.dispersion!==void 0?r.dispersion:0,Promise.resolve()}}class Hni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const o=this.parser,i=o.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return s.iridescenceFactor!==void 0&&(n.iridescence=s.iridescenceFactor),s.iridescenceTexture!==void 0&&r.push(o.assignTexture(n,"iridescenceMap",s.iridescenceTexture)),s.iridescenceIor!==void 0&&(n.iridescenceIOR=s.iridescenceIor),n.iridescenceThicknessRange===void 0&&(n.iridescenceThicknessRange=[100,400]),s.iridescenceThicknessMinimum!==void 0&&(n.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),s.iridescenceThicknessMaximum!==void 0&&(n.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),s.iridescenceThicknessTexture!==void 0&&r.push(o.assignTexture(n,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(r)}}class Oni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_SHEEN}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const o=this.parser,i=o.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[];n.sheenColor=new Vi(0,0,0),n.sheenRoughness=0,n.sheen=1;const s=i.extensions[this.name];if(s.sheenColorFactor!==void 0){const a=s.sheenColorFactor;n.sheenColor.setRGB(a[0],a[1],a[2],rS)}return s.sheenRoughnessFactor!==void 0&&(n.sheenRoughness=s.sheenRoughnessFactor),s.sheenColorTexture!==void 0&&r.push(o.assignTexture(n,"sheenColorMap",s.sheenColorTexture,$R)),s.sheenRoughnessTexture!==void 0&&r.push(o.assignTexture(n,"sheenRoughnessMap",s.sheenRoughnessTexture)),Promise.all(r)}}class Gni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const o=this.parser,i=o.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return s.transmissionFactor!==void 0&&(n.transmission=s.transmissionFactor),s.transmissionTexture!==void 0&&r.push(o.assignTexture(n,"transmissionMap",s.transmissionTexture)),Promise.all(r)}}class Yni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_VOLUME}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const o=this.parser,i=o.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];n.thickness=s.thicknessFactor!==void 0?s.thicknessFactor:0,s.thicknessTexture!==void 0&&r.push(o.assignTexture(n,"thicknessMap",s.thicknessTexture)),n.attenuationDistance=s.attenuationDistance||1/0;const a=s.attenuationColor||[1,1,1];return n.attenuationColor=new Vi().setRGB(a[0],a[1],a[2],rS),Promise.all(r)}}class Uni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_IOR}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const i=this.parser.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=i.extensions[this.name];return n.ior=r.ior!==void 0?r.ior:1.5,Promise.resolve()}}class Kni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_SPECULAR}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const o=this.parser,i=o.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];n.specularIntensity=s.specularFactor!==void 0?s.specularFactor:1,s.specularTexture!==void 0&&r.push(o.assignTexture(n,"specularIntensityMap",s.specularTexture));const a=s.specularColorFactor||[1,1,1];return n.specularColor=new Vi().setRGB(a[0],a[1],a[2],rS),s.specularColorTexture!==void 0&&r.push(o.assignTexture(n,"specularColorMap",s.specularColorTexture,$R)),Promise.all(r)}}class Vni{constructor(e){this.parser=e,this.name=Rc.EXT_MATERIALS_BUMP}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const o=this.parser,i=o.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return n.bumpScale=s.bumpFactor!==void 0?s.bumpFactor:1,s.bumpTexture!==void 0&&r.push(o.assignTexture(n,"bumpMap",s.bumpTexture)),Promise.all(r)}}class zni{constructor(e){this.parser=e,this.name=Rc.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){const o=this.parser.json.materials[e];return!o.extensions||!o.extensions[this.name]?null:CE}extendMaterialParams(e,n){const o=this.parser,i=o.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return s.anisotropyStrength!==void 0&&(n.anisotropy=s.anisotropyStrength),s.anisotropyRotation!==void 0&&(n.anisotropyRotation=s.anisotropyRotation),s.anisotropyTexture!==void 0&&r.push(o.assignTexture(n,"anisotropyMap",s.anisotropyTexture)),Promise.all(r)}}class Jni{constructor(e){this.parser=e,this.name=Rc.KHR_TEXTURE_BASISU}loadTexture(e){const n=this.parser,o=n.json,i=o.textures[e];if(!i.extensions||!i.extensions[this.name])return null;const r=i.extensions[this.name],s=n.options.ktx2Loader;if(!s){if(o.extensionsRequired&&o.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return n.loadTextureImage(e,r.source,s)}}class Wni{constructor(e){this.parser=e,this.name=Rc.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const n=this.name,o=this.parser,i=o.json,r=i.textures[e];if(!r.extensions||!r.extensions[n])return null;const s=r.extensions[n],a=i.images[s.source];let A=o.textureLoader;if(a.uri){const c=o.options.manager.getHandler(a.uri);c!==null&&(A=c)}return this.detectSupport().then(function(c){if(c)return o.loadTextureImage(e,s.source,A);if(i.extensionsRequired&&i.extensionsRequired.indexOf(n)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return o.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const n=new Image;n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",n.onload=n.onerror=function(){e(n.height===1)}})),this.isSupported}}class jni{constructor(e){this.parser=e,this.name=Rc.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const n=this.name,o=this.parser,i=o.json,r=i.textures[e];if(!r.extensions||!r.extensions[n])return null;const s=r.extensions[n],a=i.images[s.source];let A=o.textureLoader;if(a.uri){const c=o.options.manager.getHandler(a.uri);c!==null&&(A=c)}return this.detectSupport().then(function(c){if(c)return o.loadTextureImage(e,s.source,A);if(i.extensionsRequired&&i.extensionsRequired.indexOf(n)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return o.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const n=new Image;n.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",n.onload=n.onerror=function(){e(n.height===1)}})),this.isSupported}}class $ni{constructor(e){this.name=Rc.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const n=this.parser.json,o=n.bufferViews[e];if(o.extensions&&o.extensions[this.name]){const i=o.extensions[this.name],r=this.parser.getDependency("buffer",i.buffer),s=this.parser.options.meshoptDecoder;if(!s||!s.supported){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then(function(a){const A=i.byteOffset||0,c=i.byteLength||0,l=i.count,u=i.byteStride,g=new Uint8Array(a,A,c);return s.decodeGltfBufferAsync?s.decodeGltfBufferAsync(l,u,g,i.mode,i.filter).then(function(h){return h.buffer}):s.ready.then(function(){const h=new ArrayBuffer(l*u);return s.decodeGltfBuffer(new Uint8Array(h),l,u,g,i.mode,i.filter),h})})}else return null}}class qni{constructor(e){this.name=Rc.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const n=this.parser.json,o=n.nodes[e];if(!o.extensions||!o.extensions[this.name]||o.mesh===void 0)return null;const i=n.meshes[o.mesh];for(const c of i.primitives)if(c.mode!==d4.TRIANGLES&&c.mode!==d4.TRIANGLE_STRIP&&c.mode!==d4.TRIANGLE_FAN&&c.mode!==void 0)return null;const s=o.extensions[this.name].attributes,a=[],A={};for(const c in s)a.push(this.parser.getDependency("accessor",s[c]).then(l=>(A[c]=l,A[c])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(c=>{const l=c.pop(),u=l.isGroup?l.children:[l],g=c[0].count,h=[];for(const d of u){const p=new va,m=new jt,_=new Zy,f=new jt(1,1,1),I=new Xei(d.geometry,d.material,g);for(let C=0;C<g;C++)A.TRANSLATION&&m.fromBufferAttribute(A.TRANSLATION,C),A.ROTATION&&_.fromBufferAttribute(A.ROTATION,C),A.SCALE&&f.fromBufferAttribute(A.SCALE,C),I.setMatrixAt(C,p.compose(m,_,f));for(const C in A)if(C==="_COLOR_0"){const y=A[C];I.instanceColor=new Xde(y.array,y.itemSize,y.normalized)}else C!=="TRANSLATION"&&C!=="ROTATION"&&C!=="SCALE"&&d.geometry.setAttribute(C,A[C]);T0.prototype.copy.call(I,d),this.parser.assignFinalMaterial(I),h.push(I)}return l.isGroup?(l.clear(),l.add(...h),l):h[0]}))}}const bJt="glTF",rX=12,SJt={JSON:1313821514,BIN:5130562};class Xni{constructor(e){this.name=Rc.KHR_BINARY_GLTF,this.content=null,this.body=null;const n=new DataView(e,0,rX);if(this.header={magic:iX(new Uint8Array(e.slice(0,4))),version:n.getUint32(4,!0),length:n.getUint32(8,!0)},this.header.magic!==bJt)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const o=this.header.length-rX,i=new DataView(e,rX);let r=0;for(;r<o;){const s=i.getUint32(r,!0);r+=4;const a=i.getUint32(r,!0);if(r+=4,a===SJt.JSON){const A=new Uint8Array(e,rX+r,s);this.content=iX(A)}else if(a===SJt.BIN){const A=rX+r;this.body=e.slice(A,A+s)}r+=s}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class Zni{constructor(e,n){if(!n)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=Rc.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=n,this.dracoLoader.preload()}decodePrimitive(e,n){const o=this.json,i=this.dracoLoader,r=e.extensions[this.name].bufferView,s=e.extensions[this.name].attributes,a={},A={},c={};for(const l in s){const u=Ike[l]||l.toLowerCase();a[u]=s[l]}for(const l in e.attributes){const u=Ike[l]||l.toLowerCase();if(s[l]!==void 0){const g=o.accessors[e.attributes[l]],h=CY[g.componentType];c[u]=h.name,A[u]=g.normalized===!0}}return n.getDependency("bufferView",r).then(function(l){return new Promise(function(u,g){i.decodeDracoFile(l,function(h){for(const d in h.attributes){const p=h.attributes[d],m=A[d];m!==void 0&&(p.normalized=m)}u(h)},a,c,rS,g)})})}}class eoi{constructor(){this.name=Rc.KHR_TEXTURE_TRANSFORM}extendTexture(e,n){return(n.texCoord===void 0||n.texCoord===e.channel)&&n.offset===void 0&&n.rotation===void 0&&n.scale===void 0||(e=e.clone(),n.texCoord!==void 0&&(e.channel=n.texCoord),n.offset!==void 0&&e.offset.fromArray(n.offset),n.rotation!==void 0&&(e.rotation=n.rotation),n.scale!==void 0&&e.repeat.fromArray(n.scale),e.needsUpdate=!0),e}}class toi{constructor(){this.name=Rc.KHR_MESH_QUANTIZATION}}class QJt extends eX{constructor(e,n,o,i){super(e,n,o,i)}copySampleValue_(e){const n=this.resultBuffer,o=this.sampleValues,i=this.valueSize,r=e*i*3+i;for(let s=0;s!==i;s++)n[s]=o[r+s];return n}interpolate_(e,n,o,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,A=a*2,c=a*3,l=i-n,u=(o-n)/l,g=u*u,h=g*u,d=e*c,p=d-c,m=-2*h+3*g,_=h-g,f=1-m,I=_-g+u;for(let C=0;C!==a;C++){const y=s[p+C+a],x=s[p+C+A]*l,E=s[d+C+a],B=s[d+C]*l;r[C]=f*y+I*x+m*E+_*B}return r}}const noi=new Zy;class ooi extends QJt{interpolate_(e,n,o,i){const r=super.interpolate_(e,n,o,i);return noi.fromArray(r).normalize().toArray(r),r}}const d4={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},CY={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},vJt={9728:wC,9729:Fl,9984:JRe,9985:kq,9986:PG,9987:gm},wJt={33071:Xy,33648:Tq,10497:c4},fke={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ike={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",...hJt>=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},iP={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},ioi={CUBICSPLINE:void 0,LINEAR:kG,STEP:TG},Cke={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function roi(t){return t.DefaultMaterial===void 0&&(t.DefaultMaterial=new su({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:mE})),t.DefaultMaterial}function qR(t,e,n){for(const o in n.extensions)t[o]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[o]=n.extensions[o])}function sS(t,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(t.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function soi(t,e,n){let o=!1,i=!1,r=!1;for(let c=0,l=e.length;c<l;c++){const u=e[c];if(u.POSITION!==void 0&&(o=!0),u.NORMAL!==void 0&&(i=!0),u.COLOR_0!==void 0&&(r=!0),o&&i&&r)break}if(!o&&!i&&!r)return Promise.resolve(t);const s=[],a=[],A=[];for(let c=0,l=e.length;c<l;c++){const u=e[c];if(o){const g=u.POSITION!==void 0?n.getDependency("accessor",u.POSITION):t.attributes.position;s.push(g)}if(i){const g=u.NORMAL!==void 0?n.getDependency("accessor",u.NORMAL):t.attributes.normal;a.push(g)}if(r){const g=u.COLOR_0!==void 0?n.getDependency("accessor",u.COLOR_0):t.attributes.color;A.push(g)}}return Promise.all([Promise.all(s),Promise.all(a),Promise.all(A)]).then(function(c){const l=c[0],u=c[1],g=c[2];return o&&(t.morphAttributes.position=l),i&&(t.morphAttributes.normal=u),r&&(t.morphAttributes.color=g),t.morphTargetsRelative=!0,t})}function aoi(t,e){if(t.updateMorphTargets(),e.weights!==void 0)for(let n=0,o=e.weights.length;n<o;n++)t.morphTargetInfluences[n]=e.weights[n];if(e.extras&&Array.isArray(e.extras.targetNames)){const n=e.extras.targetNames;if(t.morphTargetInfluences.length===n.length){t.morphTargetDictionary={};for(let o=0,i=n.length;o<i;o++)t.morphTargetDictionary[n[o]]=o}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function Aoi(t){let e;const n=t.extensions&&t.extensions[Rc.KHR_DRACO_MESH_COMPRESSION];if(n?e="draco:"+n.bufferView+":"+n.indices+":"+yke(n.attributes):e=t.indices+":"+yke(t.attributes)+":"+t.mode,t.targets!==void 0)for(let o=0,i=t.targets.length;o<i;o++)e+=":"+yke(t.targets[o]);return e}function yke(t){let e="";const n=Object.keys(t).sort();for(let o=0,i=n.length;o<i;o++)e+=n[o]+":"+t[n[o]]+";";return e}function xke(t){switch(t){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function coi(t){return t.search(/\.jpe?g($|\?)/i)>0||t.search(/^data\:image\/jpeg/)===0?"image/jpeg":t.search(/\.webp($|\?)/i)>0||t.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const loi=new va;class uoi{constructor(e={},n={}){this.json=e,this.extensions={},this.plugins={},this.options=n,this.cache=new Nni,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let o=!1,i=!1,r=-1;typeof navigator<"u"&&typeof navigator.userAgent<"u"&&(o=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,i=navigator.userAgent.indexOf("Firefox")>-1,r=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>"u"||o||i&&r<98?this.textureLoader=new rke(this.options.manager):this.textureLoader=new $ti(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new fY(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,n){const o=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(s){return s._markDefs&&s._markDefs()}),Promise.all(this._invokeAll(function(s){return s.beforeRoot&&s.beforeRoot()})).then(function(){return Promise.all([o.getDependencies("scene"),o.getDependencies("animation"),o.getDependencies("camera")])}).then(function(s){const a={scene:s[0][i.scene||0],scenes:s[0],animations:s[1],cameras:s[2],asset:i.asset,parser:o,userData:{}};return qR(r,a,i),sS(a,i),Promise.all(o._invokeAll(function(A){return A.afterRoot&&A.afterRoot(a)})).then(function(){for(const A of a.scenes)A.updateMatrixWorld();e(a)})}).catch(n)}_markDefs(){const e=this.json.nodes||[],n=this.json.skins||[],o=this.json.meshes||[];for(let i=0,r=n.length;i<r;i++){const s=n[i].joints;for(let a=0,A=s.length;a<A;a++)e[s[a]].isBone=!0}for(let i=0,r=e.length;i<r;i++){const s=e[i];s.mesh!==void 0&&(this._addNodeRef(this.meshCache,s.mesh),s.skin!==void 0&&(o[s.mesh].isSkinnedMesh=!0)),s.camera!==void 0&&this._addNodeRef(this.cameraCache,s.camera)}}_addNodeRef(e,n){n!==void 0&&(e.refs[n]===void 0&&(e.refs[n]=e.uses[n]=0),e.refs[n]++)}_getNodeRef(e,n,o){if(e.refs[n]<=1)return o;const i=o.clone(),r=(s,a)=>{const A=this.associations.get(s);A!=null&&this.associations.set(a,A);for(const[c,l]of s.children.entries())r(l,a.children[c])};return r(o,i),i.name+="_instance_"+e.uses[n]++,i}_invokeOne(e){const n=Object.values(this.plugins);n.push(this);for(let o=0;o<n.length;o++){const i=e(n[o]);if(i)return i}return null}_invokeAll(e){const n=Object.values(this.plugins);n.unshift(this);const o=[];for(let i=0;i<n.length;i++){const r=e(n[i]);r&&o.push(r)}return o}getDependency(e,n){const o=e+":"+n;let i=this.cache.get(o);if(!i){switch(e){case"scene":i=this.loadScene(n);break;case"node":i=this._invokeOne(function(r){return r.loadNode&&r.loadNode(n)});break;case"mesh":i=this._invokeOne(function(r){return r.loadMesh&&r.loadMesh(n)});break;case"accessor":i=this.loadAccessor(n);break;case"bufferView":i=this._invokeOne(function(r){return r.loadBufferView&&r.loadBufferView(n)});break;case"buffer":i=this.loadBuffer(n);break;case"material":i=this._invokeOne(function(r){return r.loadMaterial&&r.loadMaterial(n)});break;case"texture":i=this._invokeOne(function(r){return r.loadTexture&&r.loadTexture(n)});break;case"skin":i=this.loadSkin(n);break;case"animation":i=this._invokeOne(function(r){return r.loadAnimation&&r.loadAnimation(n)});break;case"camera":i=this.loadCamera(n);break;default:if(i=this._invokeOne(function(r){return r!=this&&r.getDependency&&r.getDependency(e,n)}),!i)throw new Error("Unknown type: "+e);break}this.cache.add(o,i)}return i}getDependencies(e){let n=this.cache.get(e);if(!n){const o=this,i=this.json[e+(e==="mesh"?"es":"s")]||[];n=Promise.all(i.map(function(r,s){return o.getDependency(e,s)})),this.cache.add(e,n)}return n}loadBuffer(e){const n=this.json.buffers[e],o=this.fileLoader;if(n.type&&n.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+n.type+" buffer type is not supported.");if(n.uri===void 0&&e===0)return Promise.resolve(this.extensions[Rc.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(r,s){o.load(jR.resolveURL(n.uri,i.path),r,void 0,function(){s(new Error('THREE.GLTFLoader: Failed to load buffer "'+n.uri+'".'))})})}loadBufferView(e){const n=this.json.bufferViews[e];return this.getDependency("buffer",n.buffer).then(function(o){const i=n.byteLength||0,r=n.byteOffset||0;return o.slice(r,r+i)})}loadAccessor(e){const n=this,o=this.json,i=this.json.accessors[e];if(i.bufferView===void 0&&i.sparse===void 0){const s=fke[i.type],a=CY[i.componentType],A=i.normalized===!0,c=new a(i.count*s);return Promise.resolve(new tg(c,s,A))}const r=[];return i.bufferView!==void 0?r.push(this.getDependency("bufferView",i.bufferView)):r.push(null),i.sparse!==void 0&&(r.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(r).then(function(s){const a=s[0],A=fke[i.type],c=CY[i.componentType],l=c.BYTES_PER_ELEMENT,u=l*A,g=i.byteOffset||0,h=i.bufferView!==void 0?o.bufferViews[i.bufferView].byteStride:void 0,d=i.normalized===!0;let p,m;if(h&&h!==u){const _=Math.floor(g/h),f="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+_+":"+i.count;let I=n.cache.get(f);I||(p=new c(a,_*h,i.count*h/l),I=new Jei(p,h/l),n.cache.add(f,I)),m=new FTe(I,A,g%h/l,d)}else a===null?p=new c(i.count*A):p=new c(a,g,i.count*A),m=new tg(p,A,d);if(i.sparse!==void 0){const _=fke.SCALAR,f=CY[i.sparse.indices.componentType],I=i.sparse.indices.byteOffset||0,C=i.sparse.values.byteOffset||0,y=new f(s[1],I,i.sparse.count*_),x=new c(s[2],C,i.sparse.count*A);a!==null&&(m=new tg(m.array.slice(),m.itemSize,m.normalized));for(let E=0,B=y.length;E<B;E++){const S=y[E];if(m.setX(S,x[E*A]),A>=2&&m.setY(S,x[E*A+1]),A>=3&&m.setZ(S,x[E*A+2]),A>=4&&m.setW(S,x[E*A+3]),A>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return m})}loadTexture(e){const n=this.json,o=this.options,r=n.textures[e].source,s=n.images[r];let a=this.textureLoader;if(s.uri){const A=o.manager.getHandler(s.uri);A!==null&&(a=A)}return this.loadTextureImage(e,r,a)}loadTextureImage(e,n,o){const i=this,r=this.json,s=r.textures[e],a=r.images[n],A=(a.uri||a.bufferView)+":"+s.sampler;if(this.textureCache[A])return this.textureCache[A];const c=this.loadImageSource(n,o).then(function(l){l.flipY=!1,l.name=s.name||a.name||"",l.name===""&&typeof a.uri=="string"&&a.uri.startsWith("data:image/")===!1&&(l.name=a.uri);const g=(r.samplers||{})[s.sampler]||{};return l.magFilter=vJt[g.magFilter]||Fl,l.minFilter=vJt[g.minFilter]||gm,l.wrapS=wJt[g.wrapS]||c4,l.wrapT=wJt[g.wrapT]||c4,i.associations.set(l,{textures:e}),l}).catch(function(){return null});return this.textureCache[A]=c,c}loadImageSource(e,n){const o=this,i=this.json,r=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(u=>u.clone());const s=i.images[e],a=self.URL||self.webkitURL;let A=s.uri||"",c=!1;if(s.bufferView!==void 0)A=o.getDependency("bufferView",s.bufferView).then(function(u){c=!0;const g=new Blob([u],{type:s.mimeType});return A=a.createObjectURL(g),A});else if(s.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const l=Promise.resolve(A).then(function(u){return new Promise(function(g,h){let d=g;n.isImageBitmapLoader===!0&&(d=function(p){const m=new Hg(p);m.needsUpdate=!0,g(m)}),n.load(jR.resolveURL(u,r.path),d,void 0,h)})}).then(function(u){return c===!0&&a.revokeObjectURL(A),sS(u,s),u.userData.mimeType=s.mimeType||coi(s.uri),u}).catch(function(u){throw console.error("THREE.GLTFLoader: Couldn't load texture",A),u});return this.sourceCache[e]=l,l}assignTexture(e,n,o,i){const r=this;return this.getDependency("texture",o.index).then(function(s){if(!s)return null;if(o.texCoord!==void 0&&o.texCoord>0&&(s=s.clone(),s.channel=o.texCoord),r.extensions[Rc.KHR_TEXTURE_TRANSFORM]){const a=o.extensions!==void 0?o.extensions[Rc.KHR_TEXTURE_TRANSFORM]:void 0;if(a){const A=r.associations.get(s);s=r.extensions[Rc.KHR_TEXTURE_TRANSFORM].extendTexture(s,a),r.associations.set(s,A)}}return i!==void 0&&(typeof i=="number"&&(i=i===BJt?$R:rS),"colorSpace"in s?s.colorSpace=i:s.encoding=i===$R?BJt:Mni),e[n]=s,s})}assignFinalMaterial(e){const n=e.geometry;let o=e.material;const i=n.attributes.tangent===void 0,r=n.attributes.color!==void 0,s=n.attributes.normal===void 0;if(e.isPoints){const a="PointsMaterial:"+o.uuid;let A=this.cache.get(a);A||(A=new zR,Gx.prototype.copy.call(A,o),A.color.copy(o.color),A.map=o.map,A.sizeAttenuation=!1,this.cache.add(a,A)),o=A}else if(e.isLine){const a="LineBasicMaterial:"+o.uuid;let A=this.cache.get(a);A||(A=new VR,Gx.prototype.copy.call(A,o),A.color.copy(o.color),A.map=o.map,this.cache.add(a,A)),o=A}if(i||r||s){let a="ClonedMaterial:"+o.uuid+":";i&&(a+="derivative-tangents:"),r&&(a+="vertex-colors:"),s&&(a+="flat-shading:");let A=this.cache.get(a);A||(A=o.clone(),r&&(A.vertexColors=!0),s&&(A.flatShading=!0),i&&(A.normalScale&&(A.normalScale.y*=-1),A.clearcoatNormalScale&&(A.clearcoatNormalScale.y*=-1)),this.cache.add(a,A),this.associations.set(A,this.associations.get(o))),o=A}e.material=o}getMaterialType(){return su}loadMaterial(e){const n=this,o=this.json,i=this.extensions,r=o.materials[e];let s;const a={},A=r.extensions||{},c=[];if(A[Rc.KHR_MATERIALS_UNLIT]){const u=i[Rc.KHR_MATERIALS_UNLIT];s=u.getMaterialType(),c.push(u.extendParams(a,r,n))}else{const u=r.pbrMetallicRoughness||{};if(a.color=new Vi(1,1,1),a.opacity=1,Array.isArray(u.baseColorFactor)){const g=u.baseColorFactor;a.color.setRGB(g[0],g[1],g[2],rS),a.opacity=g[3]}u.baseColorTexture!==void 0&&c.push(n.assignTexture(a,"map",u.baseColorTexture,$R)),a.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,a.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(c.push(n.assignTexture(a,"metalnessMap",u.metallicRoughnessTexture)),c.push(n.assignTexture(a,"roughnessMap",u.metallicRoughnessTexture))),s=this._invokeOne(function(g){return g.getMaterialType&&g.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(g){return g.extendMaterialParams&&g.extendMaterialParams(e,a)})))}r.doubleSided===!0&&(a.side=r_);const l=r.alphaMode||Cke.OPAQUE;if(l===Cke.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,l===Cke.MASK&&(a.alphaTest=r.alphaCutoff!==void 0?r.alphaCutoff:.5)),r.normalTexture!==void 0&&s!==fE&&(c.push(n.assignTexture(a,"normalMap",r.normalTexture)),a.normalScale=new ni(1,1),r.normalTexture.scale!==void 0)){const u=r.normalTexture.scale;a.normalScale.set(u,u)}if(r.occlusionTexture!==void 0&&s!==fE&&(c.push(n.assignTexture(a,"aoMap",r.occlusionTexture)),r.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=r.occlusionTexture.strength)),r.emissiveFactor!==void 0&&s!==fE){const u=r.emissiveFactor;a.emissive=new Vi().setRGB(u[0],u[1],u[2],rS)}return r.emissiveTexture!==void 0&&s!==fE&&c.push(n.assignTexture(a,"emissiveMap",r.emissiveTexture,$R)),Promise.all(c).then(function(){const u=new s(a);return r.name&&(u.name=r.name),sS(u,r),n.associations.set(u,{materials:e}),r.extensions&&qR(i,u,r),u})}createUniqueName(e){const n=Ll.sanitizeNodeName(e||"");return n in this.nodeNamesUsed?n+"_"+ ++this.nodeNamesUsed[n]:(this.nodeNamesUsed[n]=0,n)}loadGeometries(e){const n=this,o=this.extensions,i=this.primitiveCache;function r(a){return o[Rc.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,n).then(function(A){return PJt(A,a,n)})}const s=[];for(let a=0,A=e.length;a<A;a++){const c=e[a],l=Aoi(c),u=i[l];if(u)s.push(u.promise);else{let g;c.extensions&&c.extensions[Rc.KHR_DRACO_MESH_COMPRESSION]?g=r(c):g=PJt(new Zl,c,n),i[l]={primitive:c,promise:g},s.push(g)}}return Promise.all(s)}loadMesh(e){const n=this,o=this.json,i=this.extensions,r=o.meshes[e],s=r.primitives,a=[];for(let A=0,c=s.length;A<c;A++){const l=s[A].material===void 0?roi(this.cache):this.getDependency("material",s[A].material);a.push(l)}return a.push(n.loadGeometries(s)),Promise.all(a).then(function(A){const c=A.slice(0,A.length-1),l=A[A.length-1],u=[];for(let h=0,d=l.length;h<d;h++){const p=l[h],m=s[h];let _;const f=c[h];if(m.mode===d4.TRIANGLES||m.mode===d4.TRIANGLE_STRIP||m.mode===d4.TRIANGLE_FAN||m.mode===void 0)_=r.isSkinnedMesh===!0?new jei(p,f):new Er(p,f),_.isSkinnedMesh===!0&&_.normalizeSkinWeights(),m.mode===d4.TRIANGLE_STRIP?_.geometry=pJt(_.geometry,pVt):m.mode===d4.TRIANGLE_FAN&&(_.geometry=pJt(_.geometry,eTe));else if(m.mode===d4.LINES)_=new Jq(p,f);else if(m.mode===d4.LINE_STRIP)_=new UTe(p,f);else if(m.mode===d4.LINE_LOOP)_=new Zei(p,f);else if(m.mode===d4.POINTS)_=new Wq(p,f);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+m.mode);Object.keys(_.geometry.morphAttributes).length>0&&aoi(_,r),_.name=n.createUniqueName(r.name||"mesh_"+e),sS(_,r),m.extensions&&qR(i,_,m),n.assignFinalMaterial(_),u.push(_)}for(let h=0,d=u.length;h<d;h++)n.associations.set(u[h],{meshes:e,primitives:h});if(u.length===1)return r.extensions&&qR(i,u[0],r),u[0];const g=new lh;r.extensions&&qR(i,g,r),n.associations.set(g,{meshes:e});for(let h=0,d=u.length;h<d;h++)g.add(u[h]);return g})}loadCamera(e){let n;const o=this.json.cameras[e],i=o[o.type];if(!i){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return o.type==="perspective"?n=new sf(OG.radToDeg(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):o.type==="orthographic"&&(n=new rY(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),o.name&&(n.name=this.createUniqueName(o.name)),sS(n,o),Promise.resolve(n)}loadSkin(e){const n=this.json.skins[e],o=[];for(let i=0,r=n.joints.length;i<r;i++)o.push(this._loadNodeShallow(n.joints[i]));return n.inverseBindMatrices!==void 0?o.push(this.getDependency("accessor",n.inverseBindMatrices)):o.push(null),Promise.all(o).then(function(i){const r=i.pop(),s=i,a=[],A=[];for(let c=0,l=s.length;c<l;c++){const u=s[c];if(u){a.push(u);const g=new va;r!==null&&g.fromArray(r.array,c*16),A.push(g)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',n.joints[c])}return new GTe(a,A)})}loadAnimation(e){const n=this.json,o=this,i=n.animations[e],r=i.name?i.name:"animation_"+e,s=[],a=[],A=[],c=[],l=[];for(let u=0,g=i.channels.length;u<g;u++){const h=i.channels[u],d=i.samplers[h.sampler],p=h.target,m=p.node,_=i.parameters!==void 0?i.parameters[d.input]:d.input,f=i.parameters!==void 0?i.parameters[d.output]:d.output;p.node!==void 0&&(s.push(this.getDependency("node",m)),a.push(this.getDependency("accessor",_)),A.push(this.getDependency("accessor",f)),c.push(d),l.push(p))}return Promise.all([Promise.all(s),Promise.all(a),Promise.all(A),Promise.all(c),Promise.all(l)]).then(function(u){const g=u[0],h=u[1],d=u[2],p=u[3],m=u[4],_=[];for(let f=0,I=g.length;f<I;f++){const C=g[f],y=h[f],x=d[f],E=p[f],B=m[f];if(C===void 0)continue;C.updateMatrix&&C.updateMatrix();const S=o._createAnimationTracks(C,y,x,E,B);if(S)for(let Q=0;Q<S.length;Q++)_.push(S[Q])}return new Lti(r,void 0,_)})}createNodeMesh(e){const n=this.json,o=this,i=n.nodes[e];return i.mesh===void 0?null:o.getDependency("mesh",i.mesh).then(function(r){const s=o._getNodeRef(o.meshCache,i.mesh,r);return i.weights!==void 0&&s.traverse(function(a){if(a.isMesh)for(let A=0,c=i.weights.length;A<c;A++)a.morphTargetInfluences[A]=i.weights[A]}),s})}loadNode(e){const n=this.json,o=this,i=n.nodes[e],r=o._loadNodeShallow(e),s=[],a=i.children||[];for(let c=0,l=a.length;c<l;c++)s.push(o.getDependency("node",a[c]));const A=i.skin===void 0?Promise.resolve(null):o.getDependency("skin",i.skin);return Promise.all([r,Promise.all(s),A]).then(function(c){const l=c[0],u=c[1],g=c[2];g!==null&&l.traverse(function(h){h.isSkinnedMesh&&h.bind(g,loi)});for(let h=0,d=u.length;h<d;h++)l.add(u[h]);return l})}_loadNodeShallow(e){const n=this.json,o=this.extensions,i=this;if(this.nodeCache[e]!==void 0)return this.nodeCache[e];const r=n.nodes[e],s=r.name?i.createUniqueName(r.name):"",a=[],A=i._invokeOne(function(c){return c.createNodeMesh&&c.createNodeMesh(e)});return A&&a.push(A),r.camera!==void 0&&a.push(i.getDependency("camera",r.camera).then(function(c){return i._getNodeRef(i.cameraCache,r.camera,c)})),i._invokeAll(function(c){return c.createNodeAttachment&&c.createNodeAttachment(e)}).forEach(function(c){a.push(c)}),this.nodeCache[e]=Promise.all(a).then(function(c){let l;if(r.isBone===!0?l=new Pzt:c.length>1?l=new lh:c.length===1?l=c[0]:l=new T0,l!==c[0])for(let u=0,g=c.length;u<g;u++)l.add(c[u]);if(r.name&&(l.userData.name=r.name,l.name=s),sS(l,r),r.extensions&&qR(o,l,r),r.matrix!==void 0){const u=new va;u.fromArray(r.matrix),l.applyMatrix4(u)}else r.translation!==void 0&&l.position.fromArray(r.translation),r.rotation!==void 0&&l.quaternion.fromArray(r.rotation),r.scale!==void 0&&l.scale.fromArray(r.scale);return i.associations.has(l)||i.associations.set(l,{}),i.associations.get(l).nodes=e,l}),this.nodeCache[e]}loadScene(e){const n=this.extensions,o=this.json.scenes[e],i=this,r=new lh;o.name&&(r.name=i.createUniqueName(o.name)),sS(r,o),o.extensions&&qR(n,r,o);const s=o.nodes||[],a=[];for(let A=0,c=s.length;A<c;A++)a.push(i.getDependency("node",s[A]));return Promise.all(a).then(function(A){for(let l=0,u=A.length;l<u;l++)r.add(A[l]);const c=l=>{const u=new Map;for(const[g,h]of i.associations)(g instanceof Gx||g instanceof Hg)&&u.set(g,h);return l.traverse(g=>{const h=i.associations.get(g);h!=null&&u.set(g,h)}),u};return i.associations=c(r),r})}_createAnimationTracks(e,n,o,i,r){const s=[],a=e.name?e.name:e.uuid,A=[];iP[r.path]===iP.weights?e.traverse(function(g){g.morphTargetInfluences&&A.push(g.name?g.name:g.uuid)}):A.push(a);let c;switch(iP[r.path]){case iP.weights:c=hY;break;case iP.rotation:c=pY;break;case iP.position:case iP.scale:c=_Y;break;default:o.itemSize===1?c=hY:c=_Y;break}const l=i.interpolation!==void 0?ioi[i.interpolation]:kG,u=this._getArrayFromAccessor(o);for(let g=0,h=A.length;g<h;g++){const d=new c(A[g]+"."+iP[r.path],n.array,u,l);i.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(d),s.push(d)}return s}_getArrayFromAccessor(e){let n=e.array;if(e.normalized){const o=xke(n.constructor),i=new Float32Array(n.length);for(let r=0,s=n.length;r<s;r++)i[r]=n[r]*o;n=i}return n}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(o){const i=this instanceof pY?ooi:QJt;return new i(this.times,this.values,this.getValueSize()/3,o)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function goi(t,e,n){const o=e.attributes,i=new e2;if(o.POSITION!==void 0){const a=n.json.accessors[o.POSITION],A=a.min,c=a.max;if(A!==void 0&&c!==void 0){if(i.set(new jt(A[0],A[1],A[2]),new jt(c[0],c[1],c[2])),a.normalized){const l=xke(CY[a.componentType]);i.min.multiplyScalar(l),i.max.multiplyScalar(l)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const r=e.targets;if(r!==void 0){const a=new jt,A=new jt;for(let c=0,l=r.length;c<l;c++){const u=r[c];if(u.POSITION!==void 0){const g=n.json.accessors[u.POSITION],h=g.min,d=g.max;if(h!==void 0&&d!==void 0){if(A.setX(Math.max(Math.abs(h[0]),Math.abs(d[0]))),A.setY(Math.max(Math.abs(h[1]),Math.abs(d[1]))),A.setZ(Math.max(Math.abs(h[2]),Math.abs(d[2]))),g.normalized){const p=xke(CY[g.componentType]);A.multiplyScalar(p)}a.max(A)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}i.expandByVector(a)}t.boundingBox=i;const s=new GB;i.getCenter(s.center),s.radius=i.min.distanceTo(i.max)/2,t.boundingSphere=s}function PJt(t,e,n){const o=e.attributes,i=[];function r(s,a){return n.getDependency("accessor",s).then(function(A){t.setAttribute(a,A)})}for(const s in o){const a=Ike[s]||s.toLowerCase();a in t.attributes||i.push(r(o[s],a))}if(e.indices!==void 0&&!t.index){const s=n.getDependency("accessor",e.indices).then(function(a){t.setIndex(a)});i.push(s)}return sS(t,e),goi(t,e,n),Promise.all(i).then(function(){return e.targets!==void 0?soi(t,e.targets,n):t})}class doi extends x6{constructor(e){super(e)}load(e,n,o,i){const r=this,s=new fY(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(a){try{n(r.parse(a))}catch(A){i?i(A):console.error(A),r.manager.itemError(e)}},o,i)}parse(e){function n(c){const l=new DataView(c),u=32/8*3+32/8*3*3+16/8,g=l.getUint32(80,!0);if(80+32/8+g*u===l.byteLength)return!0;const d=[115,111,108,105,100];for(let p=0;p<5;p++)if(o(d,l,p))return!1;return!0}function o(c,l,u){for(let g=0,h=c.length;g<h;g++)if(c[g]!==l.getUint8(u+g,!1))return!1;return!0}function i(c){const l=new DataView(c),u=l.getUint32(80,!0);let g,h,d,p=!1,m,_,f,I,C;for(let Q=0;Q<70;Q++)l.getUint32(Q,!1)==1129270351&&l.getUint8(Q+4)==82&&l.getUint8(Q+5)==61&&(p=!0,m=new Float32Array(u*3*3),_=l.getUint8(Q+6)/255,f=l.getUint8(Q+7)/255,I=l.getUint8(Q+8)/255,C=l.getUint8(Q+9)/255);const y=84,x=50,E=new Zl,B=new Float32Array(u*3*3),S=new Float32Array(u*3*3);for(let Q=0;Q<u;Q++){const w=y+Q*x,M=l.getFloat32(w,!0),k=l.getFloat32(w+4,!0),R=l.getFloat32(w+8,!0);if(p){const F=l.getUint16(w+48,!0);(F&32768)===0?(g=(F&31)/31,h=(F>>5&31)/31,d=(F>>10&31)/31):(g=_,h=f,d=I)}for(let F=1;F<=3;F++){const O=w+F*12,U=Q*3*3+(F-1)*3;B[U]=l.getFloat32(O,!0),B[U+1]=l.getFloat32(O+4,!0),B[U+2]=l.getFloat32(O+8,!0),S[U]=M,S[U+1]=k,S[U+2]=R,p&&(m[U]=g,m[U+1]=h,m[U+2]=d)}}return E.setAttribute("position",new tg(B,3)),E.setAttribute("normal",new tg(S,3)),p&&(E.setAttribute("color",new tg(m,3)),E.hasColors=!0,E.alpha=C),E}function r(c){const l=new Zl,u=/solid([\s\S]*?)endsolid/g,g=/facet([\s\S]*?)endfacet/g;let h=0;const d=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,p=new RegExp("vertex"+d+d+d,"g"),m=new RegExp("normal"+d+d+d,"g"),_=[],f=[],I=new jt;let C,y=0,x=0,E=0;for(;(C=u.exec(c))!==null;){x=E;const B=C[0];for(;(C=g.exec(B))!==null;){let w=0,M=0;const k=C[0];for(;(C=m.exec(k))!==null;)I.x=parseFloat(C[1]),I.y=parseFloat(C[2]),I.z=parseFloat(C[3]),M++;for(;(C=p.exec(k))!==null;)_.push(parseFloat(C[1]),parseFloat(C[2]),parseFloat(C[3])),f.push(I.x,I.y,I.z),w++,E++;M!==1&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+h),w!==3&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+h),h++}const S=x,Q=E-x;l.addGroup(S,Q,y),y++}return l.setAttribute("position",new Bs(_,3)),l.setAttribute("normal",new Bs(f,3)),l}function s(c){return typeof c!="string"?iX(new Uint8Array(c)):c}function a(c){if(typeof c=="string"){const l=new Uint8Array(c.length);for(let u=0;u<c.length;u++)l[u]=c.charCodeAt(u)&255;return l.buffer||l}else return c}const A=a(e);return n(A)?i(A):r(s(e))}}class hoi extends x6{constructor(e){super(e)}load(e,n,o,i){const r=this,s=this.path===""?jR.extractUrlBase(e):this.path,a=new fY(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(A){try{n(r.parse(A,s))}catch(c){i?i(c):console.error(c),r.manager.itemError(e)}},o,i)}setMaterialOptions(e){return this.materialOptions=e,this}parse(e,n){const o=e.split(`
`);let i={};const r=/\s+/,s={};for(let A=0;A<o.length;A++){let c=o[A];if(c=c.trim(),c.length===0||c.charAt(0)==="#")continue;const l=c.indexOf(" ");let u=l>=0?c.substring(0,l):c;u=u.toLowerCase();let g=l>=0?c.substring(l+1):"";if(g=g.trim(),u==="newmtl")i={name:g},s[g]=i;else if(u==="ka"||u==="kd"||u==="ks"||u==="ke"){const h=g.split(r,3);i[u]=[parseFloat(h[0]),parseFloat(h[1]),parseFloat(h[2])]}else i[u]=g}const a=new poi(this.resourcePath||n,this.materialOptions);return a.setCrossOrigin(this.crossOrigin),a.setManager(this.manager),a.setMaterials(s),a}}class poi{constructor(e="",n={}){this.baseUrl=e,this.options=n,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.crossOrigin="anonymous",this.side=this.options.side!==void 0?this.options.side:mE,this.wrap=this.options.wrap!==void 0?this.options.wrap:c4}setCrossOrigin(e){return this.crossOrigin=e,this}setManager(e){this.manager=e}setMaterials(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}}convert(e){if(!this.options)return e;const n={};for(const o in e){const i=e[o],r={};n[o]=r;for(const s in i){let a=!0,A=i[s];const c=s.toLowerCase();switch(c){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(A=[A[0]/255,A[1]/255,A[2]/255]),this.options&&this.options.ignoreZeroRGBs&&A[0]===0&&A[1]===0&&A[2]===0&&(a=!1);break}a&&(r[c]=A)}}return n}preload(){for(const e in this.materialsInfo)this.create(e)}getIndex(e){return this.nameLookup[e]}getAsArray(){let e=0;for(const n in this.materialsInfo)this.materialsArray[e]=this.create(n),this.nameLookup[n]=e,e++;return this.materialsArray}create(e){return this.materials[e]===void 0&&this.createMaterial_(e),this.materials[e]}createMaterial_(e){const n=this,o=this.materialsInfo[e],i={name:e,side:this.side};function r(a,A){return typeof A!="string"||A===""?"":/^https?:\/\//i.test(A)?A:a+A}function s(a,A){if(i[a])return;const c=n.getTextureParams(A,i),l=n.loadTexture(r(n.baseUrl,c.url));l.repeat.copy(c.scale),l.offset.copy(c.offset),l.wrapS=n.wrap,l.wrapT=n.wrap,i[a]=l}for(const a in o){const A=o[a];let c;if(A!=="")switch(a.toLowerCase()){case"kd":i.color=new Vi().fromArray(A);break;case"ks":i.specular=new Vi().fromArray(A);break;case"ke":i.emissive=new Vi().fromArray(A);break;case"map_kd":s("map",A);break;case"map_ks":s("specularMap",A);break;case"map_ke":s("emissiveMap",A);break;case"norm":s("normalMap",A);break;case"map_bump":case"bump":s("bumpMap",A);break;case"map_d":s("alphaMap",A),i.transparent=!0;break;case"ns":i.shininess=parseFloat(A);break;case"d":c=parseFloat(A),c<1&&(i.opacity=c,i.transparent=!0);break;case"tr":c=parseFloat(A),this.options&&this.options.invertTrProperty&&(c=1-c),c>0&&(i.opacity=1-c,i.transparent=!0);break}}return this.materials[e]=new ike(i),this.materials[e]}getTextureParams(e,n){const o={scale:new ni(1,1),offset:new ni(0,0)},i=e.split(/\s+/);let r;return r=i.indexOf("-bm"),r>=0&&(n.bumpScale=parseFloat(i[r+1]),i.splice(r,2)),r=i.indexOf("-s"),r>=0&&(o.scale.set(parseFloat(i[r+1]),parseFloat(i[r+2])),i.splice(r,4)),r=i.indexOf("-o"),r>=0&&(o.offset.set(parseFloat(i[r+1]),parseFloat(i[r+2])),i.splice(r,4)),o.url=i.join(" ").trim(),o}loadTexture(e,n,o,i,r){const s=this.manager!==void 0?this.manager:nJt;let a=s.getHandler(e);a===null&&(a=new rke(s)),a.setCrossOrigin&&a.setCrossOrigin(this.crossOrigin);const A=a.load(e,o,i,r);return n!==void 0&&(A.mapping=n),A}}const{CstParser:moi,Lexer:Eke,createToken:a_}=(()=>{var t=typeof global=="object"&&global&&global.Object===Object&&global;const e=t;var n=typeof self=="object"&&self&&self.Object===Object&&self,o=e||n||Function("return this")();const i=o;var r=i.Symbol;const s=r;var a=Object.prototype,A=a.hasOwnProperty,c=a.toString,l=s?s.toStringTag:void 0;function u(re){var X=A.call(re,l),me=re[l];try{re[l]=void 0;var He=!0}catch{}var We=c.call(re);return He&&(X?re[l]=me:delete re[l]),We}var g=Object.prototype,h=g.toString;function d(re){return h.call(re)}var p="[object Null]",m="[object Undefined]",_=s?s.toStringTag:void 0;function f(re){return re==null?re===void 0?m:p:_&&_ in Object(re)?u(re):d(re)}function I(re){return re!=null&&typeof re=="object"}var C="[object Symbol]";function y(re){return typeof re=="symbol"||I(re)&&f(re)==C}function x(re,X){for(var me=-1,He=re==null?0:re.length,We=Array(He);++me<He;)We[me]=X(re[me],me,re);return We}var E=Array.isArray;const B=E;var S=s?s.prototype:void 0,Q=S?S.toString:void 0;function w(re){if(typeof re=="string")return re;if(B(re))return x(re,w)+"";if(y(re))return Q?Q.call(re):"";var X=re+"";return X=="0"&&1/re==-1/0?"-0":X}var M=/\s/;function k(re){for(var X=re.length;X--&&M.test(re.charAt(X)););return X}var R=/^\s+/;function F(re){return re&&re.slice(0,k(re)+1).replace(R,"")}function O(re){var X=typeof re;return re!=null&&(X=="object"||X=="function")}var U=NaN,Y=/^[-+]0x[0-9a-f]+$/i,W=/^0b[01]+$/i,te=/^0o[0-7]+$/i,j=parseInt;function J(re){if(typeof re=="number")return re;if(y(re))return U;if(O(re)){var X=typeof re.valueOf=="function"?re.valueOf():re;re=O(X)?X+"":X}if(typeof re!="string")return re===0?re:+re;re=F(re);var me=W.test(re);return me||te.test(re)?j(re.slice(2),me?2:8):Y.test(re)?U:+re}var oe=1/0,ie=17976931348623157e292;function ne(re){if(!re)return re===0?re:0;if(re=J(re),re===oe||re===-oe){var X=re<0?-1:1;return X*ie}return re===re?re:0}function le(re){var X=ne(re),me=X%1;return X===X?me?X-me:X:0}function ge(re){return re}var _e="[object AsyncFunction]",ue="[object Function]",fe="[object GeneratorFunction]",pe="[object Proxy]";function ye(re){if(!O(re))return!1;var X=f(re);return X==ue||X==fe||X==_e||X==pe}var Me=i["__core-js_shared__"];const ve=Me;var he=(function(){var re=/[^.]+$/.exec(ve&&ve.keys&&ve.keys.IE_PROTO||"");return re?"Symbol(src)_1."+re:""})();function Qe(re){return!!he&&he in re}var Pe=Function.prototype,we=Pe.toString;function Te(re){if(re!=null){try{return we.call(re)}catch{}try{return re+""}catch{}}return""}var Re=/[\\^$.*+?()[\]{}|]/g,Ee=/^\[object .+?Constructor\]$/,ke=Function.prototype,Ce=Object.prototype,Le=ke.toString,Ye=Ce.hasOwnProperty,tt=RegExp("^"+Le.call(Ye).replace(Re,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function At(re){if(!O(re)||Qe(re))return!1;var X=ye(re)?tt:Ee;return X.test(Te(re))}function at(re,X){return re?.[X]}function nt(re,X){var me=at(re,X);return At(me)?me:void 0}var gt=nt(i,"WeakMap");const bt=gt;var Ct=Object.create,Dt=(function(){function re(){}return function(X){if(!O(X))return{};if(Ct)return Ct(X);re.prototype=X;var me=new re;return re.prototype=void 0,me}})();const kt=Dt;function it(re,X,me){switch(me.length){case 0:return re.call(X);case 1:return re.call(X,me[0]);case 2:return re.call(X,me[0],me[1]);case 3:return re.call(X,me[0],me[1],me[2])}return re.apply(X,me)}function Yt(){}function pn(re,X){var me=-1,He=re.length;for(X||(X=Array(He));++me<He;)X[me]=re[me];return X}var be=800,et=16,It=Date.now;function Bt(re){var X=0,me=0;return function(){var He=It(),We=et-(He-me);if(me=He,We>0){if(++X>=be)return arguments[0]}else X=0;return re.apply(void 0,arguments)}}function mt(re){return function(){return re}}var st=(function(){try{var re=nt(Object,"defineProperty");return re({},"",{}),re}catch{}})();const xt=st;var Xe=xt?function(re,X){return xt(re,"toString",{configurable:!0,enumerable:!1,value:mt(X),writable:!0})}:ge,dt=Bt(Xe);const Ut=dt;function Wt(re,X){for(var me=-1,He=re==null?0:re.length;++me<He&&X(re[me],me,re)!==!1;);return re}function Xt(re,X,me,He){for(var We=re.length,ft=me+-1;++ft<We;)if(X(re[ft],ft,re))return ft;return-1}function Jt(re){return re!==re}function yn(re,X,me){for(var He=me-1,We=re.length;++He<We;)if(re[He]===X)return He;return-1}function An(re,X,me){return X===X?yn(re,X,me):Xt(re,Jt,me)}function kn(re,X){var me=re==null?0:re.length;return!!me&&An(re,X,0)>-1}var $n=9007199254740991,ht=/^(?:0|[1-9]\d*)$/;function Kt(re,X){var me=typeof re;return X=X??$n,!!X&&(me=="number"||me!="symbol"&&ht.test(re))&&re>-1&&re%1==0&&re<X}function rn(re,X,me){X=="__proto__"&&xt?xt(re,X,{configurable:!0,enumerable:!0,value:me,writable:!0}):re[X]=me}function Lt(re,X){return re===X||re!==re&&X!==X}var Ho=Object.prototype,Ao=Ho.hasOwnProperty;function qe(re,X,me){var He=re[X];(!(Ao.call(re,X)&&Lt(He,me))||me===void 0&&!(X in re))&&rn(re,X,me)}function vt(re,X,me,He){var We=!me;me||(me={});for(var ft=-1,wt=X.length;++ft<wt;){var zt=X[ft],en=void 0;en===void 0&&(en=re[zt]),We?rn(me,zt,en):qe(me,zt,en)}return me}var qt=Math.max;function Zt(re,X,me){return X=qt(X===void 0?re.length-1:X,0),function(){for(var He=arguments,We=-1,ft=qt(He.length-X,0),wt=Array(ft);++We<ft;)wt[We]=He[X+We];We=-1;for(var zt=Array(X+1);++We<X;)zt[We]=He[We];return zt[X]=me(wt),it(re,this,zt)}}function nn(re,X){return Ut(Zt(re,X,ge),re+"")}var zn=9007199254740991;function Nn(re){return typeof re=="number"&&re>-1&&re%1==0&&re<=zn}function Co(re){return re!=null&&Nn(re.length)&&!ye(re)}function ei(re,X,me){if(!O(me))return!1;var He=typeof X;return(He=="number"?Co(me)&&Kt(X,me.length):He=="string"&&X in me)?Lt(me[X],re):!1}function ro(re){return nn(function(X,me){var He=-1,We=me.length,ft=We>1?me[We-1]:void 0,wt=We>2?me[2]:void 0;for(ft=re.length>3&&typeof ft=="function"?(We--,ft):void 0,wt&&ei(me[0],me[1],wt)&&(ft=We<3?void 0:ft,We=1),X=Object(X);++He<We;){var zt=me[He];zt&&re(X,zt,He,ft)}return X})}var To=Object.prototype;function yo(re){var X=re&&re.constructor,me=typeof X=="function"&&X.prototype||To;return re===me}function Ro(re,X){for(var me=-1,He=Array(re);++me<re;)He[me]=X(me);return He}var On="[object Arguments]";function uo(re){return I(re)&&f(re)==On}var Oo=Object.prototype,ko=Oo.hasOwnProperty,Ko=Oo.propertyIsEnumerable,mi=uo((function(){return arguments})())?uo:function(re){return I(re)&&ko.call(re,"callee")&&!Ko.call(re,"callee")};const Fo=mi;function Nr(){return!1}var Rs=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ur=Rs&&typeof module=="object"&&module&&!module.nodeType&&module,zi=ur&&ur.exports===Rs,bi=zi?i.Buffer:void 0,Ar=bi?bi.isBuffer:void 0,ws=Ar||Nr;const ds=ws;var Et="[object Arguments]",Gt="[object Array]",Rt="[object Boolean]",Ht="[object Date]",Qt="[object Error]",Nt="[object Function]",_n="[object Map]",qn="[object Number]",En="[object Object]",Rn="[object RegExp]",Hn="[object Set]",Lo="[object String]",Io="[object WeakMap]",gi="[object ArrayBuffer]",jo="[object DataView]",oi="[object Float32Array]",Ji="[object Float64Array]",wi="[object Int8Array]",Br="[object Int16Array]",gr="[object Int32Array]",oa="[object Uint8Array]",hs="[object Uint8ClampedArray]",Li="[object Uint16Array]",ys="[object Uint32Array]",dr={};dr[oi]=dr[Ji]=dr[wi]=dr[Br]=dr[gr]=dr[oa]=dr[hs]=dr[Li]=dr[ys]=!0,dr[Et]=dr[Gt]=dr[gi]=dr[Rt]=dr[jo]=dr[Ht]=dr[Qt]=dr[Nt]=dr[_n]=dr[qn]=dr[En]=dr[Rn]=dr[Hn]=dr[Lo]=dr[Io]=!1;function cA(re){return I(re)&&Nn(re.length)&&!!dr[f(re)]}function vA(re){return function(X){return re(X)}}var Yl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,H0=Yl&&typeof module=="object"&&module&&!module.nodeType&&module,ph=H0&&H0.exports===Yl,Xh=ph&&e.process,Bl=(function(){try{var re=H0&&H0.require&&H0.require("util").types;return re||Xh&&Xh.binding&&Xh.binding("util")}catch{}})();const fc=Bl;var Nd=fc&&fc.isTypedArray,il=Nd?vA(Nd):cA;const Ul=il;var m_=Object.prototype,ag=m_.hasOwnProperty;function Rd(re,X){var me=B(re),He=!me&&Fo(re),We=!me&&!He&&ds(re),ft=!me&&!He&&!We&&Ul(re),wt=me||He||We||ft,zt=wt?Ro(re.length,String):[],en=zt.length;for(var In in re)(X||ag.call(re,In))&&!(wt&&(In=="length"||We&&(In=="offset"||In=="parent")||ft&&(In=="buffer"||In=="byteLength"||In=="byteOffset")||Kt(In,en)))&&zt.push(In);return zt}function mh(re,X){return function(me){return re(X(me))}}var mm=mh(Object.keys,Object);const gu=mm;var Ag=Object.prototype,C0=Ag.hasOwnProperty;function FC(re){if(!yo(re))return gu(re);var X=[];for(var me in Object(re))C0.call(re,me)&&me!="constructor"&&X.push(me);return X}function O0(re){return Co(re)?Rd(re):FC(re)}var __=Object.prototype,Qp=__.hasOwnProperty,_1=ro(function(re,X){if(yo(X)||Co(X)){vt(X,O0(X),re);return}for(var me in X)Qp.call(X,me)&&qe(re,me,X[me])});const tr=_1;function Vo(re){var X=[];if(re!=null)for(var me in Object(re))X.push(me);return X}var wA=Object.prototype,Td=wA.hasOwnProperty;function da(re){if(!O(re))return Vo(re);var X=yo(re),me=[];for(var He in re)He=="constructor"&&(X||!Td.call(re,He))||me.push(He);return me}function Zh(re){return Co(re)?Rd(re,!0):da(re)}var mf=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,LC=/^\w*$/;function _f(re,X){if(B(re))return!1;var me=typeof re;return me=="number"||me=="symbol"||me=="boolean"||re==null||y(re)?!0:LC.test(re)||!mf.test(re)||X!=null&&re in Object(X)}var _m=nt(Object,"create");const du=_m;function cg(){this.__data__=du?du(null):{},this.size=0}function Ug(re){var X=this.has(re)&&delete this.__data__[re];return this.size-=X?1:0,X}var Vc="__lodash_hash_undefined__",ha=Object.prototype,BI=ha.hasOwnProperty;function G0(re){var X=this.__data__;if(du){var me=X[re];return me===Vc?void 0:me}return BI.call(X,re)?X[re]:void 0}var PA=Object.prototype,_h=PA.hasOwnProperty;function n0(re){var X=this.__data__;return du?X[re]!==void 0:_h.call(X,re)}var HC="__lodash_hash_undefined__";function f1(re,X){var me=this.__data__;return this.size+=this.has(re)?0:1,me[re]=du&&X===void 0?HC:X,this}function fm(re){var X=-1,me=re==null?0:re.length;for(this.clear();++X<me;){var He=re[X];this.set(He[0],He[1])}}fm.prototype.clear=cg,fm.prototype.delete=Ug,fm.prototype.get=G0,fm.prototype.has=n0,fm.prototype.set=f1;function vp(){this.__data__=[],this.size=0}function ku(re,X){for(var me=re.length;me--;)if(Lt(re[me][0],X))return me;return-1}var ot=Array.prototype,rt=ot.splice;function Ot(re){var X=this.__data__,me=ku(X,re);if(me<0)return!1;var He=X.length-1;return me==He?X.pop():rt.call(X,me,1),--this.size,!0}function an(re){var X=this.__data__,me=ku(X,re);return me<0?void 0:X[me][1]}function Dn(re){return ku(this.__data__,re)>-1}function Xn(re,X){var me=this.__data__,He=ku(me,re);return He<0?(++this.size,me.push([re,X])):me[He][1]=X,this}function oo(re){var X=-1,me=re==null?0:re.length;for(this.clear();++X<me;){var He=re[X];this.set(He[0],He[1])}}oo.prototype.clear=vp,oo.prototype.delete=Ot,oo.prototype.get=an,oo.prototype.has=Dn,oo.prototype.set=Xn;var vo=nt(i,"Map");const Xo=vo;function Ti(){this.size=0,this.__data__={hash:new fm,map:new(Xo||oo),string:new fm}}function ir(re){var X=typeof re;return X=="string"||X=="number"||X=="symbol"||X=="boolean"?re!=="__proto__":re===null}function Gs(re,X){var me=re.__data__;return ir(X)?me[typeof X=="string"?"string":"hash"]:me.map}function qr(re){var X=Gs(this,re).delete(re);return this.size-=X?1:0,X}function ps(re){return Gs(this,re).get(re)}function Ic(re){return Gs(this,re).has(re)}function lc(re,X){var me=Gs(this,re),He=me.size;return me.set(re,X),this.size+=me.size==He?0:1,this}function ka(re){var X=-1,me=re==null?0:re.length;for(this.clear();++X<me;){var He=re[X];this.set(He[0],He[1])}}ka.prototype.clear=Ti,ka.prototype.delete=qr,ka.prototype.get=ps,ka.prototype.has=Ic,ka.prototype.set=lc;var gn="Expected a function";function bn(re,X){if(typeof re!="function"||X!=null&&typeof X!="function")throw new TypeError(gn);var me=function(){var He=arguments,We=X?X.apply(this,He):He[0],ft=me.cache;if(ft.has(We))return ft.get(We);var wt=re.apply(this,He);return me.cache=ft.set(We,wt)||ft,wt};return me.cache=new(bn.Cache||ka),me}bn.Cache=ka;var go=500;function Go(re){var X=bn(re,function(He){return me.size===go&&me.clear(),He}),me=X.cache;return X}var hr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ia=/\\(\\)?/g,lA=Go(function(re){var X=[];return re.charCodeAt(0)===46&&X.push(""),re.replace(hr,function(me,He,We,ft){X.push(We?ft.replace(ia,"$1"):He||me)}),X});const MA=lA;function Fa(re){return re==null?"":w(re)}function La(re,X){return B(re)?re:_f(re,X)?[re]:MA(Fa(re))}function Y0(re){if(typeof re=="string"||y(re))return re;var X=re+"";return X=="0"&&1/re==-1/0?"-0":X}function Hr(re,X){X=La(X,re);for(var me=0,He=X.length;re!=null&&me<He;)re=re[Y0(X[me++])];return me&&me==He?re:void 0}function fh(re,X,me){var He=re==null?void 0:Hr(re,X);return He===void 0?me:He}function Ih(re,X){for(var me=-1,He=X.length,We=re.length;++me<He;)re[We+me]=X[me];return re}var DA=s?s.isConcatSpreadable:void 0;function OC(re){return B(re)||Fo(re)||!!(DA&&re&&re[DA])}function bI(re,X,me,He,We){var ft=-1,wt=re.length;for(me||(me=OC),We||(We=[]);++ft<wt;){var zt=re[ft];me(zt)?Ih(We,zt):He||(We[We.length]=zt)}return We}function hu(re){var X=re==null?0:re.length;return X?bI(re):[]}var lg=mh(Object.getPrototypeOf,Object);const wp=lg;function kd(re,X,me){var He=-1,We=re.length;X<0&&(X=-X>We?0:We+X),me=me>We?We:me,me<0&&(me+=We),We=X>me?0:me-X>>>0,X>>>=0;for(var ft=Array(We);++He<We;)ft[He]=re[He+X];return ft}function ff(re,X,me,He){var We=-1,ft=re==null?0:re.length;for(He&&ft&&(me=re[++We]);++We<ft;)me=X(me,re[We],We,re);return me}function I1(){this.__data__=new oo,this.size=0}function p2(re){var X=this.__data__,me=X.delete(re);return this.size=X.size,me}function Pp(re){return this.__data__.get(re)}function SI(re){return this.__data__.has(re)}var Mp=200;function f_(re,X){var me=this.__data__;if(me instanceof oo){var He=me.__data__;if(!Xo||He.length<Mp-1)return He.push([re,X]),this.size=++me.size,this;me=this.__data__=new ka(He)}return me.set(re,X),this.size=me.size,this}function U0(re){var X=this.__data__=new oo(re);this.size=X.size}U0.prototype.clear=I1,U0.prototype.delete=p2,U0.prototype.get=Pp,U0.prototype.has=SI,U0.prototype.set=f_;function S4(re,X){return re&&vt(X,O0(X),re)}var ep=typeof exports=="object"&&exports&&!exports.nodeType&&exports,If=ep&&typeof module=="object"&&module&&!module.nodeType&&module,A3=If&&If.exports===ep,m2=A3?i.Buffer:void 0,KE=m2?m2.allocUnsafe:void 0;function Fd(re,X){var me=re.length,He=KE?KE(me):new re.constructor(me);return re.copy(He),He}function _2(re,X){for(var me=-1,He=re==null?0:re.length,We=0,ft=[];++me<He;){var wt=re[me];X(wt,me,re)&&(ft[We++]=wt)}return ft}function o0(){return[]}var tp=Object.prototype,Im=tp.propertyIsEnumerable,pu=Object.getOwnPropertySymbols,K0=pu?function(re){return re==null?[]:(re=Object(re),_2(pu(re),function(X){return Im.call(re,X)}))}:o0;const zc=K0;function np(re,X){return vt(re,zc(re),X)}var y0=Object.getOwnPropertySymbols,Cm=y0?function(re){for(var X=[];re;)Ih(X,zc(re)),re=wp(re);return X}:o0;const Dp=Cm;function Kg(re,X,me){var He=X(re);return B(re)?He:Ih(He,me(re))}function Ld(re){return Kg(re,O0,zc)}function f2(re){return Kg(re,Zh,Dp)}var Np=nt(i,"DataView");const QI=Np;var V0=nt(i,"Promise");const Vg=V0;var op=nt(i,"Set");const bs=op;var Zo="[object Map]",ip="[object Object]",vI="[object Promise]",nc="[object Set]",i0="[object WeakMap]",Cf="[object DataView]",ug=Te(QI),wI=Te(Xo),rp=Te(Vg),Rp=Te(bs),oc=Te(bt),gg=f;(QI&&gg(new QI(new ArrayBuffer(1)))!=Cf||Xo&&gg(new Xo)!=Zo||Vg&&gg(Vg.resolve())!=vI||bs&&gg(new bs)!=nc||bt&&gg(new bt)!=i0)&&(gg=function(re){var X=f(re),me=X==ip?re.constructor:void 0,He=me?Te(me):"";if(He)switch(He){case ug:return Cf;case wI:return Zo;case rp:return vI;case Rp:return nc;case oc:return i0}return X});const Cc=gg;var pa=Object.prototype,c3=pa.hasOwnProperty;function PI(re){var X=re.length,me=new re.constructor(X);return X&&typeof re[0]=="string"&&c3.call(re,"index")&&(me.index=re.index,me.input=re.input),me}var Tp=i.Uint8Array;const rl=Tp;function IA(re){var X=new re.constructor(re.byteLength);return new rl(X).set(new rl(re)),X}function uA(re,X){var me=re.buffer;return new re.constructor(me,re.byteOffset,re.byteLength)}var ym=/\w*$/;function kp(re){var X=new re.constructor(re.source,ym.exec(re));return X.lastIndex=re.lastIndex,X}var C1=s?s.prototype:void 0,xm=C1?C1.valueOf:void 0;function I2(re){return xm?Object(xm.call(re)):{}}function y1(re,X){var me=re.buffer;return new re.constructor(me,re.byteOffset,re.length)}var I_="[object Boolean]",MI="[object Date]",VE="[object Map]",GC="[object Number]",YC="[object RegExp]",yf="[object Set]",Fu="[object String]",sp="[object Symbol]",xf="[object ArrayBuffer]",C2="[object DataView]",$s="[object Float32Array]",DI="[object Float64Array]",y2="[object Int8Array]",x1="[object Int16Array]",dg="[object Int32Array]",x2="[object Uint8Array]",zE="[object Uint8ClampedArray]",E2="[object Uint16Array]",NI="[object Uint32Array]";function Fp(re,X,me){var He=re.constructor;switch(X){case xf:return IA(re);case I_:case MI:return new He(+re);case C2:return uA(re);case $s:case DI:case y2:case x1:case dg:case x2:case zE:case E2:case NI:return y1(re);case VE:return new He;case GC:case Fu:return new He(re);case YC:return kp(re);case yf:return new He;case sp:return I2(re)}}function qs(re){return typeof re.constructor=="function"&&!yo(re)?kt(wp(re)):{}}var RI="[object Map]";function Ch(re){return I(re)&&Cc(re)==RI}var C_=fc&&fc.isMap,yh=C_?vA(C_):Ch;const Em=yh;var z0="[object Set]";function TI(re){return I(re)&&Cc(re)==z0}var Ef=fc&&fc.isSet,Q4=Ef?vA(Ef):TI;const B2=Q4;var Lp="[object Arguments]",ma="[object Array]",b2="[object Boolean]",Hd="[object Date]",E1="[object Error]",kI="[object Function]",Od="[object GeneratorFunction]",B1="[object Map]",FI="[object Number]",UC="[object Object]",S2="[object RegExp]",KC="[object Set]",l3="[object String]",y_="[object Symbol]",ap="[object WeakMap]",u3="[object ArrayBuffer]",Q2="[object DataView]",Gd="[object Float32Array]",Yd="[object Float64Array]",b1="[object Int8Array]",v4="[object Int16Array]",Hp="[object Int32Array]",VC="[object Uint8Array]",Bm="[object Uint8ClampedArray]",Xr="[object Uint16Array]",v2="[object Uint32Array]",Ts={};Ts[Lp]=Ts[ma]=Ts[u3]=Ts[Q2]=Ts[b2]=Ts[Hd]=Ts[Gd]=Ts[Yd]=Ts[b1]=Ts[v4]=Ts[Hp]=Ts[B1]=Ts[FI]=Ts[UC]=Ts[S2]=Ts[KC]=Ts[l3]=Ts[y_]=Ts[VC]=Ts[Bm]=Ts[Xr]=Ts[v2]=!0,Ts[E1]=Ts[kI]=Ts[ap]=!1;function S1(re,X,me,He,We,ft){var wt;if(wt!==void 0)return wt;if(!O(re))return re;var zt=B(re);if(zt)return wt=PI(re),pn(re,wt);var en=Cc(re),In=en==kI||en==Od;if(ds(re))return Fd(re);if(en==UC||en==Lp||In&&!We)return wt=In?{}:qs(re),np(re,S4(wt,re));if(!Ts[en])return We?re:{};wt=Fp(re,en),ft||(ft=new U0);var po=ft.get(re);if(po)return po;ft.set(re,wt),B2(re)?re.forEach(function(Hi){wt.add(S1(Hi,X,me,Hi,re,ft))}):Em(re)&&re.forEach(function(Hi,pr){wt.set(pr,S1(Hi,X,me,pr,re,ft))});var wo=Ld,ci=zt?void 0:wo(re);return Wt(ci||re,function(Hi,pr){ci&&(pr=Hi,Hi=re[pr]),qe(wt,pr,S1(Hi,X,me,pr,re,ft))}),wt}var CA=4;function x0(re){return S1(re,CA)}function zg(re){for(var X=-1,me=re==null?0:re.length,He=0,We=[];++X<me;){var ft=re[X];ft&&(We[He++]=ft)}return We}var bm="__lodash_hash_undefined__";function Ss(re){return this.__data__.set(re,bm),this}function ic(re){return this.__data__.has(re)}function Va(re){var X=-1,me=re==null?0:re.length;for(this.__data__=new ka;++X<me;)this.add(re[X])}Va.prototype.add=Va.prototype.push=Ss,Va.prototype.has=ic;function LI(re,X){for(var me=-1,He=re==null?0:re.length;++me<He;)if(X(re[me],me,re))return!0;return!1}function Lu(re,X){return re.has(X)}var Jg=1,x_=2;function hg(re,X,me,He,We,ft){var wt=me&Jg,zt=re.length,en=X.length;if(zt!=en&&!(wt&&en>zt))return!1;var In=ft.get(re),po=ft.get(X);if(In&&po)return In==X&&po==re;var wo=-1,ci=!0,Hi=me&x_?new Va:void 0;for(ft.set(re,X),ft.set(X,re);++wo<zt;){var pr=re[wo],Wr=X[wo];if(He)var Ca=wt?He(Wr,pr,wo,X,re,ft):He(pr,Wr,wo,re,X,ft);if(Ca!==void 0){if(Ca)continue;ci=!1;break}if(Hi){if(!LI(X,function(rr,Wi){if(!Lu(Hi,Wi)&&(pr===rr||We(pr,rr,me,He,ft)))return Hi.push(Wi)})){ci=!1;break}}else if(!(pr===Wr||We(pr,Wr,me,He,ft))){ci=!1;break}}return ft.delete(re),ft.delete(X),ci}function xh(re){var X=-1,me=Array(re.size);return re.forEach(function(He,We){me[++X]=[We,He]}),me}function Ud(re){var X=-1,me=Array(re.size);return re.forEach(function(He){me[++X]=He}),me}var Ks=1,E_=2,Eh="[object Boolean]",B_="[object Date]",w4="[object Error]",J0="[object Map]",Sm="[object Number]",w2="[object RegExp]",g3="[object Set]",Wg="[object String]",r0="[object Symbol]",P2="[object ArrayBuffer]",zC="[object DataView]",W0=s?s.prototype:void 0,M2=W0?W0.valueOf:void 0;function sl(re,X,me,He,We,ft,wt){switch(me){case zC:if(re.byteLength!=X.byteLength||re.byteOffset!=X.byteOffset)return!1;re=re.buffer,X=X.buffer;case P2:return!(re.byteLength!=X.byteLength||!ft(new rl(re),new rl(X)));case Eh:case B_:case Sm:return Lt(+re,+X);case w4:return re.name==X.name&&re.message==X.message;case w2:case Wg:return re==X+"";case J0:var zt=xh;case g3:var en=He&Ks;if(zt||(zt=Ud),re.size!=X.size&&!en)return!1;var In=wt.get(re);if(In)return In==X;He|=E_,wt.set(re,X);var po=hg(zt(re),zt(X),He,We,ft,wt);return wt.delete(re),po;case r0:if(M2)return M2.call(re)==M2.call(X)}return!1}var b_=1,s0=Object.prototype,JE=s0.hasOwnProperty;function d3(re,X,me,He,We,ft){var wt=me&b_,zt=Ld(re),en=zt.length,In=Ld(X),po=In.length;if(en!=po&&!wt)return!1;for(var wo=en;wo--;){var ci=zt[wo];if(!(wt?ci in X:JE.call(X,ci)))return!1}var Hi=ft.get(re),pr=ft.get(X);if(Hi&&pr)return Hi==X&&pr==re;var Wr=!0;ft.set(re,X),ft.set(X,re);for(var Ca=wt;++wo<en;){ci=zt[wo];var rr=re[ci],Wi=X[ci];if(He)var Mi=wt?He(Wi,rr,ci,X,re,ft):He(rr,Wi,ci,re,X,ft);if(!(Mi===void 0?rr===Wi||We(rr,Wi,me,He,ft):Mi)){Wr=!1;break}Ca||(Ca=ci=="constructor")}if(Wr&&!Ca){var Gr=re.constructor,Bc=X.constructor;Gr!=Bc&&"constructor"in re&&"constructor"in X&&!(typeof Gr=="function"&&Gr instanceof Gr&&typeof Bc=="function"&&Bc instanceof Bc)&&(Wr=!1)}return ft.delete(re),ft.delete(X),Wr}var JC=1,Bf="[object Arguments]",D2="[object Array]",WC="[object Object]",Qm=Object.prototype,N2=Qm.hasOwnProperty;function WE(re,X,me,He,We,ft){var wt=B(re),zt=B(X),en=wt?D2:Cc(re),In=zt?D2:Cc(X);en=en==Bf?WC:en,In=In==Bf?WC:In;var po=en==WC,wo=In==WC,ci=en==In;if(ci&&ds(re)){if(!ds(X))return!1;wt=!0,po=!1}if(ci&&!po)return ft||(ft=new U0),wt||Ul(re)?hg(re,X,me,He,We,ft):sl(re,X,en,me,He,We,ft);if(!(me&JC)){var Hi=po&&N2.call(re,"__wrapped__"),pr=wo&&N2.call(X,"__wrapped__");if(Hi||pr){var Wr=Hi?re.value():re,Ca=pr?X.value():X;return ft||(ft=new U0),We(Wr,Ca,me,He,ft)}}return ci?(ft||(ft=new U0),d3(re,X,me,He,We,ft)):!1}function jE(re,X,me,He,We){return re===X?!0:re==null||X==null||!I(re)&&!I(X)?re!==re&&X!==X:WE(re,X,me,He,jE,We)}var $E=1,R2=2;function h3(re,X,me,He){var We=me.length,ft=We;if(re==null)return!ft;for(re=Object(re);We--;){var wt=me[We];if(wt[2]?wt[1]!==re[wt[0]]:!(wt[0]in re))return!1}for(;++We<ft;){wt=me[We];var zt=wt[0],en=re[zt],In=wt[1];if(wt[2]){if(en===void 0&&!(zt in re))return!1}else{var po=new U0,wo;if(!(wo===void 0?jE(In,en,$E|R2,He,po):wo))return!1}}return!0}function p3(re){return re===re&&!O(re)}function l9(re){for(var X=O0(re),me=X.length;me--;){var He=X[me],We=re[He];X[me]=[He,We,p3(We)]}return X}function qE(re,X){return function(me){return me==null?!1:me[re]===X&&(X!==void 0||re in Object(me))}}function P4(re){var X=l9(re);return X.length==1&&X[0][2]?qE(X[0][0],X[0][1]):function(me){return me===re||h3(me,re,X)}}function bf(re,X){return re!=null&&X in Object(re)}function XE(re,X,me){X=La(X,re);for(var He=-1,We=X.length,ft=!1;++He<We;){var wt=Y0(X[He]);if(!(ft=re!=null&&me(re,wt)))break;re=re[wt]}return ft||++He!=We?ft:(We=re==null?0:re.length,!!We&&Nn(We)&&Kt(wt,We)&&(B(re)||Fo(re)))}function T2(re,X){return re!=null&&XE(re,X,bf)}var k2=1,Ap=2;function F2(re,X){return _f(re)&&p3(X)?qE(Y0(re),X):function(me){var He=fh(me,re);return He===void 0&&He===X?T2(me,re):jE(X,He,k2|Ap)}}function m3(re){return function(X){return X?.[re]}}function HI(re){return function(X){return Hr(X,re)}}function kc(re){return _f(re)?m3(Y0(re)):HI(re)}function S_(re){return typeof re=="function"?re:re==null?ge:typeof re=="object"?B(re)?F2(re[0],re[1]):P4(re):kc(re)}function M4(re,X,me,He){for(var We=-1,ft=re==null?0:re.length;++We<ft;){var wt=re[We];X(He,wt,me(wt),re)}return He}function jC(re){return function(X,me,He){for(var We=-1,ft=Object(X),wt=He(X),zt=wt.length;zt--;){var en=wt[++We];if(me(ft[en],en,ft)===!1)break}return X}}var vm=jC();const ZE=vm;function NA(re,X){return re&&ZE(re,X,O0)}function Sf(re,X){return function(me,He){if(me==null)return me;if(!Co(me))return re(me,He);for(var We=me.length,ft=-1,wt=Object(me);++ft<We&&He(wt[ft],ft,wt)!==!1;);return me}}var OI=Sf(NA);const Q1=OI;function e5(re,X,me,He){return Q1(re,function(We,ft,wt){X(He,We,me(We),wt)}),He}function u9(re,X){return function(me,He){var We=B(me)?M4:e5,ft={};return We(me,re,S_(He),ft)}}var t5=Object.prototype,g9=t5.hasOwnProperty,n5=nn(function(re,X){re=Object(re);var me=-1,He=X.length,We=He>2?X[2]:void 0;for(We&&ei(X[0],X[1],We)&&(He=1);++me<He;)for(var ft=X[me],wt=Zh(ft),zt=-1,en=wt.length;++zt<en;){var In=wt[zt],po=re[In];(po===void 0||Lt(po,t5[In])&&!g9.call(re,In))&&(re[In]=ft[In])}return re});const o5=n5;function Qf(re){return I(re)&&Co(re)}var Q_=200;function d9(re,X,me,He){var We=-1,ft=kn,wt=!0,zt=re.length,en=[],In=X.length;if(!zt)return en;X.length>=Q_&&(ft=Lu,wt=!1,X=new Va(X));e:for(;++We<zt;){var po=re[We],wo=po;if(po=po!==0?po:0,wt&&wo===wo){for(var ci=In;ci--;)if(X[ci]===wo)continue e;en.push(po)}else ft(X,wo,He)||en.push(po)}return en}var $C=nn(function(re,X){return Qf(re)?d9(re,bI(X,1,Qf,!0)):[]});const L2=$C;function GI(re){var X=re==null?0:re.length;return X?re[X-1]:void 0}function Hu(re,X,me){var He=re==null?0:re.length;return He?(X=X===void 0?1:le(X),kd(re,X<0?0:X,He)):[]}function wm(re,X,me){var He=re==null?0:re.length;return He?(X=X===void 0?1:le(X),X=He-X,kd(re,0,X<0?0:X)):[]}function i5(re){return typeof re=="function"?re:ge}function zr(re,X){var me=B(re)?Wt:Q1;return me(re,i5(X))}function v1(re,X){for(var me=-1,He=re==null?0:re.length;++me<He;)if(!X(re[me],me,re))return!1;return!0}function D4(re,X){var me=!0;return Q1(re,function(He,We,ft){return me=!!X(He,We,ft),me}),me}function Bh(re,X,me){var He=B(re)?v1:D4;return He(re,S_(X))}function H2(re,X){var me=[];return Q1(re,function(He,We,ft){X(He,We,ft)&&me.push(He)}),me}function mu(re,X){var me=B(re)?_2:H2;return me(re,S_(X))}function vf(re){return function(X,me,He){var We=Object(X);if(!Co(X)){var ft=S_(me);X=O0(X),me=function(zt){return ft(We[zt],zt,We)}}var wt=re(X,me,He);return wt>-1?We[ft?X[wt]:wt]:void 0}}var YI=Math.max;function bh(re,X,me){var He=re==null?0:re.length;if(!He)return-1;var We=me==null?0:le(me);return We<0&&(We=YI(He+We,0)),Xt(re,S_(X),We)}var _3=vf(bh);const cp=_3;function Jc(re){return re&&re.length?re[0]:void 0}function r5(re,X){var me=-1,He=Co(re)?Array(re.length):[];return Q1(re,function(We,ft,wt){He[++me]=X(We,ft,wt)}),He}function Gi(re,X){var me=B(re)?x:r5;return me(re,S_(X))}function pg(re,X){return bI(Gi(re,X))}var Pm=Object.prototype,Op=Pm.hasOwnProperty,Sh=u9(function(re,X,me){Op.call(re,me)?re[me].push(X):rn(re,me,[X])});const Ys=Sh;var w1=Object.prototype,a0=w1.hasOwnProperty;function al(re,X){return re!=null&&a0.call(re,X)}function ai(re,X){return re!=null&&XE(re,X,al)}var v_="[object String]";function Al(re){return typeof re=="string"||!B(re)&&I(re)&&f(re)==v_}function P1(re,X){return x(X,function(me){return re[me]})}function Wc(re){return re==null?[]:P1(re,O0(re))}var Gp=Math.max;function A0(re,X,me,He){re=Co(re)?re:Wc(re),me=me?le(me):0;var We=re.length;return me<0&&(me=Gp(We+me,0)),Al(re)?me<=We&&re.indexOf(X,me)>-1:!!We&&An(re,X,me)>-1}function Mm(re,X,me){var He=re==null?0:re.length;if(!He)return-1;var We=0;return An(re,X,We)}var mg="[object Map]",_g="[object Set]",O2=Object.prototype,G2=O2.hasOwnProperty;function RA(re){if(re==null)return!0;if(Co(re)&&(B(re)||typeof re=="string"||typeof re.splice=="function"||ds(re)||Ul(re)||Fo(re)))return!re.length;var X=Cc(re);if(X==mg||X==_g)return!re.size;if(yo(re))return!FC(re).length;for(var me in re)if(G2.call(re,me))return!1;return!0}var jg="[object RegExp]";function qC(re){return I(re)&&f(re)==jg}var Kd=fc&&fc.isRegExp,h9=Kd?vA(Kd):qC;const yc=h9;function cs(re){return re===void 0}var Jn="Expected a function";function c8(re){if(typeof re!="function")throw new TypeError(Jn);return function(){var X=arguments;switch(X.length){case 0:return!re.call(this);case 1:return!re.call(this,X[0]);case 2:return!re.call(this,X[0],X[1]);case 3:return!re.call(this,X[0],X[1],X[2])}return!re.apply(this,X)}}function wf(re,X,me,He){if(!O(re))return re;X=La(X,re);for(var We=-1,ft=X.length,wt=ft-1,zt=re;zt!=null&&++We<ft;){var en=Y0(X[We]),In=me;if(en==="__proto__"||en==="constructor"||en==="prototype")return re;if(We!=wt){var po=zt[en];In=void 0,In===void 0&&(In=O(po)?po:Kt(X[We+1])?[]:{})}qe(zt,en,In),zt=zt[en]}return re}function XC(re,X,me){for(var He=-1,We=X.length,ft={};++He<We;){var wt=X[He],zt=Hr(re,wt);me(zt,wt)&&wf(ft,La(wt,re),zt)}return ft}function fg(re,X){if(re==null)return{};var me=x(f2(re),function(He){return[He]});return X=S_(X),XC(re,me,function(He,We){return X(He,We[0])})}function Y2(re,X,me,He,We){return We(re,function(ft,wt,zt){me=He?(He=!1,ft):X(me,ft,wt,zt)}),me}function _u(re,X,me){var He=B(re)?ff:Y2,We=arguments.length<3;return He(re,S_(X),me,We,Q1)}function Ig(re,X){var me=B(re)?_2:H2;return me(re,c8(S_(X)))}function s5(re,X){var me;return Q1(re,function(He,We,ft){return me=X(He,We,ft),!me}),!!me}function f3(re,X,me){var He=B(re)?LI:s5;return He(re,S_(X))}var ZC=1/0,I3=bs&&1/Ud(new bs([,-0]))[1]==ZC?function(re){return new bs(re)}:Yt;const Pf=I3;var UI=200;function C3(re,X,me){var He=-1,We=kn,ft=re.length,wt=!0,zt=[],en=zt;if(ft>=UI){var In=Pf(re);if(In)return Ud(In);wt=!1,We=Lu,en=new Va}else en=zt;e:for(;++He<ft;){var po=re[He],wo=po;if(po=po!==0?po:0,wt&&wo===wo){for(var ci=en.length;ci--;)if(en[ci]===wo)continue e;zt.push(po)}else We(en,wo,me)||(en!==zt&&en.push(wo),zt.push(po))}return zt}function KI(re){return re&&re.length?C3(re):[]}function E0(re){console&&console.error&&console.error(`Error: ${re}`)}function jc(re){console&&console.warn&&console.warn(`Warning: ${re}`)}function cl(re){const X=new Date().getTime(),me=re();return{time:new Date().getTime()-X,value:me}}function Ou(re){function X(){}X.prototype=re;const me=new X;function He(){return typeof me.bar}return He(),He(),re}function B0(re){return bl(re)?re.LABEL:re.name}function bl(re){return Al(re.LABEL)&&re.LABEL!==""}class Vd{get definition(){return this._definition}set definition(X){this._definition=X}constructor(X){this._definition=X}accept(X){X.visit(this),zr(this.definition,me=>{me.accept(X)})}}class za extends Vd{constructor(X){super([]),this.idx=1,tr(this,fg(X,me=>me!==void 0))}set definition(X){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(X){X.visit(this)}}class $g extends Vd{constructor(X){super(X.definition),this.orgText="",tr(this,fg(X,me=>me!==void 0))}}class Xa extends Vd{constructor(X){super(X.definition),this.ignoreAmbiguities=!1,tr(this,fg(X,me=>me!==void 0))}}class Za extends Vd{constructor(X){super(X.definition),this.idx=1,tr(this,fg(X,me=>me!==void 0))}}class Vs extends Vd{constructor(X){super(X.definition),this.idx=1,tr(this,fg(X,me=>me!==void 0))}}class fu extends Vd{constructor(X){super(X.definition),this.idx=1,tr(this,fg(X,me=>me!==void 0))}}class Si extends Vd{constructor(X){super(X.definition),this.idx=1,tr(this,fg(X,me=>me!==void 0))}}class lp extends Vd{constructor(X){super(X.definition),this.idx=1,tr(this,fg(X,me=>me!==void 0))}}class c0 extends Vd{get definition(){return this._definition}set definition(X){this._definition=X}constructor(X){super(X.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,tr(this,fg(X,me=>me!==void 0))}}class $c{constructor(X){this.idx=1,tr(this,fg(X,me=>me!==void 0))}accept(X){X.visit(this)}}function Qh(re){return Gi(re,Kl)}function Kl(re){function X(me){return Gi(me,Kl)}if(re instanceof za){const me={type:"NonTerminal",name:re.nonTerminalName,idx:re.idx};return Al(re.label)&&(me.label=re.label),me}else{if(re instanceof Xa)return{type:"Alternative",definition:X(re.definition)};if(re instanceof Za)return{type:"Option",idx:re.idx,definition:X(re.definition)};if(re instanceof Vs)return{type:"RepetitionMandatory",idx:re.idx,definition:X(re.definition)};if(re instanceof fu)return{type:"RepetitionMandatoryWithSeparator",idx:re.idx,separator:Kl(new $c({terminalType:re.separator})),definition:X(re.definition)};if(re instanceof lp)return{type:"RepetitionWithSeparator",idx:re.idx,separator:Kl(new $c({terminalType:re.separator})),definition:X(re.definition)};if(re instanceof Si)return{type:"Repetition",idx:re.idx,definition:X(re.definition)};if(re instanceof c0)return{type:"Alternation",idx:re.idx,definition:X(re.definition)};if(re instanceof $c){const me={type:"Terminal",name:re.terminalType.name,label:B0(re.terminalType),idx:re.idx};Al(re.label)&&(me.terminalLabel=re.label);const He=re.terminalType.PATTERN;return re.terminalType.PATTERN&&(me.pattern=yc(He)?He.source:He),me}else{if(re instanceof $g)return{type:"Rule",name:re.name,orgText:re.orgText,definition:X(re.definition)};throw Error("non exhaustive match")}}}class VI{visit(X){const me=X;switch(me.constructor){case za:return this.visitNonTerminal(me);case Xa:return this.visitAlternative(me);case Za:return this.visitOption(me);case Vs:return this.visitRepetitionMandatory(me);case fu:return this.visitRepetitionMandatoryWithSeparator(me);case lp:return this.visitRepetitionWithSeparator(me);case Si:return this.visitRepetition(me);case c0:return this.visitAlternation(me);case $c:return this.visitTerminal(me);case $g:return this.visitRule(me);default:throw Error("non exhaustive match")}}visitNonTerminal(X){}visitAlternative(X){}visitOption(X){}visitRepetition(X){}visitRepetitionMandatory(X){}visitRepetitionMandatoryWithSeparator(X){}visitRepetitionWithSeparator(X){}visitAlternation(X){}visitTerminal(X){}visitRule(X){}}function p9(re){return re instanceof Xa||re instanceof Za||re instanceof Si||re instanceof Vs||re instanceof fu||re instanceof lp||re instanceof $c||re instanceof $g}function zI(re,X=[]){return re instanceof Za||re instanceof Si||re instanceof lp?!0:re instanceof c0?f3(re.definition,He=>zI(He,X)):re instanceof za&&A0(X,re)?!1:re instanceof Vd?(re instanceof za&&X.push(re),Bh(re.definition,He=>zI(He,X))):!1}function rc(re){return re instanceof c0}function b0(re){if(re instanceof za)return"SUBRULE";if(re instanceof Za)return"OPTION";if(re instanceof c0)return"OR";if(re instanceof Vs)return"AT_LEAST_ONE";if(re instanceof fu)return"AT_LEAST_ONE_SEP";if(re instanceof lp)return"MANY_SEP";if(re instanceof Si)return"MANY";if(re instanceof $c)return"CONSUME";throw Error("non exhaustive match")}class Mf{walk(X,me=[]){zr(X.definition,(He,We)=>{const ft=Hu(X.definition,We+1);if(He instanceof za)this.walkProdRef(He,ft,me);else if(He instanceof $c)this.walkTerminal(He,ft,me);else if(He instanceof Xa)this.walkFlat(He,ft,me);else if(He instanceof Za)this.walkOption(He,ft,me);else if(He instanceof Vs)this.walkAtLeastOne(He,ft,me);else if(He instanceof fu)this.walkAtLeastOneSep(He,ft,me);else if(He instanceof lp)this.walkManySep(He,ft,me);else if(He instanceof Si)this.walkMany(He,ft,me);else if(He instanceof c0)this.walkOr(He,ft,me);else throw Error("non exhaustive match")})}walkTerminal(X,me,He){}walkProdRef(X,me,He){}walkFlat(X,me,He){const We=me.concat(He);this.walk(X,We)}walkOption(X,me,He){const We=me.concat(He);this.walk(X,We)}walkAtLeastOne(X,me,He){const We=[new Za({definition:X.definition})].concat(me,He);this.walk(X,We)}walkAtLeastOneSep(X,me,He){const We=a5(X,me,He);this.walk(X,We)}walkMany(X,me,He){const We=[new Za({definition:X.definition})].concat(me,He);this.walk(X,We)}walkManySep(X,me,He){const We=a5(X,me,He);this.walk(X,We)}walkOr(X,me,He){const We=me.concat(He);zr(X.definition,ft=>{const wt=new Xa({definition:[ft]});this.walk(wt,We)})}}function a5(re,X,me){return[new Za({definition:[new $c({terminalType:re.separator})].concat(re.definition)})].concat(X,me)}function Cg(re){if(re instanceof za)return Cg(re.referencedRule);if(re instanceof $c)return ey(re);if(p9(re))return Dm(re);if(rc(re))return JI(re);throw Error("non exhaustive match")}function Dm(re){let X=[];const me=re.definition;let He=0,We=me.length>He,ft,wt=!0;for(;We&&wt;)ft=me[He],wt=zI(ft),X=X.concat(Cg(ft)),He=He+1,We=me.length>He;return KI(X)}function JI(re){const X=Gi(re.definition,me=>Cg(me));return KI(hu(X))}function ey(re){return[re.terminalType]}const Nm="_~IN~_";class ll extends Mf{constructor(X){super(),this.topProd=X,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(X,me,He){}walkProdRef(X,me,He){const We=A5(X.referencedRule,X.idx)+this.topProd.name,ft=me.concat(He),wt=new Xa({definition:ft}),zt=Cg(wt);this.follows[We]=zt}}function WI(re){const X={};return zr(re,me=>{const He=new ll(me).startWalking();tr(X,He)}),X}function A5(re,X){return re.name+X+Nm}function Yi(re){return re.charCodeAt(0)}function c5(re,X){Array.isArray(re)?re.forEach(function(me){X.push(me)}):X.push(re)}function Df(re,X){if(re[X]===!0)throw"duplicate flag "+X;re[X],re[X]=!0}function M1(re){if(re===void 0)throw Error("Internal Error - Should never get here!");return!0}function ul(){throw Error("Internal Error - Should never get here!")}function Iu(re){return re.type==="Character"}const yg=[];for(let re=Yi("0");re<=Yi("9");re++)yg.push(re);const ss=[Yi("_")].concat(yg);for(let re=Yi("a");re<=Yi("z");re++)ss.push(re);for(let re=Yi("A");re<=Yi("Z");re++)ss.push(re);const D1=[Yi(" "),Yi("\f"),Yi(`
`),Yi("\r"),Yi("	"),Yi("\v"),Yi("	"),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi(" "),Yi("\u2028"),Yi("\u2029"),Yi(" "),Yi(" "),Yi(" "),Yi("\uFEFF")],l5=/[0-9a-fA-F]/,Yp=/[0-9]/,zd=/[1-9]/;class Gu{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(X){this.idx=X.idx,this.input=X.input,this.groupIdx=X.groupIdx}pattern(X){this.idx=0,this.input=X,this.groupIdx=0,this.consumeChar("/");const me=this.disjunction();this.consumeChar("/");const He={type:"Flags",loc:{begin:this.idx,end:X.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Df(He,"global");break;case"i":Df(He,"ignoreCase");break;case"m":Df(He,"multiLine");break;case"u":Df(He,"unicode");break;case"y":Df(He,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:He,value:me,loc:this.loc(0)}}disjunction(){const X=[],me=this.idx;for(X.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),X.push(this.alternative());return{type:"Disjunction",value:X,loc:this.loc(me)}}alternative(){const X=[],me=this.idx;for(;this.isTerm();)X.push(this.term());return{type:"Alternative",value:X,loc:this.loc(me)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const X=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(X)};case"$":return{type:"EndAnchor",loc:this.loc(X)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(X)};case"B":return{type:"NonWordBoundary",loc:this.loc(X)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let me;switch(this.popChar()){case"=":me="Lookahead";break;case"!":me="NegativeLookahead";break}M1(me);const He=this.disjunction();return this.consumeChar(")"),{type:me,value:He,loc:this.loc(X)}}return ul()}quantifier(X=!1){let me;const He=this.idx;switch(this.popChar()){case"*":me={atLeast:0,atMost:1/0};break;case"+":me={atLeast:1,atMost:1/0};break;case"?":me={atLeast:0,atMost:1};break;case"{":const We=this.integerIncludingZero();switch(this.popChar()){case"}":me={atLeast:We,atMost:We};break;case",":let ft;this.isDigit()?(ft=this.integerIncludingZero(),me={atLeast:We,atMost:ft}):me={atLeast:We,atMost:1/0},this.consumeChar("}");break}if(X===!0&&me===void 0)return;M1(me);break}if(!(X===!0&&me===void 0)&&M1(me))return this.peekChar(0)==="?"?(this.consumeChar("?"),me.greedy=!1):me.greedy=!0,me.type="Quantifier",me.loc=this.loc(He),me}atom(){let X;const me=this.idx;switch(this.peekChar()){case".":X=this.dotAll();break;case"\\":X=this.atomEscape();break;case"[":X=this.characterClass();break;case"(":X=this.group();break}if(X===void 0&&this.isPatternCharacter()&&(X=this.patternCharacter()),M1(X))return X.loc=this.loc(me),this.isQuantifier()&&(X.quantifier=this.quantifier()),X}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[Yi(`
`),Yi("\r"),Yi("\u2028"),Yi("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let X,me=!1;switch(this.popChar()){case"d":X=yg;break;case"D":X=yg,me=!0;break;case"s":X=D1;break;case"S":X=D1,me=!0;break;case"w":X=ss;break;case"W":X=ss,me=!0;break}if(M1(X))return{type:"Set",value:X,complement:me}}controlEscapeAtom(){let X;switch(this.popChar()){case"f":X=Yi("\f");break;case"n":X=Yi(`
`);break;case"r":X=Yi("\r");break;case"t":X=Yi("	");break;case"v":X=Yi("\v");break}if(M1(X))return{type:"Character",value:X}}controlLetterEscapeAtom(){this.consumeChar("c");const X=this.popChar();if(/[a-zA-Z]/.test(X)===!1)throw Error("Invalid ");return{type:"Character",value:X.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:Yi("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const X=this.popChar();return{type:"Character",value:Yi(X)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const X=this.popChar();return{type:"Character",value:Yi(X)}}}characterClass(){const X=[];let me=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),me=!0);this.isClassAtom();){const He=this.classAtom();if(He.type,Iu(He)&&this.isRangeDash()){this.consumeChar("-");const We=this.classAtom();if(We.type,Iu(We)){if(We.value<He.value)throw Error("Range out of order in character class");X.push({from:He.value,to:We.value})}else c5(He.value,X),X.push(Yi("-")),c5(We.value,X)}else c5(He.value,X)}return this.consumeChar("]"),{type:"Set",complement:me,value:X}}classAtom(){switch(this.peekChar()){case"]":case`
`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:Yi("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let X=!0;this.consumeChar("("),this.peekChar(0)==="?"?(this.consumeChar("?"),this.consumeChar(":"),X=!1):this.groupIdx++;const me=this.disjunction();this.consumeChar(")");const He={type:"Group",capturing:X,value:me};return X&&(He.idx=this.groupIdx),He}positiveInteger(){let X=this.popChar();if(zd.test(X)===!1)throw Error("Expecting a positive integer");for(;Yp.test(this.peekChar(0));)X+=this.popChar();return parseInt(X,10)}integerIncludingZero(){let X=this.popChar();if(Yp.test(X)===!1)throw Error("Expecting an integer");for(;Yp.test(this.peekChar(0));)X+=this.popChar();return parseInt(X,10)}patternCharacter(){const X=this.popChar();switch(X){case`
`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:Yi(X)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return Yp.test(this.peekChar(0))}isClassAtom(X=0){switch(this.peekChar(X)){case"]":case`
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}}isQuantifier(){const X=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(X)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(X){let me="";for(let We=0;We<X;We++){const ft=this.popChar();if(l5.test(ft)===!1)throw Error("Expecting a HexDecimal digits");me+=ft}return{type:"Character",value:parseInt(me,16)}}peekChar(X=0){return this.input[this.idx+X]}popChar(){const X=this.peekChar(0);return this.consumeChar(void 0),X}consumeChar(X){if(X!==void 0&&this.input[this.idx]!==X)throw Error("Expected: '"+X+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(X){return{begin:X,end:this.idx}}}class Nf{visitChildren(X){for(const me in X){const He=X[me];X.hasOwnProperty(me)&&(He.type!==void 0?this.visit(He):Array.isArray(He)&&He.forEach(We=>{this.visit(We)},this))}}visit(X){switch(X.type){case"Pattern":this.visitPattern(X);break;case"Flags":this.visitFlags(X);break;case"Disjunction":this.visitDisjunction(X);break;case"Alternative":this.visitAlternative(X);break;case"StartAnchor":this.visitStartAnchor(X);break;case"EndAnchor":this.visitEndAnchor(X);break;case"WordBoundary":this.visitWordBoundary(X);break;case"NonWordBoundary":this.visitNonWordBoundary(X);break;case"Lookahead":this.visitLookahead(X);break;case"NegativeLookahead":this.visitNegativeLookahead(X);break;case"Character":this.visitCharacter(X);break;case"Set":this.visitSet(X);break;case"Group":this.visitGroup(X);break;case"GroupBackReference":this.visitGroupBackReference(X);break;case"Quantifier":this.visitQuantifier(X);break}this.visitChildren(X)}visitPattern(X){}visitFlags(X){}visitDisjunction(X){}visitAlternative(X){}visitStartAnchor(X){}visitEndAnchor(X){}visitWordBoundary(X){}visitNonWordBoundary(X){}visitLookahead(X){}visitNegativeLookahead(X){}visitCharacter(X){}visitSet(X){}visitGroup(X){}visitGroupBackReference(X){}visitQuantifier(X){}}let Fc={};const _a=new Gu;function fa(re){const X=re.toString();if(Fc.hasOwnProperty(X))return Fc[X];{const me=_a.pattern(X);return Fc[X]=me,me}}function zs(){Fc={}}const Rm="Complement Sets are not supported for first char optimization",j0=`Unable to use "first char" lexer optimizations:
`;function w_(re,X=!1){try{const me=fa(re);return $0(me.value,{},me.flags.ignoreCase)}catch(me){if(me.message===Rm)X&&jc(`${j0}	Unable to optimize: < ${re.toString()} >
	Complement Sets cannot be automatically optimized.
	This will disable the lexer's first char optimizations.
	See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let He="";X&&(He=`
	This will disable the lexer's first char optimizations.
	See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),E0(`${j0}
	Failed parsing: < ${re.toString()} >
	Using the @chevrotain/regexp-to-ast library
	Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+He)}}return[]}function $0(re,X,me){switch(re.type){case"Disjunction":for(let We=0;We<re.value.length;We++)$0(re.value[We],X,me);break;case"Alternative":const He=re.value;for(let We=0;We<He.length;We++){const ft=He[We];switch(ft.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const wt=ft;switch(wt.type){case"Character":N1(wt.value,X,me);break;case"Set":if(wt.complement===!0)throw Error(Rm);zr(wt.value,en=>{if(typeof en=="number")N1(en,X,me);else{const In=en;if(me===!0)for(let po=In.from;po<=In.to;po++)N1(po,X,me);else{for(let po=In.from;po<=In.to&&po<Zr;po++)N1(po,X,me);if(In.to>=Zr){const po=In.from>=Zr?In.from:Zr,wo=In.to,ci=l0(po),Hi=l0(wo);for(let pr=ci;pr<=Hi;pr++)X[pr]=pr}}}});break;case"Group":$0(wt.value,X,me);break;default:throw Error("Non Exhaustive Match")}const zt=wt.quantifier!==void 0&&wt.quantifier.atLeast===0;if(wt.type==="Group"&&Kp(wt)===!1||wt.type!=="Group"&&zt===!1)break}break;default:throw Error("non exhaustive match!")}return Wc(X)}function N1(re,X,me){const He=l0(re);X[He]=He,me===!0&&Up(re,X)}function Up(re,X){const me=String.fromCharCode(re),He=me.toUpperCase();if(He!==me){const We=l0(He.charCodeAt(0));X[We]=We}else{const We=me.toLowerCase();if(We!==me){const ft=l0(We.charCodeAt(0));X[ft]=ft}}}function GA(re,X){return cp(re.value,me=>{if(typeof me=="number")return A0(X,me);{const He=me;return cp(X,We=>He.from<=We&&We<=He.to)!==void 0}})}function Kp(re){const X=re.quantifier;return X&&X.atLeast===0?!0:re.value?B(re.value)?Bh(re.value,Kp):Kp(re.value):!1}class S0 extends Nf{constructor(X){super(),this.targetCharCodes=X,this.found=!1}visitChildren(X){if(this.found!==!0){switch(X.type){case"Lookahead":this.visitLookahead(X);return;case"NegativeLookahead":this.visitNegativeLookahead(X);return}super.visitChildren(X)}}visitCharacter(X){A0(this.targetCharCodes,X.value)&&(this.found=!0)}visitSet(X){X.complement?GA(X,this.targetCharCodes)===void 0&&(this.found=!0):GA(X,this.targetCharCodes)!==void 0&&(this.found=!0)}}function u5(re,X){if(X instanceof RegExp){const me=fa(X),He=new S0(re);return He.visit(me),He.found}else return cp(X,me=>A0(re,me.charCodeAt(0)))!==void 0}const jI="PATTERN",vh="defaultMode",R1="modes";let Cu=typeof new RegExp("(?:)").sticky=="boolean";function N4(re,X){X=o5(X,{useSticky:Cu,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
`],tracer:(Wi,Mi)=>Mi()});const me=X.tracer;me("initCharCodeToOptimizedIndexMap",()=>{k1()});let He;me("Reject Lexer.NA",()=>{He=Ig(re,Wi=>Wi[jI]===yu.NA)});let We=!1,ft;me("Transform Patterns",()=>{We=!1,ft=Gi(He,Wi=>{const Mi=Wi[jI];if(yc(Mi)){const Gr=Mi.source;return Gr.length===1&&Gr!=="^"&&Gr!=="$"&&Gr!=="."&&!Mi.ignoreCase?Gr:Gr.length===2&&Gr[0]==="\\"&&!A0(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],Gr[1])?Gr[1]:X.useSticky?$I(Mi):xg(Mi)}else{if(ye(Mi))return We=!0,{exec:Mi};if(typeof Mi=="object")return We=!0,Mi;if(typeof Mi=="string"){if(Mi.length===1)return Mi;{const Gr=Mi.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),Bc=new RegExp(Gr);return X.useSticky?$I(Bc):xg(Bc)}}else throw Error("non exhaustive match")}})});let wt,zt,en,In,po;me("misc mapping",()=>{wt=Gi(He,Wi=>Wi.tokenTypeIdx),zt=Gi(He,Wi=>{const Mi=Wi.GROUP;if(Mi!==yu.SKIPPED){if(Al(Mi))return Mi;if(cs(Mi))return!1;throw Error("non exhaustive match")}}),en=Gi(He,Wi=>{const Mi=Wi.LONGER_ALT;if(Mi)return B(Mi)?Gi(Mi,Bc=>Mm(He,Bc)):[Mm(He,Mi)]}),In=Gi(He,Wi=>Wi.PUSH_MODE),po=Gi(He,Wi=>ai(Wi,"POP_MODE"))});let wo;me("Line Terminator Handling",()=>{const Wi=gA(X.lineTerminatorCharacters);wo=Gi(He,Mi=>!1),X.positionTracking!=="onlyOffset"&&(wo=Gi(He,Mi=>ai(Mi,"LINE_BREAKS")?!!Mi.LINE_BREAKS:qI(Mi,Wi)===!1&&u5(Wi,Mi.PATTERN)))});let ci,Hi,pr,Wr;me("Misc Mapping #2",()=>{ci=Gi(He,K2),Hi=Gi(ft,ty),pr=_u(He,(Wi,Mi)=>{const Gr=Mi.GROUP;return Al(Gr)&&Gr!==yu.SKIPPED&&(Wi[Gr]=[]),Wi},{}),Wr=Gi(ft,(Wi,Mi)=>({pattern:ft[Mi],longerAlt:en[Mi],canLineTerminator:wo[Mi],isCustom:ci[Mi],short:Hi[Mi],group:zt[Mi],push:In[Mi],pop:po[Mi],tokenTypeIdx:wt[Mi],tokenType:He[Mi]}))});let Ca=!0,rr=[];return X.safeMode||me("First Char Optimization",()=>{rr=_u(He,(Wi,Mi,Gr)=>{if(typeof Mi.PATTERN=="string"){const Bc=Mi.PATTERN.charCodeAt(0),qp=l0(Bc);Us(Wi,qp,Wr[Gr])}else if(B(Mi.START_CHARS_HINT)){let Bc;zr(Mi.START_CHARS_HINT,qp=>{const T_=typeof qp=="string"?qp.charCodeAt(0):qp,ly=l0(T_);Bc!==ly&&(Bc=ly,Us(Wi,ly,Wr[Gr]))})}else if(yc(Mi.PATTERN))if(Mi.PATTERN.unicode)Ca=!1,X.ensureOptimizations&&E0(`${j0}	Unable to analyze < ${Mi.PATTERN.toString()} > pattern.
	The regexp unicode flag is not currently supported by the regexp-to-ast library.
	This will disable the lexer's first char optimizations.
	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const Bc=w_(Mi.PATTERN,X.ensureOptimizations);RA(Bc)&&(Ca=!1),zr(Bc,qp=>{Us(Wi,qp,Wr[Gr])})}else X.ensureOptimizations&&E0(`${j0}	TokenType: <${Mi.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
	This will disable the lexer's first char optimizations.
	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),Ca=!1;return Wi},[])}),{emptyGroups:pr,patternIdxToConfig:Wr,charCodeToPatternIdxToConfig:rr,hasCustom:We,canBeOptimized:Ca}}function Vp(re,X){let me=[];const He=xs(re);me=me.concat(He.errors);const We=Lc(He.valid),ft=We.valid;return me=me.concat(We.errors),me=me.concat(Rf(ft)),me=me.concat(Tf(ft)),me=me.concat(Pa(ft,X)),me=me.concat(qc(ft)),me}function Rf(re){let X=[];const me=mu(re,He=>yc(He[jI]));return X=X.concat(Ja(me)),X=X.concat(qg(me)),X=X.concat(gl(me)),X=X.concat(y3(me)),X=X.concat(Ps(me)),X}function xs(re){const X=mu(re,We=>!ai(We,jI)),me=Gi(X,We=>({message:"Token Type: ->"+We.name+"<- missing static 'PATTERN' property",type:us.MISSING_PATTERN,tokenTypes:[We]})),He=L2(re,X);return{errors:me,valid:He}}function Lc(re){const X=mu(re,We=>{const ft=We[jI];return!yc(ft)&&!ye(ft)&&!ai(ft,"exec")&&!Al(ft)}),me=Gi(X,We=>({message:"Token Type: ->"+We.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:us.INVALID_PATTERN,tokenTypes:[We]})),He=L2(re,X);return{errors:me,valid:He}}const Ha=/[^\\][$]/;function Ja(re){class X extends Nf{constructor(){super(...arguments),this.found=!1}visitEndAnchor(ft){this.found=!0}}const me=mu(re,We=>{const ft=We.PATTERN;try{const wt=fa(ft),zt=new X;return zt.visit(wt),zt.found}catch{return Ha.test(ft.source)}});return Gi(me,We=>({message:`Unexpected RegExp Anchor Error:
	Token Type: ->`+We.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
	See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS	for details.`,type:us.EOI_ANCHOR_FOUND,tokenTypes:[We]}))}function Ps(re){const X=mu(re,He=>He.PATTERN.test(""));return Gi(X,He=>({message:"Token Type: ->"+He.name+"<- static 'PATTERN' must not match an empty string",type:us.EMPTY_MATCH_PATTERN,tokenTypes:[He]}))}const wh=/[^\\[][\^]|^\^/;function qg(re){class X extends Nf{constructor(){super(...arguments),this.found=!1}visitStartAnchor(ft){this.found=!0}}const me=mu(re,We=>{const ft=We.PATTERN;try{const wt=fa(ft),zt=new X;return zt.visit(wt),zt.found}catch{return wh.test(ft.source)}});return Gi(me,We=>({message:`Unexpected RegExp Anchor Error:
	Token Type: ->`+We.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
	See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS	for details.`,type:us.SOI_ANCHOR_FOUND,tokenTypes:[We]}))}function gl(re){const X=mu(re,He=>{const We=He[jI];return We instanceof RegExp&&(We.multiline||We.global)});return Gi(X,He=>({message:"Token Type: ->"+He.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:us.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[He]}))}function y3(re){const X=[];let me=Gi(re,ft=>_u(re,(wt,zt)=>(ft.PATTERN.source===zt.PATTERN.source&&!A0(X,zt)&&zt.PATTERN!==yu.NA&&(X.push(zt),wt.push(zt)),wt),[]));me=zg(me);const He=mu(me,ft=>ft.length>1);return Gi(He,ft=>{const wt=Gi(ft,en=>en.name);return{message:`The same RegExp pattern ->${Jc(ft).PATTERN}<-has been used in all of the following Token Types: ${wt.join(", ")} <-`,type:us.DUPLICATE_PATTERNS_FOUND,tokenTypes:ft}})}function Tf(re){const X=mu(re,He=>{if(!ai(He,"GROUP"))return!1;const We=He.GROUP;return We!==yu.SKIPPED&&We!==yu.NA&&!Al(We)});return Gi(X,He=>({message:"Token Type: ->"+He.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:us.INVALID_GROUP_TYPE_FOUND,tokenTypes:[He]}))}function Pa(re,X){const me=mu(re,We=>We.PUSH_MODE!==void 0&&!A0(X,We.PUSH_MODE));return Gi(me,We=>({message:`Token Type: ->${We.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${We.PUSH_MODE}<-which does not exist`,type:us.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[We]}))}function qc(re){const X=[],me=_u(re,(He,We,ft)=>{const wt=We.PATTERN;return wt===yu.NA||(Al(wt)?He.push({str:wt,idx:ft,tokenType:We}):yc(wt)&&xc(wt)&&He.push({str:wt.source,idx:ft,tokenType:We})),He},[]);return zr(re,(He,We)=>{zr(me,({str:ft,idx:wt,tokenType:zt})=>{if(We<wt&&Yu(ft,He.PATTERN)){const en=`Token: ->${zt.name}<- can never be matched.
Because it appears AFTER the Token Type ->${He.name}<-in the lexer's definition.
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;X.push({message:en,type:us.UNREACHABLE_PATTERN,tokenTypes:[He,zt]})}})}),X}function Yu(re,X){if(yc(X)){const me=X.exec(re);return me!==null&&me.index===0}else{if(ye(X))return X(re,0,[],{});if(ai(X,"exec"))return X.exec(re,0,[],{});if(typeof X=="string")return X===re;throw Error("non exhaustive match")}}function xc(re){return cp([".","\\","[","]","|","^","$","(",")","?","*","+","{"],me=>re.source.indexOf(me)!==-1)===void 0}function xg(re){const X=re.ignoreCase?"i":"";return new RegExp(`^(?:${re.source})`,X)}function $I(re){const X=re.ignoreCase?"iy":"y";return new RegExp(`${re.source}`,X)}function T1(re,X,me){const He=[];return ai(re,vh)||He.push({message:"A MultiMode Lexer cannot be initialized without a <"+vh+`> property in its definition
`,type:us.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),ai(re,R1)||He.push({message:"A MultiMode Lexer cannot be initialized without a <"+R1+`> property in its definition
`,type:us.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),ai(re,R1)&&ai(re,vh)&&!ai(re.modes,re.defaultMode)&&He.push({message:`A MultiMode Lexer cannot be initialized with a ${vh}: <${re.defaultMode}>which does not exist
`,type:us.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),ai(re,R1)&&zr(re.modes,(We,ft)=>{zr(We,(wt,zt)=>{if(cs(wt))He.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${ft}> at index: <${zt}>
`,type:us.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(ai(wt,"LONGER_ALT")){const en=B(wt.LONGER_ALT)?wt.LONGER_ALT:[wt.LONGER_ALT];zr(en,In=>{!cs(In)&&!A0(We,In)&&He.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${In.name}> on token <${wt.name}> outside of mode <${ft}>
`,type:us.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),He}function Xg(re,X,me){const He=[];let We=!1;const ft=zg(hu(Wc(re.modes))),wt=Ig(ft,en=>en[jI]===yu.NA),zt=gA(me);return X&&zr(wt,en=>{const In=qI(en,zt);if(In!==!1){const wo={message:ls(en,In),type:In.issue,tokenType:en};He.push(wo)}else ai(en,"LINE_BREAKS")?en.LINE_BREAKS===!0&&(We=!0):u5(zt,en.PATTERN)&&(We=!0)}),X&&!We&&He.push({message:`Warning: No LINE_BREAKS Found.
	This Lexer has been defined to track line and column information,
	But none of the Token Types can be identified as matching a line terminator.
	See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS 
	for details.`,type:us.NO_LINE_BREAKS_FLAGS}),He}function U2(re){const X={},me=O0(re);return zr(me,He=>{const We=re[He];if(B(We))X[He]=[];else throw Error("non exhaustive match")}),X}function K2(re){const X=re.PATTERN;if(yc(X))return!1;if(ye(X))return!0;if(ai(X,"exec"))return!0;if(Al(X))return!1;throw Error("non exhaustive match")}function ty(re){return Al(re)&&re.length===1?re.charCodeAt(0):!1}const kf={test:function(re){const X=re.length;for(let me=this.lastIndex;me<X;me++){const He=re.charCodeAt(me);if(He===10)return this.lastIndex=me+1,!0;if(He===13)return re.charCodeAt(me+1)===10?this.lastIndex=me+2:this.lastIndex=me+1,!0}return!1},lastIndex:0};function qI(re,X){if(ai(re,"LINE_BREAKS"))return!1;if(yc(re.PATTERN)){try{u5(X,re.PATTERN)}catch(me){return{issue:us.IDENTIFY_TERMINATOR,errMsg:me.message}}return!1}else{if(Al(re.PATTERN))return!1;if(K2(re))return{issue:us.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function ls(re,X){if(X.issue===us.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
	The problem is in the <${re.name}> Token Type
	 Root cause: ${X.errMsg}.
	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(X.issue===us.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
	The problem is in the <${re.name}> Token Type
	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function gA(re){return Gi(re,me=>Al(me)?me.charCodeAt(0):me)}function Us(re,X,me){re[X]===void 0?re[X]=[me]:re[X].push(me)}const Zr=256;let os=[];function l0(re){return re<Zr?re:os[re]}function k1(){if(RA(os)){os=new Array(65536);for(let re=0;re<65536;re++)os[re]=re>255?255+~~(re/255):re}}function Ph(re,X){const me=re.tokenTypeIdx;return me===X.tokenTypeIdx?!0:X.isParent===!0&&X.categoryMatchesMap[me]===!0}function XI(re,X){return re.tokenTypeIdx===X.tokenTypeIdx}let dl=1;const hl={};function Sl(re){const X=Uu(re);zp(X),Jp(X),pl(X),zr(X,me=>{me.isParent=me.categoryMatches.length>0})}function Uu(re){let X=x0(re),me=re,He=!0;for(;He;){me=zg(hu(Gi(me,ft=>ft.CATEGORIES)));const We=L2(me,X);X=X.concat(We),RA(We)?He=!1:me=We}return X}function zp(re){zr(re,X=>{Vl(X)||(hl[dl]=X,X.tokenTypeIdx=dl++),Mh(X)&&!B(X.CATEGORIES)&&(X.CATEGORIES=[X.CATEGORIES]),Mh(X)||(X.CATEGORIES=[]),ny(X)||(X.categoryMatches=[]),x3(X)||(X.categoryMatchesMap={})})}function pl(re){zr(re,X=>{X.categoryMatches=[],zr(X.categoryMatchesMap,(me,He)=>{X.categoryMatches.push(hl[He].tokenTypeIdx)})})}function Jp(re){zr(re,X=>{P_([],X)})}function P_(re,X){zr(re,me=>{X.categoryMatchesMap[me.tokenTypeIdx]=!0}),zr(X.CATEGORIES,me=>{const He=re.concat(X);A0(He,me)||P_(He,me)})}function Vl(re){return ai(re,"tokenTypeIdx")}function Mh(re){return ai(re,"CATEGORIES")}function ny(re){return ai(re,"categoryMatches")}function x3(re){return ai(re,"categoryMatchesMap")}function F1(re){return ai(re,"tokenTypeIdx")}const Wp={buildUnableToPopLexerModeMessage(re){return`Unable to pop Lexer Mode after encountering Token ->${re.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(re,X,me,He,We){return`unexpected character: ->${re.charAt(X)}<- at offset: ${X}, skipped ${me} characters.`}};var us;(function(re){re[re.MISSING_PATTERN=0]="MISSING_PATTERN",re[re.INVALID_PATTERN=1]="INVALID_PATTERN",re[re.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",re[re.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",re[re.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",re[re.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",re[re.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",re[re.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",re[re.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",re[re.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",re[re.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",re[re.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",re[re.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",re[re.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",re[re.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",re[re.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",re[re.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",re[re.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(us||(us={}));const Jd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Wp,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Jd);class yu{constructor(X,me=Jd){if(this.lexerDefinition=X,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(We,ft)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const wt=new Array(this.traceInitIndent+1).join("	");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${wt}--> <${We}>`);const{time:zt,value:en}=cl(ft),In=zt>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&In(`${wt}<-- <${We}> time: ${zt}ms`),this.traceInitIndent--,en}else return ft()},typeof me=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
a boolean 2nd argument is no longer supported`);this.config=tr({},Jd,me);const He=this.config.traceInitPerf;He===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof He=="number"&&(this.traceInitMaxIdent=He,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let We,ft=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Jd.lineTerminatorsPattern)this.config.lineTerminatorsPattern=kf;else if(this.config.lineTerminatorCharacters===Jd.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(me.safeMode&&me.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),B(X)?We={modes:{defaultMode:x0(X)},defaultMode:vh}:(ft=!1,We=x0(X))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(T1(We,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Xg(We,this.trackStartLines,this.config.lineTerminatorCharacters))})),We.modes=We.modes?We.modes:{},zr(We.modes,(zt,en)=>{We.modes[en]=Ig(zt,In=>cs(In))});const wt=O0(We.modes);if(zr(We.modes,(zt,en)=>{this.TRACE_INIT(`Mode: <${en}> processing`,()=>{if(this.modes.push(en),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Vp(zt,wt))}),RA(this.lexerDefinitionErrors)){Sl(zt);let In;this.TRACE_INIT("analyzeTokenTypes",()=>{In=N4(zt,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:me.positionTracking,ensureOptimizations:me.ensureOptimizations,safeMode:me.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[en]=In.patternIdxToConfig,this.charCodeToPatternIdxToConfig[en]=In.charCodeToPatternIdxToConfig,this.emptyGroups=tr({},this.emptyGroups,In.emptyGroups),this.hasCustom=In.hasCustom||this.hasCustom,this.canModeBeOptimized[en]=In.canBeOptimized}})}),this.defaultMode=We.defaultMode,!RA(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const en=Gi(this.lexerDefinitionErrors,In=>In.message).join(`-----------------------
`);throw new Error(`Errors detected in definition of Lexer:
`+en)}zr(this.lexerDefinitionWarning,zt=>{jc(zt.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(Cu?(this.chopInput=ge,this.match=this.matchWithTest):(this.updateLastIndex=Yt,this.match=this.matchWithExec),ft&&(this.handleModes=Yt),this.trackStartLines===!1&&(this.computeNewColumn=ge),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=Yt),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const zt=_u(this.canModeBeOptimized,(en,In,po)=>(In===!1&&en.push(po),en),[]);if(me.ensureOptimizations&&!RA(zt))throw Error(`Lexer Modes: < ${zt.join(", ")} > cannot be optimized.
	 Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
	 Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{zs()}),this.TRACE_INIT("toFastProperties",()=>{Ou(this)})})}tokenize(X,me=this.defaultMode){if(!RA(this.lexerDefinitionErrors)){const We=Gi(this.lexerDefinitionErrors,ft=>ft.message).join(`-----------------------
`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
`+We)}return this.tokenizeInternal(X,me)}tokenizeInternal(X,me){let He,We,ft,wt,zt,en,In,po,wo,ci,Hi,pr,Wr,Ca,rr;const Wi=X,Mi=Wi.length;let Gr=0,Bc=0;const qp=this.hasCustom?0:Math.floor(X.length/10),T_=new Array(qp),ly=[];let K1=this.trackStartLines?1:void 0,uy=this.trackStartLines?1:void 0;const Lm=U2(this.emptyGroups),gy=this.trackStartLines,rC=this.config.lineTerminatorsPattern;let dy=0,vr=[],sC=[];const D=[],H=[];Object.freeze(H);let z;function se(){return vr}function xe(Pn){const Zn=l0(Pn),Qo=sC[Zn];return Qo===void 0?H:Qo}const Fe=Pn=>{if(D.length===1&&Pn.tokenType.PUSH_MODE===void 0){const Zn=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(Pn);ly.push({offset:Pn.startOffset,line:Pn.startLine,column:Pn.startColumn,length:Pn.image.length,message:Zn})}else{D.pop();const Zn=GI(D);vr=this.patternIdxToConfig[Zn],sC=this.charCodeToPatternIdxToConfig[Zn],dy=vr.length;const Qo=this.canModeBeOptimized[Zn]&&this.config.safeMode===!1;sC&&Qo?z=xe:z=se}};function pt(Pn){D.push(Pn),sC=this.charCodeToPatternIdxToConfig[Pn],vr=this.patternIdxToConfig[Pn],dy=vr.length,dy=vr.length;const Zn=this.canModeBeOptimized[Pn]&&this.config.safeMode===!1;sC&&Zn?z=xe:z=se}pt.call(this,me);let St;const on=this.config.recoveryEnabled;for(;Gr<Mi;){en=null;const Pn=Wi.charCodeAt(Gr),Zn=z(Pn),Qo=Zn.length;for(He=0;He<Qo;He++){St=Zn[He];const Gn=St.pattern;In=null;const jn=St.short;if(jn!==!1?Pn===jn&&(en=Gn):St.isCustom===!0?(rr=Gn.exec(Wi,Gr,T_,Lm),rr!==null?(en=rr[0],rr.payload!==void 0&&(In=rr.payload)):en=null):(this.updateLastIndex(Gn,Gr),en=this.match(Gn,X,Gr)),en!==null){if(zt=St.longerAlt,zt!==void 0){const wr=zt.length;for(ft=0;ft<wr;ft++){const br=vr[zt[ft]],tA=br.pattern;if(po=null,br.isCustom===!0?(rr=tA.exec(Wi,Gr,T_,Lm),rr!==null?(wt=rr[0],rr.payload!==void 0&&(po=rr.payload)):wt=null):(this.updateLastIndex(tA,Gr),wt=this.match(tA,X,Gr)),wt&&wt.length>en.length){en=wt,In=po,St=br;break}}}break}}if(en!==null){if(wo=en.length,ci=St.group,ci!==void 0&&(Hi=St.tokenTypeIdx,pr=this.createTokenInstance(en,Gr,Hi,St.tokenType,K1,uy,wo),this.handlePayload(pr,In),ci===!1?Bc=this.addToken(T_,Bc,pr):Lm[ci].push(pr)),X=this.chopInput(X,wo),Gr=Gr+wo,uy=this.computeNewColumn(uy,wo),gy===!0&&St.canLineTerminator===!0){let Gn=0,jn,wr;rC.lastIndex=0;do jn=rC.test(en),jn===!0&&(wr=rC.lastIndex-1,Gn++);while(jn===!0);Gn!==0&&(K1=K1+Gn,uy=wo-wr,this.updateTokenEndLineColumnLocation(pr,ci,wr,Gn,K1,uy,wo))}this.handleModes(St,Fe,pt,pr)}else{const Gn=Gr,jn=K1,wr=uy;let br=on===!1;for(;br===!1&&Gr<Mi;)for(X=this.chopInput(X,1),Gr++,We=0;We<dy;We++){const tA=vr[We],Mn=tA.pattern,Cn=tA.short;if(Cn!==!1?Wi.charCodeAt(Gr)===Cn&&(br=!0):tA.isCustom===!0?br=Mn.exec(Wi,Gr,T_,Lm)!==null:(this.updateLastIndex(Mn,Gr),br=Mn.exec(X)!==null),br===!0)break}if(Wr=Gr-Gn,uy=this.computeNewColumn(uy,Wr),Ca=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(Wi,Gn,Wr,jn,wr),ly.push({offset:Gn,line:jn,column:wr,length:Wr,message:Ca}),on===!1)break}}return this.hasCustom||(T_.length=Bc),{tokens:T_,groups:Lm,errors:ly}}handleModes(X,me,He,We){if(X.pop===!0){const ft=X.push;me(We),ft!==void 0&&He.call(this,ft)}else X.push!==void 0&&He.call(this,X.push)}chopInput(X,me){return X.substring(me)}updateLastIndex(X,me){X.lastIndex=me}updateTokenEndLineColumnLocation(X,me,He,We,ft,wt,zt){let en,In;me!==void 0&&(en=He===zt-1,In=en?-1:0,We===1&&en===!0||(X.endLine=ft+In,X.endColumn=wt-1+-In))}computeNewColumn(X,me){return X+me}createOffsetOnlyToken(X,me,He,We){return{image:X,startOffset:me,tokenTypeIdx:He,tokenType:We}}createStartOnlyToken(X,me,He,We,ft,wt){return{image:X,startOffset:me,startLine:ft,startColumn:wt,tokenTypeIdx:He,tokenType:We}}createFullToken(X,me,He,We,ft,wt,zt){return{image:X,startOffset:me,endOffset:me+zt-1,startLine:ft,endLine:ft,startColumn:wt,endColumn:wt+zt-1,tokenTypeIdx:He,tokenType:We}}addTokenUsingPush(X,me,He){return X.push(He),me}addTokenUsingMemberAccess(X,me,He){return X[me]=He,me++,me}handlePayloadNoCustom(X,me){}handlePayloadWithCustom(X,me){me!==null&&(X.payload=me)}matchWithTest(X,me,He){return X.test(me)===!0?me.substring(He,X.lastIndex):null}matchWithExec(X,me){const He=X.exec(me);return He!==null?He[0]:null}}yu.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",yu.NA=/NOT_APPLICABLE/;function Dh(re){return V2(re)?re.LABEL:re.name}function V2(re){return Al(re.LABEL)&&re.LABEL!==""}const g5="parent",oy="categories",up="label",Ku="group",G="push_mode",V="pop_mode",Ae="longer_alt",Be="line_breaks",Oe="start_chars_hint";function Je(re){return Tt(re)}function Tt(re){const X=re.pattern,me={};if(me.name=re.name,cs(X)||(me.PATTERN=X),ai(re,g5))throw`The parent property is no longer supported.
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return ai(re,oy)&&(me.CATEGORIES=re[oy]),Sl([me]),ai(re,up)&&(me.LABEL=re[up]),ai(re,Ku)&&(me.GROUP=re[Ku]),ai(re,V)&&(me.POP_MODE=re[V]),ai(re,G)&&(me.PUSH_MODE=re[G]),ai(re,Ae)&&(me.LONGER_ALT=re[Ae]),ai(re,Be)&&(me.LINE_BREAKS=re[Be]),ai(re,Oe)&&(me.START_CHARS_HINT=re[Oe]),me}const ln=Je({name:"EOF",pattern:yu.NA});Sl([ln]);function wn(re,X,me,He,We,ft,wt,zt){return{image:X,startOffset:me,endOffset:He,startLine:We,endLine:ft,startColumn:wt,endColumn:zt,tokenTypeIdx:re.tokenTypeIdx,tokenType:re}}function $o(re,X){return Ph(re,X)}const Ai={buildMismatchTokenMessage({expected:re,actual:X,previous:me,ruleName:He}){return`Expecting ${V2(re)?`--> ${Dh(re)} <--`:`token of type --> ${re.name} <--`} but found --> '${X.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:re,ruleName:X}){return"Redundant input, expecting EOF but found: "+re.image},buildNoViableAltMessage({expectedPathsPerAlt:re,actual:X,previous:me,customUserDescription:He,ruleName:We}){const ft="Expecting: ",zt=`
but found: '`+Jc(X).image+"'";if(He)return ft+He+zt;{const en=_u(re,(ci,Hi)=>ci.concat(Hi),[]),In=Gi(en,ci=>`[${Gi(ci,Hi=>Dh(Hi)).join(", ")}]`),wo=`one of these possible Token sequences:
${Gi(In,(ci,Hi)=>`  ${Hi+1}. ${ci}`).join(`
`)}`;return ft+wo+zt}},buildEarlyExitMessage({expectedIterationPaths:re,actual:X,customUserDescription:me,ruleName:He}){const We="Expecting: ",wt=`
but found: '`+Jc(X).image+"'";if(me)return We+me+wt;{const en=`expecting at least one iteration which starts with one of these possible Token sequences::
  <${Gi(re,In=>`[${Gi(In,po=>Dh(po)).join(",")}]`).join(" ,")}>`;return We+en+wt}}};Object.freeze(Ai);const Qi={buildRuleNotFoundError(re,X){return"Invalid grammar, reference to a rule which is not defined: ->"+X.nonTerminalName+`<-
inside top level rule: ->`+re.name+"<-"}},Ni={buildDuplicateFoundError(re,X){function me(po){return po instanceof $c?po.terminalType.name:po instanceof za?po.nonTerminalName:""}const He=re.name,We=Jc(X),ft=We.idx,wt=b0(We),zt=me(We),en=ft>0;let In=`->${wt}${en?ft:""}<- ${zt?`with argument: ->${zt}<-`:""}
                  appears more than once (${X.length} times) in the top level rule: ->${He}<-.                  
                  For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES 
                  `;return In=In.replace(/[ \t]+/g," "),In=In.replace(/\s\s+/g,`
`),In},buildNamespaceConflictError(re){return`Namespace conflict found in grammar.
The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${re.name}>.
To resolve this make sure each Terminal and Non-Terminal names are unique
This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(re){const X=Gi(re.prefixPath,We=>Dh(We)).join(", "),me=re.alternation.idx===0?"":re.alternation.idx;return`Ambiguous alternatives: <${re.ambiguityIndices.join(" ,")}> due to common lookahead prefix
in <OR${me}> inside <${re.topLevelRule.name}> Rule,
<${X}> may appears as a prefix path in all these alternatives.
See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
For Further details.`},buildAlternationAmbiguityError(re){const X=Gi(re.prefixPath,We=>Dh(We)).join(", "),me=re.alternation.idx===0?"":re.alternation.idx;let He=`Ambiguous Alternatives Detected: <${re.ambiguityIndices.join(" ,")}> in <OR${me}> inside <${re.topLevelRule.name}> Rule,
<${X}> may appears as a prefix path in all these alternatives.
`;return He=He+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
For Further details.`,He},buildEmptyRepetitionError(re){let X=b0(re.repetition);return re.repetition.idx!==0&&(X+=re.repetition.idx),`The repetition <${X}> within Rule <${re.topLevelRule.name}> can never consume any tokens.
This could lead to an infinite loop.`},buildTokenNameError(re){return"deprecated"},buildEmptyAlternationError(re){return`Ambiguous empty alternative: <${re.emptyChoiceIdx+1}> in <OR${re.alternation.idx}> inside <${re.topLevelRule.name}> Rule.
Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(re){return`An Alternation cannot have more than 256 alternatives:
<OR${re.alternation.idx}> inside <${re.topLevelRule.name}> Rule.
 has ${re.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(re){const X=re.topLevelRule.name,me=Gi(re.leftRecursionPath,ft=>ft.name),He=`${X} --> ${me.concat([X]).join(" --> ")}`;return`Left Recursion found in grammar.
rule: <${X}> can be invoked from itself (directly or indirectly)
without consuming any Tokens. The grammar path that causes this is: 
 ${He}
 To fix this refactor your grammar to remove the left recursion.
see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(re){return"deprecated"},buildDuplicateRuleNameError(re){let X;return re.topLevelRule instanceof $g?X=re.topLevelRule.name:X=re.topLevelRule,`Duplicate definition, rule: ->${X}<- is already defined in the grammar: ->${re.grammarName}<-`}};function Xs(re,X){const me=new jp(re,X);return me.resolveRefs(),me.errors}class jp extends VI{constructor(X,me){super(),this.nameToTopRule=X,this.errMsgProvider=me,this.errors=[]}resolveRefs(){zr(Wc(this.nameToTopRule),X=>{this.currTopLevel=X,X.accept(this)})}visitNonTerminal(X){const me=this.nameToTopRule[X.nonTerminalName];if(me)X.referencedRule=me;else{const He=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,X);this.errors.push({message:He,type:pp.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:X.nonTerminalName})}}}class L1 extends Mf{constructor(X,me){super(),this.topProd=X,this.path=me,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=x0(this.path.ruleStack).reverse(),this.occurrenceStack=x0(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(X,me=[]){this.found||super.walk(X,me)}walkProdRef(X,me,He){if(X.referencedRule.name===this.nextProductionName&&X.idx===this.nextProductionOccurrence){const We=me.concat(He);this.updateExpectedNext(),this.walk(X.referencedRule,We)}}updateExpectedNext(){RA(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Eg extends L1{constructor(X,me){super(X,me),this.path=me,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(X,me,He){if(this.isAtEndOfPath&&X.terminalType.name===this.nextTerminalName&&X.idx===this.nextTerminalOccurrence&&!this.found){const We=me.concat(He),ft=new Xa({definition:We});this.possibleTokTypes=Cg(ft),this.found=!0}}}class Yn extends Mf{constructor(X,me){super(),this.topRule=X,this.occurrence=me,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class Qn extends Yn{walkMany(X,me,He){if(X.idx===this.occurrence){const We=Jc(me.concat(He));this.result.isEndOfRule=We===void 0,We instanceof $c&&(this.result.token=We.terminalType,this.result.occurrence=We.idx)}else super.walkMany(X,me,He)}}class to extends Yn{walkManySep(X,me,He){if(X.idx===this.occurrence){const We=Jc(me.concat(He));this.result.isEndOfRule=We===void 0,We instanceof $c&&(this.result.token=We.terminalType,this.result.occurrence=We.idx)}else super.walkManySep(X,me,He)}}class zo extends Yn{walkAtLeastOne(X,me,He){if(X.idx===this.occurrence){const We=Jc(me.concat(He));this.result.isEndOfRule=We===void 0,We instanceof $c&&(this.result.token=We.terminalType,this.result.occurrence=We.idx)}else super.walkAtLeastOne(X,me,He)}}class Bi extends Yn{walkAtLeastOneSep(X,me,He){if(X.idx===this.occurrence){const We=Jc(me.concat(He));this.result.isEndOfRule=We===void 0,We instanceof $c&&(this.result.token=We.terminalType,this.result.occurrence=We.idx)}else super.walkAtLeastOneSep(X,me,He)}}function eA(re,X,me=[]){me=x0(me);let He=[],We=0;function ft(zt){return zt.concat(Hu(re,We+1))}function wt(zt){const en=eA(ft(zt),X,me);return He.concat(en)}for(;me.length<X&&We<re.length;){const zt=re[We];if(zt instanceof Xa)return wt(zt.definition);if(zt instanceof za)return wt(zt.definition);if(zt instanceof Za)He=wt(zt.definition);else if(zt instanceof Vs){const en=zt.definition.concat([new Si({definition:zt.definition})]);return wt(en)}else if(zt instanceof fu){const en=[new Xa({definition:zt.definition}),new Si({definition:[new $c({terminalType:zt.separator})].concat(zt.definition)})];return wt(en)}else if(zt instanceof lp){const en=zt.definition.concat([new Si({definition:[new $c({terminalType:zt.separator})].concat(zt.definition)})]);He=wt(en)}else if(zt instanceof Si){const en=zt.definition.concat([new Si({definition:zt.definition})]);He=wt(en)}else{if(zt instanceof c0)return zr(zt.definition,en=>{RA(en.definition)===!1&&(He=wt(en.definition))}),He;if(zt instanceof $c)me.push(zt.terminalType);else throw Error("non exhaustive match")}We++}return He.push({partialPath:me,suffixDef:Hu(re,We)}),He}function Or(re,X,me,He){const We="EXIT_NONE_TERMINAL",ft=[We],wt="EXIT_ALTERNATIVE";let zt=!1;const en=X.length,In=en-He-1,po=[],wo=[];for(wo.push({idx:-1,def:re,ruleStack:[],occurrenceStack:[]});!RA(wo);){const ci=wo.pop();if(ci===wt){zt&&GI(wo).idx<=In&&wo.pop();continue}const Hi=ci.def,pr=ci.idx,Wr=ci.ruleStack,Ca=ci.occurrenceStack;if(RA(Hi))continue;const rr=Hi[0];if(rr===We){const Wi={idx:pr,def:Hu(Hi),ruleStack:wm(Wr),occurrenceStack:wm(Ca)};wo.push(Wi)}else if(rr instanceof $c)if(pr<en-1){const Wi=pr+1,Mi=X[Wi];if(me(Mi,rr.terminalType)){const Gr={idx:Wi,def:Hu(Hi),ruleStack:Wr,occurrenceStack:Ca};wo.push(Gr)}}else if(pr===en-1)po.push({nextTokenType:rr.terminalType,nextTokenOccurrence:rr.idx,ruleStack:Wr,occurrenceStack:Ca}),zt=!0;else throw Error("non exhaustive match");else if(rr instanceof za){const Wi=x0(Wr);Wi.push(rr.nonTerminalName);const Mi=x0(Ca);Mi.push(rr.idx);const Gr={idx:pr,def:rr.definition.concat(ft,Hu(Hi)),ruleStack:Wi,occurrenceStack:Mi};wo.push(Gr)}else if(rr instanceof Za){const Wi={idx:pr,def:Hu(Hi),ruleStack:Wr,occurrenceStack:Ca};wo.push(Wi),wo.push(wt);const Mi={idx:pr,def:rr.definition.concat(Hu(Hi)),ruleStack:Wr,occurrenceStack:Ca};wo.push(Mi)}else if(rr instanceof Vs){const Wi=new Si({definition:rr.definition,idx:rr.idx}),Mi=rr.definition.concat([Wi],Hu(Hi)),Gr={idx:pr,def:Mi,ruleStack:Wr,occurrenceStack:Ca};wo.push(Gr)}else if(rr instanceof fu){const Wi=new $c({terminalType:rr.separator}),Mi=new Si({definition:[Wi].concat(rr.definition),idx:rr.idx}),Gr=rr.definition.concat([Mi],Hu(Hi)),Bc={idx:pr,def:Gr,ruleStack:Wr,occurrenceStack:Ca};wo.push(Bc)}else if(rr instanceof lp){const Wi={idx:pr,def:Hu(Hi),ruleStack:Wr,occurrenceStack:Ca};wo.push(Wi),wo.push(wt);const Mi=new $c({terminalType:rr.separator}),Gr=new Si({definition:[Mi].concat(rr.definition),idx:rr.idx}),Bc=rr.definition.concat([Gr],Hu(Hi)),qp={idx:pr,def:Bc,ruleStack:Wr,occurrenceStack:Ca};wo.push(qp)}else if(rr instanceof Si){const Wi={idx:pr,def:Hu(Hi),ruleStack:Wr,occurrenceStack:Ca};wo.push(Wi),wo.push(wt);const Mi=new Si({definition:rr.definition,idx:rr.idx}),Gr=rr.definition.concat([Mi],Hu(Hi)),Bc={idx:pr,def:Gr,ruleStack:Wr,occurrenceStack:Ca};wo.push(Bc)}else if(rr instanceof c0)for(let Wi=rr.definition.length-1;Wi>=0;Wi--){const Mi=rr.definition[Wi],Gr={idx:pr,def:Mi.definition.concat(Hu(Hi)),ruleStack:Wr,occurrenceStack:Ca};wo.push(Gr),wo.push(wt)}else if(rr instanceof Xa)wo.push({idx:pr,def:rr.definition.concat(Hu(Hi)),ruleStack:Wr,occurrenceStack:Ca});else if(rr instanceof $g)wo.push(Js(rr,pr,Wr,Ca));else throw Error("non exhaustive match")}return po}function Js(re,X,me,He){const We=x0(me);We.push(re.name);const ft=x0(He);return ft.push(1),{idx:X,def:re.definition,ruleStack:We,occurrenceStack:ft}}var Qs;(function(re){re[re.OPTION=0]="OPTION",re[re.REPETITION=1]="REPETITION",re[re.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",re[re.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",re[re.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",re[re.ALTERNATION=5]="ALTERNATION"})(Qs||(Qs={}));function Wa(re){if(re instanceof Za||re==="Option")return Qs.OPTION;if(re instanceof Si||re==="Repetition")return Qs.REPETITION;if(re instanceof Vs||re==="RepetitionMandatory")return Qs.REPETITION_MANDATORY;if(re instanceof fu||re==="RepetitionMandatoryWithSeparator")return Qs.REPETITION_MANDATORY_WITH_SEPARATOR;if(re instanceof lp||re==="RepetitionWithSeparator")return Qs.REPETITION_WITH_SEPARATOR;if(re instanceof c0||re==="Alternation")return Qs.ALTERNATION;throw Error("non exhaustive match")}function Bg(re,X,me,He,We,ft){const wt=Ff(re,X,me),zt=h5(wt)?XI:Ph;return ft(wt,He,zt,We)}function d5(re,X,me,He,We,ft){const wt=Wd(re,X,We,me),zt=h5(wt)?XI:Ph;return ft(wt[0],zt,He)}function E3(re,X,me,He){const We=re.length,ft=Bh(re,wt=>Bh(wt,zt=>zt.length===1));if(X)return function(wt){const zt=Gi(wt,en=>en.GATE);for(let en=0;en<We;en++){const In=re[en],po=In.length,wo=zt[en];if(!(wo!==void 0&&wo.call(this)===!1))e:for(let ci=0;ci<po;ci++){const Hi=In[ci],pr=Hi.length;for(let Wr=0;Wr<pr;Wr++){const Ca=this.LA(Wr+1);if(me(Ca,Hi[Wr])===!1)continue e}return en}}};if(ft&&!He){const wt=Gi(re,en=>hu(en)),zt=_u(wt,(en,In,po)=>(zr(In,wo=>{ai(en,wo.tokenTypeIdx)||(en[wo.tokenTypeIdx]=po),zr(wo.categoryMatches,ci=>{ai(en,ci)||(en[ci]=po)})}),en),{});return function(){const en=this.LA(1);return zt[en.tokenTypeIdx]}}else return function(){for(let wt=0;wt<We;wt++){const zt=re[wt],en=zt.length;e:for(let In=0;In<en;In++){const po=zt[In],wo=po.length;for(let ci=0;ci<wo;ci++){const Hi=this.LA(ci+1);if(me(Hi,po[ci])===!1)continue e}return wt}}}}function H1(re,X,me){const He=Bh(re,ft=>ft.length===1),We=re.length;if(He&&!me){const ft=hu(re);if(ft.length===1&&RA(ft[0].categoryMatches)){const zt=ft[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===zt}}else{const wt=_u(ft,(zt,en,In)=>(zt[en.tokenTypeIdx]=!0,zr(en.categoryMatches,po=>{zt[po]=!0}),zt),[]);return function(){const zt=this.LA(1);return wt[zt.tokenTypeIdx]===!0}}}else return function(){e:for(let ft=0;ft<We;ft++){const wt=re[ft],zt=wt.length;for(let en=0;en<zt;en++){const In=this.LA(en+1);if(X(In,wt[en])===!1)continue e}return!0}return!1}}class M_ extends Mf{constructor(X,me,He){super(),this.topProd=X,this.targetOccurrence=me,this.targetProdType=He}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(X,me,He,We){return X.idx===this.targetOccurrence&&this.targetProdType===me?(this.restDef=He.concat(We),!0):!1}walkOption(X,me,He){this.checkIsTarget(X,Qs.OPTION,me,He)||super.walkOption(X,me,He)}walkAtLeastOne(X,me,He){this.checkIsTarget(X,Qs.REPETITION_MANDATORY,me,He)||super.walkOption(X,me,He)}walkAtLeastOneSep(X,me,He){this.checkIsTarget(X,Qs.REPETITION_MANDATORY_WITH_SEPARATOR,me,He)||super.walkOption(X,me,He)}walkMany(X,me,He){this.checkIsTarget(X,Qs.REPETITION,me,He)||super.walkOption(X,me,He)}walkManySep(X,me,He){this.checkIsTarget(X,Qs.REPETITION_WITH_SEPARATOR,me,He)||super.walkOption(X,me,He)}}class gp extends VI{constructor(X,me,He){super(),this.targetOccurrence=X,this.targetProdType=me,this.targetRef=He,this.result=[]}checkIsTarget(X,me){X.idx===this.targetOccurrence&&this.targetProdType===me&&(this.targetRef===void 0||X===this.targetRef)&&(this.result=X.definition)}visitOption(X){this.checkIsTarget(X,Qs.OPTION)}visitRepetition(X){this.checkIsTarget(X,Qs.REPETITION)}visitRepetitionMandatory(X){this.checkIsTarget(X,Qs.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(X){this.checkIsTarget(X,Qs.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(X){this.checkIsTarget(X,Qs.REPETITION_WITH_SEPARATOR)}visitAlternation(X){this.checkIsTarget(X,Qs.ALTERNATION)}}function Ma(re){const X=new Array(re);for(let me=0;me<re;me++)X[me]=[];return X}function ja(re){let X=[""];for(let me=0;me<re.length;me++){const He=re[me],We=[];for(let ft=0;ft<X.length;ft++){const wt=X[ft];We.push(wt+"_"+He.tokenTypeIdx);for(let zt=0;zt<He.categoryMatches.length;zt++){const en="_"+He.categoryMatches[zt];We.push(wt+en)}}X=We}return X}function z2(re,X,me){for(let He=0;He<re.length;He++){if(He===me)continue;const We=re[He];for(let ft=0;ft<X.length;ft++){const wt=X[ft];if(We[wt]===!0)return!1}}return!0}function ms(re,X){const me=Gi(re,wt=>eA([wt],1)),He=Ma(me.length),We=Gi(me,wt=>{const zt={};return zr(wt,en=>{const In=ja(en.partialPath);zr(In,po=>{zt[po]=!0})}),zt});let ft=me;for(let wt=1;wt<=X;wt++){const zt=ft;ft=Ma(zt.length);for(let en=0;en<zt.length;en++){const In=zt[en];for(let po=0;po<In.length;po++){const wo=In[po].partialPath,ci=In[po].suffixDef,Hi=ja(wo);if(z2(We,Hi,en)||RA(ci)||wo.length===X){const Wr=He[en];if(ZI(Wr,wo)===!1){Wr.push(wo);for(let Ca=0;Ca<Hi.length;Ca++){const rr=Hi[Ca];We[en][rr]=!0}}}else{const Wr=eA(ci,wt+1,wo);ft[en]=ft[en].concat(Wr),zr(Wr,Ca=>{const rr=ja(Ca.partialPath);zr(rr,Wi=>{We[en][Wi]=!0})})}}}}return He}function Ff(re,X,me,He){const We=new gp(re,Qs.ALTERNATION,He);return X.accept(We),ms(We.result,me)}function Wd(re,X,me,He){const We=new gp(re,me);X.accept(We);const ft=We.result,zt=new M_(X,re,me).startWalking(),en=new Xa({definition:ft}),In=new Xa({definition:zt});return ms([en,In],He)}function ZI(re,X){e:for(let me=0;me<re.length;me++){const He=re[me];if(He.length===X.length){for(let We=0;We<He.length;We++){const ft=X[We],wt=He[We];if((ft===wt||wt.categoryMatchesMap[ft.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function Ia(re,X){return re.length<X.length&&Bh(re,(me,He)=>{const We=X[He];return me===We||We.categoryMatchesMap[me.tokenTypeIdx]})}function h5(re){return Bh(re,X=>Bh(X,me=>Bh(me,He=>RA(He.categoryMatches))))}function p5(re){const X=re.lookaheadStrategy.validate({rules:re.rules,tokenTypes:re.tokenTypes,grammarName:re.grammarName});return Gi(X,me=>Object.assign({type:pp.CUSTOM_LOOKAHEAD_VALIDATION},me))}function zS(re,X,me,He){const We=pg(re,en=>Nh(en,me)),ft=tC(re,X,me),wt=pg(re,en=>Wn(en,me)),zt=pg(re,en=>iy(en,re,He,me));return We.concat(ft,wt,zt)}function Nh(re,X){const me=new B3;re.accept(me);const He=me.allProductions,We=Ys(He,yA),ft=fg(We,zt=>zt.length>1);return Gi(Wc(ft),zt=>{const en=Jc(zt),In=X.buildDuplicateFoundError(re,zt),po=b0(en),wo={message:In,type:pp.DUPLICATE_PRODUCTIONS,ruleName:re.name,dslName:po,occurrence:en.idx},ci=Lf(en);return ci&&(wo.parameter=ci),wo})}function yA(re){return`${b0(re)}_#_${re.idx}_#_${Lf(re)}`}function Lf(re){return re instanceof $c?re.terminalType.name:re instanceof za?re.nonTerminalName:""}class B3 extends VI{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(X){this.allProductions.push(X)}visitOption(X){this.allProductions.push(X)}visitRepetitionWithSeparator(X){this.allProductions.push(X)}visitRepetitionMandatory(X){this.allProductions.push(X)}visitRepetitionMandatoryWithSeparator(X){this.allProductions.push(X)}visitRepetition(X){this.allProductions.push(X)}visitAlternation(X){this.allProductions.push(X)}visitTerminal(X){this.allProductions.push(X)}}function iy(re,X,me,He){const We=[];if(_u(X,(wt,zt)=>zt.name===re.name?wt+1:wt,0)>1){const wt=He.buildDuplicateRuleNameError({topLevelRule:re,grammarName:me});We.push({message:wt,type:pp.DUPLICATE_RULE_NAME,ruleName:re.name})}return We}function b3(re,X,me){const He=[];let We;return A0(X,re)||(We=`Invalid rule override, rule: ->${re}<- cannot be overridden in the grammar: ->${me}<-as it is not defined in any of the super grammars `,He.push({message:We,type:pp.INVALID_RULE_OVERRIDE,ruleName:re})),He}function dp(re,X,me,He=[]){const We=[],ft=eC(X.definition);if(RA(ft))return[];{const wt=re.name;A0(ft,re)&&We.push({message:me.buildLeftRecursionError({topLevelRule:re,leftRecursionPath:He}),type:pp.LEFT_RECURSION,ruleName:wt});const en=L2(ft,He.concat([re])),In=pg(en,po=>{const wo=x0(He);return wo.push(po),dp(re,po,me,wo)});return We.concat(In)}}function eC(re){let X=[];if(RA(re))return X;const me=Jc(re);if(me instanceof za)X.push(me.referencedRule);else if(me instanceof Xa||me instanceof Za||me instanceof Vs||me instanceof fu||me instanceof lp||me instanceof Si)X=X.concat(eC(me.definition));else if(me instanceof c0)X=hu(Gi(me.definition,ft=>eC(ft.definition)));else if(!(me instanceof $c))throw Error("non exhaustive match");const He=zI(me),We=re.length>1;if(He&&We){const ft=Hu(re);return X.concat(eC(ft))}else return X}class J2 extends VI{constructor(){super(...arguments),this.alternations=[]}visitAlternation(X){this.alternations.push(X)}}function JS(re,X){const me=new J2;re.accept(me);const He=me.alternations;return pg(He,ft=>{const wt=wm(ft.definition);return pg(wt,(zt,en)=>{const In=Or([zt],[],Ph,1);return RA(In)?[{message:X.buildEmptyAlternationError({topLevelRule:re,alternation:ft,emptyChoiceIdx:en}),type:pp.NONE_LAST_EMPTY_ALT,ruleName:re.name,occurrence:ft.idx,alternative:en+1}]:[]})})}function l8(re,X,me){const He=new J2;re.accept(He);let We=He.alternations;return We=Ig(We,wt=>wt.ignoreAmbiguities===!0),pg(We,wt=>{const zt=wt.idx,en=wt.maxLookahead||X,In=Ff(zt,re,en,wt),po=u8(In,wt,re,me),wo=Rh(In,wt,re,me);return po.concat(wo)})}class ra extends VI{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(X){this.allProductions.push(X)}visitRepetitionMandatory(X){this.allProductions.push(X)}visitRepetitionMandatoryWithSeparator(X){this.allProductions.push(X)}visitRepetition(X){this.allProductions.push(X)}}function Wn(re,X){const me=new J2;re.accept(me);const He=me.alternations;return pg(He,ft=>ft.definition.length>255?[{message:X.buildTooManyAlternativesError({topLevelRule:re,alternation:ft}),type:pp.TOO_MANY_ALTS,ruleName:re.name,occurrence:ft.idx}]:[])}function _s(re,X,me){const He=[];return zr(re,We=>{const ft=new ra;We.accept(ft);const wt=ft.allProductions;zr(wt,zt=>{const en=Wa(zt),In=zt.maxLookahead||X,po=zt.idx,ci=Wd(po,We,en,In)[0];if(RA(hu(ci))){const Hi=me.buildEmptyRepetitionError({topLevelRule:We,repetition:zt});He.push({message:Hi,type:pp.NO_NON_EMPTY_LOOKAHEAD,ruleName:We.name})}})}),He}function u8(re,X,me,He){const We=[],ft=_u(re,(zt,en,In)=>(X.definition[In].ignoreAmbiguities===!0||zr(en,po=>{const wo=[In];zr(re,(ci,Hi)=>{In!==Hi&&ZI(ci,po)&&X.definition[Hi].ignoreAmbiguities!==!0&&wo.push(Hi)}),wo.length>1&&!ZI(We,po)&&(We.push(po),zt.push({alts:wo,path:po}))}),zt),[]);return Gi(ft,zt=>{const en=Gi(zt.alts,po=>po+1);return{message:He.buildAlternationAmbiguityError({topLevelRule:me,alternation:X,ambiguityIndices:en,prefixPath:zt.path}),type:pp.AMBIGUOUS_ALTS,ruleName:me.name,occurrence:X.idx,alternatives:zt.alts}})}function Rh(re,X,me,He){const We=_u(re,(wt,zt,en)=>{const In=Gi(zt,po=>({idx:en,path:po}));return wt.concat(In)},[]);return zg(pg(We,wt=>{if(X.definition[wt.idx].ignoreAmbiguities===!0)return[];const en=wt.idx,In=wt.path,po=mu(We,ci=>X.definition[ci.idx].ignoreAmbiguities!==!0&&ci.idx<en&&Ia(ci.path,In));return Gi(po,ci=>{const Hi=[ci.idx+1,en+1],pr=X.idx===0?"":X.idx;return{message:He.buildAlternationPrefixAmbiguityError({topLevelRule:me,alternation:X,ambiguityIndices:Hi,prefixPath:ci.path}),type:pp.AMBIGUOUS_PREFIX_ALTS,ruleName:me.name,occurrence:pr,alternatives:Hi}})}))}function tC(re,X,me){const He=[],We=Gi(X,ft=>ft.name);return zr(re,ft=>{const wt=ft.name;if(A0(We,wt)){const zt=me.buildNamespaceConflictError(ft);He.push({message:zt,type:pp.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:wt})}}),He}function Tm(re){const X=o5(re,{errMsgProvider:Qi}),me={};return zr(re.rules,He=>{me[He.name]=He}),Xs(me,X.errMsgProvider)}function O1(re){return re=o5(re,{errMsgProvider:Ni}),zS(re.rules,re.tokenTypes,re.errMsgProvider,re.grammarName)}const ry="MismatchedTokenException",$p="NoViableAltException",W2="EarlyExitException",G1="NotAllInputParsedException",S3=[ry,$p,W2,G1];Object.freeze(S3);function R4(re){return A0(S3,re.name)}class sy extends Error{constructor(X,me){super(X),this.token=me,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class g8 extends sy{constructor(X,me,He){super(X,me),this.previousToken=He,this.name=ry}}class D_ extends sy{constructor(X,me,He){super(X,me),this.previousToken=He,this.name=$p}}class ay extends sy{constructor(X,me){super(X,me),this.name=G1}}class Ay extends sy{constructor(X,me,He){super(X,me),this.previousToken=He,this.name=W2}}const Y1={},Q3="InRuleRecoveryException";class m5 extends Error{constructor(X){super(X),this.name=Q3}}class m9{initRecoverable(X){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=ai(X,"recoveryEnabled")?X.recoveryEnabled:Fm.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=nC)}getTokenToInsert(X){const me=wn(X,"",NaN,NaN,NaN,NaN,NaN,NaN);return me.isInsertedInRecovery=!0,me}canTokenTypeBeInsertedInRecovery(X){return!0}canTokenTypeBeDeletedInRecovery(X){return!0}tryInRepetitionRecovery(X,me,He,We){const ft=this.findReSyncTokenType(),wt=this.exportLexerState(),zt=[];let en=!1;const In=this.LA(1);let po=this.LA(1);const wo=()=>{const ci=this.LA(0),Hi=this.errorMessageProvider.buildMismatchTokenMessage({expected:We,actual:In,previous:ci,ruleName:this.getCurrRuleFullName()}),pr=new g8(Hi,In,this.LA(0));pr.resyncedTokens=wm(zt),this.SAVE_ERROR(pr)};for(;!en;)if(this.tokenMatcher(po,We)){wo();return}else if(He.call(this)){wo(),X.apply(this,me);return}else this.tokenMatcher(po,ft)?en=!0:(po=this.SKIP_TOKEN(),this.addToResyncTokens(po,zt));this.importLexerState(wt)}shouldInRepetitionRecoveryBeTried(X,me,He){return!(He===!1||this.tokenMatcher(this.LA(1),X)||this.isBackTracking()||this.canPerformInRuleRecovery(X,this.getFollowsForInRuleRecovery(X,me)))}getFollowsForInRuleRecovery(X,me){const He=this.getCurrentGrammarPath(X,me);return this.getNextPossibleTokenTypes(He)}tryInRuleRecovery(X,me){if(this.canRecoverWithSingleTokenInsertion(X,me))return this.getTokenToInsert(X);if(this.canRecoverWithSingleTokenDeletion(X)){const He=this.SKIP_TOKEN();return this.consumeToken(),He}throw new m5("sad sad panda")}canPerformInRuleRecovery(X,me){return this.canRecoverWithSingleTokenInsertion(X,me)||this.canRecoverWithSingleTokenDeletion(X)}canRecoverWithSingleTokenInsertion(X,me){if(!this.canTokenTypeBeInsertedInRecovery(X)||RA(me))return!1;const He=this.LA(1);return cp(me,ft=>this.tokenMatcher(He,ft))!==void 0}canRecoverWithSingleTokenDeletion(X){return this.canTokenTypeBeDeletedInRecovery(X)?this.tokenMatcher(this.LA(2),X):!1}isInCurrentRuleReSyncSet(X){const me=this.getCurrFollowKey(),He=this.getFollowSetFromFollowKey(me);return A0(He,X)}findReSyncTokenType(){const X=this.flattenFollowSet();let me=this.LA(1),He=2;for(;;){const We=cp(X,ft=>$o(me,ft));if(We!==void 0)return We;me=this.LA(He),He++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Y1;const X=this.getLastExplicitRuleShortName(),me=this.getLastExplicitRuleOccurrenceIndex(),He=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(X),idxInCallingRule:me,inRule:this.shortRuleNameToFullName(He)}}buildFullFollowKeyStack(){const X=this.RULE_STACK,me=this.RULE_OCCURRENCE_STACK;return Gi(X,(He,We)=>We===0?Y1:{ruleName:this.shortRuleNameToFullName(He),idxInCallingRule:me[We],inRule:this.shortRuleNameToFullName(X[We-1])})}flattenFollowSet(){const X=Gi(this.buildFullFollowKeyStack(),me=>this.getFollowSetFromFollowKey(me));return hu(X)}getFollowSetFromFollowKey(X){if(X===Y1)return[ln];const me=X.ruleName+X.idxInCallingRule+Nm+X.inRule;return this.resyncFollows[me]}addToResyncTokens(X,me){return this.tokenMatcher(X,ln)||me.push(X),me}reSyncTo(X){const me=[];let He=this.LA(1);for(;this.tokenMatcher(He,X)===!1;)He=this.SKIP_TOKEN(),this.addToResyncTokens(He,me);return wm(me)}attemptInRepetitionRecovery(X,me,He,We,ft,wt,zt){}getCurrentGrammarPath(X,me){const He=this.getHumanReadableRuleStack(),We=x0(this.RULE_OCCURRENCE_STACK);return{ruleStack:He,occurrenceStack:We,lastTok:X,lastTokOccurrence:me}}getHumanReadableRuleStack(){return Gi(this.RULE_STACK,X=>this.shortRuleNameToFullName(X))}}function nC(re,X,me,He,We,ft,wt){const zt=this.getKeyForAutomaticLookahead(He,We);let en=this.firstAfterRepMap[zt];if(en===void 0){const ci=this.getCurrRuleFullName(),Hi=this.getGAstProductions()[ci];en=new ft(Hi,We).startWalking(),this.firstAfterRepMap[zt]=en}let In=en.token,po=en.occurrence;const wo=en.isEndOfRule;this.RULE_STACK.length===1&&wo&&In===void 0&&(In=ln,po=1),!(In===void 0||po===void 0)&&this.shouldInRepetitionRecoveryBeTried(In,po,wt)&&this.tryInRepetitionRecovery(re,X,me,In)}const km=4,jd=8,Vu=1<<jd,Pi=2<<jd,Zg=3<<jd,Ql=4<<jd,q0=5<<jd,cy=6<<jd;function U1(re,X,me){return me|X|re}class v3{constructor(X){var me;this.maxLookahead=(me=X?.maxLookahead)!==null&&me!==void 0?me:Fm.maxLookahead}validate(X){const me=this.validateNoLeftRecursion(X.rules);if(RA(me)){const He=this.validateEmptyOrAlternatives(X.rules),We=this.validateAmbiguousAlternationAlternatives(X.rules,this.maxLookahead),ft=this.validateSomeNonEmptyLookaheadPath(X.rules,this.maxLookahead);return[...me,...He,...We,...ft]}return me}validateNoLeftRecursion(X){return pg(X,me=>dp(me,me,Ni))}validateEmptyOrAlternatives(X){return pg(X,me=>JS(me,Ni))}validateAmbiguousAlternationAlternatives(X,me){return pg(X,He=>l8(He,me,Ni))}validateSomeNonEmptyLookaheadPath(X,me){return _s(X,me,Ni)}buildLookaheadForAlternation(X){return Bg(X.prodOccurrence,X.rule,X.maxLookahead,X.hasPredicates,X.dynamicTokensEnabled,E3)}buildLookaheadForOptional(X){return d5(X.prodOccurrence,X.rule,X.maxLookahead,X.dynamicTokensEnabled,Wa(X.prodType),H1)}}class T4{initLooksAhead(X){this.dynamicTokensEnabled=ai(X,"dynamicTokensEnabled")?X.dynamicTokensEnabled:Fm.dynamicTokensEnabled,this.maxLookahead=ai(X,"maxLookahead")?X.maxLookahead:Fm.maxLookahead,this.lookaheadStrategy=ai(X,"lookaheadStrategy")?X.lookaheadStrategy:new v3({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(X){zr(X,me=>{this.TRACE_INIT(`${me.name} Rule Lookahead`,()=>{const{alternation:He,repetition:We,option:ft,repetitionMandatory:wt,repetitionMandatoryWithSeparator:zt,repetitionWithSeparator:en}=N_(me);zr(He,In=>{const po=In.idx===0?"":In.idx;this.TRACE_INIT(`${b0(In)}${po}`,()=>{const wo=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:In.idx,rule:me,maxLookahead:In.maxLookahead||this.maxLookahead,hasPredicates:In.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),ci=U1(this.fullRuleNameToShort[me.name],Vu,In.idx);this.setLaFuncCache(ci,wo)})}),zr(We,In=>{this.computeLookaheadFunc(me,In.idx,Zg,"Repetition",In.maxLookahead,b0(In))}),zr(ft,In=>{this.computeLookaheadFunc(me,In.idx,Pi,"Option",In.maxLookahead,b0(In))}),zr(wt,In=>{this.computeLookaheadFunc(me,In.idx,Ql,"RepetitionMandatory",In.maxLookahead,b0(In))}),zr(zt,In=>{this.computeLookaheadFunc(me,In.idx,cy,"RepetitionMandatoryWithSeparator",In.maxLookahead,b0(In))}),zr(en,In=>{this.computeLookaheadFunc(me,In.idx,q0,"RepetitionWithSeparator",In.maxLookahead,b0(In))})})})}computeLookaheadFunc(X,me,He,We,ft,wt){this.TRACE_INIT(`${wt}${me===0?"":me}`,()=>{const zt=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:me,rule:X,maxLookahead:ft||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:We}),en=U1(this.fullRuleNameToShort[X.name],He,me);this.setLaFuncCache(en,zt)})}getKeyForAutomaticLookahead(X,me){const He=this.getLastExplicitRuleShortName();return U1(He,X,me)}getLaFuncFromCache(X){return this.lookAheadFuncsCache.get(X)}setLaFuncCache(X,me){this.lookAheadFuncsCache.set(X,me)}}class ed extends VI{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(X){this.dslMethods.option.push(X)}visitRepetitionWithSeparator(X){this.dslMethods.repetitionWithSeparator.push(X)}visitRepetitionMandatory(X){this.dslMethods.repetitionMandatory.push(X)}visitRepetitionMandatoryWithSeparator(X){this.dslMethods.repetitionMandatoryWithSeparator.push(X)}visitRepetition(X){this.dslMethods.repetition.push(X)}visitAlternation(X){this.dslMethods.alternation.push(X)}}const hp=new ed;function N_(re){hp.reset(),re.accept(hp);const X=hp.dslMethods;return hp.reset(),X}function w3(re,X){isNaN(re.startOffset)===!0?(re.startOffset=X.startOffset,re.endOffset=X.endOffset):re.endOffset<X.endOffset&&(re.endOffset=X.endOffset)}function td(re,X){isNaN(re.startOffset)===!0?(re.startOffset=X.startOffset,re.startColumn=X.startColumn,re.startLine=X.startLine,re.endOffset=X.endOffset,re.endColumn=X.endColumn,re.endLine=X.endLine):re.endOffset<X.endOffset&&(re.endOffset=X.endOffset,re.endColumn=X.endColumn,re.endLine=X.endLine)}function zl(re,X,me){re.children[me]===void 0?re.children[me]=[X]:re.children[me].push(X)}function vl(re,X,me){re.children[X]===void 0?re.children[X]=[me]:re.children[X].push(me)}const X0="name";function zu(re,X){Object.defineProperty(re,X0,{enumerable:!1,configurable:!0,writable:!1,value:X})}function Hf(re,X){const me=O0(re),He=me.length;for(let We=0;We<He;We++){const ft=me[We],wt=re[ft],zt=wt.length;for(let en=0;en<zt;en++){const In=wt[en];In.tokenTypeIdx===void 0&&this[In.name](In.children,X)}}}function oC(re,X){const me=function(){};zu(me,re+"BaseSemantics");const He={visit:function(We,ft){if(B(We)&&(We=We[0]),!cs(We))return this[We.name](We.children,ft)},validateVisitor:function(){const We=WS(this,X);if(!RA(We)){const ft=Gi(We,wt=>wt.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
	${ft.join(`

`).replace(/\n/g,`
	`)}`)}}};return me.prototype=He,me.prototype.constructor=me,me._RULE_NAMES=X,me}function P3(re,X,me){const He=function(){};zu(He,re+"BaseSemanticsWithDefaults");const We=Object.create(me.prototype);return zr(X,ft=>{We[ft]=Hf}),He.prototype=We,He.prototype.constructor=He,He}var j2;(function(re){re[re.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",re[re.MISSING_METHOD=1]="MISSING_METHOD"})(j2||(j2={}));function WS(re,X){return Of(re,X)}function Of(re,X){const me=mu(X,We=>ye(re[We])===!1),He=Gi(me,We=>({msg:`Missing visitor method: <${We}> on ${re.constructor.name} CST Visitor.`,type:j2.MISSING_METHOD,methodName:We}));return zg(He)}class $2{initTreeBuilder(X){if(this.CST_STACK=[],this.outputCst=X.outputCst,this.nodeLocationTracking=ai(X,"nodeLocationTracking")?X.nodeLocationTracking:Fm.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Yt,this.cstFinallyStateUpdate=Yt,this.cstPostTerminal=Yt,this.cstPostNonTerminal=Yt,this.cstPostRule=Yt;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=td,this.setNodeLocationFromNode=td,this.cstPostRule=Yt,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Yt,this.setNodeLocationFromNode=Yt,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=w3,this.setNodeLocationFromNode=w3,this.cstPostRule=Yt,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Yt,this.setNodeLocationFromNode=Yt,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Yt,this.setNodeLocationFromNode=Yt,this.cstPostRule=Yt,this.setInitialNodeLocation=Yt;else throw Error(`Invalid <nodeLocationTracking> config option: "${X.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(X){X.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(X){X.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(X){X.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(X){const me=this.LA(1);X.location={startOffset:me.startOffset,startLine:me.startLine,startColumn:me.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(X){const me={name:X,children:Object.create(null)};this.setInitialNodeLocation(me),this.CST_STACK.push(me)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(X){const me=this.LA(0),He=X.location;He.startOffset<=me.startOffset?(He.endOffset=me.endOffset,He.endLine=me.endLine,He.endColumn=me.endColumn):(He.startOffset=NaN,He.startLine=NaN,He.startColumn=NaN)}cstPostRuleOnlyOffset(X){const me=this.LA(0),He=X.location;He.startOffset<=me.startOffset?He.endOffset=me.endOffset:He.startOffset=NaN}cstPostTerminal(X,me){const He=this.CST_STACK[this.CST_STACK.length-1];zl(He,me,X),this.setNodeLocationFromToken(He.location,me)}cstPostNonTerminal(X,me){const He=this.CST_STACK[this.CST_STACK.length-1];vl(He,me,X),this.setNodeLocationFromNode(He.location,X.location)}getBaseCstVisitorConstructor(){if(cs(this.baseCstVisitorConstructor)){const X=oC(this.className,O0(this.gastProductionsCache));return this.baseCstVisitorConstructor=X,X}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(cs(this.baseCstVisitorWithDefaultsConstructor)){const X=P3(this.className,O0(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=X,X}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const X=this.RULE_STACK;return X[X.length-1]}getPreviousExplicitRuleShortName(){const X=this.RULE_STACK;return X[X.length-2]}getLastExplicitRuleOccurrenceIndex(){const X=this.RULE_OCCURRENCE_STACK;return X[X.length-1]}}class q2{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(X){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=X,this.tokVectorLength=X.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):_5}LA(X){const me=this.currIdx+X;return me<0||this.tokVectorLength<=me?_5:this.tokVector[me]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(X){this.currIdx=X}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}class _9{ACTION(X){return X.call(this)}consume(X,me,He){return this.consumeInternal(me,X,He)}subrule(X,me,He){return this.subruleInternal(me,X,He)}option(X,me){return this.optionInternal(me,X)}or(X,me){return this.orInternal(me,X)}many(X,me){return this.manyInternal(X,me)}atLeastOne(X,me){return this.atLeastOneInternal(X,me)}CONSUME(X,me){return this.consumeInternal(X,0,me)}CONSUME1(X,me){return this.consumeInternal(X,1,me)}CONSUME2(X,me){return this.consumeInternal(X,2,me)}CONSUME3(X,me){return this.consumeInternal(X,3,me)}CONSUME4(X,me){return this.consumeInternal(X,4,me)}CONSUME5(X,me){return this.consumeInternal(X,5,me)}CONSUME6(X,me){return this.consumeInternal(X,6,me)}CONSUME7(X,me){return this.consumeInternal(X,7,me)}CONSUME8(X,me){return this.consumeInternal(X,8,me)}CONSUME9(X,me){return this.consumeInternal(X,9,me)}SUBRULE(X,me){return this.subruleInternal(X,0,me)}SUBRULE1(X,me){return this.subruleInternal(X,1,me)}SUBRULE2(X,me){return this.subruleInternal(X,2,me)}SUBRULE3(X,me){return this.subruleInternal(X,3,me)}SUBRULE4(X,me){return this.subruleInternal(X,4,me)}SUBRULE5(X,me){return this.subruleInternal(X,5,me)}SUBRULE6(X,me){return this.subruleInternal(X,6,me)}SUBRULE7(X,me){return this.subruleInternal(X,7,me)}SUBRULE8(X,me){return this.subruleInternal(X,8,me)}SUBRULE9(X,me){return this.subruleInternal(X,9,me)}OPTION(X){return this.optionInternal(X,0)}OPTION1(X){return this.optionInternal(X,1)}OPTION2(X){return this.optionInternal(X,2)}OPTION3(X){return this.optionInternal(X,3)}OPTION4(X){return this.optionInternal(X,4)}OPTION5(X){return this.optionInternal(X,5)}OPTION6(X){return this.optionInternal(X,6)}OPTION7(X){return this.optionInternal(X,7)}OPTION8(X){return this.optionInternal(X,8)}OPTION9(X){return this.optionInternal(X,9)}OR(X){return this.orInternal(X,0)}OR1(X){return this.orInternal(X,1)}OR2(X){return this.orInternal(X,2)}OR3(X){return this.orInternal(X,3)}OR4(X){return this.orInternal(X,4)}OR5(X){return this.orInternal(X,5)}OR6(X){return this.orInternal(X,6)}OR7(X){return this.orInternal(X,7)}OR8(X){return this.orInternal(X,8)}OR9(X){return this.orInternal(X,9)}MANY(X){this.manyInternal(0,X)}MANY1(X){this.manyInternal(1,X)}MANY2(X){this.manyInternal(2,X)}MANY3(X){this.manyInternal(3,X)}MANY4(X){this.manyInternal(4,X)}MANY5(X){this.manyInternal(5,X)}MANY6(X){this.manyInternal(6,X)}MANY7(X){this.manyInternal(7,X)}MANY8(X){this.manyInternal(8,X)}MANY9(X){this.manyInternal(9,X)}MANY_SEP(X){this.manySepFirstInternal(0,X)}MANY_SEP1(X){this.manySepFirstInternal(1,X)}MANY_SEP2(X){this.manySepFirstInternal(2,X)}MANY_SEP3(X){this.manySepFirstInternal(3,X)}MANY_SEP4(X){this.manySepFirstInternal(4,X)}MANY_SEP5(X){this.manySepFirstInternal(5,X)}MANY_SEP6(X){this.manySepFirstInternal(6,X)}MANY_SEP7(X){this.manySepFirstInternal(7,X)}MANY_SEP8(X){this.manySepFirstInternal(8,X)}MANY_SEP9(X){this.manySepFirstInternal(9,X)}AT_LEAST_ONE(X){this.atLeastOneInternal(0,X)}AT_LEAST_ONE1(X){return this.atLeastOneInternal(1,X)}AT_LEAST_ONE2(X){this.atLeastOneInternal(2,X)}AT_LEAST_ONE3(X){this.atLeastOneInternal(3,X)}AT_LEAST_ONE4(X){this.atLeastOneInternal(4,X)}AT_LEAST_ONE5(X){this.atLeastOneInternal(5,X)}AT_LEAST_ONE6(X){this.atLeastOneInternal(6,X)}AT_LEAST_ONE7(X){this.atLeastOneInternal(7,X)}AT_LEAST_ONE8(X){this.atLeastOneInternal(8,X)}AT_LEAST_ONE9(X){this.atLeastOneInternal(9,X)}AT_LEAST_ONE_SEP(X){this.atLeastOneSepFirstInternal(0,X)}AT_LEAST_ONE_SEP1(X){this.atLeastOneSepFirstInternal(1,X)}AT_LEAST_ONE_SEP2(X){this.atLeastOneSepFirstInternal(2,X)}AT_LEAST_ONE_SEP3(X){this.atLeastOneSepFirstInternal(3,X)}AT_LEAST_ONE_SEP4(X){this.atLeastOneSepFirstInternal(4,X)}AT_LEAST_ONE_SEP5(X){this.atLeastOneSepFirstInternal(5,X)}AT_LEAST_ONE_SEP6(X){this.atLeastOneSepFirstInternal(6,X)}AT_LEAST_ONE_SEP7(X){this.atLeastOneSepFirstInternal(7,X)}AT_LEAST_ONE_SEP8(X){this.atLeastOneSepFirstInternal(8,X)}AT_LEAST_ONE_SEP9(X){this.atLeastOneSepFirstInternal(9,X)}RULE(X,me,He=R_){if(A0(this.definedRulesNames,X)){const wt={message:Ni.buildDuplicateRuleNameError({topLevelRule:X,grammarName:this.className}),type:pp.DUPLICATE_RULE_NAME,ruleName:X};this.definitionErrors.push(wt)}this.definedRulesNames.push(X);const We=this.defineRule(X,me,He);return this[X]=We,We}OVERRIDE_RULE(X,me,He=R_){const We=b3(X,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(We);const ft=this.defineRule(X,me,He);return this[X]=ft,ft}BACKTRACK(X,me){return function(){this.isBackTrackingStack.push(1);const He=this.saveRecogState();try{return X.apply(this,me),!0}catch(We){if(R4(We))return!1;throw We}finally{this.reloadRecogState(He),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Qh(Wc(this.gastProductionsCache))}}class k4{initRecognizerEngine(X,me){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=XI,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},ai(me,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
	See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
	For Further details.`);if(B(X)){if(RA(X))throw Error(`A Token Vocabulary cannot be empty.
	Note that the first argument for the parser constructor
	is no longer a Token vector (since v4.0).`);if(typeof X[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
	See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
	For Further details.`)}if(B(X))this.tokensMap=_u(X,(ft,wt)=>(ft[wt.name]=wt,ft),{});else if(ai(X,"modes")&&Bh(hu(Wc(X.modes)),F1)){const ft=hu(Wc(X.modes)),wt=KI(ft);this.tokensMap=_u(wt,(zt,en)=>(zt[en.name]=en,zt),{})}else if(O(X))this.tokensMap=x0(X);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=ln;const He=ai(X,"modes")?hu(Wc(X.modes)):Wc(X),We=Bh(He,ft=>RA(ft.categoryMatches));this.tokenMatcher=We?XI:Ph,Sl(Wc(this.tokensMap))}defineRule(X,me,He){if(this.selfAnalysisDone)throw Error(`Grammar rule <${X}> may not be defined after the 'performSelfAnalysis' method has been called'
Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const We=ai(He,"resyncEnabled")?He.resyncEnabled:R_.resyncEnabled,ft=ai(He,"recoveryValueFunc")?He.recoveryValueFunc:R_.recoveryValueFunc,wt=this.ruleShortNameIdx<<km+jd;this.ruleShortNameIdx++,this.shortRuleNameToFull[wt]=X,this.fullRuleNameToShort[X]=wt;let zt;return this.outputCst===!0?zt=function(...po){try{this.ruleInvocationStateUpdate(wt,X,this.subruleIdx),me.apply(this,po);const wo=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(wo),wo}catch(wo){return this.invokeRuleCatch(wo,We,ft)}finally{this.ruleFinallyStateUpdate()}}:zt=function(...po){try{return this.ruleInvocationStateUpdate(wt,X,this.subruleIdx),me.apply(this,po)}catch(wo){return this.invokeRuleCatch(wo,We,ft)}finally{this.ruleFinallyStateUpdate()}},Object.assign(zt,{ruleName:X,originalGrammarAction:me})}invokeRuleCatch(X,me,He){const We=this.RULE_STACK.length===1,ft=me&&!this.isBackTracking()&&this.recoveryEnabled;if(R4(X)){const wt=X;if(ft){const zt=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(zt))if(wt.resyncedTokens=this.reSyncTo(zt),this.outputCst){const en=this.CST_STACK[this.CST_STACK.length-1];return en.recoveredNode=!0,en}else return He(X);else{if(this.outputCst){const en=this.CST_STACK[this.CST_STACK.length-1];en.recoveredNode=!0,wt.partialCstResult=en}throw wt}}else{if(We)return this.moveToTerminatedState(),He(X);throw wt}}else throw X}optionInternal(X,me){const He=this.getKeyForAutomaticLookahead(Pi,me);return this.optionInternalLogic(X,me,He)}optionInternalLogic(X,me,He){let We=this.getLaFuncFromCache(He),ft;if(typeof X!="function"){ft=X.DEF;const wt=X.GATE;if(wt!==void 0){const zt=We;We=()=>wt.call(this)&&zt.call(this)}}else ft=X;if(We.call(this)===!0)return ft.call(this)}atLeastOneInternal(X,me){const He=this.getKeyForAutomaticLookahead(Ql,X);return this.atLeastOneInternalLogic(X,me,He)}atLeastOneInternalLogic(X,me,He){let We=this.getLaFuncFromCache(He),ft;if(typeof me!="function"){ft=me.DEF;const wt=me.GATE;if(wt!==void 0){const zt=We;We=()=>wt.call(this)&&zt.call(this)}}else ft=me;if(We.call(this)===!0){let wt=this.doSingleRepetition(ft);for(;We.call(this)===!0&&wt===!0;)wt=this.doSingleRepetition(ft)}else throw this.raiseEarlyExitException(X,Qs.REPETITION_MANDATORY,me.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[X,me],We,Ql,X,zo)}atLeastOneSepFirstInternal(X,me){const He=this.getKeyForAutomaticLookahead(cy,X);this.atLeastOneSepFirstInternalLogic(X,me,He)}atLeastOneSepFirstInternalLogic(X,me,He){const We=me.DEF,ft=me.SEP;if(this.getLaFuncFromCache(He).call(this)===!0){We.call(this);const zt=()=>this.tokenMatcher(this.LA(1),ft);for(;this.tokenMatcher(this.LA(1),ft)===!0;)this.CONSUME(ft),We.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[X,ft,zt,We,Bi],zt,cy,X,Bi)}else throw this.raiseEarlyExitException(X,Qs.REPETITION_MANDATORY_WITH_SEPARATOR,me.ERR_MSG)}manyInternal(X,me){const He=this.getKeyForAutomaticLookahead(Zg,X);return this.manyInternalLogic(X,me,He)}manyInternalLogic(X,me,He){let We=this.getLaFuncFromCache(He),ft;if(typeof me!="function"){ft=me.DEF;const zt=me.GATE;if(zt!==void 0){const en=We;We=()=>zt.call(this)&&en.call(this)}}else ft=me;let wt=!0;for(;We.call(this)===!0&&wt===!0;)wt=this.doSingleRepetition(ft);this.attemptInRepetitionRecovery(this.manyInternal,[X,me],We,Zg,X,Qn,wt)}manySepFirstInternal(X,me){const He=this.getKeyForAutomaticLookahead(q0,X);this.manySepFirstInternalLogic(X,me,He)}manySepFirstInternalLogic(X,me,He){const We=me.DEF,ft=me.SEP;if(this.getLaFuncFromCache(He).call(this)===!0){We.call(this);const zt=()=>this.tokenMatcher(this.LA(1),ft);for(;this.tokenMatcher(this.LA(1),ft)===!0;)this.CONSUME(ft),We.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[X,ft,zt,We,to],zt,q0,X,to)}}repetitionSepSecondInternal(X,me,He,We,ft){for(;He();)this.CONSUME(me),We.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[X,me,He,We,ft],He,cy,X,ft)}doSingleRepetition(X){const me=this.getLexerPosition();return X.call(this),this.getLexerPosition()>me}orInternal(X,me){const He=this.getKeyForAutomaticLookahead(Vu,me),We=B(X)?X:X.DEF,wt=this.getLaFuncFromCache(He).call(this,We);if(wt!==void 0)return We[wt].ALT.call(this);this.raiseNoAltException(me,X.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const X=this.LA(1),me=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:X,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new ay(me,X))}}subruleInternal(X,me,He){let We;try{const ft=He!==void 0?He.ARGS:void 0;return this.subruleIdx=me,We=X.apply(this,ft),this.cstPostNonTerminal(We,He!==void 0&&He.LABEL!==void 0?He.LABEL:X.ruleName),We}catch(ft){throw this.subruleInternalError(ft,He,X.ruleName)}}subruleInternalError(X,me,He){throw R4(X)&&X.partialCstResult!==void 0&&(this.cstPostNonTerminal(X.partialCstResult,me!==void 0&&me.LABEL!==void 0?me.LABEL:He),delete X.partialCstResult),X}consumeInternal(X,me,He){let We;try{const ft=this.LA(1);this.tokenMatcher(ft,X)===!0?(this.consumeToken(),We=ft):this.consumeInternalError(X,ft,He)}catch(ft){We=this.consumeInternalRecovery(X,me,ft)}return this.cstPostTerminal(He!==void 0&&He.LABEL!==void 0?He.LABEL:X.name,We),We}consumeInternalError(X,me,He){let We;const ft=this.LA(0);throw He!==void 0&&He.ERR_MSG?We=He.ERR_MSG:We=this.errorMessageProvider.buildMismatchTokenMessage({expected:X,actual:me,previous:ft,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new g8(We,me,ft))}consumeInternalRecovery(X,me,He){if(this.recoveryEnabled&&He.name==="MismatchedTokenException"&&!this.isBackTracking()){const We=this.getFollowsForInRuleRecovery(X,me);try{return this.tryInRuleRecovery(X,We)}catch(ft){throw ft.name===Q3?He:ft}}else throw He}saveRecogState(){const X=this.errors,me=x0(this.RULE_STACK);return{errors:X,lexerState:this.exportLexerState(),RULE_STACK:me,CST_STACK:this.CST_STACK}}reloadRecogState(X){this.errors=X.errors,this.importLexerState(X.lexerState),this.RULE_STACK=X.RULE_STACK}ruleInvocationStateUpdate(X,me,He){this.RULE_OCCURRENCE_STACK.push(He),this.RULE_STACK.push(X),this.cstInvocationStateUpdate(me)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const X=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[X]}shortRuleNameToFullName(X){return this.shortRuleNameToFull[X]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),ln)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class F4{initErrorHandler(X){this._errors=[],this.errorMessageProvider=ai(X,"errorMessageProvider")?X.errorMessageProvider:Fm.errorMessageProvider}SAVE_ERROR(X){if(R4(X))return X.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:x0(this.RULE_OCCURRENCE_STACK)},this._errors.push(X),X;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return x0(this._errors)}set errors(X){this._errors=X}raiseEarlyExitException(X,me,He){const We=this.getCurrRuleFullName(),ft=this.getGAstProductions()[We],zt=Wd(X,ft,me,this.maxLookahead)[0],en=[];for(let po=1;po<=this.maxLookahead;po++)en.push(this.LA(po));const In=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:zt,actual:en,previous:this.LA(0),customUserDescription:He,ruleName:We});throw this.SAVE_ERROR(new Ay(In,this.LA(1),this.LA(0)))}raiseNoAltException(X,me){const He=this.getCurrRuleFullName(),We=this.getGAstProductions()[He],ft=Ff(X,We,this.maxLookahead),wt=[];for(let In=1;In<=this.maxLookahead;In++)wt.push(this.LA(In));const zt=this.LA(0),en=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:ft,actual:wt,previous:zt,customUserDescription:me,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new D_(en,this.LA(1),zt))}}class Gf{initContentAssist(){}computeContentAssist(X,me){const He=this.gastProductionsCache[X];if(cs(He))throw Error(`Rule ->${X}<- does not exist in this grammar.`);return Or([He],me,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(X){const me=Jc(X.ruleStack),We=this.getGAstProductions()[me];return new Eg(We,X).startWalking()}}const X2={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(X2);const Z2=!0,d8=Math.pow(2,jd)-1,f9=Je({name:"RECORDING_PHASE_TOKEN",pattern:yu.NA});Sl([f9]);const ex=wn(f9,`This IToken indicates the Parser is in Recording Phase
	See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(ex);const jS={name:`This CSTNode indicates the Parser is in Recording Phase
	See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class tx{initGastRecorder(X){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let X=0;X<10;X++){const me=X>0?X:"";this[`CONSUME${me}`]=function(He,We){return this.consumeInternalRecord(He,X,We)},this[`SUBRULE${me}`]=function(He,We){return this.subruleInternalRecord(He,X,We)},this[`OPTION${me}`]=function(He){return this.optionInternalRecord(He,X)},this[`OR${me}`]=function(He){return this.orInternalRecord(He,X)},this[`MANY${me}`]=function(He){this.manyInternalRecord(X,He)},this[`MANY_SEP${me}`]=function(He){this.manySepFirstInternalRecord(X,He)},this[`AT_LEAST_ONE${me}`]=function(He){this.atLeastOneInternalRecord(X,He)},this[`AT_LEAST_ONE_SEP${me}`]=function(He){this.atLeastOneSepFirstInternalRecord(X,He)}}this.consume=function(X,me,He){return this.consumeInternalRecord(me,X,He)},this.subrule=function(X,me,He){return this.subruleInternalRecord(me,X,He)},this.option=function(X,me){return this.optionInternalRecord(me,X)},this.or=function(X,me){return this.orInternalRecord(me,X)},this.many=function(X,me){this.manyInternalRecord(X,me)},this.atLeastOne=function(X,me){this.atLeastOneInternalRecord(X,me)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const X=this;for(let me=0;me<10;me++){const He=me>0?me:"";delete X[`CONSUME${He}`],delete X[`SUBRULE${He}`],delete X[`OPTION${He}`],delete X[`OR${He}`],delete X[`MANY${He}`],delete X[`MANY_SEP${He}`],delete X[`AT_LEAST_ONE${He}`],delete X[`AT_LEAST_ONE_SEP${He}`]}delete X.consume,delete X.subrule,delete X.option,delete X.or,delete X.many,delete X.atLeastOne,delete X.ACTION,delete X.BACKTRACK,delete X.LA})}ACTION_RECORD(X){}BACKTRACK_RECORD(X,me){return()=>!0}LA_RECORD(X){return _5}topLevelRuleRecord(X,me){try{const He=new $g({definition:[],name:X});return He.name=X,this.recordingProdStack.push(He),me.call(this),this.recordingProdStack.pop(),He}catch(He){if(He.KNOWN_RECORDER_ERROR!==!0)try{He.message=He.message+`
	 This error was thrown during the "grammar recording phase" For more info see:
	https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw He}throw He}}optionInternalRecord(X,me){return fs.call(this,Za,X,me)}atLeastOneInternalRecord(X,me){fs.call(this,Vs,me,X)}atLeastOneSepFirstInternalRecord(X,me){fs.call(this,fu,me,X,Z2)}manyInternalRecord(X,me){fs.call(this,Si,me,X)}manySepFirstInternalRecord(X,me){fs.call(this,lp,me,X,Z2)}orInternalRecord(X,me){return Ec.call(this,X,me)}subruleInternalRecord(X,me,He){if(iC(me),!X||ai(X,"ruleName")===!1){const zt=new Error(`<SUBRULE${u0(me)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(X)}>
 inside top level rule: <${this.recordingProdStack[0].name}>`);throw zt.KNOWN_RECORDER_ERROR=!0,zt}const We=GI(this.recordingProdStack),ft=X.ruleName,wt=new za({idx:me,nonTerminalName:ft,label:He?.LABEL,referencedRule:void 0});return We.definition.push(wt),this.outputCst?jS:X2}consumeInternalRecord(X,me,He){if(iC(me),!Vl(X)){const wt=new Error(`<CONSUME${u0(me)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(X)}>
 inside top level rule: <${this.recordingProdStack[0].name}>`);throw wt.KNOWN_RECORDER_ERROR=!0,wt}const We=GI(this.recordingProdStack),ft=new $c({idx:me,terminalType:X,label:He?.LABEL});return We.definition.push(ft),ex}}function fs(re,X,me,He=!1){iC(me);const We=GI(this.recordingProdStack),ft=ye(X)?X:X.DEF,wt=new re({definition:[],idx:me});return He&&(wt.separator=X.SEP),ai(X,"MAX_LOOKAHEAD")&&(wt.maxLookahead=X.MAX_LOOKAHEAD),this.recordingProdStack.push(wt),ft.call(this),We.definition.push(wt),this.recordingProdStack.pop(),X2}function Ec(re,X){iC(X);const me=GI(this.recordingProdStack),He=B(re)===!1,We=He===!1?re:re.DEF,ft=new c0({definition:[],idx:X,ignoreAmbiguities:He&&re.IGNORE_AMBIGUITIES===!0});ai(re,"MAX_LOOKAHEAD")&&(ft.maxLookahead=re.MAX_LOOKAHEAD);const wt=f3(We,zt=>ye(zt.GATE));return ft.hasPredicates=wt,me.definition.push(ft),zr(We,zt=>{const en=new Xa({definition:[]});ft.definition.push(en),ai(zt,"IGNORE_AMBIGUITIES")?en.ignoreAmbiguities=zt.IGNORE_AMBIGUITIES:ai(zt,"GATE")&&(en.ignoreAmbiguities=!0),this.recordingProdStack.push(en),zt.ALT.call(this),this.recordingProdStack.pop()}),X2}function u0(re){return re===0?"":`${re}`}function iC(re){if(re<0||re>d8){const X=new Error(`Invalid DSL Method idx value: <${re}>
	Idx value must be a none negative value smaller than ${d8+1}`);throw X.KNOWN_RECORDER_ERROR=!0,X}}class Th{initPerformanceTracer(X){if(ai(X,"traceInitPerf")){const me=X.traceInitPerf,He=typeof me=="number";this.traceInitMaxIdent=He?me:1/0,this.traceInitPerf=He?me>0:me}else this.traceInitMaxIdent=0,this.traceInitPerf=Fm.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(X,me){if(this.traceInitPerf===!0){this.traceInitIndent++;const He=new Array(this.traceInitIndent+1).join("	");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${He}--> <${X}>`);const{time:We,value:ft}=cl(me),wt=We>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&wt(`${He}<-- <${X}> time: ${We}ms`),this.traceInitIndent--,ft}else return me()}}function nd(re,X){X.forEach(me=>{const He=me.prototype;Object.getOwnPropertyNames(He).forEach(We=>{if(We==="constructor")return;const ft=Object.getOwnPropertyDescriptor(He,We);ft&&(ft.get||ft.set)?Object.defineProperty(re.prototype,We,ft):re.prototype[We]=me.prototype[We]})})}const _5=wn(ln,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(_5);const Fm=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Ai,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),R_=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var pp;(function(re){re[re.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",re[re.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",re[re.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",re[re.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",re[re.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",re[re.LEFT_RECURSION=5]="LEFT_RECURSION",re[re.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",re[re.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",re[re.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",re[re.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",re[re.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",re[re.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",re[re.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",re[re.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(pp||(pp={}));class f5{static performSelfAnalysis(X){throw Error("The **static** `performSelfAnalysis` method has been deprecated.	\nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let X;this.selfAnalysisDone=!0;const me=this.className;this.TRACE_INIT("toFastProps",()=>{Ou(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),zr(this.definedRulesNames,We=>{const wt=this[We].originalGrammarAction;let zt;this.TRACE_INIT(`${We} Rule`,()=>{zt=this.topLevelRuleRecord(We,wt)}),this.gastProductionsCache[We]=zt})}finally{this.disableRecording()}});let He=[];if(this.TRACE_INIT("Grammar Resolving",()=>{He=Tm({rules:Wc(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(He)}),this.TRACE_INIT("Grammar Validations",()=>{if(RA(He)&&this.skipValidations===!1){const We=O1({rules:Wc(this.gastProductionsCache),tokenTypes:Wc(this.tokensMap),errMsgProvider:Ni,grammarName:me}),ft=p5({lookaheadStrategy:this.lookaheadStrategy,rules:Wc(this.gastProductionsCache),tokenTypes:Wc(this.tokensMap),grammarName:me});this.definitionErrors=this.definitionErrors.concat(We,ft)}}),RA(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const We=WI(Wc(this.gastProductionsCache));this.resyncFollows=We}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var We,ft;(ft=(We=this.lookaheadStrategy).initialize)===null||ft===void 0||ft.call(We,{rules:Wc(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Wc(this.gastProductionsCache))})),!f5.DEFER_DEFINITION_ERRORS_HANDLING&&!RA(this.definitionErrors))throw X=Gi(this.definitionErrors,We=>We.message),new Error(`Parser Definition Errors detected:
 ${X.join(`
-------------------------------
`)}`)})}constructor(X,me){this.definitionErrors=[],this.selfAnalysisDone=!1;const He=this;if(He.initErrorHandler(me),He.initLexerAdapter(),He.initLooksAhead(me),He.initRecognizerEngine(X,me),He.initRecoverable(me),He.initTreeBuilder(me),He.initContentAssist(),He.initGastRecorder(me),He.initPerformanceTracer(me),ai(me,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
	Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
	See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
	For further details.`);this.skipValidations=ai(me,"skipValidations")?me.skipValidations:Fm.skipValidations}}f5.DEFER_DEFINITION_ERRORS_HANDLING=!1,nd(f5,[m9,T4,$2,q2,k4,_9,F4,Gf,tx,Th]);class co extends f5{constructor(X,me=Fm){const He=x0(me);He.outputCst=!0,super(X,He)}}return{CstParser:co,Lexer:yu,createToken:Je}})();class _oi extends x6{constructor(e){super(e)}load(e,n,o,i){const r=this,s=r.path===""?jR.extractUrlBase(e):r.path,a=new fY(r.manager);a.setPath(r.path),a.setRequestHeader(r.requestHeader),a.setWithCredentials(r.withCredentials),a.load(e,function(A){try{n(r.parse(A,s))}catch(c){i?i(c):console.error(c),r.manager.itemError(e)}},o,i)}parse(e,n){const o={};function i(ke){const Ce=r(),Le=new foi(Ce.tokens),Ye=new Ioi(Ce.tokenVocabulary),tt=s(Ye.getBaseCstVisitorConstructor()),At=Le.lex(ke);Ye.input=At.tokens;const at=Ye.vrml();if(Ye.errors.length>0)throw console.error(Ye.errors),Error("THREE.VRMLLoader: Parsing errors detected.");return tt.visit(at)}function r(){const ke=a_({name:"RouteIdentifier",pattern:/[^\x30-\x39\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d][^\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d]*[\.][^\x30-\x39\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d][^\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d]*/}),Ce=a_({name:"Identifier",pattern:/[^\x30-\x39\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d][^\0-\x20\x22\x27\x23\x2b\x2c\x2d\x2e\x5b\x5d\x5c\x7b\x7d]*/,longer_alt:ke}),Le=["Anchor","Billboard","Collision","Group","Transform","Inline","LOD","Switch","AudioClip","DirectionalLight","PointLight","Script","Shape","Sound","SpotLight","WorldInfo","CylinderSensor","PlaneSensor","ProximitySensor","SphereSensor","TimeSensor","TouchSensor","VisibilitySensor","Box","Cone","Cylinder","ElevationGrid","Extrusion","IndexedFaceSet","IndexedLineSet","PointSet","Sphere","Color","Coordinate","Normal","TextureCoordinate","Appearance","FontStyle","ImageTexture","Material","MovieTexture","PixelTexture","TextureTransform","ColorInterpolator","CoordinateInterpolator","NormalInterpolator","OrientationInterpolator","PositionInterpolator","ScalarInterpolator","Background","Fog","NavigationInfo","Viewpoint","Text"],Ye=a_({name:"Version",pattern:/#VRML.*/,longer_alt:Ce}),tt=a_({name:"NodeName",pattern:new RegExp(Le.join("|")),longer_alt:Ce}),At=a_({name:"DEF",pattern:/DEF/,longer_alt:Ce}),at=a_({name:"USE",pattern:/USE/,longer_alt:Ce}),nt=a_({name:"ROUTE",pattern:/ROUTE/,longer_alt:Ce}),gt=a_({name:"TO",pattern:/TO/,longer_alt:Ce}),bt=a_({name:"StringLiteral",pattern:/"(?:[^\\"\n\r]|\\[bfnrtv"\\/]|\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])*"/}),Ct=a_({name:"HexLiteral",pattern:/0[xX][0-9a-fA-F]+/}),Dt=a_({name:"NumberLiteral",pattern:/[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/}),kt=a_({name:"TrueLiteral",pattern:/TRUE/}),it=a_({name:"FalseLiteral",pattern:/FALSE/}),Yt=a_({name:"NullLiteral",pattern:/NULL/}),pn=a_({name:"LSquare",pattern:/\[/}),be=a_({name:"RSquare",pattern:/]/}),et=a_({name:"LCurly",pattern:/{/}),It=a_({name:"RCurly",pattern:/}/}),Bt=a_({name:"Comment",pattern:/#.*/,group:Eke.SKIPPED}),st=[a_({name:"WhiteSpace",pattern:/[ ,\s]/,group:Eke.SKIPPED}),tt,At,at,nt,gt,kt,it,Yt,Ye,Ce,ke,bt,Ct,Dt,pn,be,et,It,Bt],xt={};for(let Xe=0,Ze=st.length;Xe<Ze;Xe++){const dt=st[Xe];xt[dt.name]=dt}return{tokens:st,tokenVocabulary:xt}}function s(ke){function Ce(){ke.call(this),this.validateVisitor()}Ce.prototype=Object.assign(Object.create(ke.prototype),{constructor:Ce,vrml:function(Ye){const tt={version:this.visit(Ye.version),nodes:[],routes:[]};for(let At=0,at=Ye.node.length;At<at;At++){const nt=Ye.node[At];tt.nodes.push(this.visit(nt))}if(Ye.route)for(let At=0,at=Ye.route.length;At<at;At++){const nt=Ye.route[At];tt.routes.push(this.visit(nt))}return tt},version:function(Ye){return Ye.Version[0].image},node:function(Ye){const tt={name:Ye.NodeName[0].image,fields:[]};if(Ye.field)for(let At=0,at=Ye.field.length;At<at;At++){const nt=Ye.field[At];tt.fields.push(this.visit(nt))}return Ye.def&&(tt.DEF=this.visit(Ye.def[0])),tt},field:function(Ye){const tt={name:Ye.Identifier[0].image,type:null,values:null};let At;return Ye.singleFieldValue&&(At=this.visit(Ye.singleFieldValue[0])),Ye.multiFieldValue&&(At=this.visit(Ye.multiFieldValue[0])),tt.type=At.type,tt.values=At.values,tt},def:function(Ye){return(Ye.Identifier||Ye.NodeName)[0].image},use:function(Ye){return{USE:(Ye.Identifier||Ye.NodeName)[0].image}},singleFieldValue:function(Ye){return Le(this,Ye)},multiFieldValue:function(Ye){return Le(this,Ye)},route:function(Ye){return{FROM:Ye.RouteIdentifier[0].image,TO:Ye.RouteIdentifier[1].image}}});function Le(Ye,tt){const At={type:null,values:[]};if(tt.node){At.type="node";for(let at=0,nt=tt.node.length;at<nt;at++){const gt=tt.node[at];At.values.push(Ye.visit(gt))}}if(tt.use){At.type="use";for(let at=0,nt=tt.use.length;at<nt;at++){const gt=tt.use[at];At.values.push(Ye.visit(gt))}}if(tt.StringLiteral){At.type="string";for(let at=0,nt=tt.StringLiteral.length;at<nt;at++){const gt=tt.StringLiteral[at];At.values.push(gt.image.replace(/'|"/g,""))}}if(tt.NumberLiteral){At.type="number";for(let at=0,nt=tt.NumberLiteral.length;at<nt;at++){const gt=tt.NumberLiteral[at];At.values.push(parseFloat(gt.image))}}if(tt.HexLiteral){At.type="hex";for(let at=0,nt=tt.HexLiteral.length;at<nt;at++){const gt=tt.HexLiteral[at];At.values.push(gt.image)}}if(tt.TrueLiteral){At.type="boolean";for(let at=0,nt=tt.TrueLiteral.length;at<nt;at++)tt.TrueLiteral[at].image==="TRUE"&&At.values.push(!0)}if(tt.FalseLiteral){At.type="boolean";for(let at=0,nt=tt.FalseLiteral.length;at<nt;at++)tt.FalseLiteral[at].image==="FALSE"&&At.values.push(!1)}return tt.NullLiteral&&(At.type="null",tt.NullLiteral.forEach(function(){At.values.push(null)})),At}return new Ce}function a(ke){const Ce=ke.nodes,Le=new KR;for(let Ye=0,tt=Ce.length;Ye<tt;Ye++){const At=Ce[Ye];A(At)}for(let Ye=0,tt=Ce.length;Ye<tt;Ye++){const At=Ce[Ye],at=c(At);at instanceof T0&&Le.add(at),At.name==="WorldInfo"&&(Le.userData.worldInfo=at)}return Le}function A(ke){ke.DEF&&(o[ke.DEF]=ke);const Ce=ke.fields;for(let Le=0,Ye=Ce.length;Le<Ye;Le++){const tt=Ce[Le];if(tt.type==="node"){const At=tt.values;for(let at=0,nt=At.length;at<nt;at++)A(At[at])}}}function c(ke){return ke.USE?O(ke.USE):(ke.build!==void 0||(ke.build=l(ke)),ke.build)}function l(ke){const Ce=ke.name;let Le;switch(Ce){case"Group":case"Transform":case"Collision":Le=u(ke);break;case"Background":Le=g(ke);break;case"Shape":Le=h(ke);break;case"Appearance":Le=d(ke);break;case"Material":Le=p(ke);break;case"ImageTexture":Le=I(ke);break;case"PixelTexture":Le=f(ke);break;case"TextureTransform":Le=C(ke);break;case"IndexedFaceSet":Le=E(ke);break;case"IndexedLineSet":Le=B(ke);break;case"PointSet":Le=S(ke);break;case"Box":Le=Q(ke);break;case"Cone":Le=w(ke);break;case"Cylinder":Le=M(ke);break;case"Sphere":Le=k(ke);break;case"ElevationGrid":Le=R(ke);break;case"Extrusion":Le=F(ke);break;case"Color":case"Coordinate":case"Normal":case"TextureCoordinate":Le=y(ke);break;case"WorldInfo":Le=x(ke);break;case"Anchor":case"Billboard":case"Inline":case"LOD":case"Switch":case"AudioClip":case"DirectionalLight":case"PointLight":case"Script":case"Sound":case"SpotLight":case"CylinderSensor":case"PlaneSensor":case"ProximitySensor":case"SphereSensor":case"TimeSensor":case"TouchSensor":case"VisibilitySensor":case"Text":case"FontStyle":case"MovieTexture":case"ColorInterpolator":case"CoordinateInterpolator":case"NormalInterpolator":case"OrientationInterpolator":case"PositionInterpolator":case"ScalarInterpolator":case"Fog":case"NavigationInfo":case"Viewpoint":break;default:console.warn("THREE.VRMLLoader: Unknown node:",Ce);break}return Le!==void 0&&ke.DEF!==void 0&&Le.hasOwnProperty("name")===!0&&(Le.name=ke.DEF),Le}function u(ke){const Ce=new lh,Le=ke.fields;for(let Ye=0,tt=Le.length;Ye<tt;Ye++){const At=Le[Ye],at=At.name,nt=At.values;switch(at){case"bboxCenter":break;case"bboxSize":break;case"center":break;case"children":U(nt,Ce);break;case"collide":break;case"rotation":const gt=new jt(nt[0],nt[1],nt[2]).normalize(),bt=nt[3];Ce.quaternion.setFromAxisAngle(gt,bt);break;case"scale":Ce.scale.set(nt[0],nt[1],nt[2]);break;case"scaleOrientation":break;case"translation":Ce.position.set(nt[0],nt[1],nt[2]);break;case"proxy":break;default:console.warn("THREE.VRMLLoader: Unknown field:",at);break}}return Ce}function g(ke){const Ce=new lh;let Le,Ye,tt,At;const at=ke.fields;for(let gt=0,bt=at.length;gt<bt;gt++){const Ct=at[gt],Dt=Ct.name,kt=Ct.values;switch(Dt){case"groundAngle":Le=kt;break;case"groundColor":Ye=kt;break;case"backUrl":break;case"bottomUrl":break;case"frontUrl":break;case"leftUrl":break;case"rightUrl":break;case"topUrl":break;case"skyAngle":tt=kt;break;case"skyColor":At=kt;break;default:console.warn("THREE.VRMLLoader: Unknown field:",Dt);break}}const nt=1e4;if(At){const gt=new WR(nt,32,16),bt=new fE({fog:!1,side:uI,depthWrite:!1,depthTest:!1});At.length>3?(we(gt,nt,tt,Pe(At),!0),bt.vertexColors=!0):bt.color.setRGB(At[0],At[1],At[2]);const Ct=new Er(gt,bt);Ce.add(Ct)}if(Ye&&Ye.length>0){const gt=new WR(nt,32,16,0,2*Math.PI,.5*Math.PI,1.5*Math.PI),bt=new fE({fog:!1,side:uI,vertexColors:!0,depthWrite:!1,depthTest:!1});we(gt,nt,Le,Pe(Ye),!1);const Ct=new Er(gt,bt);Ce.add(Ct)}return Ce.renderOrder=-1/0,Ce}function h(ke){const Ce=ke.fields;let Le=new fE({color:0}),Ye;for(let At=0,at=Ce.length;At<at;At++){const nt=Ce[At],gt=nt.name,bt=nt.values;switch(gt){case"appearance":bt[0]!==null&&(Le=c(bt[0]));break;case"geometry":bt[0]!==null&&(Ye=c(bt[0]));break;default:console.warn("THREE.VRMLLoader: Unknown field:",gt);break}}let tt;if(Ye&&Ye.attributes.position){const At=Ye._type;if(At==="points"){const at=new zR({color:16777215});Ye.attributes.color!==void 0?at.vertexColors=!0:Le.isMeshPhongMaterial&&at.color.copy(Le.emissive),tt=new Wq(Ye,at)}else if(At==="line"){const at=new VR({color:16777215});Ye.attributes.color!==void 0?at.vertexColors=!0:Le.isMeshPhongMaterial&&at.color.copy(Le.emissive),tt=new Jq(Ye,at)}else Ye._solid!==void 0&&(Le.side=Ye._solid?mE:r_),Ye.attributes.color!==void 0&&(Le.vertexColors=!0),tt=new Er(Ye,Le)}else tt=new T0,tt.visible=!1;return tt}function d(ke){let Ce=new ike,Le;const Ye=ke.fields;for(let tt=0,At=Ye.length;tt<At;tt++){const at=Ye[tt],nt=at.name,gt=at.values;switch(nt){case"material":if(gt[0]!==null){const Ct=c(gt[0]);Ct.diffuseColor&&Ce.color.copy(Ct.diffuseColor),Ct.emissiveColor&&Ce.emissive.copy(Ct.emissiveColor),Ct.shininess&&(Ce.shininess=Ct.shininess),Ct.specularColor&&Ce.specular.copy(Ct.specularColor),Ct.transparency&&(Ce.opacity=1-Ct.transparency),Ct.transparency>0&&(Ce.transparent=!0)}else Ce=new fE({color:0});break;case"texture":const bt=gt[0];bt!==null&&(bt.name==="ImageTexture"||bt.name==="PixelTexture")&&(Ce.map=c(bt));break;case"textureTransform":gt[0]!==null&&(Le=c(gt[0]));break;default:console.warn("THREE.VRMLLoader: Unknown field:",nt);break}}if(Ce.map){if(Ce.map.__type){switch(Ce.map.__type){case zB.INTENSITY_ALPHA:Ce.opacity=1;break;case zB.RGB:Ce.color.set(16777215);break;case zB.RGBA:Ce.color.set(16777215),Ce.opacity=1;break}delete Ce.map.__type}Le&&(Ce.map.center.copy(Le.center),Ce.map.rotation=Le.rotation,Ce.map.repeat.copy(Le.scale),Ce.map.offset.copy(Le.translation))}return Ce}function p(ke){const Ce={},Le=ke.fields;for(let Ye=0,tt=Le.length;Ye<tt;Ye++){const At=Le[Ye],at=At.name,nt=At.values;switch(at){case"ambientIntensity":break;case"diffuseColor":Ce.diffuseColor=new Vi(nt[0],nt[1],nt[2]);break;case"emissiveColor":Ce.emissiveColor=new Vi(nt[0],nt[1],nt[2]);break;case"shininess":Ce.shininess=nt[0];break;case"specularColor":Ce.emissiveColor=new Vi(nt[0],nt[1],nt[2]);break;case"transparency":Ce.transparency=nt[0];break;default:console.warn("THREE.VRMLLoader: Unknown field:",at);break}}return Ce}function m(ke,Ce,Le){let Ye;switch(Ce){case zB.INTENSITY:Ye=parseInt(ke),Le.r=Ye,Le.g=Ye,Le.b=Ye,Le.a=1;break;case zB.INTENSITY_ALPHA:Ye=parseInt("0x"+ke.substring(2,4)),Le.r=Ye,Le.g=Ye,Le.b=Ye,Le.a=parseInt("0x"+ke.substring(4,6));break;case zB.RGB:Le.r=parseInt("0x"+ke.substring(2,4)),Le.g=parseInt("0x"+ke.substring(4,6)),Le.b=parseInt("0x"+ke.substring(6,8)),Le.a=1;break;case zB.RGBA:Le.r=parseInt("0x"+ke.substring(2,4)),Le.g=parseInt("0x"+ke.substring(4,6)),Le.b=parseInt("0x"+ke.substring(6,8)),Le.a=parseInt("0x"+ke.substring(8,10));break}}function _(ke){let Ce;switch(ke){case 1:Ce=zB.INTENSITY;break;case 2:Ce=zB.INTENSITY_ALPHA;break;case 3:Ce=zB.RGB;break;case 4:Ce=zB.RGBA;break}return Ce}function f(ke){let Ce,Le=c4,Ye=c4;const tt=ke.fields;for(let At=0,at=tt.length;At<at;At++){const nt=tt[At],gt=nt.name,bt=nt.values;switch(gt){case"image":const Ct=bt[0],Dt=bt[1],kt=bt[2],it=_(kt),Yt=new Uint8Array(4*Ct*Dt),pn={r:0,g:0,b:0,a:0};for(let be=3,et=0,It=bt.length;be<It;be++,et++){m(bt[be],it,pn);const Bt=et*4;Yt[Bt+0]=pn.r,Yt[Bt+1]=pn.g,Yt[Bt+2]=pn.b,Yt[Bt+3]=pn.a}Ce=new OTe(Yt,Ct,Dt),Ce.needsUpdate=!0,Ce.__type=it;break;case"repeatS":bt[0]===!1&&(Le=Xy);break;case"repeatT":bt[0]===!1&&(Ye=Xy);break;default:console.warn("THREE.VRMLLoader: Unknown field:",gt);break}}return Ce&&(Ce.wrapS=Le,Ce.wrapT=Ye),Ce}function I(ke){let Ce,Le=c4,Ye=c4;const tt=ke.fields;for(let At=0,at=tt.length;At<at;At++){const nt=tt[At],gt=nt.name,bt=nt.values;switch(gt){case"url":const Ct=bt[0];Ct&&(Ce=Te.load(Ct));break;case"repeatS":bt[0]===!1&&(Le=Xy);break;case"repeatT":bt[0]===!1&&(Ye=Xy);break;default:console.warn("THREE.VRMLLoader: Unknown field:",gt);break}}return Ce&&(Ce.wrapS=Le,Ce.wrapT=Ye),Ce}function C(ke){const Ce={center:new ni,rotation:new ni,scale:new ni,translation:new ni},Le=ke.fields;for(let Ye=0,tt=Le.length;Ye<tt;Ye++){const At=Le[Ye],at=At.name,nt=At.values;switch(at){case"center":Ce.center.set(nt[0],nt[1]);break;case"rotation":Ce.rotation=nt[0];break;case"scale":Ce.scale.set(nt[0],nt[1]);break;case"translation":Ce.translation.set(nt[0],nt[1]);break;default:console.warn("THREE.VRMLLoader: Unknown field:",at);break}}return Ce}function y(ke){return ke.fields[0].values}function x(ke){const Ce={},Le=ke.fields;for(let Ye=0,tt=Le.length;Ye<tt;Ye++){const At=Le[Ye],at=At.name,nt=At.values;switch(at){case"title":Ce.title=nt[0];break;case"info":Ce.info=nt;break;default:console.warn("THREE.VRMLLoader: Unknown field:",at);break}}return Ce}function E(ke){let Ce,Le,Ye,tt,At=!0,at=!0,nt=0,gt,bt,Ct,Dt,kt=!0,it=!0;const Yt=ke.fields;for(let st=0,xt=Yt.length;st<xt;st++){const Xe=Yt[st],Ze=Xe.name,dt=Xe.values;switch(Ze){case"color":const Ut=dt[0];Ut!==null&&(Ce=c(Ut));break;case"coord":const Wt=dt[0];Wt!==null&&(Le=c(Wt));break;case"normal":const Xt=dt[0];Xt!==null&&(Ye=c(Xt));break;case"texCoord":const Jt=dt[0];Jt!==null&&(tt=c(Jt));break;case"ccw":At=dt[0];break;case"colorIndex":gt=dt;break;case"colorPerVertex":kt=dt[0];break;case"convex":break;case"coordIndex":bt=dt;break;case"creaseAngle":nt=dt[0];break;case"normalIndex":Ct=dt;break;case"normalPerVertex":it=dt[0];break;case"solid":at=dt[0];break;case"texCoordIndex":Dt=dt;break;default:console.warn("THREE.VRMLLoader: Unknown field:",Ze);break}}if(bt===void 0)return console.warn("THREE.VRMLLoader: Missing coordIndex."),new Zl;const pn=Y(bt,At);let be,et,It;if(Ce)if(kt===!0)if(gt&&gt.length>0){const st=Y(gt,At);be=ue(pn,st,Ce,3)}else be=ye(pn,new Bs(Ce,3));else if(gt&&gt.length>0){const st=te(Ce,gt),xt=W(st,bt);be=fe(pn,xt)}else{const st=W(Ce,bt);be=fe(pn,st)}if(Ye)if(it===!0)if(Ct&&Ct.length>0){const st=Y(Ct,At);et=ue(pn,st,Ye,3)}else et=ye(pn,new Bs(Ye,3));else if(Ct&&Ct.length>0){const st=te(Ye,Ct),xt=W(st,bt);et=fe(pn,xt)}else{const st=W(Ye,bt);et=fe(pn,st)}else et=he(pn,Le,nt);if(tt)if(Dt&&Dt.length>0){const st=Y(Dt,At);It=ue(pn,st,tt,2)}else It=ye(pn,new Bs(tt,2));const Bt=new Zl,mt=ye(pn,new Bs(Le,3));return Bt.setAttribute("position",mt),Bt.setAttribute("normal",et),be&&Bt.setAttribute("color",be),It&&Bt.setAttribute("uv",It),Bt._solid=at,Bt._type="mesh",Bt}function B(ke){let Ce,Le,Ye,tt,At=!0;const at=ke.fields;for(let Dt=0,kt=at.length;Dt<kt;Dt++){const it=at[Dt],Yt=it.name,pn=it.values;switch(Yt){case"color":const be=pn[0];be!==null&&(Ce=c(be));break;case"coord":const et=pn[0];et!==null&&(Le=c(et));break;case"colorIndex":Ye=pn;break;case"colorPerVertex":At=pn[0];break;case"coordIndex":tt=pn;break;default:console.warn("THREE.VRMLLoader: Unknown field:",Yt);break}}let nt;const gt=j(tt);if(Ce)if(At===!0)if(Ye.length>0){const Dt=j(Ye);nt=ue(gt,Dt,Ce,3)}else nt=ye(gt,new Bs(Ce,3));else if(Ye.length>0){const Dt=te(Ce,Ye),kt=J(Dt,tt);nt=pe(gt,kt)}else{const Dt=J(Ce,tt);nt=pe(gt,Dt)}const bt=new Zl,Ct=ye(gt,new Bs(Le,3));return bt.setAttribute("position",Ct),nt&&bt.setAttribute("color",nt),bt._type="line",bt}function S(ke){let Ce,Le;const Ye=ke.fields;for(let At=0,at=Ye.length;At<at;At++){const nt=Ye[At],gt=nt.name,bt=nt.values;switch(gt){case"color":const Ct=bt[0];Ct!==null&&(Ce=c(Ct));break;case"coord":const Dt=bt[0];Dt!==null&&(Le=c(Dt));break;default:console.warn("THREE.VRMLLoader: Unknown field:",gt);break}}const tt=new Zl;return tt.setAttribute("position",new Bs(Le,3)),Ce&&tt.setAttribute("color",new Bs(Ce,3)),tt._type="points",tt}function Q(ke){const Ce=new jt(2,2,2),Le=ke.fields;for(let tt=0,At=Le.length;tt<At;tt++){const at=Le[tt],nt=at.name,gt=at.values;nt==="size"?(Ce.x=gt[0],Ce.y=gt[1],Ce.z=gt[2]):console.warn("THREE.VRMLLoader: Unknown field:",nt)}return new Yx(Ce.x,Ce.y,Ce.z)}function w(ke){let Ce=1,Le=2,Ye=!1;const tt=ke.fields;for(let at=0,nt=tt.length;at<nt;at++){const gt=tt[at],bt=gt.name,Ct=gt.values;switch(bt){case"bottom":Ye=!Ct[0];break;case"bottomRadius":Ce=Ct[0];break;case"height":Le=Ct[0];break;case"side":break;default:console.warn("THREE.VRMLLoader: Unknown field:",bt);break}}return new ZTe(Ce,Le,16,1,Ye)}function M(ke){let Ce=1,Le=2;const Ye=ke.fields;for(let At=0,at=Ye.length;At<at;At++){const nt=Ye[At],gt=nt.name,bt=nt.values;switch(gt){case"bottom":break;case"radius":Ce=bt[0];break;case"height":Le=bt[0];break;case"side":break;case"top":break;default:console.warn("THREE.VRMLLoader: Unknown field:",gt);break}}return new lY(Ce,Ce,Le,16,1)}function k(ke){let Ce=1;const Le=ke.fields;for(let tt=0,At=Le.length;tt<At;tt++){const at=Le[tt],nt=at.name,gt=at.values;nt==="radius"?Ce=gt[0]:console.warn("THREE.VRMLLoader: Unknown field:",nt)}return new WR(Ce,16,16)}function R(ke){let Ce,Le,Ye,tt,At=!0,at=!0,nt=!0,gt=!0,bt=0,Ct=2,Dt=2,kt=1,it=1;const Yt=ke.fields;for(let dt=0,Ut=Yt.length;dt<Ut;dt++){const Wt=Yt[dt],Xt=Wt.name,Jt=Wt.values;switch(Xt){case"color":const yn=Jt[0];yn!==null&&(Ce=c(yn));break;case"normal":const An=Jt[0];An!==null&&(Le=c(An));break;case"texCoord":const kn=Jt[0];kn!==null&&(Ye=c(kn));break;case"height":tt=Jt;break;case"ccw":gt=Jt[0];break;case"colorPerVertex":At=Jt[0];break;case"creaseAngle":bt=Jt[0];break;case"normalPerVertex":at=Jt[0];break;case"solid":nt=Jt[0];break;case"xDimension":Ct=Jt[0];break;case"xSpacing":kt=Jt[0];break;case"zDimension":Dt=Jt[0];break;case"zSpacing":it=Jt[0];break;default:console.warn("THREE.VRMLLoader: Unknown field:",Xt);break}}const pn=[],be=[],et=[],It=[];for(let dt=0;dt<Dt;dt++)for(let Ut=0;Ut<Ct;Ut++){const Wt=dt*Ct+Ut,Xt=kt*dt,Jt=tt[Wt],yn=it*Ut;if(pn.push(Xt,Jt,yn),Ce&&At===!0){const An=Ce[Wt*3+0],kn=Ce[Wt*3+1],$n=Ce[Wt*3+2];et.push(An,kn,$n)}if(Le&&at===!0){const An=Le[Wt*3+0],kn=Le[Wt*3+1],$n=Le[Wt*3+2];be.push(An,kn,$n)}if(Ye){const An=Ye[Wt*2+0],kn=Ye[Wt*2+1];It.push(An,kn)}else It.push(dt/(Ct-1),Ut/(Dt-1))}const Bt=[];for(let dt=0;dt<Ct-1;dt++)for(let Ut=0;Ut<Dt-1;Ut++){const Wt=dt+Ut*Ct,Xt=dt+(Ut+1)*Ct,Jt=dt+1+(Ut+1)*Ct,yn=dt+1+Ut*Ct;gt===!0?(Bt.push(Wt,Jt,Xt),Bt.push(Jt,Wt,yn)):(Bt.push(Wt,Xt,Jt),Bt.push(Jt,yn,Wt))}const mt=ye(Bt,new Bs(pn,3)),st=ye(Bt,new Bs(It,2));let xt,Xe;if(Ce)if(At===!1){for(let dt=0;dt<Ct-1;dt++)for(let Ut=0;Ut<Dt-1;Ut++){const Wt=dt+Ut*(Ct-1),Xt=Ce[Wt*3+0],Jt=Ce[Wt*3+1],yn=Ce[Wt*3+2];et.push(Xt,Jt,yn),et.push(Xt,Jt,yn),et.push(Xt,Jt,yn),et.push(Xt,Jt,yn),et.push(Xt,Jt,yn),et.push(Xt,Jt,yn)}xt=new Bs(et,3)}else xt=ye(Bt,new Bs(et,3));if(Le)if(at===!1){for(let dt=0;dt<Ct-1;dt++)for(let Ut=0;Ut<Dt-1;Ut++){const Wt=dt+Ut*(Ct-1),Xt=Le[Wt*3+0],Jt=Le[Wt*3+1],yn=Le[Wt*3+2];be.push(Xt,Jt,yn),be.push(Xt,Jt,yn),be.push(Xt,Jt,yn),be.push(Xt,Jt,yn),be.push(Xt,Jt,yn),be.push(Xt,Jt,yn)}Xe=new Bs(be,3)}else Xe=ye(Bt,new Bs(be,3));else Xe=he(Bt,pn,bt);const Ze=new Zl;return Ze.setAttribute("position",mt),Ze.setAttribute("normal",Xe),Ze.setAttribute("uv",st),xt&&Ze.setAttribute("color",xt),Ze._solid=nt,Ze._type="mesh",Ze}function F(ke){let Ce=[1,1,1,-1,-1,-1,-1,1,1,1],Le=[0,0,0,0,1,0],Ye,tt,At=!0,at=!0,nt=0,gt=!0,bt=!0;const Ct=ke.fields;for(let Ze=0,dt=Ct.length;Ze<dt;Ze++){const Ut=Ct[Ze],Wt=Ut.name,Xt=Ut.values;switch(Wt){case"beginCap":At=Xt[0];break;case"ccw":at=Xt[0];break;case"convex":break;case"creaseAngle":nt=Xt[0];break;case"crossSection":Ce=Xt;break;case"endCap":gt=Xt[0];break;case"orientation":tt=Xt;break;case"scale":Ye=Xt;break;case"solid":bt=Xt[0];break;case"spine":Le=Xt;break;default:console.warn("THREE.VRMLLoader: Unknown field:",Wt);break}}const Dt=Ce[0]===Ce[Ce.length-2]&&Ce[1]===Ce[Ce.length-1],kt=[],it=new jt,Yt=new jt,pn=new jt,be=new jt,et=new Zy;for(let Ze=0,dt=0,Ut=0,Wt=Le.length;Ze<Wt;Ze+=3,dt+=2,Ut+=4){it.fromArray(Le,Ze),Yt.x=Ye?Ye[dt+0]:1,Yt.y=1,Yt.z=Ye?Ye[dt+1]:1,pn.x=tt?tt[Ut+0]:0,pn.y=tt?tt[Ut+1]:0,pn.z=tt?tt[Ut+2]:1;const Xt=tt?tt[Ut+3]:0;for(let Jt=0,yn=Ce.length;Jt<yn;Jt+=2)be.x=Ce[Jt+0],be.y=0,be.z=Ce[Jt+1],be.multiply(Yt),et.setFromAxisAngle(pn,Xt),be.applyQuaternion(et),be.add(it),kt.push(be.x,be.y,be.z)}const It=[],Bt=Le.length/3,mt=Ce.length/2;for(let Ze=0;Ze<Bt-1;Ze++)for(let dt=0;dt<mt-1;dt++){const Ut=dt+Ze*mt;let Wt=dt+1+Ze*mt;const Xt=dt+(Ze+1)*mt;let Jt=dt+1+(Ze+1)*mt;dt===mt-2&&Dt===!0&&(Wt=Ze*mt,Jt=(Ze+1)*mt),at===!0?(It.push(Ut,Wt,Xt),It.push(Xt,Wt,Jt)):(It.push(Ut,Xt,Wt),It.push(Xt,Jt,Wt))}if(At===!0||gt===!0){const Ze=[];for(let Wt=0,Xt=Ce.length;Wt<Xt;Wt+=2)Ze.push(new ni(Ce[Wt],Ce[Wt+1]));const dt=gY.triangulateShape(Ze,[]),Ut=[];for(let Wt=0,Xt=dt.length;Wt<Xt;Wt++){const Jt=dt[Wt];Ut.push(Jt[0],Jt[1],Jt[2])}if(At===!0)for(let Wt=0,Xt=Ut.length;Wt<Xt;Wt+=3)at===!0?It.push(Ut[Wt+0],Ut[Wt+1],Ut[Wt+2]):It.push(Ut[Wt+0],Ut[Wt+2],Ut[Wt+1]);if(gt===!0){const Wt=mt*(Bt-1);for(let Xt=0,Jt=Ut.length;Xt<Jt;Xt+=3)at===!0?It.push(Wt+Ut[Xt+0],Wt+Ut[Xt+2],Wt+Ut[Xt+1]):It.push(Wt+Ut[Xt+0],Wt+Ut[Xt+1],Wt+Ut[Xt+2])}}const st=ye(It,new Bs(kt,3)),xt=he(It,kt,nt),Xe=new Zl;return Xe.setAttribute("position",st),Xe.setAttribute("normal",xt),Xe._solid=bt,Xe._type="mesh",Xe}function O(ke){const Ce=o[ke],Le=c(Ce);return Le.isObject3D||Le.isMaterial?Le.clone():Le}function U(ke,Ce){for(let Le=0,Ye=ke.length;Le<Ye;Le++){const tt=c(ke[Le]);tt instanceof T0&&Ce.add(tt)}}function Y(ke,Ce){const Le=[];let Ye=0;for(let tt=0,At=ke.length;tt<At;tt++){const at=ke[Ye],nt=ke[tt+(Ce?1:2)],gt=ke[tt+(Ce?2:1)];Le.push(at,nt,gt),(ke[tt+3]===-1||tt+3>=At)&&(tt+=3,Ye=tt+1)}return Le}function W(ke,Ce){const Le=[];let Ye=0;for(let tt=0,At=Ce.length;tt<At;tt++){const at=Ye*3,nt=ke[at],gt=ke[at+1],bt=ke[at+2];Le.push(nt,gt,bt),(Ce[tt+3]===-1||tt+3>=At)&&(tt+=3,Ye++)}return Le}function te(ke,Ce){const Le=[];for(let Ye=0,tt=Ce.length;Ye<tt;Ye++){const at=Ce[Ye]*3,nt=ke[at],gt=ke[at+1],bt=ke[at+2];Le.push(nt,gt,bt)}return Le}function j(ke){const Ce=[];for(let Le=0,Ye=ke.length;Le<Ye;Le++){const tt=ke[Le],At=ke[Le+1];Ce.push(tt,At),(ke[Le+2]===-1||Le+2>=Ye)&&(Le+=2)}return Ce}function J(ke,Ce){const Le=[];let Ye=0;for(let tt=0,At=Ce.length;tt<At;tt++){const at=Ye*3,nt=ke[at],gt=ke[at+1],bt=ke[at+2];Le.push(nt,gt,bt),(Ce[tt+2]===-1||tt+2>=At)&&(tt+=2,Ye++)}return Le}const oe=new jt,ie=new jt,ne=new jt,le=new ni,ge=new ni,_e=new ni;function ue(ke,Ce,Le,Ye){const tt=[];for(let At=0,at=ke.length;At<at;At+=3){const nt=Ce[At],gt=Ce[At+1],bt=Ce[At+2];Ye===2?(le.fromArray(Le,nt*Ye),ge.fromArray(Le,gt*Ye),_e.fromArray(Le,bt*Ye),tt.push(le.x,le.y),tt.push(ge.x,ge.y),tt.push(_e.x,_e.y)):(oe.fromArray(Le,nt*Ye),ie.fromArray(Le,gt*Ye),ne.fromArray(Le,bt*Ye),tt.push(oe.x,oe.y,oe.z),tt.push(ie.x,ie.y,ie.z),tt.push(ne.x,ne.y,ne.z))}return new Bs(tt,Ye)}function fe(ke,Ce){const Le=[];for(let Ye=0,tt=0,At=ke.length;Ye<At;Ye+=3,tt++)oe.fromArray(Ce,tt*3),Le.push(oe.x,oe.y,oe.z),Le.push(oe.x,oe.y,oe.z),Le.push(oe.x,oe.y,oe.z);return new Bs(Le,3)}function pe(ke,Ce){const Le=[];for(let Ye=0,tt=0,At=ke.length;Ye<At;Ye+=2,tt++)oe.fromArray(Ce,tt*3),Le.push(oe.x,oe.y,oe.z),Le.push(oe.x,oe.y,oe.z);return new Bs(Le,3)}function ye(ke,Ce){const Le=Ce.array,Ye=Ce.itemSize,tt=new Le.constructor(ke.length*Ye);let At=0,at=0;for(let nt=0,gt=ke.length;nt<gt;nt++){At=ke[nt]*Ye;for(let bt=0;bt<Ye;bt++)tt[at++]=Le[At++]}return new Bs(tt,Ye)}const Me=new jt,ve=new jt;function he(ke,Ce,Le){const Ye=[],tt={};for(let at=0,nt=ke.length;at<nt;at+=3){const gt=ke[at],bt=ke[at+1],Ct=ke[at+2],Dt=new Coi(gt,bt,Ct);oe.fromArray(Ce,gt*3),ie.fromArray(Ce,bt*3),ne.fromArray(Ce,Ct*3),ve.subVectors(ne,ie),Me.subVectors(oe,ie),ve.cross(Me),ve.normalize(),Dt.normal.copy(ve),tt[gt]===void 0&&(tt[gt]=[]),tt[bt]===void 0&&(tt[bt]=[]),tt[Ct]===void 0&&(tt[Ct]=[]),tt[gt].push(Dt.normal),tt[bt].push(Dt.normal),tt[Ct].push(Dt.normal),Ye.push(Dt)}const At=[];for(let at=0,nt=Ye.length;at<nt;at++){const gt=Ye[at],bt=Qe(tt[gt.a],gt.normal,Le),Ct=Qe(tt[gt.b],gt.normal,Le),Dt=Qe(tt[gt.c],gt.normal,Le);oe.fromArray(Ce,gt.a*3),ie.fromArray(Ce,gt.b*3),ne.fromArray(Ce,gt.c*3),At.push(bt.x,bt.y,bt.z),At.push(Ct.x,Ct.y,Ct.z),At.push(Dt.x,Dt.y,Dt.z)}return new Bs(At,3)}function Qe(ke,Ce,Le){const Ye=new jt;if(Le===0)Ye.copy(Ce);else for(let tt=0,At=ke.length;tt<At;tt++)ke[tt].angleTo(Ce)<Le&&Ye.add(ke[tt]);return Ye.normalize()}function Pe(ke){const Ce=[];for(let Le=0,Ye=ke.length;Le<Ye;Le+=3)Ce.push(new Vi(ke[Le],ke[Le+1],ke[Le+2]));return Ce}function we(ke,Ce,Le,Ye,tt){const At=[],at=tt===!0?0:Math.PI;for(let kt=0,it=Ye.length;kt<it;kt++){let Yt=kt===0?0:Le[kt-1];Yt=tt===!0?Yt:at-Yt;const pn=new jt;pn.setFromSphericalCoords(Ce,Yt,0),At.push(pn)}const nt=ke.index,gt=ke.attributes.position,bt=new tg(new Float32Array(ke.attributes.position.count*3),3),Ct=new jt,Dt=new Vi;for(let kt=0;kt<nt.count;kt++){const it=nt.getX(kt);Ct.fromBufferAttribute(gt,it);let Yt,pn,be=1;for(let Bt=1;Bt<At.length;Bt++){Yt=Bt-1,pn=Bt;const mt=At[Yt],st=At[pn];if(tt===!0){if(Ct.y<=mt.y&&Ct.y>st.y){be=Math.abs(mt.y-Ct.y)/Math.abs(mt.y-st.y);break}}else if(Ct.y>=mt.y&&Ct.y<st.y){be=Math.abs(mt.y-Ct.y)/Math.abs(mt.y-st.y);break}}const et=Ye[Yt],It=Ye[pn];Dt.copy(et).lerp(It,be),bt.setXYZ(it,Dt.r,Dt.g,Dt.b)}ke.setAttribute("color",bt)}const Te=new rke(this.manager);if(Te.setPath(this.resourcePath||n).setCrossOrigin(this.crossOrigin),e.indexOf("#VRML V2.0")===-1)throw Error("THREE.VRMLLexer: Version of VRML asset not supported.");const Re=i(e);return a(Re)}}class foi{constructor(e){this.lexer=new Eke(e)}lex(e){const n=this.lexer.tokenize(e);if(n.errors.length>0)throw console.error(n.errors),Error("THREE.VRMLLexer: Lexing errors detected.");return n}}class Ioi extends moi{constructor(e){super(e);const n=this,o=e.Version,i=e.LCurly,r=e.RCurly,s=e.LSquare,a=e.RSquare,A=e.Identifier,c=e.RouteIdentifier,l=e.StringLiteral,u=e.HexLiteral,g=e.NumberLiteral,h=e.TrueLiteral,d=e.FalseLiteral,p=e.NullLiteral,m=e.DEF,_=e.USE,f=e.ROUTE,I=e.TO,C=e.NodeName;n.RULE("vrml",function(){n.SUBRULE(n.version),n.AT_LEAST_ONE(function(){n.SUBRULE(n.node)}),n.MANY(function(){n.SUBRULE(n.route)})}),n.RULE("version",function(){n.CONSUME(o)}),n.RULE("node",function(){n.OPTION(function(){n.SUBRULE(n.def)}),n.CONSUME(C),n.CONSUME(i),n.MANY(function(){n.SUBRULE(n.field)}),n.CONSUME(r)}),n.RULE("field",function(){n.CONSUME(A),n.OR2([{ALT:function(){n.SUBRULE(n.singleFieldValue)}},{ALT:function(){n.SUBRULE(n.multiFieldValue)}}])}),n.RULE("def",function(){n.CONSUME(m),n.OR([{ALT:function(){n.CONSUME(A)}},{ALT:function(){n.CONSUME(C)}}])}),n.RULE("use",function(){n.CONSUME(_),n.OR([{ALT:function(){n.CONSUME(A)}},{ALT:function(){n.CONSUME(C)}}])}),n.RULE("singleFieldValue",function(){n.AT_LEAST_ONE(function(){n.OR([{ALT:function(){n.SUBRULE(n.node)}},{ALT:function(){n.SUBRULE(n.use)}},{ALT:function(){n.CONSUME(l)}},{ALT:function(){n.CONSUME(u)}},{ALT:function(){n.CONSUME(g)}},{ALT:function(){n.CONSUME(h)}},{ALT:function(){n.CONSUME(d)}},{ALT:function(){n.CONSUME(p)}}])})}),n.RULE("multiFieldValue",function(){n.CONSUME(s),n.MANY(function(){n.OR([{ALT:function(){n.SUBRULE(n.node)}},{ALT:function(){n.SUBRULE(n.use)}},{ALT:function(){n.CONSUME(l)}},{ALT:function(){n.CONSUME(u)}},{ALT:function(){n.CONSUME(g)}},{ALT:function(){n.CONSUME(p)}}])}),n.CONSUME(a)}),n.RULE("route",function(){n.CONSUME(f),n.CONSUME(c),n.CONSUME(I),n.CONSUME2(c)}),this.performSelfAnalysis()}}let Coi=class{constructor(e,n,o){this.a=e,this.b=n,this.c=o,this.normal=new jt}};const zB={INTENSITY:1,INTENSITY_ALPHA:2,RGB:3,RGBA:4},yoi=/^[og]\s*(.+)?/,xoi=/^mtllib /,Eoi=/^usemtl /,Boi=/^usemap /,MJt=new jt,Bke=new jt,DJt=new jt,NJt=new jt,h4=new jt;function boi(){const t={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,n){if(this.object&&this.object.fromDeclaration===!1){this.object.name=e,this.object.fromDeclaration=n!==!1;return}const o=this.object&&typeof this.object.currentMaterial=="function"?this.object.currentMaterial():void 0;if(this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:n!==!1,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(i,r){const s=this._finalize(!1);s&&(s.inherited||s.groupCount<=0)&&this.materials.splice(s.index,1);const a={index:this.materials.length,name:i||"",mtllib:Array.isArray(r)&&r.length>0?r[r.length-1]:"",smooth:s!==void 0?s.smooth:this.smooth,groupStart:s!==void 0?s.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(A){const c={index:typeof A=="number"?A:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return c.clone=this.clone.bind(c),c}};return this.materials.push(a),a},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(i){const r=this.currentMaterial();if(r&&r.groupEnd===-1&&(r.groupEnd=this.geometry.vertices.length/3,r.groupCount=r.groupEnd-r.groupStart,r.inherited=!1),i&&this.materials.length>1)for(let s=this.materials.length-1;s>=0;s--)this.materials[s].groupCount<=0&&this.materials.splice(s,1);return i&&this.materials.length===0&&this.materials.push({name:"",smooth:this.smooth}),r}},o&&o.name&&typeof o.clone=="function"){const i=o.clone(0);i.inherited=!0,this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0)},parseVertexIndex:function(e,n){const o=parseInt(e,10);return(o>=0?o-1:o+n/3)*3},parseNormalIndex:function(e,n){const o=parseInt(e,10);return(o>=0?o-1:o+n/3)*3},parseUVIndex:function(e,n){const o=parseInt(e,10);return(o>=0?o-1:o+n/2)*2},addVertex:function(e,n,o){const i=this.vertices,r=this.object.geometry.vertices;r.push(i[e+0],i[e+1],i[e+2]),r.push(i[n+0],i[n+1],i[n+2]),r.push(i[o+0],i[o+1],i[o+2])},addVertexPoint:function(e){const n=this.vertices;this.object.geometry.vertices.push(n[e+0],n[e+1],n[e+2])},addVertexLine:function(e){const n=this.vertices;this.object.geometry.vertices.push(n[e+0],n[e+1],n[e+2])},addNormal:function(e,n,o){const i=this.normals,r=this.object.geometry.normals;r.push(i[e+0],i[e+1],i[e+2]),r.push(i[n+0],i[n+1],i[n+2]),r.push(i[o+0],i[o+1],i[o+2])},addFaceNormal:function(e,n,o){const i=this.vertices,r=this.object.geometry.normals;MJt.fromArray(i,e),Bke.fromArray(i,n),DJt.fromArray(i,o),h4.subVectors(DJt,Bke),NJt.subVectors(MJt,Bke),h4.cross(NJt),h4.normalize(),r.push(h4.x,h4.y,h4.z),r.push(h4.x,h4.y,h4.z),r.push(h4.x,h4.y,h4.z)},addColor:function(e,n,o){const i=this.colors,r=this.object.geometry.colors;i[e]!==void 0&&r.push(i[e+0],i[e+1],i[e+2]),i[n]!==void 0&&r.push(i[n+0],i[n+1],i[n+2]),i[o]!==void 0&&r.push(i[o+0],i[o+1],i[o+2])},addUV:function(e,n,o){const i=this.uvs,r=this.object.geometry.uvs;r.push(i[e+0],i[e+1]),r.push(i[n+0],i[n+1]),r.push(i[o+0],i[o+1])},addDefaultUV:function(){const e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){const n=this.uvs;this.object.geometry.uvs.push(n[e+0],n[e+1])},addFace:function(e,n,o,i,r,s,a,A,c){const l=this.vertices.length;let u=this.parseVertexIndex(e,l),g=this.parseVertexIndex(n,l),h=this.parseVertexIndex(o,l);if(this.addVertex(u,g,h),this.addColor(u,g,h),a!==void 0&&a!==""){const d=this.normals.length;u=this.parseNormalIndex(a,d),g=this.parseNormalIndex(A,d),h=this.parseNormalIndex(c,d),this.addNormal(u,g,h)}else this.addFaceNormal(u,g,h);if(i!==void 0&&i!==""){const d=this.uvs.length;u=this.parseUVIndex(i,d),g=this.parseUVIndex(r,d),h=this.parseUVIndex(s,d),this.addUV(u,g,h),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";const n=this.vertices.length;for(let o=0,i=e.length;o<i;o++){const r=this.parseVertexIndex(e[o],n);this.addVertexPoint(r),this.addColor(r)}},addLineGeometry:function(e,n){this.object.geometry.type="Line";const o=this.vertices.length,i=this.uvs.length;for(let r=0,s=e.length;r<s;r++)this.addVertexLine(this.parseVertexIndex(e[r],o));for(let r=0,s=n.length;r<s;r++)this.addUVLine(this.parseUVIndex(n[r],i))}};return t.startObject("",!1),t}class Soi extends x6{constructor(e){super(e),this.materials=null}load(e,n,o,i){const r=this,s=new fY(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(a){try{n(r.parse(a))}catch(A){i?i(A):console.error(A),r.manager.itemError(e)}},o,i)}setMaterials(e){return this.materials=e,this}parse(e){const n=new boi;e.indexOf(`\r
`)!==-1&&(e=e.replace(/\r\n/g,`
`)),e.indexOf(`\\
`)!==-1&&(e=e.replace(/\\\n/g,""));const o=e.split(`
`);let i="",r="",s=0,a=[];const A=typeof"".trimLeft=="function";for(let u=0,g=o.length;u<g;u++)if(i=o[u],i=A?i.trimLeft():i.trim(),s=i.length,s!==0&&(r=i.charAt(0),r!=="#"))if(r==="v"){const h=i.split(/\s+/);switch(h[0]){case"v":n.vertices.push(parseFloat(h[1]),parseFloat(h[2]),parseFloat(h[3])),h.length>=7?n.colors.push(parseFloat(h[4]),parseFloat(h[5]),parseFloat(h[6])):n.colors.push(void 0,void 0,void 0);break;case"vn":n.normals.push(parseFloat(h[1]),parseFloat(h[2]),parseFloat(h[3]));break;case"vt":n.uvs.push(parseFloat(h[1]),parseFloat(h[2]));break}}else if(r==="f"){const d=i.substr(1).trim().split(/\s+/),p=[];for(let _=0,f=d.length;_<f;_++){const I=d[_];if(I.length>0){const C=I.split("/");p.push(C)}}const m=p[0];for(let _=1,f=p.length-1;_<f;_++){const I=p[_],C=p[_+1];n.addFace(m[0],I[0],C[0],m[1],I[1],C[1],m[2],I[2],C[2])}}else if(r==="l"){const h=i.substring(1).trim().split(" ");let d=[];const p=[];if(i.indexOf("/")===-1)d=h;else for(let m=0,_=h.length;m<_;m++){const f=h[m].split("/");f[0]!==""&&d.push(f[0]),f[1]!==""&&p.push(f[1])}n.addLineGeometry(d,p)}else if(r==="p"){const d=i.substr(1).trim().split(" ");n.addPointGeometry(d)}else if((a=yoi.exec(i))!==null){const h=(" "+a[0].substr(1).trim()).substr(1);n.startObject(h)}else if(Eoi.test(i))n.object.startMaterial(i.substring(7).trim(),n.materialLibraries);else if(xoi.test(i))n.materialLibraries.push(i.substring(7).trim());else if(Boi.test(i))console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');else if(r==="s"){if(a=i.split(" "),a.length>1){const d=a[1].trim().toLowerCase();n.object.smooth=d!=="0"&&d!=="off"}else n.object.smooth=!0;const h=n.object.currentMaterial();h&&(h.smooth=n.object.smooth)}else{if(i==="\0")continue;console.warn('THREE.OBJLoader: Unexpected line: "'+i+'"')}n.finalize();const c=new lh;if(c.materialLibraries=[].concat(n.materialLibraries),!(n.objects.length===1&&n.objects[0].geometry.vertices.length===0)===!0)for(let u=0,g=n.objects.length;u<g;u++){const h=n.objects[u],d=h.geometry,p=h.materials,m=d.type==="Line",_=d.type==="Points";let f=!1;if(d.vertices.length===0)continue;const I=new Zl;I.setAttribute("position",new Bs(d.vertices,3)),d.normals.length>0&&I.setAttribute("normal",new Bs(d.normals,3)),d.colors.length>0&&(f=!0,I.setAttribute("color",new Bs(d.colors,3))),d.hasUVIndices===!0&&I.setAttribute("uv",new Bs(d.uvs,2));const C=[];for(let x=0,E=p.length;x<E;x++){const B=p[x],S=B.name+"_"+B.smooth+"_"+f;let Q=n.materials[S];if(this.materials!==null){if(Q=this.materials.create(B.name),m&&Q&&!(Q instanceof VR)){const w=new VR;Gx.prototype.copy.call(w,Q),w.color.copy(Q.color),Q=w}else if(_&&Q&&!(Q instanceof zR)){const w=new zR({size:10,sizeAttenuation:!1});Gx.prototype.copy.call(w,Q),w.color.copy(Q.color),w.map=Q.map,Q=w}}Q===void 0&&(m?Q=new VR:_?Q=new zR({size:1,sizeAttenuation:!1}):Q=new ike,Q.name=B.name,Q.flatShading=!B.smooth,Q.vertexColors=f,n.materials[S]=Q),C.push(Q)}let y;if(C.length>1){for(let x=0,E=p.length;x<E;x++){const B=p[x];I.addGroup(B.groupStart,B.groupCount,x)}m?y=new Jq(I,C):_?y=new Wq(I,C):y=new Er(I,C)}else m?y=new Jq(I,C[0]):_?y=new Wq(I,C[0]):y=new Er(I,C[0]);y.name=h.name,c.add(y)}else if(n.vertices.length>0){const u=new zR({size:1,sizeAttenuation:!1}),g=new Zl;g.setAttribute("position",new Bs(n.vertices,3)),n.colors.length>0&&n.colors[0]!==void 0&&(g.setAttribute("color",new Bs(n.colors,3)),u.vertexColors=!0);const h=new Wq(g,u);c.add(h)}return c}}const RJt={type:"change"},bke={type:"start"},TJt={type:"end"},mhe=new zG,kJt=new nP,Qoi=Math.cos(70*OG.DEG2RAD);let voi=class extends RR{constructor(e,n){super(),this.object=e,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new jt,this.cursor=new jt,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:Vw.ROTATE,MIDDLE:Vw.DOLLY,RIGHT:Vw.PAN},this.touches={ONE:SG.ROTATE,TWO:SG.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(be){be.addEventListener("keydown",at),this._domElementKeyEvents=be},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",at),this._domElementKeyEvents=null},this.saveState=function(){o.target0.copy(o.target),o.position0.copy(o.object.position),o.zoom0=o.object.zoom},this.reset=function(){o.target.copy(o.target0),o.object.position.copy(o.position0),o.object.zoom=o.zoom0,o.object.updateProjectionMatrix(),o.dispatchEvent(RJt),o.update(),r=i.NONE},this.update=(function(){const be=new jt,et=new Zy().setFromUnitVectors(e.up,new jt(0,1,0)),It=et.clone().invert(),Bt=new jt,mt=new Zy,st=new jt,xt=2*Math.PI;return function(Ze=null){const dt=o.object.position;be.copy(dt).sub(o.target),be.applyQuaternion(et),a.setFromVector3(be),o.autoRotate&&r===i.NONE&&M(Q(Ze)),o.enableDamping?(a.theta+=A.theta*o.dampingFactor,a.phi+=A.phi*o.dampingFactor):(a.theta+=A.theta,a.phi+=A.phi);let Ut=o.minAzimuthAngle,Wt=o.maxAzimuthAngle;isFinite(Ut)&&isFinite(Wt)&&(Ut<-Math.PI?Ut+=xt:Ut>Math.PI&&(Ut-=xt),Wt<-Math.PI?Wt+=xt:Wt>Math.PI&&(Wt-=xt),Ut<=Wt?a.theta=Math.max(Ut,Math.min(Wt,a.theta)):a.theta=a.theta>(Ut+Wt)/2?Math.max(Ut,a.theta):Math.min(Wt,a.theta)),a.phi=Math.max(o.minPolarAngle,Math.min(o.maxPolarAngle,a.phi)),a.makeSafe(),o.enableDamping===!0?o.target.addScaledVector(l,o.dampingFactor):o.target.add(l),o.target.sub(o.cursor),o.target.clampLength(o.minTargetRadius,o.maxTargetRadius),o.target.add(o.cursor);let Xt=!1;if(o.zoomToCursor&&x||o.object.isOrthographicCamera)a.radius=te(a.radius);else{const Jt=a.radius;a.radius=te(a.radius*c),Xt=Jt!=a.radius}if(be.setFromSpherical(a),be.applyQuaternion(It),dt.copy(o.target).add(be),o.object.lookAt(o.target),o.enableDamping===!0?(A.theta*=1-o.dampingFactor,A.phi*=1-o.dampingFactor,l.multiplyScalar(1-o.dampingFactor)):(A.set(0,0,0),l.set(0,0,0)),o.zoomToCursor&&x){let Jt=null;if(o.object.isPerspectiveCamera){const yn=be.length();Jt=te(yn*c);const An=yn-Jt;o.object.position.addScaledVector(C,An),o.object.updateMatrixWorld(),Xt=!!An}else if(o.object.isOrthographicCamera){const yn=new jt(y.x,y.y,0);yn.unproject(o.object);const An=o.object.zoom;o.object.zoom=Math.max(o.minZoom,Math.min(o.maxZoom,o.object.zoom/c)),o.object.updateProjectionMatrix(),Xt=An!==o.object.zoom;const kn=new jt(y.x,y.y,0);kn.unproject(o.object),o.object.position.sub(kn).add(yn),o.object.updateMatrixWorld(),Jt=be.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),o.zoomToCursor=!1;Jt!==null&&(this.screenSpacePanning?o.target.set(0,0,-1).transformDirection(o.object.matrix).multiplyScalar(Jt).add(o.object.position):(mhe.origin.copy(o.object.position),mhe.direction.set(0,0,-1).transformDirection(o.object.matrix),Math.abs(o.object.up.dot(mhe.direction))<Qoi?e.lookAt(o.target):(kJt.setFromNormalAndCoplanarPoint(o.object.up,o.target),mhe.intersectPlane(kJt,o.target))))}else if(o.object.isOrthographicCamera){const Jt=o.object.zoom;o.object.zoom=Math.max(o.minZoom,Math.min(o.maxZoom,o.object.zoom/c)),Jt!==o.object.zoom&&(o.object.updateProjectionMatrix(),Xt=!0)}return c=1,x=!1,Xt||Bt.distanceToSquared(o.object.position)>s||8*(1-mt.dot(o.object.quaternion))>s||st.distanceToSquared(o.target)>s?(o.dispatchEvent(RJt),Bt.copy(o.object.position),mt.copy(o.object.quaternion),st.copy(o.target),!0):!1}})(),this.dispose=function(){o.domElement.removeEventListener("contextmenu",bt),o.domElement.removeEventListener("pointerdown",Te),o.domElement.removeEventListener("pointercancel",Ee),o.domElement.removeEventListener("wheel",Le),o.domElement.removeEventListener("pointermove",Re),o.domElement.removeEventListener("pointerup",Ee),o.domElement.getRootNode().removeEventListener("keydown",tt,{capture:!0}),o._domElementKeyEvents!==null&&(o._domElementKeyEvents.removeEventListener("keydown",at),o._domElementKeyEvents=null)};const o=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let r=i.NONE;const s=1e-6,a=new dJt,A=new dJt;let c=1;const l=new jt,u=new ni,g=new ni,h=new ni,d=new ni,p=new ni,m=new ni,_=new ni,f=new ni,I=new ni,C=new jt,y=new ni;let x=!1;const E=[],B={};let S=!1;function Q(be){return be!==null?2*Math.PI/60*o.autoRotateSpeed*be:2*Math.PI/60/60*o.autoRotateSpeed}function w(be){const et=Math.abs(be*.01);return Math.pow(.95,o.zoomSpeed*et)}function M(be){A.theta-=be}function k(be){A.phi-=be}const R=(function(){const be=new jt;return function(It,Bt){be.setFromMatrixColumn(Bt,0),be.multiplyScalar(-It),l.add(be)}})(),F=(function(){const be=new jt;return function(It,Bt){o.screenSpacePanning===!0?be.setFromMatrixColumn(Bt,1):(be.setFromMatrixColumn(Bt,0),be.crossVectors(o.object.up,be)),be.multiplyScalar(It),l.add(be)}})(),O=(function(){const be=new jt;return function(It,Bt){const mt=o.domElement;if(o.object.isPerspectiveCamera){const st=o.object.position;be.copy(st).sub(o.target);let xt=be.length();xt*=Math.tan(o.object.fov/2*Math.PI/180),R(2*It*xt/mt.clientHeight,o.object.matrix),F(2*Bt*xt/mt.clientHeight,o.object.matrix)}else o.object.isOrthographicCamera?(R(It*(o.object.right-o.object.left)/o.object.zoom/mt.clientWidth,o.object.matrix),F(Bt*(o.object.top-o.object.bottom)/o.object.zoom/mt.clientHeight,o.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),o.enablePan=!1)}})();function U(be){o.object.isPerspectiveCamera||o.object.isOrthographicCamera?c/=be:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),o.enableZoom=!1)}function Y(be){o.object.isPerspectiveCamera||o.object.isOrthographicCamera?c*=be:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),o.enableZoom=!1)}function W(be,et){if(!o.zoomToCursor)return;x=!0;const It=o.domElement.getBoundingClientRect(),Bt=be-It.left,mt=et-It.top,st=It.width,xt=It.height;y.x=Bt/st*2-1,y.y=-(mt/xt)*2+1,C.set(y.x,y.y,1).unproject(o.object).sub(o.object.position).normalize()}function te(be){return Math.max(o.minDistance,Math.min(o.maxDistance,be))}function j(be){u.set(be.clientX,be.clientY)}function J(be){W(be.clientX,be.clientX),_.set(be.clientX,be.clientY)}function oe(be){d.set(be.clientX,be.clientY)}function ie(be){g.set(be.clientX,be.clientY),h.subVectors(g,u).multiplyScalar(o.rotateSpeed);const et=o.domElement;M(2*Math.PI*h.x/et.clientHeight),k(2*Math.PI*h.y/et.clientHeight),u.copy(g),o.update()}function ne(be){f.set(be.clientX,be.clientY),I.subVectors(f,_),I.y>0?U(w(I.y)):I.y<0&&Y(w(I.y)),_.copy(f),o.update()}function le(be){p.set(be.clientX,be.clientY),m.subVectors(p,d).multiplyScalar(o.panSpeed),O(m.x,m.y),d.copy(p),o.update()}function ge(be){W(be.clientX,be.clientY),be.deltaY<0?Y(w(be.deltaY)):be.deltaY>0&&U(w(be.deltaY)),o.update()}function _e(be){let et=!1;switch(be.code){case o.keys.UP:be.ctrlKey||be.metaKey||be.shiftKey?k(2*Math.PI*o.rotateSpeed/o.domElement.clientHeight):O(0,o.keyPanSpeed),et=!0;break;case o.keys.BOTTOM:be.ctrlKey||be.metaKey||be.shiftKey?k(-2*Math.PI*o.rotateSpeed/o.domElement.clientHeight):O(0,-o.keyPanSpeed),et=!0;break;case o.keys.LEFT:be.ctrlKey||be.metaKey||be.shiftKey?M(2*Math.PI*o.rotateSpeed/o.domElement.clientHeight):O(o.keyPanSpeed,0),et=!0;break;case o.keys.RIGHT:be.ctrlKey||be.metaKey||be.shiftKey?M(-2*Math.PI*o.rotateSpeed/o.domElement.clientHeight):O(-o.keyPanSpeed,0),et=!0;break}et&&(be.preventDefault(),o.update())}function ue(be){if(E.length===1)u.set(be.pageX,be.pageY);else{const et=Yt(be),It=.5*(be.pageX+et.x),Bt=.5*(be.pageY+et.y);u.set(It,Bt)}}function fe(be){if(E.length===1)d.set(be.pageX,be.pageY);else{const et=Yt(be),It=.5*(be.pageX+et.x),Bt=.5*(be.pageY+et.y);d.set(It,Bt)}}function pe(be){const et=Yt(be),It=be.pageX-et.x,Bt=be.pageY-et.y,mt=Math.sqrt(It*It+Bt*Bt);_.set(0,mt)}function ye(be){o.enableZoom&&pe(be),o.enablePan&&fe(be)}function Me(be){o.enableZoom&&pe(be),o.enableRotate&&ue(be)}function ve(be){if(E.length==1)g.set(be.pageX,be.pageY);else{const It=Yt(be),Bt=.5*(be.pageX+It.x),mt=.5*(be.pageY+It.y);g.set(Bt,mt)}h.subVectors(g,u).multiplyScalar(o.rotateSpeed);const et=o.domElement;M(2*Math.PI*h.x/et.clientHeight),k(2*Math.PI*h.y/et.clientHeight),u.copy(g)}function he(be){if(E.length===1)p.set(be.pageX,be.pageY);else{const et=Yt(be),It=.5*(be.pageX+et.x),Bt=.5*(be.pageY+et.y);p.set(It,Bt)}m.subVectors(p,d).multiplyScalar(o.panSpeed),O(m.x,m.y),d.copy(p)}function Qe(be){const et=Yt(be),It=be.pageX-et.x,Bt=be.pageY-et.y,mt=Math.sqrt(It*It+Bt*Bt);f.set(0,mt),I.set(0,Math.pow(f.y/_.y,o.zoomSpeed)),U(I.y),_.copy(f);const st=(be.pageX+et.x)*.5,xt=(be.pageY+et.y)*.5;W(st,xt)}function Pe(be){o.enableZoom&&Qe(be),o.enablePan&&he(be)}function we(be){o.enableZoom&&Qe(be),o.enableRotate&&ve(be)}function Te(be){o.enabled!==!1&&(E.length===0&&(o.domElement.setPointerCapture(be.pointerId),o.domElement.addEventListener("pointermove",Re),o.domElement.addEventListener("pointerup",Ee)),!kt(be)&&(Ct(be),be.pointerType==="touch"?nt(be):ke(be)))}function Re(be){o.enabled!==!1&&(be.pointerType==="touch"?gt(be):Ce(be))}function Ee(be){switch(Dt(be),E.length){case 0:o.domElement.releasePointerCapture(be.pointerId),o.domElement.removeEventListener("pointermove",Re),o.domElement.removeEventListener("pointerup",Ee),o.dispatchEvent(TJt),r=i.NONE;break;case 1:const et=E[0],It=B[et];nt({pointerId:et,pageX:It.x,pageY:It.y});break}}function ke(be){let et;switch(be.button){case 0:et=o.mouseButtons.LEFT;break;case 1:et=o.mouseButtons.MIDDLE;break;case 2:et=o.mouseButtons.RIGHT;break;default:et=-1}switch(et){case Vw.DOLLY:if(o.enableZoom===!1)return;J(be),r=i.DOLLY;break;case Vw.ROTATE:if(be.ctrlKey||be.metaKey||be.shiftKey){if(o.enablePan===!1)return;oe(be),r=i.PAN}else{if(o.enableRotate===!1)return;j(be),r=i.ROTATE}break;case Vw.PAN:if(be.ctrlKey||be.metaKey||be.shiftKey){if(o.enableRotate===!1)return;j(be),r=i.ROTATE}else{if(o.enablePan===!1)return;oe(be),r=i.PAN}break;default:r=i.NONE}r!==i.NONE&&o.dispatchEvent(bke)}function Ce(be){switch(r){case i.ROTATE:if(o.enableRotate===!1)return;ie(be);break;case i.DOLLY:if(o.enableZoom===!1)return;ne(be);break;case i.PAN:if(o.enablePan===!1)return;le(be);break}}function Le(be){o.enabled===!1||o.enableZoom===!1||r!==i.NONE||(be.preventDefault(),o.dispatchEvent(bke),ge(Ye(be)),o.dispatchEvent(TJt))}function Ye(be){const et=be.deltaMode,It={clientX:be.clientX,clientY:be.clientY,deltaY:be.deltaY};switch(et){case 1:It.deltaY*=16;break;case 2:It.deltaY*=100;break}return be.ctrlKey&&!S&&(It.deltaY*=10),It}function tt(be){be.key==="Control"&&(S=!0,o.domElement.getRootNode().addEventListener("keyup",At,{passive:!0,capture:!0}))}function At(be){be.key==="Control"&&(S=!1,o.domElement.getRootNode().removeEventListener("keyup",At,{passive:!0,capture:!0}))}function at(be){o.enabled===!1||o.enablePan===!1||_e(be)}function nt(be){switch(it(be),E.length){case 1:switch(o.touches.ONE){case SG.ROTATE:if(o.enableRotate===!1)return;ue(be),r=i.TOUCH_ROTATE;break;case SG.PAN:if(o.enablePan===!1)return;fe(be),r=i.TOUCH_PAN;break;default:r=i.NONE}break;case 2:switch(o.touches.TWO){case SG.DOLLY_PAN:if(o.enableZoom===!1&&o.enablePan===!1)return;ye(be),r=i.TOUCH_DOLLY_PAN;break;case SG.DOLLY_ROTATE:if(o.enableZoom===!1&&o.enableRotate===!1)return;Me(be),r=i.TOUCH_DOLLY_ROTATE;break;default:r=i.NONE}break;default:r=i.NONE}r!==i.NONE&&o.dispatchEvent(bke)}function gt(be){switch(it(be),r){case i.TOUCH_ROTATE:if(o.enableRotate===!1)return;ve(be),o.update();break;case i.TOUCH_PAN:if(o.enablePan===!1)return;he(be),o.update();break;case i.TOUCH_DOLLY_PAN:if(o.enableZoom===!1&&o.enablePan===!1)return;Pe(be),o.update();break;case i.TOUCH_DOLLY_ROTATE:if(o.enableZoom===!1&&o.enableRotate===!1)return;we(be),o.update();break;default:r=i.NONE}}function bt(be){o.enabled!==!1&&be.preventDefault()}function Ct(be){E.push(be.pointerId)}function Dt(be){delete B[be.pointerId];for(let et=0;et<E.length;et++)if(E[et]==be.pointerId){E.splice(et,1);return}}function kt(be){for(let et=0;et<E.length;et++)if(E[et]==be.pointerId)return!0;return!1}function it(be){let et=B[be.pointerId];et===void 0&&(et=new ni,B[be.pointerId]=et),et.set(be.pageX,be.pageY)}function Yt(be){const et=be.pointerId===E[0]?E[1]:E[0];return B[et]}o.domElement.addEventListener("contextmenu",bt),o.domElement.addEventListener("pointerdown",Te),o.domElement.addEventListener("pointercancel",Ee),o.domElement.addEventListener("wheel",Le,{passive:!1}),o.domElement.getRootNode().addEventListener("keydown",tt,{passive:!0,capture:!0}),this.update()}};var FJt={env:{}};function woi(){var t=Object.create(null);function e(i,r){var s=i.id,a=i.name,A=i.dependencies;A===void 0&&(A=[]);var c=i.init;c===void 0&&(c=function(){});var l=i.getTransferables;if(l===void 0&&(l=null),!t[s])try{A=A.map(function(g){return g&&g.isWorkerModule&&(e(g,function(h){if(h instanceof Error)throw h}),g=t[g.id].value),g}),c=o("<"+a+">.init",c),l&&(l=o("<"+a+">.getTransferables",l));var u=null;typeof c=="function"?u=c.apply(void 0,A):console.error("worker module init function failed to rehydrate"),t[s]={id:s,value:u,getTransferables:l},r(u)}catch(g){g&&g.noLog||console.error(g),r(g)}}function n(i,r){var s,a=i.id,A=i.args;(!t[a]||typeof t[a].value!="function")&&r(new Error("Worker module "+a+": not found or its 'init' did not return a function"));try{var c=(s=t[a]).value.apply(s,A);c&&typeof c.then=="function"?c.then(l,function(u){return r(u instanceof Error?u:new Error(""+u))}):l(c)}catch(u){r(u)}function l(u){try{var g=t[a].getTransferables&&t[a].getTransferables(u);(!g||!Array.isArray(g)||!g.length)&&(g=void 0),r(u,g)}catch(h){console.error(h),r(h)}}}function o(i,r){var s=void 0;self.troikaDefine=function(A){return s=A};var a=URL.createObjectURL(new Blob(["/** "+i.replace(/\*/g,"")+` **/

troikaDefine(
`+r+`
)`],{type:"application/javascript"}));try{importScripts(a)}catch(A){console.error(A)}return URL.revokeObjectURL(a),delete self.troikaDefine,s}self.addEventListener("message",function(i){var r=i.data,s=r.messageId,a=r.action,A=r.data;try{a==="registerModule"&&e(A,function(c){c instanceof Error?postMessage({messageId:s,success:!1,error:c.message}):postMessage({messageId:s,success:!0,result:{isCallable:typeof c=="function"}})}),a==="callModule"&&n(A,function(c,l){c instanceof Error?postMessage({messageId:s,success:!1,error:c.message}):postMessage({messageId:s,success:!0,result:c},l||void 0)})}catch(c){postMessage({messageId:s,success:!1,error:c.stack})}})}function Poi(t){var e=function(){for(var n=[],o=arguments.length;o--;)n[o]=arguments[o];return e._getInitResult().then(function(i){if(typeof i=="function")return i.apply(void 0,n);throw new Error("Worker module function was called but `init` did not return a callable function")})};return e._getInitResult=function(){var n=t.dependencies,o=t.init;n=Array.isArray(n)?n.map(function(r){return r&&(r=r.onMainThread||r,r._getInitResult&&(r=r._getInitResult())),r}):[];var i=Promise.all(n).then(function(r){return o.apply(null,r)});return e._getInitResult=function(){return i},i},e}var LJt=function(){var t=!1;if(typeof window<"u"&&typeof window.document<"u")try{var e=new Worker(URL.createObjectURL(new Blob([""],{type:"application/javascript"})));e.terminate(),t=!0}catch(n){typeof FJt<"u"&&FJt.env.NODE_ENV==="test"||console.log("Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: ["+n.message+"]")}return LJt=function(){return t},t},Moi=0,Doi=0,Ske=!1,sX=Object.create(null),aX=Object.create(null),Qke=Object.create(null);function yY(t){if((!t||typeof t.init!="function")&&!Ske)throw new Error("requires `options.init` function");var e=t.dependencies,n=t.init,o=t.getTransferables,i=t.workerId,r=Poi(t);i==null&&(i="#default");var s="workerModule"+ ++Moi,a=t.name||s,A=null;e=e&&e.map(function(l){return typeof l=="function"&&!l.workerModuleData&&(Ske=!0,l=yY({workerId:i,name:"<"+a+"> function dependency: "+l.name,init:`function(){return (
`+_he(l)+`
)}`}),Ske=!1),l&&l.workerModuleData&&(l=l.workerModuleData),l});function c(){for(var l=[],u=arguments.length;u--;)l[u]=arguments[u];if(!LJt())return r.apply(void 0,l);if(!A){A=HJt(i,"registerModule",c.workerModuleData);var g=function(){A=null,aX[i].delete(g)};(aX[i]||(aX[i]=new Set)).add(g)}return A.then(function(h){var d=h.isCallable;if(d)return HJt(i,"callModule",{id:s,args:l});throw new Error("Worker module function was called but `init` did not return a callable function")})}return c.workerModuleData={isWorkerModule:!0,id:s,name:a,dependencies:e,init:_he(n),getTransferables:o&&_he(o)},c.onMainThread=r,c}function Noi(t){aX[t]&&aX[t].forEach(function(e){e()}),sX[t]&&(sX[t].terminate(),delete sX[t])}function _he(t){var e=t.toString();return!/^function/.test(e)&&/^\w+\s*\(/.test(e)&&(e="function "+e),e}function Roi(t){var e=sX[t];if(!e){var n=_he(woi);e=sX[t]=new Worker(URL.createObjectURL(new Blob(["/** Worker Module Bootstrap: "+t.replace(/\*/g,"")+` **/

;(`+n+")()"],{type:"application/javascript"}))),e.onmessage=function(o){var i=o.data,r=i.messageId,s=Qke[r];if(!s)throw new Error("WorkerModule response with empty or unknown messageId");delete Qke[r],s(i)}}return e}function HJt(t,e,n){return new Promise(function(o,i){var r=++Doi;Qke[r]=function(s){s.success?o(s.result):i(new Error("Error in worker "+e+" call: "+s.error))},Roi(t).postMessage({messageId:r,action:e,data:n})})}function OJt(){var t=(function(e){function n(W,te,j,J,oe,ie,ne,le){var ge=1-ne;le.x=ge*ge*W+2*ge*ne*j+ne*ne*oe,le.y=ge*ge*te+2*ge*ne*J+ne*ne*ie}function o(W,te,j,J,oe,ie,ne,le,ge,_e){var ue=1-ge;_e.x=ue*ue*ue*W+3*ue*ue*ge*j+3*ue*ge*ge*oe+ge*ge*ge*ne,_e.y=ue*ue*ue*te+3*ue*ue*ge*J+3*ue*ge*ge*ie+ge*ge*ge*le}function i(W,te){for(var j=/([MLQCZ])([^MLQCZ]*)/g,J,oe,ie,ne,le;J=j.exec(W);){var ge=J[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map(function(_e){return parseFloat(_e)});switch(J[1]){case"M":ne=oe=ge[0],le=ie=ge[1];break;case"L":(ge[0]!==ne||ge[1]!==le)&&te("L",ne,le,ne=ge[0],le=ge[1]);break;case"Q":{te("Q",ne,le,ne=ge[2],le=ge[3],ge[0],ge[1]);break}case"C":{te("C",ne,le,ne=ge[4],le=ge[5],ge[0],ge[1],ge[2],ge[3]);break}case"Z":(ne!==oe||le!==ie)&&te("L",ne,le,oe,ie);break}}}function r(W,te,j){j===void 0&&(j=16);var J={x:0,y:0};i(W,function(oe,ie,ne,le,ge,_e,ue,fe,pe){switch(oe){case"L":te(ie,ne,le,ge);break;case"Q":{for(var ye=ie,Me=ne,ve=1;ve<j;ve++)n(ie,ne,_e,ue,le,ge,ve/(j-1),J),te(ye,Me,J.x,J.y),ye=J.x,Me=J.y;break}case"C":{for(var he=ie,Qe=ne,Pe=1;Pe<j;Pe++)o(ie,ne,_e,ue,fe,pe,le,ge,Pe/(j-1),J),te(he,Qe,J.x,J.y),he=J.x,Qe=J.y;break}}})}var s="precision highp float;attribute vec2 aUV;varying vec2 vUV;void main(){vUV=aUV;gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}",a="precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){gl_FragColor=texture2D(tex,vUV);}",A=new WeakMap,c={premultipliedAlpha:!1,preserveDrawingBuffer:!0,antialias:!1,depth:!1};function l(W,te){var j=W.getContext?W.getContext("webgl",c):W,J=A.get(j);if(!J){let ue=function(he){var Qe=ie[he];if(!Qe&&(Qe=ie[he]=j.getExtension(he),!Qe))throw new Error(he+" not supported");return Qe},fe=function(he,Qe){var Pe=j.createShader(Qe);return j.shaderSource(Pe,he),j.compileShader(Pe),Pe},pe=function(he,Qe,Pe,we){if(!ne[he]){var Te={},Re={},Ee=j.createProgram();j.attachShader(Ee,fe(Qe,j.VERTEX_SHADER)),j.attachShader(Ee,fe(Pe,j.FRAGMENT_SHADER)),j.linkProgram(Ee),ne[he]={program:Ee,transaction:function(Ce){j.useProgram(Ee),Ce({setUniform:function(Ye,tt){for(var At=[],at=arguments.length-2;at-- >0;)At[at]=arguments[at+2];var nt=Re[tt]||(Re[tt]=j.getUniformLocation(Ee,tt));j["uniform"+Ye].apply(j,[nt].concat(At))},setAttribute:function(Ye,tt,At,at,nt){var gt=Te[Ye];gt||(gt=Te[Ye]={buf:j.createBuffer(),loc:j.getAttribLocation(Ee,Ye),data:null}),j.bindBuffer(j.ARRAY_BUFFER,gt.buf),j.vertexAttribPointer(gt.loc,tt,j.FLOAT,!1,0,0),j.enableVertexAttribArray(gt.loc),oe?j.vertexAttribDivisor(gt.loc,at):ue("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(gt.loc,at),nt!==gt.data&&(j.bufferData(j.ARRAY_BUFFER,nt,At),gt.data=nt)}})}}}ne[he].transaction(we)},ye=function(he,Qe){ge++;try{j.activeTexture(j.TEXTURE0+ge);var Pe=le[he];Pe||(Pe=le[he]=j.createTexture(),j.bindTexture(j.TEXTURE_2D,Pe),j.texParameteri(j.TEXTURE_2D,j.TEXTURE_MIN_FILTER,j.NEAREST),j.texParameteri(j.TEXTURE_2D,j.TEXTURE_MAG_FILTER,j.NEAREST)),j.bindTexture(j.TEXTURE_2D,Pe),Qe(Pe,ge)}finally{ge--}},Me=function(he,Qe,Pe){var we=j.createFramebuffer();_e.push(we),j.bindFramebuffer(j.FRAMEBUFFER,we),j.activeTexture(j.TEXTURE0+Qe),j.bindTexture(j.TEXTURE_2D,he),j.framebufferTexture2D(j.FRAMEBUFFER,j.COLOR_ATTACHMENT0,j.TEXTURE_2D,he,0);try{Pe(we)}finally{j.deleteFramebuffer(we),j.bindFramebuffer(j.FRAMEBUFFER,_e[--_e.length-1]||null)}},ve=function(){ie={},ne={},le={},ge=-1,_e.length=0};var oe=typeof WebGL2RenderingContext<"u"&&j instanceof WebGL2RenderingContext,ie={},ne={},le={},ge=-1,_e=[];j.canvas.addEventListener("webglcontextlost",function(he){ve(),he.preventDefault()},!1),A.set(j,J={gl:j,isWebGL2:oe,getExtension:ue,withProgram:pe,withTexture:ye,withTextureFramebuffer:Me,handleContextLoss:ve})}te(J)}function u(W,te,j,J,oe,ie,ne,le){ne===void 0&&(ne=15),le===void 0&&(le=null),l(W,function(ge){var _e=ge.gl,ue=ge.withProgram,fe=ge.withTexture;fe("copy",function(pe,ye){_e.texImage2D(_e.TEXTURE_2D,0,_e.RGBA,oe,ie,0,_e.RGBA,_e.UNSIGNED_BYTE,te),ue("copy",s,a,function(Me){var ve=Me.setUniform,he=Me.setAttribute;he("aUV",2,_e.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),ve("1i","image",ye),_e.bindFramebuffer(_e.FRAMEBUFFER,le||null),_e.disable(_e.BLEND),_e.colorMask(ne&8,ne&4,ne&2,ne&1),_e.viewport(j,J,oe,ie),_e.scissor(j,J,oe,ie),_e.drawArrays(_e.TRIANGLES,0,3)})})})}function g(W,te,j){var J=W.width,oe=W.height;l(W,function(ie){var ne=ie.gl,le=new Uint8Array(J*oe*4);ne.readPixels(0,0,J,oe,ne.RGBA,ne.UNSIGNED_BYTE,le),W.width=te,W.height=j,u(ne,le,0,0,J,oe)})}var h=Object.freeze({__proto__:null,withWebGLContext:l,renderImageData:u,resizeWebGLCanvasWithoutClearing:g});function d(W,te,j,J,oe,ie){ie===void 0&&(ie=1);var ne=new Uint8Array(W*te),le=J[2]-J[0],ge=J[3]-J[1],_e=[];r(j,function(he,Qe,Pe,we){_e.push({x1:he,y1:Qe,x2:Pe,y2:we,minX:Math.min(he,Pe),minY:Math.min(Qe,we),maxX:Math.max(he,Pe),maxY:Math.max(Qe,we)})}),_e.sort(function(he,Qe){return he.maxX-Qe.maxX});for(var ue=0;ue<W;ue++)for(var fe=0;fe<te;fe++){var pe=Me(J[0]+le*(ue+.5)/W,J[1]+ge*(fe+.5)/te),ye=Math.pow(1-Math.abs(pe)/oe,ie)/2;pe<0&&(ye=1-ye),ye=Math.max(0,Math.min(255,Math.round(ye*255))),ne[fe*W+ue]=ye}return ne;function Me(he,Qe){for(var Pe=1/0,we=1/0,Te=_e.length;Te--;){var Re=_e[Te];if(Re.maxX+we<=he)break;if(he+we>Re.minX&&Qe-we<Re.maxY&&Qe+we>Re.minY){var Ee=_(he,Qe,Re.x1,Re.y1,Re.x2,Re.y2);Ee<Pe&&(Pe=Ee,we=Math.sqrt(Pe))}}return ve(he,Qe)&&(we=-we),we}function ve(he,Qe){for(var Pe=0,we=_e.length;we--;){var Te=_e[we];if(Te.maxX<=he)break;var Re=Te.y1>Qe!=Te.y2>Qe&&he<(Te.x2-Te.x1)*(Qe-Te.y1)/(Te.y2-Te.y1)+Te.x1;Re&&(Pe+=Te.y1<Te.y2?1:-1)}return Pe!==0}}function p(W,te,j,J,oe,ie,ne,le,ge,_e){ie===void 0&&(ie=1),le===void 0&&(le=0),ge===void 0&&(ge=0),_e===void 0&&(_e=0),m(W,te,j,J,oe,ie,ne,null,le,ge,_e)}function m(W,te,j,J,oe,ie,ne,le,ge,_e,ue){ie===void 0&&(ie=1),ge===void 0&&(ge=0),_e===void 0&&(_e=0),ue===void 0&&(ue=0);for(var fe=d(W,te,j,J,oe,ie),pe=new Uint8Array(fe.length*4),ye=0;ye<fe.length;ye++)pe[ye*4+ue]=fe[ye];u(ne,pe,ge,_e,W,te,1<<3-ue,le)}function _(W,te,j,J,oe,ie){var ne=oe-j,le=ie-J,ge=ne*ne+le*le,_e=ge?Math.max(0,Math.min(1,((W-j)*ne+(te-J)*le)/ge)):0,ue=W-(j+_e*ne),fe=te-(J+_e*le);return ue*ue+fe*fe}var f=Object.freeze({__proto__:null,generate:d,generateIntoCanvas:p,generateIntoFramebuffer:m}),I="precision highp float;uniform vec4 uGlyphBounds;attribute vec2 aUV;attribute vec4 aLineSegment;varying vec4 vLineSegment;varying vec2 vGlyphXY;void main(){vLineSegment=aLineSegment;vGlyphXY=mix(uGlyphBounds.xy,uGlyphBounds.zw,aUV);gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}",C="precision highp float;uniform vec4 uGlyphBounds;uniform float uMaxDistance;uniform float uExponent;varying vec4 vLineSegment;varying vec2 vGlyphXY;float absDistToSegment(vec2 point,vec2 lineA,vec2 lineB){vec2 lineDir=lineB-lineA;float lenSq=dot(lineDir,lineDir);float t=lenSq==0.0 ? 0.0 : clamp(dot(point-lineA,lineDir)/lenSq,0.0,1.0);vec2 linePt=lineA+t*lineDir;return distance(point,linePt);}void main(){vec4 seg=vLineSegment;vec2 p=vGlyphXY;float dist=absDistToSegment(p,seg.xy,seg.zw);float val=pow(1.0-clamp(dist/uMaxDistance,0.0,1.0),uExponent)*0.5;bool crossing=(seg.y>p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y<vLineSegment.w;gl_FragColor=vec4(crossingUp ? 1.0/255.0 : 0.0,crossing&&!crossingUp ? 1.0/255.0 : 0.0,0.0,val);}",y="precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){vec4 color=texture2D(tex,vUV);bool inside=color.r!=color.g;float val=inside ? 1.0-color.a : color.a;gl_FragColor=vec4(val);}",x=new Float32Array([0,0,2,0,0,2]),E=null,B=!1,S={},Q=new WeakMap;function w(W){if(!B&&!F(W))throw new Error("WebGL generation not supported")}function M(W,te,j,J,oe,ie,ne){if(ie===void 0&&(ie=1),ne===void 0&&(ne=null),!ne&&(ne=E,!ne)){var le=typeof OffscreenCanvas=="function"?new OffscreenCanvas(1,1):typeof document<"u"?document.createElement("canvas"):null;if(!le)throw new Error("OffscreenCanvas or DOM canvas not supported");ne=E=le.getContext("webgl",{depth:!1})}w(ne);var ge=new Uint8Array(W*te*4);l(ne,function(pe){var ye=pe.gl,Me=pe.withTexture,ve=pe.withTextureFramebuffer;Me("readable",function(he,Qe){ye.texImage2D(ye.TEXTURE_2D,0,ye.RGBA,W,te,0,ye.RGBA,ye.UNSIGNED_BYTE,null),ve(he,Qe,function(Pe){R(W,te,j,J,oe,ie,ye,Pe,0,0,0),ye.readPixels(0,0,W,te,ye.RGBA,ye.UNSIGNED_BYTE,ge)})})});for(var _e=new Uint8Array(W*te),ue=0,fe=0;ue<ge.length;ue+=4)_e[fe++]=ge[ue];return _e}function k(W,te,j,J,oe,ie,ne,le,ge,_e){ie===void 0&&(ie=1),le===void 0&&(le=0),ge===void 0&&(ge=0),_e===void 0&&(_e=0),R(W,te,j,J,oe,ie,ne,null,le,ge,_e)}function R(W,te,j,J,oe,ie,ne,le,ge,_e,ue){ie===void 0&&(ie=1),ge===void 0&&(ge=0),_e===void 0&&(_e=0),ue===void 0&&(ue=0),w(ne);var fe=[];r(j,function(pe,ye,Me,ve){fe.push(pe,ye,Me,ve)}),fe=new Float32Array(fe),l(ne,function(pe){var ye=pe.gl,Me=pe.isWebGL2,ve=pe.getExtension,he=pe.withProgram,Qe=pe.withTexture,Pe=pe.withTextureFramebuffer,we=pe.handleContextLoss;if(Qe("rawDistances",function(Te,Re){(W!==Te._lastWidth||te!==Te._lastHeight)&&ye.texImage2D(ye.TEXTURE_2D,0,ye.RGBA,Te._lastWidth=W,Te._lastHeight=te,0,ye.RGBA,ye.UNSIGNED_BYTE,null),he("main",I,C,function(Ee){var ke=Ee.setAttribute,Ce=Ee.setUniform,Le=!Me&&ve("ANGLE_instanced_arrays"),Ye=!Me&&ve("EXT_blend_minmax");ke("aUV",2,ye.STATIC_DRAW,0,x),ke("aLineSegment",4,ye.DYNAMIC_DRAW,1,fe),Ce.apply(void 0,["4f","uGlyphBounds"].concat(J)),Ce("1f","uMaxDistance",oe),Ce("1f","uExponent",ie),Pe(Te,Re,function(tt){ye.enable(ye.BLEND),ye.colorMask(!0,!0,!0,!0),ye.viewport(0,0,W,te),ye.scissor(0,0,W,te),ye.blendFunc(ye.ONE,ye.ONE),ye.blendEquationSeparate(ye.FUNC_ADD,Me?ye.MAX:Ye.MAX_EXT),ye.clear(ye.COLOR_BUFFER_BIT),Me?ye.drawArraysInstanced(ye.TRIANGLES,0,3,fe.length/4):Le.drawArraysInstancedANGLE(ye.TRIANGLES,0,3,fe.length/4)})}),he("post",s,y,function(Ee){Ee.setAttribute("aUV",2,ye.STATIC_DRAW,0,x),Ee.setUniform("1i","tex",Re),ye.bindFramebuffer(ye.FRAMEBUFFER,le),ye.disable(ye.BLEND),ye.colorMask(ue===0,ue===1,ue===2,ue===3),ye.viewport(ge,_e,W,te),ye.scissor(ge,_e,W,te),ye.drawArrays(ye.TRIANGLES,0,3)})}),ye.isContextLost())throw we(),new Error("webgl context lost")})}function F(W){var te=!W||W===E?S:W.canvas||W,j=Q.get(te);if(j===void 0){B=!0;var J=null;try{var oe=[97,106,97,61,99,137,118,80,80,118,137,99,61,97,106,97],ie=M(4,4,"M8,8L16,8L24,24L16,24Z",[0,0,32,32],24,1,W);j=ie&&oe.length===ie.length&&ie.every(function(ne,le){return ne===oe[le]}),j||(J="bad trial run results",console.info(oe,ie))}catch(ne){j=!1,J=ne.message}J&&console.warn("WebGL SDF generation not supported:",J),B=!1,Q.set(te,j)}return j}var O=Object.freeze({__proto__:null,generate:M,generateIntoCanvas:k,generateIntoFramebuffer:R,isSupported:F});function U(W,te,j,J,oe,ie){oe===void 0&&(oe=Math.max(J[2]-J[0],J[3]-J[1])/2),ie===void 0&&(ie=1);try{return M.apply(O,arguments)}catch(ne){return console.info("WebGL SDF generation failed, falling back to JS",ne),d.apply(f,arguments)}}function Y(W,te,j,J,oe,ie,ne,le,ge,_e){oe===void 0&&(oe=Math.max(J[2]-J[0],J[3]-J[1])/2),ie===void 0&&(ie=1),le===void 0&&(le=0),ge===void 0&&(ge=0),_e===void 0&&(_e=0);try{return k.apply(O,arguments)}catch(ue){return console.info("WebGL SDF generation failed, falling back to JS",ue),p.apply(f,arguments)}}return e.forEachPathCommand=i,e.generate=U,e.generateIntoCanvas=Y,e.javascript=f,e.pathToLineSegments=r,e.webgl=O,e.webglUtils=h,Object.defineProperty(e,"__esModule",{value:!0}),e})({});return t}function Toi(){var t=(function(e){var n={R:"13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73",EN:"1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9",ES:"17,2,6dp+1,f+1,av,16vr,mx+1,4o,2",ET:"z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj",AN:"16o+5,2j+9,2+1,35,ed,1ff2+9,87+u",CS:"18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b",B:"a,3,f+2,2v,690",S:"9,2,k",WS:"c,k,4f4,1vk+a,u,1j,335",ON:"x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i",BN:"0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1",NSM:"lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n",AL:"16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d",LRO:"6ct",RLO:"6cu",LRE:"6cq",RLE:"6cr",PDF:"6cs",LRI:"6ee",RLI:"6ef",FSI:"6eg",PDI:"6eh"},o={},i={};o.L=1,i[1]="L",Object.keys(n).forEach(function(we,Te){o[we]=1<<Te+1,i[o[we]]=we}),Object.freeze(o);var r=o.LRI|o.RLI|o.FSI,s=o.L|o.R|o.AL,a=o.B|o.S|o.WS|o.ON|o.FSI|o.LRI|o.RLI|o.PDI,A=o.BN|o.RLE|o.LRE|o.RLO|o.LRO|o.PDF,c=o.S|o.WS|o.B|r|o.PDI|A,l=null;function u(){if(!l){l=new Map;var we=0;for(var Te in n)if(n.hasOwnProperty(Te))for(var Re=n[Te],Ee="",ke=void 0,Ce=!1,Le=0,Ye=0;Ye<=Re.length+1;Ye+=1){var tt=Re[Ye];if(tt!==","&&Ye!==Re.length)tt==="+"?(Ce=!0,Le=we=Le+parseInt(Ee,36),Ee=""):Ee+=tt;else{Ce?ke=we+parseInt(Ee,36):(Le=we=Le+parseInt(Ee,36),ke=we),Ce=!1,Ee="",Le=ke;for(var At=we;At<ke+1;At+=1)l.set(At,o[Te])}}}}function g(we){return u(),l.get(we.codePointAt(0))||o.L}function h(we){return i[g(we)]}var d={pairs:"14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",canonical:"6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"};function p(we,Te){var Re=36,Ee=0,ke=new Map,Ce=Te&&new Map,Le;return we.split(",").forEach(function Ye(tt){if(tt.indexOf("+")!==-1)for(var At=+tt;At--;)Ye(Le);else{Le=tt;var at=tt.split(">"),nt=at[0],gt=at[1];nt=String.fromCodePoint(Ee+=parseInt(nt,Re)),gt=String.fromCodePoint(Ee+=parseInt(gt,Re)),ke.set(nt,gt),Te&&Ce.set(gt,nt)}}),{map:ke,reverseMap:Ce}}var m,_,f;function I(){if(!m){var we=p(d.pairs,!0),Te=we.map,Re=we.reverseMap;m=Te,_=Re,f=p(d.canonical,!1).map}}function C(we){return I(),m.get(we)||null}function y(we){return I(),_.get(we)||null}function x(we){return I(),f.get(we)||null}var E=o.L,B=o.R,S=o.EN,Q=o.ES,w=o.ET,M=o.AN,k=o.CS,R=o.B,F=o.S,O=o.ON,U=o.BN,Y=o.NSM,W=o.AL,te=o.LRO,j=o.RLO,J=o.LRE,oe=o.RLE,ie=o.PDF,ne=o.LRI,le=o.RLI,ge=o.FSI,_e=o.PDI;function ue(we,Te){for(var Re=125,Ee=new Uint32Array(we.length),ke=0;ke<we.length;ke++)Ee[ke]=g(we[ke]);var Ce=new Map;function Le(tr,Vo){var wA=Ee[tr];Ee[tr]=Vo,Ce.set(wA,Ce.get(wA)-1),wA&a&&Ce.set(a,Ce.get(a)-1),Ce.set(Vo,(Ce.get(Vo)||0)+1),Vo&a&&Ce.set(a,(Ce.get(a)||0)+1)}for(var Ye=new Uint8Array(we.length),tt=new Map,At=[],at=null,nt=0;nt<we.length;nt++)at||At.push(at={start:nt,end:we.length-1,level:Te==="rtl"?1:Te==="ltr"?0:Qp(nt,!1)}),Ee[nt]&R&&(at.end=nt,at=null);for(var gt=oe|J|j|te|r|_e|ie|R,bt=function(tr){return tr+(tr&1?1:2)},Ct=function(tr){return tr+(tr&1?2:1)},Dt=0;Dt<At.length;Dt++){at=At[Dt];var kt=[{_level:at.level,_override:0,_isolate:0}],it=void 0,Yt=0,pn=0,be=0;Ce.clear();for(var et=at.start;et<=at.end;et++){var It=Ee[et];if(it=kt[kt.length-1],Ce.set(It,(Ce.get(It)||0)+1),It&a&&Ce.set(a,(Ce.get(a)||0)+1),It&gt)if(It&(oe|J)){Ye[et]=it._level;var Bt=(It===oe?Ct:bt)(it._level);Bt<=Re&&!Yt&&!pn?kt.push({_level:Bt,_override:0,_isolate:0}):Yt||pn++}else if(It&(j|te)){Ye[et]=it._level;var mt=(It===j?Ct:bt)(it._level);mt<=Re&&!Yt&&!pn?kt.push({_level:mt,_override:It&j?B:E,_isolate:0}):Yt||pn++}else if(It&r){It&ge&&(It=Qp(et+1,!0)===1?le:ne),Ye[et]=it._level,it._override&&Le(et,it._override);var st=(It===le?Ct:bt)(it._level);st<=Re&&Yt===0&&pn===0?(be++,kt.push({_level:st,_override:0,_isolate:1,_isolInitIndex:et})):Yt++}else if(It&_e){if(Yt>0)Yt--;else if(be>0){for(pn=0;!kt[kt.length-1]._isolate;)kt.pop();var xt=kt[kt.length-1]._isolInitIndex;xt!=null&&(tt.set(xt,et),tt.set(et,xt)),kt.pop(),be--}it=kt[kt.length-1],Ye[et]=it._level,it._override&&Le(et,it._override)}else It&ie?(Yt===0&&(pn>0?pn--:!it._isolate&&kt.length>1&&(kt.pop(),it=kt[kt.length-1])),Ye[et]=it._level):It&R&&(Ye[et]=at.level);else Ye[et]=it._level,it._override&&It!==U&&Le(et,it._override)}for(var Xe=[],Ze=null,dt=at.start;dt<=at.end;dt++){var Ut=Ee[dt];if(!(Ut&A)){var Wt=Ye[dt],Xt=Ut&r,Jt=Ut===_e;Ze&&Wt===Ze._level?(Ze._end=dt,Ze._endsWithIsolInit=Xt):Xe.push(Ze={_start:dt,_end:dt,_level:Wt,_startsWithPDI:Jt,_endsWithIsolInit:Xt})}}for(var yn=[],An=0;An<Xe.length;An++){var kn=Xe[An];if(!kn._startsWithPDI||kn._startsWithPDI&&!tt.has(kn._start)){for(var $n=[Ze=kn],ht=void 0;Ze&&Ze._endsWithIsolInit&&(ht=tt.get(Ze._end))!=null;)for(var Kt=An+1;Kt<Xe.length;Kt++)if(Xe[Kt]._start===ht){$n.push(Ze=Xe[Kt]);break}for(var rn=[],Lt=0;Lt<$n.length;Lt++)for(var Ho=$n[Lt],Ao=Ho._start;Ao<=Ho._end;Ao++)rn.push(Ao);for(var qe=Ye[rn[0]],vt=at.level,qt=rn[0]-1;qt>=0;qt--)if(!(Ee[qt]&A)){vt=Ye[qt];break}var Zt=rn[rn.length-1],nn=Ye[Zt],zn=at.level;if(!(Ee[Zt]&r)){for(var Nn=Zt+1;Nn<=at.end;Nn++)if(!(Ee[Nn]&A)){zn=Ye[Nn];break}}yn.push({_seqIndices:rn,_sosType:Math.max(vt,qe)%2?B:E,_eosType:Math.max(zn,nn)%2?B:E})}}for(var Co=0;Co<yn.length;Co++){var ei=yn[Co],ro=ei._seqIndices,To=ei._sosType,yo=ei._eosType,Ro=Ye[ro[0]]&1?B:E;if(Ce.get(Y))for(var On=0;On<ro.length;On++){var uo=ro[On];if(Ee[uo]&Y){for(var Oo=To,ko=On-1;ko>=0;ko--)if(!(Ee[ro[ko]]&A)){Oo=Ee[ro[ko]];break}Le(uo,Oo&(r|_e)?O:Oo)}}if(Ce.get(S))for(var Ko=0;Ko<ro.length;Ko++){var mi=ro[Ko];if(Ee[mi]&S)for(var Fo=Ko-1;Fo>=-1;Fo--){var Nr=Fo===-1?To:Ee[ro[Fo]];if(Nr&s){Nr===W&&Le(mi,M);break}}}if(Ce.get(W))for(var Rs=0;Rs<ro.length;Rs++){var ur=ro[Rs];Ee[ur]&W&&Le(ur,B)}if(Ce.get(Q)||Ce.get(k))for(var zi=1;zi<ro.length-1;zi++){var bi=ro[zi];if(Ee[bi]&(Q|k)){for(var Ar=0,ws=0,ds=zi-1;ds>=0&&(Ar=Ee[ro[ds]],!!(Ar&A));ds--);for(var Et=zi+1;Et<ro.length&&(ws=Ee[ro[Et]],!!(ws&A));Et++);Ar===ws&&(Ee[bi]===Q?Ar===S:Ar&(S|M))&&Le(bi,Ar)}}if(Ce.get(S))for(var Gt=0;Gt<ro.length;Gt++){var Rt=ro[Gt];if(Ee[Rt]&S){for(var Ht=Gt-1;Ht>=0&&Ee[ro[Ht]]&(w|A);Ht--)Le(ro[Ht],S);for(Gt++;Gt<ro.length&&Ee[ro[Gt]]&(w|A|S);Gt++)Ee[ro[Gt]]!==S&&Le(ro[Gt],S)}}if(Ce.get(w)||Ce.get(Q)||Ce.get(k))for(var Qt=0;Qt<ro.length;Qt++){var Nt=ro[Qt];if(Ee[Nt]&(w|Q|k)){Le(Nt,O);for(var _n=Qt-1;_n>=0&&Ee[ro[_n]]&A;_n--)Le(ro[_n],O);for(var qn=Qt+1;qn<ro.length&&Ee[ro[qn]]&A;qn++)Le(ro[qn],O)}}if(Ce.get(S))for(var En=0,Rn=To;En<ro.length;En++){var Hn=ro[En],Lo=Ee[Hn];Lo&S?Rn===E&&Le(Hn,E):Lo&s&&(Rn=Lo)}if(Ce.get(a)){var Io=B|S|M,gi=Io|E,jo=[];{for(var oi=[],Ji=0;Ji<ro.length;Ji++)if(Ee[ro[Ji]]&a){var wi=we[ro[Ji]],Br=void 0;if(C(wi)!==null)if(oi.length<63)oi.push({char:wi,seqIndex:Ji});else break;else if((Br=y(wi))!==null)for(var gr=oi.length-1;gr>=0;gr--){var oa=oi[gr].char;if(oa===Br||oa===y(x(wi))||C(x(oa))===wi){jo.push([oi[gr].seqIndex,Ji]),oi.length=gr;break}}}jo.sort(function(tr,Vo){return tr[0]-Vo[0]})}for(var hs=0;hs<jo.length;hs++){for(var Li=jo[hs],ys=Li[0],dr=Li[1],cA=!1,vA=0,Yl=ys+1;Yl<dr;Yl++){var H0=ro[Yl];if(Ee[H0]&gi){cA=!0;var ph=Ee[H0]&Io?B:E;if(ph===Ro){vA=ph;break}}}if(cA&&!vA){vA=To;for(var Xh=ys-1;Xh>=0;Xh--){var Bl=ro[Xh];if(Ee[Bl]&gi){var fc=Ee[Bl]&Io?B:E;fc!==Ro?vA=fc:vA=Ro;break}}}if(vA){if(Ee[ro[ys]]=Ee[ro[dr]]=vA,vA!==Ro){for(var Nd=ys+1;Nd<ro.length;Nd++)if(!(Ee[ro[Nd]]&A)){g(we[ro[Nd]])&Y&&(Ee[ro[Nd]]=vA);break}}if(vA!==Ro){for(var il=dr+1;il<ro.length;il++)if(!(Ee[ro[il]]&A)){g(we[ro[il]])&Y&&(Ee[ro[il]]=vA);break}}}}for(var Ul=0;Ul<ro.length;Ul++)if(Ee[ro[Ul]]&a){for(var m_=Ul,ag=Ul,Rd=To,mh=Ul-1;mh>=0;mh--)if(Ee[ro[mh]]&A)m_=mh;else{Rd=Ee[ro[mh]]&Io?B:E;break}for(var mm=yo,gu=Ul+1;gu<ro.length;gu++)if(Ee[ro[gu]]&(a|A))ag=gu;else{mm=Ee[ro[gu]]&Io?B:E;break}for(var Ag=m_;Ag<=ag;Ag++)Ee[ro[Ag]]=Rd===mm?Rd:Ro;Ul=ag}}}for(var C0=at.start;C0<=at.end;C0++){var FC=Ye[C0],O0=Ee[C0];if(FC&1?O0&(E|S|M)&&Ye[C0]++:O0&B?Ye[C0]++:O0&(M|S)&&(Ye[C0]+=2),O0&A&&(Ye[C0]=C0===0?at.level:Ye[C0-1]),C0===at.end||g(we[C0])&(F|R))for(var __=C0;__>=0&&g(we[__])&c;__--)Ye[__]=at.level}}return{levels:Ye,paragraphs:At};function Qp(tr,Vo){for(var wA=tr;wA<we.length;wA++){var Td=Ee[wA];if(Td&(B|W))return 1;if(Td&(R|E)||Vo&&Td===_e)return 0;if(Td&r){var da=_1(wA);wA=da===-1?we.length:da}}return 0}function _1(tr){for(var Vo=1,wA=tr+1;wA<we.length;wA++){var Td=Ee[wA];if(Td&R)break;if(Td&_e){if(--Vo===0)return wA}else Td&r&&Vo++}return-1}}var fe="14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1",pe;function ye(){if(!pe){var we=p(fe,!0),Te=we.map,Re=we.reverseMap;Re.forEach(function(Ee,ke){Te.set(ke,Ee)}),pe=Te}}function Me(we){return ye(),pe.get(we)||null}function ve(we,Te,Re,Ee){var ke=we.length;Re=Math.max(0,Re==null?0:+Re),Ee=Math.min(ke-1,Ee==null?ke-1:+Ee);for(var Ce=new Map,Le=Re;Le<=Ee;Le++)if(Te[Le]&1){var Ye=Me(we[Le]);Ye!==null&&Ce.set(Le,Ye)}return Ce}function he(we,Te,Re,Ee){var ke=we.length;Re=Math.max(0,Re==null?0:+Re),Ee=Math.min(ke-1,Ee==null?ke-1:+Ee);var Ce=[];return Te.paragraphs.forEach(function(Le){var Ye=Math.max(Re,Le.start),tt=Math.min(Ee,Le.end);if(Ye<tt){for(var At=Te.levels.slice(Ye,tt+1),at=tt;at>=Ye&&g(we[at])&c;at--)At[at]=Le.level;for(var nt=Le.level,gt=1/0,bt=0;bt<At.length;bt++){var Ct=At[bt];Ct>nt&&(nt=Ct),Ct<gt&&(gt=Ct|1)}for(var Dt=nt;Dt>=gt;Dt--)for(var kt=0;kt<At.length;kt++)if(At[kt]>=Dt){for(var it=kt;kt+1<At.length&&At[kt+1]>=Dt;)kt++;kt>it&&Ce.push([it+Ye,kt+Ye])}}}),Ce}function Qe(we,Te,Re,Ee){var ke=Pe(we,Te,Re,Ee),Ce=[].concat(we);return ke.forEach(function(Le,Ye){Ce[Ye]=(Te.levels[Le]&1?Me(we[Le]):null)||we[Le]}),Ce.join("")}function Pe(we,Te,Re,Ee){for(var ke=he(we,Te,Re,Ee),Ce=[],Le=0;Le<we.length;Le++)Ce[Le]=Le;return ke.forEach(function(Ye){for(var tt=Ye[0],At=Ye[1],at=Ce.slice(tt,At+1),nt=at.length;nt--;)Ce[At-nt]=at[nt]}),Ce}return e.closingToOpeningBracket=y,e.getBidiCharType=g,e.getBidiCharTypeName=h,e.getCanonicalBracket=x,e.getEmbeddingLevels=ue,e.getMirroredCharacter=Me,e.getMirroredCharactersMap=ve,e.getReorderSegments=he,e.getReorderedIndices=Pe,e.getReorderedString=Qe,e.openingToClosingBracket=C,Object.defineProperty(e,"__esModule",{value:!0}),e})({});return t}const GJt=/\bvoid\s+main\s*\(\s*\)\s*{/g;function vke(t){const e=/^[ \t]*#include +<([\w\d./]+)>/gm;function n(o,i){let r=OA[i];return r?vke(r):o}return t.replace(e,n)}const gI=[];for(let t=0;t<256;t++)gI[t]=(t<16?"0":"")+t.toString(16);function koi(){const t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,n=Math.random()*4294967295|0,o=Math.random()*4294967295|0;return(gI[t&255]+gI[t>>8&255]+gI[t>>16&255]+gI[t>>24&255]+"-"+gI[e&255]+gI[e>>8&255]+"-"+gI[e>>16&15|64]+gI[e>>24&255]+"-"+gI[n&63|128]+gI[n>>8&255]+"-"+gI[n>>16&255]+gI[n>>24&255]+gI[o&255]+gI[o>>8&255]+gI[o>>16&255]+gI[o>>24&255]).toUpperCase()}const XR=Object.assign||function(){let t=arguments[0];for(let e=1,n=arguments.length;e<n;e++){let o=arguments[e];if(o)for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&(t[i]=o[i])}return t},Foi=Date.now(),YJt=new WeakMap,UJt=new Map;let Loi=1e10;function wke(t,e){const n=Yoi(e);let o=YJt.get(t);if(o||YJt.set(t,o=Object.create(null)),o[n])return new o[n];const i=`_onBeforeCompile${n}`,r=function(c,l){t.onBeforeCompile.call(this,c,l);const u=this.customProgramCacheKey()+"|"+c.vertexShader+"|"+c.fragmentShader;let g=UJt[u];if(!g){const h=Hoi(this,c,e,n);g=UJt[u]=h}c.vertexShader=g.vertexShader,c.fragmentShader=g.fragmentShader,XR(c.uniforms,this.uniforms),e.timeUniform&&(c.uniforms[e.timeUniform]={get value(){return Date.now()-Foi}}),this[i]&&this[i](c)},s=function(){return a(e.chained?t:t.clone())},a=function(c){const l=Object.create(c,A);return Object.defineProperty(l,"baseMaterial",{value:t}),Object.defineProperty(l,"id",{value:Loi++}),l.uuid=koi(),l.uniforms=XR({},c.uniforms,e.uniforms),l.defines=XR({},c.defines,e.defines),l.defines[`TROIKA_DERIVED_MATERIAL_${n}`]="",l.extensions=XR({},c.extensions,e.extensions),l._listeners=void 0,l},A={constructor:{value:s},isDerivedMaterial:{value:!0},type:{get:()=>t.type,set:c=>{t.type=c}},isDerivedFrom:{writable:!0,configurable:!0,value:function(c){const l=this.baseMaterial;return c===l||l.isDerivedMaterial&&l.isDerivedFrom(c)||!1}},customProgramCacheKey:{writable:!0,configurable:!0,value:function(){return t.customProgramCacheKey()+"|"+n}},onBeforeCompile:{get(){return r},set(c){this[i]=c}},copy:{writable:!0,configurable:!0,value:function(c){return t.copy.call(this,c),!t.isShaderMaterial&&!t.isDerivedMaterial&&(XR(this.extensions,c.extensions),XR(this.defines,c.defines),XR(this.uniforms,KVt.clone(c.uniforms))),this}},clone:{writable:!0,configurable:!0,value:function(){const c=new t.constructor;return a(c).copy(this)}},getDepthMaterial:{writable:!0,configurable:!0,value:function(){let c=this._depthMaterial;return c||(c=this._depthMaterial=wke(t.isDerivedMaterial?t.getDepthMaterial():new Ezt({depthPacking:mVt}),e),c.defines.IS_DEPTH_MATERIAL="",c.uniforms=this.uniforms),c}},getDistanceMaterial:{writable:!0,configurable:!0,value:function(){let c=this._distanceMaterial;return c||(c=this._distanceMaterial=wke(t.isDerivedMaterial?t.getDistanceMaterial():new Bzt,e),c.defines.IS_DISTANCE_MATERIAL="",c.uniforms=this.uniforms),c}},dispose:{writable:!0,configurable:!0,value(){const{_depthMaterial:c,_distanceMaterial:l}=this;c&&c.dispose(),l&&l.dispose(),t.dispose.call(this)}}};return o[n]=s,new s}function Hoi(t,{vertexShader:e,fragmentShader:n},o,i){let{vertexDefs:r,vertexMainIntro:s,vertexMainOutro:a,vertexTransform:A,fragmentDefs:c,fragmentMainIntro:l,fragmentMainOutro:u,fragmentColorTransform:g,customRewriter:h,timeUniform:d}=o;if(r=r||"",s=s||"",a=a||"",c=c||"",l=l||"",u=u||"",(A||h)&&(e=vke(e)),(g||h)&&(n=n.replace(/^[ \t]*#include <((?:tonemapping|encodings|colorspace|fog|premultiplied_alpha|dithering)_fragment)>/gm,`
//!BEGIN_POST_CHUNK $1
$&
//!END_POST_CHUNK
`),n=vke(n)),h){let p=h({vertexShader:e,fragmentShader:n});e=p.vertexShader,n=p.fragmentShader}if(g){let p=[];n=n.replace(/^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm,m=>(p.push(m),"")),u=`${g}
${p.join(`
`)}
${u}`}if(d){const p=`
uniform float ${d};
`;r=p+r,c=p+c}return A&&(e=`vec3 troika_position_${i};
vec3 troika_normal_${i};
vec2 troika_uv_${i};
${e}
`,r=`${r}
void troikaVertexTransform${i}() {
  vec3 position = troika_position_${i};
  vec3 normal = troika_normal_${i};
  vec2 uv = troika_uv_${i};
  ${A}
  troika_position_${i} = position;
  troika_normal_${i} = normal;
  troika_uv_${i} = uv;
}
`,s=`
troika_position_${i} = vec3(position);
troika_normal_${i} = vec3(normal);
troika_uv_${i} = vec2(uv);
troikaVertexTransform${i}();
${s}
`,e=e.replace(/\b(position|normal|uv)\b/g,(p,m,_,f)=>/\battribute\s+vec[23]\s+$/.test(f.substr(0,_))?m:`troika_${m}_${i}`),t.map&&t.map.channel>0||(e=e.replace(/\bMAP_UV\b/g,`troika_uv_${i}`))),e=KJt(e,i,r,s,a),n=KJt(n,i,c,l,u),{vertexShader:e,fragmentShader:n}}function KJt(t,e,n,o,i){return(o||i||n)&&(t=t.replace(GJt,`
${n}
void troikaOrigMain${e}() {`),t+=`
void main() {
  ${o}
  troikaOrigMain${e}();
  ${i}
}`),t}function Ooi(t,e){return t==="uniforms"?void 0:typeof e=="function"?e.toString():e}let Goi=0;const VJt=new Map;function Yoi(t){const e=JSON.stringify(t,Ooi);let n=VJt.get(e);return n==null&&VJt.set(e,n=++Goi),n}function Uoi(){return typeof window>"u"&&(self.window=self),(function(t){var e={parse:function(i){var r=e._bin,s=new Uint8Array(i);if(r.readASCII(s,0,4)=="ttcf"){var a=4;r.readUshort(s,a),a+=2,r.readUshort(s,a),a+=2;var A=r.readUint(s,a);a+=4;for(var c=[],l=0;l<A;l++){var u=r.readUint(s,a);a+=4,c.push(e._readFont(s,u))}return c}return[e._readFont(s,0)]},_readFont:function(i,r){var s=e._bin,a=r;s.readFixed(i,r),r+=4;var A=s.readUshort(i,r);r+=2,s.readUshort(i,r),r+=2,s.readUshort(i,r),r+=2,s.readUshort(i,r),r+=2;for(var c=["cmap","head","hhea","maxp","hmtx","name","OS/2","post","loca","glyf","kern","CFF ","GDEF","GPOS","GSUB","SVG "],l={_data:i,_offset:a},u={},g=0;g<A;g++){var h=s.readASCII(i,r,4);r+=4,s.readUint(i,r),r+=4;var d=s.readUint(i,r);r+=4;var p=s.readUint(i,r);r+=4,u[h]={offset:d,length:p}}for(g=0;g<c.length;g++){var m=c[g];u[m]&&(l[m.trim()]=e[m.trim()].parse(i,u[m].offset,u[m].length,l))}return l},_tabOffset:function(i,r,s){for(var a=e._bin,A=a.readUshort(i,s+4),c=s+12,l=0;l<A;l++){var u=a.readASCII(i,c,4);c+=4,a.readUint(i,c),c+=4;var g=a.readUint(i,c);if(c+=4,a.readUint(i,c),c+=4,u==r)return g}return 0}};e._bin={readFixed:function(i,r){return(i[r]<<8|i[r+1])+(i[r+2]<<8|i[r+3])/65540},readF2dot14:function(i,r){return e._bin.readShort(i,r)/16384},readInt:function(i,r){return e._bin._view(i).getInt32(r)},readInt8:function(i,r){return e._bin._view(i).getInt8(r)},readShort:function(i,r){return e._bin._view(i).getInt16(r)},readUshort:function(i,r){return e._bin._view(i).getUint16(r)},readUshorts:function(i,r,s){for(var a=[],A=0;A<s;A++)a.push(e._bin.readUshort(i,r+2*A));return a},readUint:function(i,r){return e._bin._view(i).getUint32(r)},readUint64:function(i,r){return 4294967296*e._bin.readUint(i,r)+e._bin.readUint(i,r+4)},readASCII:function(i,r,s){for(var a="",A=0;A<s;A++)a+=String.fromCharCode(i[r+A]);return a},readUnicode:function(i,r,s){for(var a="",A=0;A<s;A++){var c=i[r++]<<8|i[r++];a+=String.fromCharCode(c)}return a},_tdec:typeof window<"u"&&window.TextDecoder?new window.TextDecoder:null,readUTF8:function(i,r,s){var a=e._bin._tdec;return a&&r==0&&s==i.length?a.decode(i):e._bin.readASCII(i,r,s)},readBytes:function(i,r,s){for(var a=[],A=0;A<s;A++)a.push(i[r+A]);return a},readASCIIArray:function(i,r,s){for(var a=[],A=0;A<s;A++)a.push(String.fromCharCode(i[r+A]));return a},_view:function(i){return i._dataView||(i._dataView=i.buffer?new DataView(i.buffer,i.byteOffset,i.byteLength):new DataView(new Uint8Array(i).buffer))}},e._lctf={},e._lctf.parse=function(i,r,s,a,A){var c=e._bin,l={},u=r;c.readFixed(i,r),r+=4;var g=c.readUshort(i,r);r+=2;var h=c.readUshort(i,r);r+=2;var d=c.readUshort(i,r);return r+=2,l.scriptList=e._lctf.readScriptList(i,u+g),l.featureList=e._lctf.readFeatureList(i,u+h),l.lookupList=e._lctf.readLookupList(i,u+d,A),l},e._lctf.readLookupList=function(i,r,s){var a=e._bin,A=r,c=[],l=a.readUshort(i,r);r+=2;for(var u=0;u<l;u++){var g=a.readUshort(i,r);r+=2;var h=e._lctf.readLookupTable(i,A+g,s);c.push(h)}return c},e._lctf.readLookupTable=function(i,r,s){var a=e._bin,A=r,c={tabs:[]};c.ltype=a.readUshort(i,r),r+=2,c.flag=a.readUshort(i,r),r+=2;var l=a.readUshort(i,r);r+=2;for(var u=c.ltype,g=0;g<l;g++){var h=a.readUshort(i,r);r+=2;var d=s(i,u,A+h,c);c.tabs.push(d)}return c},e._lctf.numOfOnes=function(i){for(var r=0,s=0;s<32;s++)(i>>>s&1)!=0&&r++;return r},e._lctf.readClassDef=function(i,r){var s=e._bin,a=[],A=s.readUshort(i,r);if(r+=2,A==1){var c=s.readUshort(i,r);r+=2;var l=s.readUshort(i,r);r+=2;for(var u=0;u<l;u++)a.push(c+u),a.push(c+u),a.push(s.readUshort(i,r)),r+=2}if(A==2){var g=s.readUshort(i,r);for(r+=2,u=0;u<g;u++)a.push(s.readUshort(i,r)),r+=2,a.push(s.readUshort(i,r)),r+=2,a.push(s.readUshort(i,r)),r+=2}return a},e._lctf.getInterval=function(i,r){for(var s=0;s<i.length;s+=3){var a=i[s],A=i[s+1];if(i[s+2],a<=r&&r<=A)return s}return-1},e._lctf.readCoverage=function(i,r){var s=e._bin,a={};a.fmt=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);return r+=2,a.fmt==1&&(a.tab=s.readUshorts(i,r,A)),a.fmt==2&&(a.tab=s.readUshorts(i,r,3*A)),a},e._lctf.coverageIndex=function(i,r){var s=i.tab;if(i.fmt==1)return s.indexOf(r);if(i.fmt==2){var a=e._lctf.getInterval(s,r);if(a!=-1)return s[a+2]+(r-s[a])}return-1},e._lctf.readFeatureList=function(i,r){var s=e._bin,a=r,A=[],c=s.readUshort(i,r);r+=2;for(var l=0;l<c;l++){var u=s.readASCII(i,r,4);r+=4;var g=s.readUshort(i,r);r+=2;var h=e._lctf.readFeatureTable(i,a+g);h.tag=u.trim(),A.push(h)}return A},e._lctf.readFeatureTable=function(i,r){var s=e._bin,a=r,A={},c=s.readUshort(i,r);r+=2,c>0&&(A.featureParams=a+c);var l=s.readUshort(i,r);r+=2,A.tab=[];for(var u=0;u<l;u++)A.tab.push(s.readUshort(i,r+2*u));return A},e._lctf.readScriptList=function(i,r){var s=e._bin,a=r,A={},c=s.readUshort(i,r);r+=2;for(var l=0;l<c;l++){var u=s.readASCII(i,r,4);r+=4;var g=s.readUshort(i,r);r+=2,A[u.trim()]=e._lctf.readScriptTable(i,a+g)}return A},e._lctf.readScriptTable=function(i,r){var s=e._bin,a=r,A={},c=s.readUshort(i,r);r+=2,c>0&&(A.default=e._lctf.readLangSysTable(i,a+c));var l=s.readUshort(i,r);r+=2;for(var u=0;u<l;u++){var g=s.readASCII(i,r,4);r+=4;var h=s.readUshort(i,r);r+=2,A[g.trim()]=e._lctf.readLangSysTable(i,a+h)}return A},e._lctf.readLangSysTable=function(i,r){var s=e._bin,a={};s.readUshort(i,r),r+=2,a.reqFeature=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);return r+=2,a.features=s.readUshorts(i,r,A),a},e.CFF={},e.CFF.parse=function(i,r,s){var a=e._bin;(i=new Uint8Array(i.buffer,r,s))[r=0],i[++r],i[++r],i[++r],r++;var A=[];r=e.CFF.readIndex(i,r,A);for(var c=[],l=0;l<A.length-1;l++)c.push(a.readASCII(i,r+A[l],A[l+1]-A[l]));r+=A[A.length-1];var u=[];r=e.CFF.readIndex(i,r,u);var g=[];for(l=0;l<u.length-1;l++)g.push(e.CFF.readDict(i,r+u[l],r+u[l+1]));r+=u[u.length-1];var h=g[0],d=[];r=e.CFF.readIndex(i,r,d);var p=[];for(l=0;l<d.length-1;l++)p.push(a.readASCII(i,r+d[l],d[l+1]-d[l]));if(r+=d[d.length-1],e.CFF.readSubrs(i,r,h),h.CharStrings){r=h.CharStrings,d=[],r=e.CFF.readIndex(i,r,d);var m=[];for(l=0;l<d.length-1;l++)m.push(a.readBytes(i,r+d[l],d[l+1]-d[l]));h.CharStrings=m}if(h.ROS){r=h.FDArray;var _=[];for(r=e.CFF.readIndex(i,r,_),h.FDArray=[],l=0;l<_.length-1;l++){var f=e.CFF.readDict(i,r+_[l],r+_[l+1]);e.CFF._readFDict(i,f,p),h.FDArray.push(f)}r+=_[_.length-1],r=h.FDSelect,h.FDSelect=[];var I=i[r];if(r++,I!=3)throw I;var C=a.readUshort(i,r);for(r+=2,l=0;l<C+1;l++)h.FDSelect.push(a.readUshort(i,r),i[r+2]),r+=3}return h.Encoding&&(h.Encoding=e.CFF.readEncoding(i,h.Encoding,h.CharStrings.length)),h.charset&&(h.charset=e.CFF.readCharset(i,h.charset,h.CharStrings.length)),e.CFF._readFDict(i,h,p),h},e.CFF._readFDict=function(i,r,s){var a;for(var A in r.Private&&(a=r.Private[1],r.Private=e.CFF.readDict(i,a,a+r.Private[0]),r.Private.Subrs&&e.CFF.readSubrs(i,a+r.Private.Subrs,r.Private)),r)["FamilyName","FontName","FullName","Notice","version","Copyright"].indexOf(A)!=-1&&(r[A]=s[r[A]-426+35])},e.CFF.readSubrs=function(i,r,s){var a=e._bin,A=[];r=e.CFF.readIndex(i,r,A);var c,l=A.length;c=l<1240?107:l<33900?1131:32768,s.Bias=c,s.Subrs=[];for(var u=0;u<A.length-1;u++)s.Subrs.push(a.readBytes(i,r+A[u],A[u+1]-A[u]))},e.CFF.tableSE=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,0,111,112,113,114,0,115,116,117,118,119,120,121,122,0,123,0,124,125,126,127,128,129,130,131,0,132,133,0,134,135,136,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,139,0,0,0,0,140,141,142,143,0,0,0,0,0,144,0,0,0,145,0,0,146,147,148,149,0,0,0,0],e.CFF.glyphByUnicode=function(i,r){for(var s=0;s<i.charset.length;s++)if(i.charset[s]==r)return s;return-1},e.CFF.glyphBySE=function(i,r){return r<0||r>255?-1:e.CFF.glyphByUnicode(i,e.CFF.tableSE[r])},e.CFF.readEncoding=function(i,r,s){e._bin;var a=[".notdef"],A=i[r];if(r++,A!=0)throw"error: unknown encoding format: "+A;var c=i[r];r++;for(var l=0;l<c;l++)a.push(i[r+l]);return a},e.CFF.readCharset=function(i,r,s){var a=e._bin,A=[".notdef"],c=i[r];if(r++,c==0)for(var l=0;l<s;l++){var u=a.readUshort(i,r);r+=2,A.push(u)}else{if(c!=1&&c!=2)throw"error: format: "+c;for(;A.length<s;){u=a.readUshort(i,r),r+=2;var g=0;for(c==1?(g=i[r],r++):(g=a.readUshort(i,r),r+=2),l=0;l<=g;l++)A.push(u),u++}}return A},e.CFF.readIndex=function(i,r,s){var a=e._bin,A=a.readUshort(i,r)+1,c=i[r+=2];if(r++,c==1)for(var l=0;l<A;l++)s.push(i[r+l]);else if(c==2)for(l=0;l<A;l++)s.push(a.readUshort(i,r+2*l));else if(c==3)for(l=0;l<A;l++)s.push(16777215&a.readUint(i,r+3*l-1));else if(A!=1)throw"unsupported offset size: "+c+", count: "+A;return(r+=A*c)-1},e.CFF.getCharString=function(i,r,s){var a=e._bin,A=i[r],c=i[r+1];i[r+2],i[r+3],i[r+4];var l=1,u=null,g=null;A<=20&&(u=A,l=1),A==12&&(u=100*A+c,l=2),21<=A&&A<=27&&(u=A,l=1),A==28&&(g=a.readShort(i,r+1),l=3),29<=A&&A<=31&&(u=A,l=1),32<=A&&A<=246&&(g=A-139,l=1),247<=A&&A<=250&&(g=256*(A-247)+c+108,l=2),251<=A&&A<=254&&(g=256*-(A-251)-c-108,l=2),A==255&&(g=a.readInt(i,r+1)/65535,l=5),s.val=g??"o"+u,s.size=l},e.CFF.readCharString=function(i,r,s){for(var a=r+s,A=e._bin,c=[];r<a;){var l=i[r],u=i[r+1];i[r+2],i[r+3],i[r+4];var g=1,h=null,d=null;l<=20&&(h=l,g=1),l==12&&(h=100*l+u,g=2),l!=19&&l!=20||(h=l,g=2),21<=l&&l<=27&&(h=l,g=1),l==28&&(d=A.readShort(i,r+1),g=3),29<=l&&l<=31&&(h=l,g=1),32<=l&&l<=246&&(d=l-139,g=1),247<=l&&l<=250&&(d=256*(l-247)+u+108,g=2),251<=l&&l<=254&&(d=256*-(l-251)-u-108,g=2),l==255&&(d=A.readInt(i,r+1)/65535,g=5),c.push(d??"o"+h),r+=g}return c},e.CFF.readDict=function(i,r,s){for(var a=e._bin,A={},c=[];r<s;){var l=i[r],u=i[r+1];i[r+2],i[r+3],i[r+4];var g=1,h=null,d=null;if(l==28&&(d=a.readShort(i,r+1),g=3),l==29&&(d=a.readInt(i,r+1),g=5),32<=l&&l<=246&&(d=l-139,g=1),247<=l&&l<=250&&(d=256*(l-247)+u+108,g=2),251<=l&&l<=254&&(d=256*-(l-251)-u-108,g=2),l==255)throw d=a.readInt(i,r+1)/65535,g=5,"unknown number";if(l==30){var p=[];for(g=1;;){var m=i[r+g];g++;var _=m>>4,f=15&m;if(_!=15&&p.push(_),f!=15&&p.push(f),f==15)break}for(var I="",C=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"],y=0;y<p.length;y++)I+=C[p[y]];d=parseFloat(I)}l<=21&&(h=["version","Notice","FullName","FamilyName","Weight","FontBBox","BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StdHW","StdVW","escape","UniqueID","XUID","charset","Encoding","CharStrings","Private","Subrs","defaultWidthX","nominalWidthX"][l],g=1,l==12&&(h=["Copyright","isFixedPitch","ItalicAngle","UnderlinePosition","UnderlineThickness","PaintType","CharstringType","FontMatrix","StrokeWidth","BlueScale","BlueShift","BlueFuzz","StemSnapH","StemSnapV","ForceBold",0,0,"LanguageGroup","ExpansionFactor","initialRandomSeed","SyntheticBase","PostScript","BaseFontName","BaseFontBlend",0,0,0,0,0,0,"ROS","CIDFontVersion","CIDFontRevision","CIDFontType","CIDCount","UIDBase","FDArray","FDSelect","FontName"][u],g=2)),h!=null?(A[h]=c.length==1?c[0]:c,c=[]):c.push(d),r+=g}return A},e.cmap={},e.cmap.parse=function(i,r,s){i=new Uint8Array(i.buffer,r,s),r=0;var a=e._bin,A={};a.readUshort(i,r),r+=2;var c=a.readUshort(i,r);r+=2;var l=[];A.tables=[];for(var u=0;u<c;u++){var g=a.readUshort(i,r);r+=2;var h=a.readUshort(i,r);r+=2;var d=a.readUint(i,r);r+=4;var p="p"+g+"e"+h,m=l.indexOf(d);if(m==-1){var _;m=A.tables.length,l.push(d);var f=a.readUshort(i,d);f==0?_=e.cmap.parse0(i,d):f==4?_=e.cmap.parse4(i,d):f==6?_=e.cmap.parse6(i,d):f==12?_=e.cmap.parse12(i,d):console.debug("unknown format: "+f,g,h,d),A.tables.push(_)}if(A[p]!=null)throw"multiple tables for one platform+encoding";A[p]=m}return A},e.cmap.parse0=function(i,r){var s=e._bin,a={};a.format=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);r+=2,s.readUshort(i,r),r+=2,a.map=[];for(var c=0;c<A-6;c++)a.map.push(i[r+c]);return a},e.cmap.parse4=function(i,r){var s=e._bin,a=r,A={};A.format=s.readUshort(i,r),r+=2;var c=s.readUshort(i,r);r+=2,s.readUshort(i,r),r+=2;var l=s.readUshort(i,r);r+=2;var u=l/2;A.searchRange=s.readUshort(i,r),r+=2,A.entrySelector=s.readUshort(i,r),r+=2,A.rangeShift=s.readUshort(i,r),r+=2,A.endCount=s.readUshorts(i,r,u),r+=2*u,r+=2,A.startCount=s.readUshorts(i,r,u),r+=2*u,A.idDelta=[];for(var g=0;g<u;g++)A.idDelta.push(s.readShort(i,r)),r+=2;for(A.idRangeOffset=s.readUshorts(i,r,u),r+=2*u,A.glyphIdArray=[];r<a+c;)A.glyphIdArray.push(s.readUshort(i,r)),r+=2;return A},e.cmap.parse6=function(i,r){var s=e._bin,a={};a.format=s.readUshort(i,r),r+=2,s.readUshort(i,r),r+=2,s.readUshort(i,r),r+=2,a.firstCode=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);r+=2,a.glyphIdArray=[];for(var c=0;c<A;c++)a.glyphIdArray.push(s.readUshort(i,r)),r+=2;return a},e.cmap.parse12=function(i,r){var s=e._bin,a={};a.format=s.readUshort(i,r),r+=2,r+=2,s.readUint(i,r),r+=4,s.readUint(i,r),r+=4;var A=s.readUint(i,r);r+=4,a.groups=[];for(var c=0;c<A;c++){var l=r+12*c,u=s.readUint(i,l+0),g=s.readUint(i,l+4),h=s.readUint(i,l+8);a.groups.push([u,g,h])}return a},e.glyf={},e.glyf.parse=function(i,r,s,a){for(var A=[],c=0;c<a.maxp.numGlyphs;c++)A.push(null);return A},e.glyf._parseGlyf=function(i,r){var s=e._bin,a=i._data,A=e._tabOffset(a,"glyf",i._offset)+i.loca[r];if(i.loca[r]==i.loca[r+1])return null;var c={};if(c.noc=s.readShort(a,A),A+=2,c.xMin=s.readShort(a,A),A+=2,c.yMin=s.readShort(a,A),A+=2,c.xMax=s.readShort(a,A),A+=2,c.yMax=s.readShort(a,A),A+=2,c.xMin>=c.xMax||c.yMin>=c.yMax)return null;if(c.noc>0){c.endPts=[];for(var l=0;l<c.noc;l++)c.endPts.push(s.readUshort(a,A)),A+=2;var u=s.readUshort(a,A);if(A+=2,a.length-A<u)return null;c.instructions=s.readBytes(a,A,u),A+=u;var g=c.endPts[c.noc-1]+1;for(c.flags=[],l=0;l<g;l++){var h=a[A];if(A++,c.flags.push(h),(8&h)!=0){var d=a[A];A++;for(var p=0;p<d;p++)c.flags.push(h),l++}}for(c.xs=[],l=0;l<g;l++){var m=(2&c.flags[l])!=0,_=(16&c.flags[l])!=0;m?(c.xs.push(_?a[A]:-a[A]),A++):_?c.xs.push(0):(c.xs.push(s.readShort(a,A)),A+=2)}for(c.ys=[],l=0;l<g;l++)m=(4&c.flags[l])!=0,_=(32&c.flags[l])!=0,m?(c.ys.push(_?a[A]:-a[A]),A++):_?c.ys.push(0):(c.ys.push(s.readShort(a,A)),A+=2);var f=0,I=0;for(l=0;l<g;l++)f+=c.xs[l],I+=c.ys[l],c.xs[l]=f,c.ys[l]=I}else{var C;c.parts=[];do{C=s.readUshort(a,A),A+=2;var y={m:{a:1,b:0,c:0,d:1,tx:0,ty:0},p1:-1,p2:-1};if(c.parts.push(y),y.glyphIndex=s.readUshort(a,A),A+=2,1&C){var x=s.readShort(a,A);A+=2;var E=s.readShort(a,A);A+=2}else x=s.readInt8(a,A),A++,E=s.readInt8(a,A),A++;2&C?(y.m.tx=x,y.m.ty=E):(y.p1=x,y.p2=E),8&C?(y.m.a=y.m.d=s.readF2dot14(a,A),A+=2):64&C?(y.m.a=s.readF2dot14(a,A),A+=2,y.m.d=s.readF2dot14(a,A),A+=2):128&C&&(y.m.a=s.readF2dot14(a,A),A+=2,y.m.b=s.readF2dot14(a,A),A+=2,y.m.c=s.readF2dot14(a,A),A+=2,y.m.d=s.readF2dot14(a,A),A+=2)}while(32&C);if(256&C){var B=s.readUshort(a,A);for(A+=2,c.instr=[],l=0;l<B;l++)c.instr.push(a[A]),A++}}return c},e.GDEF={},e.GDEF.parse=function(i,r,s,a){var A=r;r+=4;var c=e._bin.readUshort(i,r);return{glyphClassDef:c===0?null:e._lctf.readClassDef(i,A+c)}},e.GPOS={},e.GPOS.parse=function(i,r,s,a){return e._lctf.parse(i,r,s,a,e.GPOS.subt)},e.GPOS.subt=function(i,r,s,a){var A=e._bin,c=s,l={};if(l.fmt=A.readUshort(i,s),s+=2,r==1||r==2||r==3||r==7||r==8&&l.fmt<=2){var u=A.readUshort(i,s);s+=2,l.coverage=e._lctf.readCoverage(i,u+c)}if(r==1&&l.fmt==1){var g=A.readUshort(i,s);s+=2,g!=0&&(l.pos=e.GPOS.readValueRecord(i,s,g))}else if(r==2&&l.fmt>=1&&l.fmt<=2){g=A.readUshort(i,s),s+=2;var h=A.readUshort(i,s);s+=2;var d=e._lctf.numOfOnes(g),p=e._lctf.numOfOnes(h);if(l.fmt==1){l.pairsets=[];var m=A.readUshort(i,s);s+=2;for(var _=0;_<m;_++){var f=c+A.readUshort(i,s);s+=2;var I=A.readUshort(i,f);f+=2;for(var C=[],y=0;y<I;y++){var x=A.readUshort(i,f);f+=2,g!=0&&(M=e.GPOS.readValueRecord(i,f,g),f+=2*d),h!=0&&(k=e.GPOS.readValueRecord(i,f,h),f+=2*p),C.push({gid2:x,val1:M,val2:k})}l.pairsets.push(C)}}if(l.fmt==2){var E=A.readUshort(i,s);s+=2;var B=A.readUshort(i,s);s+=2;var S=A.readUshort(i,s);s+=2;var Q=A.readUshort(i,s);for(s+=2,l.classDef1=e._lctf.readClassDef(i,c+E),l.classDef2=e._lctf.readClassDef(i,c+B),l.matrix=[],_=0;_<S;_++){var w=[];for(y=0;y<Q;y++){var M=null,k=null;g!=0&&(M=e.GPOS.readValueRecord(i,s,g),s+=2*d),h!=0&&(k=e.GPOS.readValueRecord(i,s,h),s+=2*p),w.push({val1:M,val2:k})}l.matrix.push(w)}}}else if(r==4&&l.fmt==1)l.markCoverage=e._lctf.readCoverage(i,A.readUshort(i,s)+c),l.baseCoverage=e._lctf.readCoverage(i,A.readUshort(i,s+2)+c),l.markClassCount=A.readUshort(i,s+4),l.markArray=e.GPOS.readMarkArray(i,A.readUshort(i,s+6)+c),l.baseArray=e.GPOS.readBaseArray(i,A.readUshort(i,s+8)+c,l.markClassCount);else if(r==6&&l.fmt==1)l.mark1Coverage=e._lctf.readCoverage(i,A.readUshort(i,s)+c),l.mark2Coverage=e._lctf.readCoverage(i,A.readUshort(i,s+2)+c),l.markClassCount=A.readUshort(i,s+4),l.mark1Array=e.GPOS.readMarkArray(i,A.readUshort(i,s+6)+c),l.mark2Array=e.GPOS.readBaseArray(i,A.readUshort(i,s+8)+c,l.markClassCount);else{if(r==9&&l.fmt==1){var R=A.readUshort(i,s);s+=2;var F=A.readUint(i,s);if(s+=4,a.ltype==9)a.ltype=R;else if(a.ltype!=R)throw"invalid extension substitution";return e.GPOS.subt(i,a.ltype,c+F)}console.debug("unsupported GPOS table LookupType",r,"format",l.fmt)}return l},e.GPOS.readValueRecord=function(i,r,s){var a=e._bin,A=[];return A.push(1&s?a.readShort(i,r):0),r+=1&s?2:0,A.push(2&s?a.readShort(i,r):0),r+=2&s?2:0,A.push(4&s?a.readShort(i,r):0),r+=4&s?2:0,A.push(8&s?a.readShort(i,r):0),r+=8&s?2:0,A},e.GPOS.readBaseArray=function(i,r,s){var a=e._bin,A=[],c=r,l=a.readUshort(i,r);r+=2;for(var u=0;u<l;u++){for(var g=[],h=0;h<s;h++)g.push(e.GPOS.readAnchorRecord(i,c+a.readUshort(i,r))),r+=2;A.push(g)}return A},e.GPOS.readMarkArray=function(i,r){var s=e._bin,a=[],A=r,c=s.readUshort(i,r);r+=2;for(var l=0;l<c;l++){var u=e.GPOS.readAnchorRecord(i,s.readUshort(i,r+2)+A);u.markClass=s.readUshort(i,r),a.push(u),r+=4}return a},e.GPOS.readAnchorRecord=function(i,r){var s=e._bin,a={};return a.fmt=s.readUshort(i,r),a.x=s.readShort(i,r+2),a.y=s.readShort(i,r+4),a},e.GSUB={},e.GSUB.parse=function(i,r,s,a){return e._lctf.parse(i,r,s,a,e.GSUB.subt)},e.GSUB.subt=function(i,r,s,a){var A=e._bin,c=s,l={};if(l.fmt=A.readUshort(i,s),s+=2,r!=1&&r!=2&&r!=4&&r!=5&&r!=6)return null;if(r==1||r==2||r==4||r==5&&l.fmt<=2||r==6&&l.fmt<=2){var u=A.readUshort(i,s);s+=2,l.coverage=e._lctf.readCoverage(i,c+u)}if(r==1&&l.fmt>=1&&l.fmt<=2){if(l.fmt==1)l.delta=A.readShort(i,s),s+=2;else if(l.fmt==2){var g=A.readUshort(i,s);s+=2,l.newg=A.readUshorts(i,s,g),s+=2*l.newg.length}}else if(r==2&&l.fmt==1){g=A.readUshort(i,s),s+=2,l.seqs=[];for(var h=0;h<g;h++){var d=A.readUshort(i,s)+c;s+=2;var p=A.readUshort(i,d);l.seqs.push(A.readUshorts(i,d+2,p))}}else if(r==4)for(l.vals=[],g=A.readUshort(i,s),s+=2,h=0;h<g;h++){var m=A.readUshort(i,s);s+=2,l.vals.push(e.GSUB.readLigatureSet(i,c+m))}else if(r==5&&l.fmt==2){if(l.fmt==2){var _=A.readUshort(i,s);s+=2,l.cDef=e._lctf.readClassDef(i,c+_),l.scset=[];var f=A.readUshort(i,s);for(s+=2,h=0;h<f;h++){var I=A.readUshort(i,s);s+=2,l.scset.push(I==0?null:e.GSUB.readSubClassSet(i,c+I))}}}else if(r==6&&l.fmt==3){if(l.fmt==3){for(h=0;h<3;h++){g=A.readUshort(i,s),s+=2;for(var C=[],y=0;y<g;y++)C.push(e._lctf.readCoverage(i,c+A.readUshort(i,s+2*y)));s+=2*g,h==0&&(l.backCvg=C),h==1&&(l.inptCvg=C),h==2&&(l.ahedCvg=C)}g=A.readUshort(i,s),s+=2,l.lookupRec=e.GSUB.readSubstLookupRecords(i,s,g)}}else{if(r==7&&l.fmt==1){var x=A.readUshort(i,s);s+=2;var E=A.readUint(i,s);if(s+=4,a.ltype==9)a.ltype=x;else if(a.ltype!=x)throw"invalid extension substitution";return e.GSUB.subt(i,a.ltype,c+E)}console.debug("unsupported GSUB table LookupType",r,"format",l.fmt)}return l},e.GSUB.readSubClassSet=function(i,r){var s=e._bin.readUshort,a=r,A=[],c=s(i,r);r+=2;for(var l=0;l<c;l++){var u=s(i,r);r+=2,A.push(e.GSUB.readSubClassRule(i,a+u))}return A},e.GSUB.readSubClassRule=function(i,r){var s=e._bin.readUshort,a={},A=s(i,r),c=s(i,r+=2);r+=2,a.input=[];for(var l=0;l<A-1;l++)a.input.push(s(i,r)),r+=2;return a.substLookupRecords=e.GSUB.readSubstLookupRecords(i,r,c),a},e.GSUB.readSubstLookupRecords=function(i,r,s){for(var a=e._bin.readUshort,A=[],c=0;c<s;c++)A.push(a(i,r),a(i,r+2)),r+=4;return A},e.GSUB.readChainSubClassSet=function(i,r){var s=e._bin,a=r,A=[],c=s.readUshort(i,r);r+=2;for(var l=0;l<c;l++){var u=s.readUshort(i,r);r+=2,A.push(e.GSUB.readChainSubClassRule(i,a+u))}return A},e.GSUB.readChainSubClassRule=function(i,r){for(var s=e._bin,a={},A=["backtrack","input","lookahead"],c=0;c<A.length;c++){var l=s.readUshort(i,r);r+=2,c==1&&l--,a[A[c]]=s.readUshorts(i,r,l),r+=2*a[A[c]].length}return l=s.readUshort(i,r),r+=2,a.subst=s.readUshorts(i,r,2*l),r+=2*a.subst.length,a},e.GSUB.readLigatureSet=function(i,r){var s=e._bin,a=r,A=[],c=s.readUshort(i,r);r+=2;for(var l=0;l<c;l++){var u=s.readUshort(i,r);r+=2,A.push(e.GSUB.readLigature(i,a+u))}return A},e.GSUB.readLigature=function(i,r){var s=e._bin,a={chain:[]};a.nglyph=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);r+=2;for(var c=0;c<A-1;c++)a.chain.push(s.readUshort(i,r)),r+=2;return a},e.head={},e.head.parse=function(i,r,s){var a=e._bin,A={};return a.readFixed(i,r),r+=4,A.fontRevision=a.readFixed(i,r),r+=4,a.readUint(i,r),r+=4,a.readUint(i,r),r+=4,A.flags=a.readUshort(i,r),r+=2,A.unitsPerEm=a.readUshort(i,r),r+=2,A.created=a.readUint64(i,r),r+=8,A.modified=a.readUint64(i,r),r+=8,A.xMin=a.readShort(i,r),r+=2,A.yMin=a.readShort(i,r),r+=2,A.xMax=a.readShort(i,r),r+=2,A.yMax=a.readShort(i,r),r+=2,A.macStyle=a.readUshort(i,r),r+=2,A.lowestRecPPEM=a.readUshort(i,r),r+=2,A.fontDirectionHint=a.readShort(i,r),r+=2,A.indexToLocFormat=a.readShort(i,r),r+=2,A.glyphDataFormat=a.readShort(i,r),r+=2,A},e.hhea={},e.hhea.parse=function(i,r,s){var a=e._bin,A={};return a.readFixed(i,r),r+=4,A.ascender=a.readShort(i,r),r+=2,A.descender=a.readShort(i,r),r+=2,A.lineGap=a.readShort(i,r),r+=2,A.advanceWidthMax=a.readUshort(i,r),r+=2,A.minLeftSideBearing=a.readShort(i,r),r+=2,A.minRightSideBearing=a.readShort(i,r),r+=2,A.xMaxExtent=a.readShort(i,r),r+=2,A.caretSlopeRise=a.readShort(i,r),r+=2,A.caretSlopeRun=a.readShort(i,r),r+=2,A.caretOffset=a.readShort(i,r),r+=2,r+=8,A.metricDataFormat=a.readShort(i,r),r+=2,A.numberOfHMetrics=a.readUshort(i,r),r+=2,A},e.hmtx={},e.hmtx.parse=function(i,r,s,a){for(var A=e._bin,c={aWidth:[],lsBearing:[]},l=0,u=0,g=0;g<a.maxp.numGlyphs;g++)g<a.hhea.numberOfHMetrics&&(l=A.readUshort(i,r),r+=2,u=A.readShort(i,r),r+=2),c.aWidth.push(l),c.lsBearing.push(u);return c},e.kern={},e.kern.parse=function(i,r,s,a){var A=e._bin,c=A.readUshort(i,r);if(r+=2,c==1)return e.kern.parseV1(i,r-2,s,a);var l=A.readUshort(i,r);r+=2;for(var u={glyph1:[],rval:[]},g=0;g<l;g++){r+=2,s=A.readUshort(i,r),r+=2;var h=A.readUshort(i,r);r+=2;var d=h>>>8;if((d&=15)!=0)throw"unknown kern table format: "+d;r=e.kern.readFormat0(i,r,u)}return u},e.kern.parseV1=function(i,r,s,a){var A=e._bin;A.readFixed(i,r),r+=4;var c=A.readUint(i,r);r+=4;for(var l={glyph1:[],rval:[]},u=0;u<c;u++){A.readUint(i,r),r+=4;var g=A.readUshort(i,r);r+=2,A.readUshort(i,r),r+=2;var h=g>>>8;if((h&=15)!=0)throw"unknown kern table format: "+h;r=e.kern.readFormat0(i,r,l)}return l},e.kern.readFormat0=function(i,r,s){var a=e._bin,A=-1,c=a.readUshort(i,r);r+=2,a.readUshort(i,r),r+=2,a.readUshort(i,r),r+=2,a.readUshort(i,r),r+=2;for(var l=0;l<c;l++){var u=a.readUshort(i,r);r+=2;var g=a.readUshort(i,r);r+=2;var h=a.readShort(i,r);r+=2,u!=A&&(s.glyph1.push(u),s.rval.push({glyph2:[],vals:[]}));var d=s.rval[s.rval.length-1];d.glyph2.push(g),d.vals.push(h),A=u}return r},e.loca={},e.loca.parse=function(i,r,s,a){var A=e._bin,c=[],l=a.head.indexToLocFormat,u=a.maxp.numGlyphs+1;if(l==0)for(var g=0;g<u;g++)c.push(A.readUshort(i,r+(g<<1))<<1);if(l==1)for(g=0;g<u;g++)c.push(A.readUint(i,r+(g<<2)));return c},e.maxp={},e.maxp.parse=function(i,r,s){var a=e._bin,A={},c=a.readUint(i,r);return r+=4,A.numGlyphs=a.readUshort(i,r),r+=2,c==65536&&(A.maxPoints=a.readUshort(i,r),r+=2,A.maxContours=a.readUshort(i,r),r+=2,A.maxCompositePoints=a.readUshort(i,r),r+=2,A.maxCompositeContours=a.readUshort(i,r),r+=2,A.maxZones=a.readUshort(i,r),r+=2,A.maxTwilightPoints=a.readUshort(i,r),r+=2,A.maxStorage=a.readUshort(i,r),r+=2,A.maxFunctionDefs=a.readUshort(i,r),r+=2,A.maxInstructionDefs=a.readUshort(i,r),r+=2,A.maxStackElements=a.readUshort(i,r),r+=2,A.maxSizeOfInstructions=a.readUshort(i,r),r+=2,A.maxComponentElements=a.readUshort(i,r),r+=2,A.maxComponentDepth=a.readUshort(i,r),r+=2),A},e.name={},e.name.parse=function(i,r,s){var a=e._bin,A={};a.readUshort(i,r),r+=2;var c=a.readUshort(i,r);r+=2,a.readUshort(i,r);for(var l,u=["copyright","fontFamily","fontSubfamily","ID","fullName","version","postScriptName","trademark","manufacturer","designer","description","urlVendor","urlDesigner","licence","licenceURL","---","typoFamilyName","typoSubfamilyName","compatibleFull","sampleText","postScriptCID","wwsFamilyName","wwsSubfamilyName","lightPalette","darkPalette"],g=r+=2,h=0;h<c;h++){var d=a.readUshort(i,r);r+=2;var p=a.readUshort(i,r);r+=2;var m=a.readUshort(i,r);r+=2;var _=a.readUshort(i,r);r+=2;var f=a.readUshort(i,r);r+=2;var I=a.readUshort(i,r);r+=2;var C,y=u[_],x=g+12*c+I;if(d==0)C=a.readUnicode(i,x,f/2);else if(d==3&&p==0)C=a.readUnicode(i,x,f/2);else if(p==0)C=a.readASCII(i,x,f);else if(p==1)C=a.readUnicode(i,x,f/2);else if(p==3)C=a.readUnicode(i,x,f/2);else{if(d!=1)throw"unknown encoding "+p+", platformID: "+d;C=a.readASCII(i,x,f),console.debug("reading unknown MAC encoding "+p+" as ASCII")}var E="p"+d+","+m.toString(16);A[E]==null&&(A[E]={}),A[E][y!==void 0?y:_]=C,A[E]._lang=m}for(var B in A)if(A[B].postScriptName!=null&&A[B]._lang==1033)return A[B];for(var B in A)if(A[B].postScriptName!=null&&A[B]._lang==0)return A[B];for(var B in A)if(A[B].postScriptName!=null&&A[B]._lang==3084)return A[B];for(var B in A)if(A[B].postScriptName!=null)return A[B];for(var B in A){l=B;break}return console.debug("returning name table with languageID "+A[l]._lang),A[l]},e["OS/2"]={},e["OS/2"].parse=function(i,r,s){var a=e._bin.readUshort(i,r);r+=2;var A={};if(a==0)e["OS/2"].version0(i,r,A);else if(a==1)e["OS/2"].version1(i,r,A);else if(a==2||a==3||a==4)e["OS/2"].version2(i,r,A);else{if(a!=5)throw"unknown OS/2 table version: "+a;e["OS/2"].version5(i,r,A)}return A},e["OS/2"].version0=function(i,r,s){var a=e._bin;return s.xAvgCharWidth=a.readShort(i,r),r+=2,s.usWeightClass=a.readUshort(i,r),r+=2,s.usWidthClass=a.readUshort(i,r),r+=2,s.fsType=a.readUshort(i,r),r+=2,s.ySubscriptXSize=a.readShort(i,r),r+=2,s.ySubscriptYSize=a.readShort(i,r),r+=2,s.ySubscriptXOffset=a.readShort(i,r),r+=2,s.ySubscriptYOffset=a.readShort(i,r),r+=2,s.ySuperscriptXSize=a.readShort(i,r),r+=2,s.ySuperscriptYSize=a.readShort(i,r),r+=2,s.ySuperscriptXOffset=a.readShort(i,r),r+=2,s.ySuperscriptYOffset=a.readShort(i,r),r+=2,s.yStrikeoutSize=a.readShort(i,r),r+=2,s.yStrikeoutPosition=a.readShort(i,r),r+=2,s.sFamilyClass=a.readShort(i,r),r+=2,s.panose=a.readBytes(i,r,10),r+=10,s.ulUnicodeRange1=a.readUint(i,r),r+=4,s.ulUnicodeRange2=a.readUint(i,r),r+=4,s.ulUnicodeRange3=a.readUint(i,r),r+=4,s.ulUnicodeRange4=a.readUint(i,r),r+=4,s.achVendID=[a.readInt8(i,r),a.readInt8(i,r+1),a.readInt8(i,r+2),a.readInt8(i,r+3)],r+=4,s.fsSelection=a.readUshort(i,r),r+=2,s.usFirstCharIndex=a.readUshort(i,r),r+=2,s.usLastCharIndex=a.readUshort(i,r),r+=2,s.sTypoAscender=a.readShort(i,r),r+=2,s.sTypoDescender=a.readShort(i,r),r+=2,s.sTypoLineGap=a.readShort(i,r),r+=2,s.usWinAscent=a.readUshort(i,r),r+=2,s.usWinDescent=a.readUshort(i,r),r+=2},e["OS/2"].version1=function(i,r,s){var a=e._bin;return r=e["OS/2"].version0(i,r,s),s.ulCodePageRange1=a.readUint(i,r),r+=4,s.ulCodePageRange2=a.readUint(i,r),r+=4},e["OS/2"].version2=function(i,r,s){var a=e._bin;return r=e["OS/2"].version1(i,r,s),s.sxHeight=a.readShort(i,r),r+=2,s.sCapHeight=a.readShort(i,r),r+=2,s.usDefault=a.readUshort(i,r),r+=2,s.usBreak=a.readUshort(i,r),r+=2,s.usMaxContext=a.readUshort(i,r),r+=2},e["OS/2"].version5=function(i,r,s){var a=e._bin;return r=e["OS/2"].version2(i,r,s),s.usLowerOpticalPointSize=a.readUshort(i,r),r+=2,s.usUpperOpticalPointSize=a.readUshort(i,r),r+=2},e.post={},e.post.parse=function(i,r,s){var a=e._bin,A={};return A.version=a.readFixed(i,r),r+=4,A.italicAngle=a.readFixed(i,r),r+=4,A.underlinePosition=a.readShort(i,r),r+=2,A.underlineThickness=a.readShort(i,r),r+=2,A},e==null&&(e={}),e.U==null&&(e.U={}),e.U.codeToGlyph=function(i,r){var s=i.cmap,a=-1;if(s.p0e4!=null?a=s.p0e4:s.p3e1!=null?a=s.p3e1:s.p1e0!=null?a=s.p1e0:s.p0e3!=null&&(a=s.p0e3),a==-1)throw"no familiar platform and encoding!";var A=s.tables[a];if(A.format==0)return r>=A.map.length?0:A.map[r];if(A.format==4){for(var c=-1,l=0;l<A.endCount.length;l++)if(r<=A.endCount[l]){c=l;break}return c==-1||A.startCount[c]>r?0:65535&(A.idRangeOffset[c]!=0?A.glyphIdArray[r-A.startCount[c]+(A.idRangeOffset[c]>>1)-(A.idRangeOffset.length-c)]:r+A.idDelta[c])}if(A.format==12){if(r>A.groups[A.groups.length-1][1])return 0;for(l=0;l<A.groups.length;l++){var u=A.groups[l];if(u[0]<=r&&r<=u[1])return u[2]+(r-u[0])}return 0}throw"unknown cmap table format "+A.format},e.U.glyphToPath=function(i,r){var s={cmds:[],crds:[]};if(i.SVG&&i.SVG.entries[r]){var a=i.SVG.entries[r];return a==null?s:(typeof a=="string"&&(a=e.SVG.toPath(a),i.SVG.entries[r]=a),a)}if(i.CFF){var A={x:0,y:0,stack:[],nStems:0,haveWidth:!1,width:i.CFF.Private?i.CFF.Private.defaultWidthX:0,open:!1},c=i.CFF,l=i.CFF.Private;if(c.ROS){for(var u=0;c.FDSelect[u+2]<=r;)u+=2;l=c.FDArray[c.FDSelect[u+1]].Private}e.U._drawCFF(i.CFF.CharStrings[r],A,c,l,s)}else i.glyf&&e.U._drawGlyf(r,i,s);return s},e.U._drawGlyf=function(i,r,s){var a=r.glyf[i];a==null&&(a=r.glyf[i]=e.glyf._parseGlyf(r,i)),a!=null&&(a.noc>-1?e.U._simpleGlyph(a,s):e.U._compoGlyph(a,r,s))},e.U._simpleGlyph=function(i,r){for(var s=0;s<i.noc;s++){for(var a=s==0?0:i.endPts[s-1]+1,A=i.endPts[s],c=a;c<=A;c++){var l=c==a?A:c-1,u=c==A?a:c+1,g=1&i.flags[c],h=1&i.flags[l],d=1&i.flags[u],p=i.xs[c],m=i.ys[c];if(c==a)if(g){if(!h){e.U.P.moveTo(r,p,m);continue}e.U.P.moveTo(r,i.xs[l],i.ys[l])}else h?e.U.P.moveTo(r,i.xs[l],i.ys[l]):e.U.P.moveTo(r,(i.xs[l]+p)/2,(i.ys[l]+m)/2);g?h&&e.U.P.lineTo(r,p,m):d?e.U.P.qcurveTo(r,p,m,i.xs[u],i.ys[u]):e.U.P.qcurveTo(r,p,m,(p+i.xs[u])/2,(m+i.ys[u])/2)}e.U.P.closePath(r)}},e.U._compoGlyph=function(i,r,s){for(var a=0;a<i.parts.length;a++){var A={cmds:[],crds:[]},c=i.parts[a];e.U._drawGlyf(c.glyphIndex,r,A);for(var l=c.m,u=0;u<A.crds.length;u+=2){var g=A.crds[u],h=A.crds[u+1];s.crds.push(g*l.a+h*l.b+l.tx),s.crds.push(g*l.c+h*l.d+l.ty)}for(u=0;u<A.cmds.length;u++)s.cmds.push(A.cmds[u])}},e.U._getGlyphClass=function(i,r){var s=e._lctf.getInterval(r,i);return s==-1?0:r[s+2]},e.U._applySubs=function(i,r,s,a){for(var A=i.length-r-1,c=0;c<s.tabs.length;c++)if(s.tabs[c]!=null){var l,u=s.tabs[c];if(!u.coverage||(l=e._lctf.coverageIndex(u.coverage,i[r]))!=-1){if(s.ltype==1)i[r],u.fmt==1?i[r]=i[r]+u.delta:i[r]=u.newg[l];else if(s.ltype==4)for(var g=u.vals[l],h=0;h<g.length;h++){var d=g[h],p=d.chain.length;if(!(p>A)){for(var m=!0,_=0,f=0;f<p;f++){for(;i[r+_+(1+f)]==-1;)_++;d.chain[f]!=i[r+_+(1+f)]&&(m=!1)}if(m){for(i[r]=d.nglyph,f=0;f<p+_;f++)i[r+f+1]=-1;break}}}else if(s.ltype==5&&u.fmt==2)for(var I=e._lctf.getInterval(u.cDef,i[r]),C=u.cDef[I+2],y=u.scset[C],x=0;x<y.length;x++){var E=y[x],B=E.input;if(!(B.length>A)){for(m=!0,f=0;f<B.length;f++){var S=e._lctf.getInterval(u.cDef,i[r+1+f]);if(I==-1&&u.cDef[S+2]!=B[f]){m=!1;break}}if(m){var Q=E.substLookupRecords;for(h=0;h<Q.length;h+=2)Q[h],Q[h+1]}}}else if(s.ltype==6&&u.fmt==3){if(!e.U._glsCovered(i,u.backCvg,r-u.backCvg.length)||!e.U._glsCovered(i,u.inptCvg,r)||!e.U._glsCovered(i,u.ahedCvg,r+u.inptCvg.length))continue;var w=u.lookupRec;for(x=0;x<w.length;x+=2){I=w[x];var M=a[w[x+1]];e.U._applySubs(i,r+I,M,a)}}}}},e.U._glsCovered=function(i,r,s){for(var a=0;a<r.length;a++)if(e._lctf.coverageIndex(r[a],i[s+a])==-1)return!1;return!0},e.U.glyphsToPath=function(i,r,s){for(var a={cmds:[],crds:[]},A=0,c=0;c<r.length;c++){var l=r[c];if(l!=-1){for(var u=c<r.length-1&&r[c+1]!=-1?r[c+1]:0,g=e.U.glyphToPath(i,l),h=0;h<g.crds.length;h+=2)a.crds.push(g.crds[h]+A),a.crds.push(g.crds[h+1]);for(s&&a.cmds.push(s),h=0;h<g.cmds.length;h++)a.cmds.push(g.cmds[h]);s&&a.cmds.push("X"),A+=i.hmtx.aWidth[l],c<r.length-1&&(A+=e.U.getPairAdjustment(i,l,u))}}return a},e.U.P={},e.U.P.moveTo=function(i,r,s){i.cmds.push("M"),i.crds.push(r,s)},e.U.P.lineTo=function(i,r,s){i.cmds.push("L"),i.crds.push(r,s)},e.U.P.curveTo=function(i,r,s,a,A,c,l){i.cmds.push("C"),i.crds.push(r,s,a,A,c,l)},e.U.P.qcurveTo=function(i,r,s,a,A){i.cmds.push("Q"),i.crds.push(r,s,a,A)},e.U.P.closePath=function(i){i.cmds.push("Z")},e.U._drawCFF=function(i,r,s,a,A){for(var c=r.stack,l=r.nStems,u=r.haveWidth,g=r.width,h=r.open,d=0,p=r.x,m=r.y,_=0,f=0,I=0,C=0,y=0,x=0,E=0,B=0,S=0,Q=0,w={val:0,size:0};d<i.length;){e.CFF.getCharString(i,d,w);var M=w.val;if(d+=w.size,M=="o1"||M=="o18")c.length%2!=0&&!u&&(g=c.shift()+a.nominalWidthX),l+=c.length>>1,c.length=0,u=!0;else if(M=="o3"||M=="o23")c.length%2!=0&&!u&&(g=c.shift()+a.nominalWidthX),l+=c.length>>1,c.length=0,u=!0;else if(M=="o4")c.length>1&&!u&&(g=c.shift()+a.nominalWidthX,u=!0),h&&e.U.P.closePath(A),m+=c.pop(),e.U.P.moveTo(A,p,m),h=!0;else if(M=="o5")for(;c.length>0;)p+=c.shift(),m+=c.shift(),e.U.P.lineTo(A,p,m);else if(M=="o6"||M=="o7")for(var k=c.length,R=M=="o6",F=0;F<k;F++){var O=c.shift();R?p+=O:m+=O,R=!R,e.U.P.lineTo(A,p,m)}else if(M=="o8"||M=="o24"){k=c.length;for(var U=0;U+6<=k;)_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),p=I+c.shift(),m=C+c.shift(),e.U.P.curveTo(A,_,f,I,C,p,m),U+=6;M=="o24"&&(p+=c.shift(),m+=c.shift(),e.U.P.lineTo(A,p,m))}else{if(M=="o11")break;if(M=="o1234"||M=="o1235"||M=="o1236"||M=="o1237")M=="o1234"&&(f=m,I=(_=p+c.shift())+c.shift(),Q=C=f+c.shift(),x=C,B=m,p=(E=(y=(S=I+c.shift())+c.shift())+c.shift())+c.shift(),e.U.P.curveTo(A,_,f,I,C,S,Q),e.U.P.curveTo(A,y,x,E,B,p,m)),M=="o1235"&&(_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),S=I+c.shift(),Q=C+c.shift(),y=S+c.shift(),x=Q+c.shift(),E=y+c.shift(),B=x+c.shift(),p=E+c.shift(),m=B+c.shift(),c.shift(),e.U.P.curveTo(A,_,f,I,C,S,Q),e.U.P.curveTo(A,y,x,E,B,p,m)),M=="o1236"&&(_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),Q=C=f+c.shift(),x=C,E=(y=(S=I+c.shift())+c.shift())+c.shift(),B=x+c.shift(),p=E+c.shift(),e.U.P.curveTo(A,_,f,I,C,S,Q),e.U.P.curveTo(A,y,x,E,B,p,m)),M=="o1237"&&(_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),S=I+c.shift(),Q=C+c.shift(),y=S+c.shift(),x=Q+c.shift(),E=y+c.shift(),B=x+c.shift(),Math.abs(E-p)>Math.abs(B-m)?p=E+c.shift():m=B+c.shift(),e.U.P.curveTo(A,_,f,I,C,S,Q),e.U.P.curveTo(A,y,x,E,B,p,m));else if(M=="o14"){if(c.length>0&&!u&&(g=c.shift()+s.nominalWidthX,u=!0),c.length==4){var Y=c.shift(),W=c.shift(),te=c.shift(),j=c.shift(),J=e.CFF.glyphBySE(s,te),oe=e.CFF.glyphBySE(s,j);e.U._drawCFF(s.CharStrings[J],r,s,a,A),r.x=Y,r.y=W,e.U._drawCFF(s.CharStrings[oe],r,s,a,A)}h&&(e.U.P.closePath(A),h=!1)}else if(M=="o19"||M=="o20")c.length%2!=0&&!u&&(g=c.shift()+a.nominalWidthX),l+=c.length>>1,c.length=0,u=!0,d+=l+7>>3;else if(M=="o21")c.length>2&&!u&&(g=c.shift()+a.nominalWidthX,u=!0),m+=c.pop(),p+=c.pop(),h&&e.U.P.closePath(A),e.U.P.moveTo(A,p,m),h=!0;else if(M=="o22")c.length>1&&!u&&(g=c.shift()+a.nominalWidthX,u=!0),p+=c.pop(),h&&e.U.P.closePath(A),e.U.P.moveTo(A,p,m),h=!0;else if(M=="o25"){for(;c.length>6;)p+=c.shift(),m+=c.shift(),e.U.P.lineTo(A,p,m);_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),p=I+c.shift(),m=C+c.shift(),e.U.P.curveTo(A,_,f,I,C,p,m)}else if(M=="o26")for(c.length%2&&(p+=c.shift());c.length>0;)_=p,f=m+c.shift(),p=I=_+c.shift(),m=(C=f+c.shift())+c.shift(),e.U.P.curveTo(A,_,f,I,C,p,m);else if(M=="o27")for(c.length%2&&(m+=c.shift());c.length>0;)f=m,I=(_=p+c.shift())+c.shift(),C=f+c.shift(),p=I+c.shift(),m=C,e.U.P.curveTo(A,_,f,I,C,p,m);else if(M=="o10"||M=="o29"){var ie=M=="o10"?a:s;if(c.length==0)console.debug("error: empty stack");else{var ne=c.pop(),le=ie.Subrs[ne+ie.Bias];r.x=p,r.y=m,r.nStems=l,r.haveWidth=u,r.width=g,r.open=h,e.U._drawCFF(le,r,s,a,A),p=r.x,m=r.y,l=r.nStems,u=r.haveWidth,g=r.width,h=r.open}}else if(M=="o30"||M=="o31"){var ge=c.length,_e=(U=0,M=="o31");for(U+=ge-(k=-3&ge);U<k;)_e?(f=m,I=(_=p+c.shift())+c.shift(),m=(C=f+c.shift())+c.shift(),k-U==5?(p=I+c.shift(),U++):p=I,_e=!1):(_=p,f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),p=I+c.shift(),k-U==5?(m=C+c.shift(),U++):m=C,_e=!0),e.U.P.curveTo(A,_,f,I,C,p,m),U+=4}else{if((M+"").charAt(0)=="o")throw console.debug("Unknown operation: "+M,i),M;c.push(M)}}}r.x=p,r.y=m,r.nStems=l,r.haveWidth=u,r.width=g,r.open=h};var n=e,o={Typr:n};return t.Typr=n,t.default=o,Object.defineProperty(t,"__esModule",{value:!0}),t})({}).Typr}function Koi(){return(function(t){var e=Uint8Array,n=Uint16Array,o=Uint32Array,i=new e([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),r=new e([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),s=new e([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=function(M,k){for(var R=new n(31),F=0;F<31;++F)R[F]=k+=1<<M[F-1];var O=new o(R[30]);for(F=1;F<30;++F)for(var U=R[F];U<R[F+1];++U)O[U]=U-R[F]<<5|F;return[R,O]},A=a(i,2),c=A[0],l=A[1];c[28]=258,l[258]=28;for(var u=a(r,0)[0],g=new n(32768),h=0;h<32768;++h){var d=(43690&h)>>>1|(21845&h)<<1;d=(61680&(d=(52428&d)>>>2|(13107&d)<<2))>>>4|(3855&d)<<4,g[h]=((65280&d)>>>8|(255&d)<<8)>>>1}var p=function(M,k,R){for(var F=M.length,O=0,U=new n(k);O<F;++O)++U[M[O]-1];var Y,W=new n(k);for(O=0;O<k;++O)W[O]=W[O-1]+U[O-1]<<1;{Y=new n(1<<k);var te=15-k;for(O=0;O<F;++O)if(M[O])for(var j=O<<4|M[O],J=k-M[O],oe=W[M[O]-1]++<<J,ie=oe|(1<<J)-1;oe<=ie;++oe)Y[g[oe]>>>te]=j}return Y},m=new e(288);for(h=0;h<144;++h)m[h]=8;for(h=144;h<256;++h)m[h]=9;for(h=256;h<280;++h)m[h]=7;for(h=280;h<288;++h)m[h]=8;var _=new e(32);for(h=0;h<32;++h)_[h]=5;var f=p(m,9),I=p(_,5),C=function(M){for(var k=M[0],R=1;R<M.length;++R)M[R]>k&&(k=M[R]);return k},y=function(M,k,R){var F=k/8|0;return(M[F]|M[F+1]<<8)>>(7&k)&R},x=function(M,k){var R=k/8|0;return(M[R]|M[R+1]<<8|M[R+2]<<16)>>(7&k)},E=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],B=function(M,k,R){var F=new Error(k||E[M]);if(F.code=M,Error.captureStackTrace&&Error.captureStackTrace(F,B),!R)throw F;return F},S=function(M,k,R){var F=M.length;if(!F||R&&!R.l&&F<5)return k||new e(0);var O=!k||R,U=!R||R.i;R||(R={}),k||(k=new e(3*F));var Y,W=function(it){var Yt=k.length;if(it>Yt){var pn=new e(Math.max(2*Yt,it));pn.set(k),k=pn}},te=R.f||0,j=R.p||0,J=R.b||0,oe=R.l,ie=R.d,ne=R.m,le=R.n,ge=8*F;do{if(!oe){R.f=te=y(M,j,1);var _e=y(M,j+1,3);if(j+=3,!_e){var ue=M[(Re=((Y=j)/8|0)+(7&Y&&1)+4)-4]|M[Re-3]<<8,fe=Re+ue;if(fe>F){U&&B(0);break}O&&W(J+ue),k.set(M.subarray(Re,fe),J),R.b=J+=ue,R.p=j=8*fe;continue}if(_e==1)oe=f,ie=I,ne=9,le=5;else if(_e==2){var pe=y(M,j,31)+257,ye=y(M,j+10,15)+4,Me=pe+y(M,j+5,31)+1;j+=14;for(var ve=new e(Me),he=new e(19),Qe=0;Qe<ye;++Qe)he[s[Qe]]=y(M,j+3*Qe,7);j+=3*ye;var Pe=C(he),we=(1<<Pe)-1,Te=p(he,Pe);for(Qe=0;Qe<Me;){var Re,Ee=Te[y(M,j,we)];if(j+=15&Ee,(Re=Ee>>>4)<16)ve[Qe++]=Re;else{var ke=0,Ce=0;for(Re==16?(Ce=3+y(M,j,3),j+=2,ke=ve[Qe-1]):Re==17?(Ce=3+y(M,j,7),j+=3):Re==18&&(Ce=11+y(M,j,127),j+=7);Ce--;)ve[Qe++]=ke}}var Le=ve.subarray(0,pe),Ye=ve.subarray(pe);ne=C(Le),le=C(Ye),oe=p(Le,ne),ie=p(Ye,le)}else B(1);if(j>ge){U&&B(0);break}}O&&W(J+131072);for(var tt=(1<<ne)-1,At=(1<<le)-1,at=j;;at=j){var nt=(ke=oe[x(M,j)&tt])>>>4;if((j+=15&ke)>ge){U&&B(0);break}if(ke||B(2),nt<256)k[J++]=nt;else{if(nt==256){at=j,oe=null;break}var gt=nt-254;if(nt>264){var bt=i[Qe=nt-257];gt=y(M,j,(1<<bt)-1)+c[Qe],j+=bt}var Ct=ie[x(M,j)&At],Dt=Ct>>>4;if(Ct||B(3),j+=15&Ct,Ye=u[Dt],Dt>3&&(bt=r[Dt],Ye+=x(M,j)&(1<<bt)-1,j+=bt),j>ge){U&&B(0);break}O&&W(J+131072);for(var kt=J+gt;J<kt;J+=4)k[J]=k[J-Ye],k[J+1]=k[J+1-Ye],k[J+2]=k[J+2-Ye],k[J+3]=k[J+3-Ye];J=kt}}R.l=oe,R.p=at,R.b=J,oe&&(te=1,R.m=ne,R.d=ie,R.n=le)}while(!te);return J==k.length?k:(function(it,Yt,pn){(pn==null||pn>it.length)&&(pn=it.length);var be=new(it instanceof n?n:it instanceof o?o:e)(pn-Yt);return be.set(it.subarray(Yt,pn)),be})(k,0,J)},Q=new e(0),w=typeof TextDecoder<"u"&&new TextDecoder;try{w.decode(Q,{stream:!0})}catch{}return t.convert_streams=function(M){var k=new DataView(M),R=0;function F(){var pe=k.getUint16(R);return R+=2,pe}function O(){var pe=k.getUint32(R);return R+=4,pe}function U(pe){ue.setUint16(fe,pe),fe+=2}function Y(pe){ue.setUint32(fe,pe),fe+=4}for(var W={signature:O(),flavor:O(),length:O(),numTables:F(),reserved:F(),totalSfntSize:O(),majorVersion:F(),minorVersion:F(),metaOffset:O(),metaLength:O(),metaOrigLength:O(),privOffset:O(),privLength:O()},te=0;Math.pow(2,te)<=W.numTables;)te++;te--;for(var j=16*Math.pow(2,te),J=16*W.numTables-j,oe=12,ie=[],ne=0;ne<W.numTables;ne++)ie.push({tag:O(),offset:O(),compLength:O(),origLength:O(),origChecksum:O()}),oe+=16;var le,ge=new Uint8Array(12+16*ie.length+ie.reduce((function(pe,ye){return pe+ye.origLength+4}),0)),_e=ge.buffer,ue=new DataView(_e),fe=0;return Y(W.flavor),U(W.numTables),U(j),U(te),U(J),ie.forEach((function(pe){Y(pe.tag),Y(pe.origChecksum),Y(oe),Y(pe.origLength),pe.outOffset=oe,(oe+=pe.origLength)%4!=0&&(oe+=4-oe%4)})),ie.forEach((function(pe){var ye,Me=M.slice(pe.offset,pe.offset+pe.compLength);if(pe.compLength!=pe.origLength){var ve=new Uint8Array(pe.origLength);ye=new Uint8Array(Me,2),S(ye,ve)}else ve=new Uint8Array(Me);ge.set(ve,pe.outOffset);var he=0;(oe=pe.outOffset+pe.origLength)%4!=0&&(he=4-oe%4),ge.set(new Uint8Array(he).buffer,pe.outOffset+pe.origLength),le=oe+he})),_e.slice(0,le)},Object.defineProperty(t,"__esModule",{value:!0}),t})({}).convert_streams}function Voi(t,e){const n={M:2,L:2,Q:4,C:6,Z:0},o={C:"18g,ca,368,1kz",D:"17k,6,2,2+4,5+c,2+6,2+1,10+1,9+f,j+11,2+1,a,2,2+1,15+2,3,j+2,6+3,2+8,2,2,2+1,w+a,4+e,3+3,2,3+2,3+5,23+w,2f+4,3,2+9,2,b,2+3,3,1k+9,6+1,3+1,2+2,2+d,30g,p+y,1,1+1g,f+x,2,sd2+1d,jf3+4,f+3,2+4,2+2,b+3,42,2,4+2,2+1,2,3,t+1,9f+w,2,el+2,2+g,d+2,2l,2+1,5,3+1,2+1,2,3,6,16wm+1v",R:"17m+3,2,2,6+3,m,15+2,2+2,h+h,13,3+8,2,2,3+1,2,p+1,x,5+4,5,a,2,2,3,u,c+2,g+1,5,2+1,4+1,5j,6+1,2,b,2+2,f,2+1,1s+2,2,3+1,7,1ez0,2,2+1,4+4,b,4,3,b,42,2+2,4,3,2+1,2,o+3,ae,ep,x,2o+2,3+1,3,5+1,6",L:"x9u,jff,a,fd,jv",T:"4t,gj+33,7o+4,1+1,7c+18,2,2+1,2+1,2,21+a,2,1b+k,h,2u+6,3+5,3+1,2+3,y,2,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,3,7,6+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+d,1,1+1,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,ek,3+1,r+4,1e+4,6+5,2p+c,1+3,1,1+2,1+b,2db+2,3y,2p+v,ff+3,30+1,n9x,1+2,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,5s,6y+2,ea,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+9,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2,2b+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,470+8,at4+4,1o+6,t5,1s+3,2a,f5l+1,2+3,43o+2,a+7,1+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,1,gzau,v+2n,3l+6n"},i=1,r=2,s=4,a=8,A=16,c=32;let l;function u(E){if(!l){const B={R:r,L:i,D:s,C:A,U:c,T:a};l=new Map;for(let S in o){let Q=0;o[S].split(",").forEach(w=>{let[M,k]=w.split("+");M=parseInt(M,36),k=k?parseInt(k,36):0,l.set(Q+=M,B[S]);for(let R=k;R--;)l.set(++Q,B[S])})}}return l.get(E)||c}const g=1,h=2,d=3,p=4,m=[null,"isol","init","fina","medi"];function _(E){const B=new Uint8Array(E.length);let S=c,Q=g,w=-1;for(let M=0;M<E.length;M++){const k=E.codePointAt(M);let R=u(k)|0,F=g;R&a||(S&(i|s|A)?R&(r|s|A)?(F=d,(Q===g||Q===d)&&B[w]++):R&(i|c)&&(Q===h||Q===p)&&B[w]--:S&(r|c)&&(Q===h||Q===p)&&B[w]--,Q=B[M]=F,S=R,w=M,k>65535&&M++)}return B}function f(E,B){const S=[];for(let w=0;w<B.length;w++){const M=B.codePointAt(w);M>65535&&w++,S.push(t.U.codeToGlyph(E,M))}const Q=E.GSUB;if(Q){const{lookupList:w,featureList:M}=Q;let k;const R=/^(rlig|liga|mset|isol|init|fina|medi|half|pres|blws|ccmp)$/,F=[];M.forEach(O=>{if(R.test(O.tag))for(let U=0;U<O.tab.length;U++){if(F[O.tab[U]])continue;F[O.tab[U]]=!0;const Y=w[O.tab[U]],W=/^(isol|init|fina|medi)$/.test(O.tag);W&&!k&&(k=_(B));for(let te=0;te<S.length;te++)(!k||!W||m[k[te]]===O.tag)&&t.U._applySubs(S,te,Y,w)}})}return S}function I(E,B){const S=new Int16Array(B.length*3);let Q=0;for(;Q<B.length;Q++){const R=B[Q];if(R===-1)continue;S[Q*3+2]=E.hmtx.aWidth[R];const F=E.GPOS;if(F){const O=F.lookupList;for(let U=0;U<O.length;U++){const Y=O[U];for(let W=0;W<Y.tabs.length;W++){const te=Y.tabs[W];if(Y.ltype===1){if(t._lctf.coverageIndex(te.coverage,R)!==-1&&te.pos){k(te.pos,Q);break}}else if(Y.ltype===2){let j=null,J=w();if(J!==-1){const oe=t._lctf.coverageIndex(te.coverage,B[J]);if(oe!==-1){if(te.fmt===1){const ie=te.pairsets[oe];for(let ne=0;ne<ie.length;ne++)ie[ne].gid2===R&&(j=ie[ne])}else if(te.fmt===2){const ie=t.U._getGlyphClass(B[J],te.classDef1),ne=t.U._getGlyphClass(R,te.classDef2);j=te.matrix[ie][ne]}if(j){j.val1&&k(j.val1,J),j.val2&&k(j.val2,Q);break}}}}else if(Y.ltype===4){const j=t._lctf.coverageIndex(te.markCoverage,R);if(j!==-1){const J=w(M),oe=J===-1?-1:t._lctf.coverageIndex(te.baseCoverage,B[J]);if(oe!==-1){const ie=te.markArray[j],ne=te.baseArray[oe][ie.markClass];S[Q*3]=ne.x-ie.x+S[J*3]-S[J*3+2],S[Q*3+1]=ne.y-ie.y+S[J*3+1];break}}}else if(Y.ltype===6){const j=t._lctf.coverageIndex(te.mark1Coverage,R);if(j!==-1){const J=w();if(J!==-1){const oe=B[J];if(C(E,oe)===3){const ie=t._lctf.coverageIndex(te.mark2Coverage,oe);if(ie!==-1){const ne=te.mark1Array[j],le=te.mark2Array[ie][ne.markClass];S[Q*3]=le.x-ne.x+S[J*3]-S[J*3+2],S[Q*3+1]=le.y-ne.y+S[J*3+1];break}}}}}}}}else if(E.kern&&!E.cff){const O=w();if(O!==-1){const U=E.kern.glyph1.indexOf(B[O]);if(U!==-1){const Y=E.kern.rval[U].glyph2.indexOf(R);Y!==-1&&(S[O*3+2]+=E.kern.rval[U].vals[Y])}}}}return S;function w(R){for(let F=Q-1;F>=0;F--)if(B[F]!==-1&&(!R||R(B[F])))return F;return-1}function M(R){return C(E,R)===1}function k(R,F){for(let O=0;O<3;O++)S[F*3+O]+=R[O]||0}}function C(E,B){const S=E.GDEF&&E.GDEF.glyphClassDef;return S?t.U._getGlyphClass(B,S):0}function y(...E){for(let B=0;B<E.length;B++)if(typeof E[B]=="number")return E[B]}function x(E){const B=Object.create(null),S=E["OS/2"],Q=E.hhea,w=E.head.unitsPerEm,M=y(S&&S.sTypoAscender,Q&&Q.ascender,w),k={unitsPerEm:w,ascender:M,descender:y(S&&S.sTypoDescender,Q&&Q.descender,0),capHeight:y(S&&S.sCapHeight,M),xHeight:y(S&&S.sxHeight,M),lineGap:y(S&&S.sTypoLineGap,Q&&Q.lineGap),supportsCodePoint(R){return t.U.codeToGlyph(E,R)>0},forEachGlyph(R,F,O,U){let Y=0;const W=1/k.unitsPerEm*F,te=f(E,R);let j=0;const J=I(E,te);return te.forEach((oe,ie)=>{if(oe!==-1){let ne=B[oe];if(!ne){const{cmds:le,crds:ge}=t.U.glyphToPath(E,oe);let _e="",ue=0;for(let ve=0,he=le.length;ve<he;ve++){const Qe=n[le[ve]];_e+=le[ve];for(let Pe=1;Pe<=Qe;Pe++)_e+=(Pe>1?",":"")+ge[ue++]}let fe,pe,ye,Me;if(ge.length){fe=pe=1/0,ye=Me=-1/0;for(let ve=0,he=ge.length;ve<he;ve+=2){let Qe=ge[ve],Pe=ge[ve+1];Qe<fe&&(fe=Qe),Pe<pe&&(pe=Pe),Qe>ye&&(ye=Qe),Pe>Me&&(Me=Pe)}}else fe=ye=pe=Me=0;ne=B[oe]={index:oe,advanceWidth:E.hmtx.aWidth[oe],xMin:fe,yMin:pe,xMax:ye,yMax:Me,path:_e}}U.call(null,ne,Y+J[ie*3]*W,J[ie*3+1]*W,j),Y+=J[ie*3+2]*W,O&&(Y+=O*F)}j+=R.codePointAt(j)>65535?2:1}),Y}};return k}return function(B){const S=new Uint8Array(B,0,4),Q=t._bin.readASCII(S,0,4);if(Q==="wOFF")B=e(B);else if(Q==="wOF2")throw new Error("woff2 fonts not supported");return x(t.parse(B)[0])}}const zoi=yY({name:"Typr Font Parser",dependencies:[Uoi,Koi,Voi],init(t,e,n){const o=t(),i=e();return n(o,i)}});function Joi(){return(function(t){var e=function(){this.buckets=new Map};e.prototype.add=function(I){var C=I>>5;this.buckets.set(C,(this.buckets.get(C)||0)|1<<(31&I))},e.prototype.has=function(I){var C=this.buckets.get(I>>5);return C!==void 0&&(C&1<<(31&I))!=0},e.prototype.serialize=function(){var I=[];return this.buckets.forEach((function(C,y){I.push((+y).toString(36)+":"+C.toString(36))})),I.join(",")},e.prototype.deserialize=function(I){var C=this;this.buckets.clear(),I.split(",").forEach((function(y){var x=y.split(":");C.buckets.set(parseInt(x[0],36),parseInt(x[1],36))}))};var n=Math.pow(2,8),o=n-1,i=~o;function r(I){var C=(function(x){return x&i})(I).toString(16),y=(function(x){return(x&i)+n-1})(I).toString(16);return"codepoint-index/plane"+(I>>16)+"/"+C+"-"+y+".json"}function s(I,C){var y=I&o,x=C.codePointAt(y/6|0);return((x=(x||48)-48)&1<<y%6)!=0}function a(I,C){var y;(y=I,y.replace(/U\+/gi,"").replace(/^,+|,+$/g,"").split(/,+/).map((function(x){return x.split("-").map((function(E){return parseInt(E.trim(),16)}))}))).forEach((function(x){var E=x[0],B=x[1];B===void 0&&(B=E),C(E,B)}))}function A(I,C){a(I,(function(y,x){for(var E=y;E<=x;E++)C(E)}))}var c={},l={},u=new WeakMap,g="https://cdn.jsdelivr.net/gh/lojjic/unicode-font-resolver@v1.0.1/packages/data";function h(I){var C=u.get(I);return C||(C=new e,A(I.ranges,(function(y){return C.add(y)})),u.set(I,C)),C}var d,p=new Map;function m(I,C,y){return I[C]?C:I[y]?y:(function(x){for(var E in x)return E})(I)}function _(I,C){var y=C;if(!I.includes(y)){y=1/0;for(var x=0;x<I.length;x++)Math.abs(I[x]-C)<Math.abs(y-C)&&(y=I[x])}return y}function f(I){return d||(d=new Set,A("9-D,20,85,A0,1680,2000-200A,2028-202F,205F,3000",(function(C){d.add(C)}))),d.has(I)}return t.CodePointSet=e,t.clearCache=function(){c={},l={}},t.getFontsForString=function(I,C){C===void 0&&(C={});var y,x=C.lang;x===void 0&&(x=new RegExp("\\p{Script=Hangul}","u").test(y=I)?"ko":new RegExp("\\p{Script=Hiragana}|\\p{Script=Katakana}","u").test(y)?"ja":"en");var E=C.category;E===void 0&&(E="sans-serif");var B=C.style;B===void 0&&(B="normal");var S=C.weight;S===void 0&&(S=400);var Q=(C.dataUrl||g).replace(/\/$/g,""),w=new Map,M=new Uint8Array(I.length),k={},R={},F=new Array(I.length),O=new Map,U=!1;function Y(j){var J=p.get(j);return J||(J=fetch(Q+"/"+j).then((function(oe){if(!oe.ok)throw new Error(oe.statusText);return oe.json().then((function(ie){if(!Array.isArray(ie)||ie[0]!==1)throw new Error("Incorrect schema version; need 1, got "+ie[0]);return ie[1]}))})).catch((function(oe){if(Q!==g)return U||(console.error('unicode-font-resolver: Failed loading from dataUrl "'+Q+'", trying default CDN. '+oe.message),U=!0),Q=g,p.delete(j),Y(j);throw oe})),p.set(j,J)),J}for(var W=function(j){var J=I.codePointAt(j),oe=r(J);F[j]=oe,c[oe]||O.has(oe)||O.set(oe,Y(oe).then((function(ie){c[oe]=ie}))),J>65535&&(j++,te=j)},te=0;te<I.length;te++)W(te);return Promise.all(O.values()).then((function(){O.clear();for(var j=function(oe){var ie=I.codePointAt(oe),ne=null,le=c[F[oe]],ge=void 0;for(var _e in le){var ue=R[_e];if(ue===void 0&&(ue=R[_e]=new RegExp(_e).test(x||"en")),ue){for(var fe in ge=_e,le[_e])if(s(ie,le[_e][fe])){ne=fe;break}break}}if(!ne){e:for(var pe in le)if(pe!==ge){for(var ye in le[pe])if(s(ie,le[pe][ye])){ne=ye;break e}}}ne||(console.debug("No font coverage for U+"+ie.toString(16)),ne="latin"),F[oe]=ne,l[ne]||O.has(ne)||O.set(ne,Y("font-meta/"+ne+".json").then((function(Me){l[ne]=Me}))),ie>65535&&(oe++,J=oe)},J=0;J<I.length;J++)j(J);return Promise.all(O.values())})).then((function(){for(var j,J=null,oe=0;oe<I.length;oe++){var ie=I.codePointAt(oe);if(J&&(f(ie)||h(J).has(ie)))M[oe]=M[oe-1];else{J=l[F[oe]];var ne=k[J.id];if(!ne){var le=J.typeforms,ge=m(le,E,"sans-serif"),_e=m(le[ge],B,"normal"),ue=_((j=le[ge])===null||j===void 0?void 0:j[_e],S);ne=k[J.id]=Q+"/font-files/"+J.id+"/"+ge+"."+_e+"."+ue+".woff"}var fe=w.get(ne);fe==null&&(fe=w.size,w.set(ne,fe)),M[oe]=fe}ie>65535&&(oe++,M[oe]=M[oe-1])}return{fontUrls:Array.from(w.keys()),chars:M}}))},Object.defineProperty(t,"__esModule",{value:!0}),t})({})}function Woi(t,e){const n=Object.create(null),o=Object.create(null);function i(s,a){const A=c=>{console.error(`Failure loading font ${s}`,c)};try{const c=new XMLHttpRequest;c.open("get",s,!0),c.responseType="arraybuffer",c.onload=function(){if(c.status>=400)A(new Error(c.statusText));else if(c.status>0)try{const l=t(c.response);l.src=s,a(l)}catch(l){A(l)}},c.onerror=A,c.send()}catch(c){A(c)}}function r(s,a){let A=n[s];A?a(A):o[s]?o[s].push(a):(o[s]=[a],i(s,c=>{c.src=s,n[s]=c,o[s].forEach(l=>l(c)),delete o[s]}))}return function(s,a,{lang:A,fonts:c=[],style:l="normal",weight:u="normal",unicodeFontsURL:g}={}){const h=new Uint8Array(s.length),d=[];s.length||f();const p=new Map,m=[];if(l!=="italic"&&(l="normal"),typeof u!="number"&&(u=u==="bold"?700:400),c&&!Array.isArray(c)&&(c=[c]),c=c.slice().filter(C=>!C.lang||C.lang.test(A)).reverse(),c.length){let E=0;(function B(S=0){for(let Q=S,w=s.length;Q<w;Q++){const M=s.codePointAt(Q);if(E===1&&d[h[Q-1]].supportsCodePoint(M)||Q>0&&/\s/.test(s[Q]))h[Q]=h[Q-1],E===2&&(m[m.length-1][1]=Q);else for(let k=h[Q],R=c.length;k<=R;k++)if(k===R){const F=E===2?m[m.length-1]:m[m.length]=[Q,Q];F[1]=Q,E=2}else{h[Q]=k;const{src:F,unicodeRange:O}=c[k];if(!O||I(M,O)){const U=n[F];if(!U){r(F,()=>{B(Q)});return}if(U.supportsCodePoint(M)){let Y=p.get(U);typeof Y!="number"&&(Y=d.length,d.push(U),p.set(U,Y)),h[Q]=Y,E=1;break}}}M>65535&&Q+1<w&&(h[Q+1]=h[Q],Q++,E===2&&(m[m.length-1][1]=Q))}_()})()}else m.push([0,s.length-1]),_();function _(){if(m.length){const C=m.map(y=>s.substring(y[0],y[1]+1)).join(`
`);e.getFontsForString(C,{lang:A||void 0,style:l,weight:u,dataUrl:g}).then(({fontUrls:y,chars:x})=>{const E=d.length;let B=0;m.forEach(Q=>{for(let w=0,M=Q[1]-Q[0];w<=M;w++)h[Q[0]+w]=x[B++]+E;B++});let S=0;y.forEach((Q,w)=>{r(Q,M=>{d[w+E]=M,++S===y.length&&f()})})})}else f()}function f(){a({chars:h,fonts:d})}function I(C,y){for(let x=0;x<y.length;x++){const[E,B=E]=y[x];if(E<=C&&C<=B)return!0}return!1}}}const joi=yY({name:"FontResolver",dependencies:[Woi,zoi,Joi],init(t,e,n){return t(e,n())}});function $oi(t,e){const o=/[\u00AD\u034F\u061C\u115F-\u1160\u17B4-\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8]/,i="[^\\S\\u00A0]",r=new RegExp(`${i}|[\\-\\u007C\\u00AD\\u2010\\u2012-\\u2014\\u2027\\u2056\\u2E17\\u2E40]`);function s({text:d,lang:p,fonts:m,style:_,weight:f,preResolvedFonts:I,unicodeFontsURL:C},y){const x=({chars:E,fonts:B})=>{let S,Q;const w=[];for(let M=0;M<E.length;M++)E[M]!==Q?(Q=E[M],w.push(S={start:M,end:M,fontObj:B[E[M]]})):S.end=M;y(w)};I?x(I):t(d,x,{lang:p,fonts:m,style:_,weight:f,unicodeFontsURL:C})}function a({text:d="",font:p,lang:m,sdfGlyphSize:_=64,fontSize:f=400,fontWeight:I=1,fontStyle:C="normal",letterSpacing:y=0,lineHeight:x="normal",maxWidth:E=1/0,direction:B,textAlign:S="left",textIndent:Q=0,whiteSpace:w="normal",overflowWrap:M="normal",anchorX:k=0,anchorY:R=0,metricsOnly:F=!1,unicodeFontsURL:O,preResolvedFonts:U=null,includeCaretPositions:Y=!1,chunkedBoundsSize:W=8192,colorRanges:te=null},j){const J=u(),oe={fontLoad:0,typesetting:0};d.indexOf("\r")>-1&&(console.info("Typesetter: got text with \\r chars; normalizing to \\n"),d=d.replace(/\r\n/g,`
`).replace(/\r/g,`
`)),f=+f,y=+y,E=+E,x=x||"normal",Q=+Q,s({text:d,lang:m,style:C,weight:I,fonts:typeof p=="string"?[{src:p}]:p,unicodeFontsURL:O,preResolvedFonts:U},ie=>{oe.fontLoad=u()-J;const ne=isFinite(E);let le=null,ge=null,_e=null,ue=null,fe=null,pe=null,ye=null,Me=null,ve=0,he=0,Qe=w!=="nowrap";const Pe=new Map,we=u();let Te=Q,Re=0,Ee=new g;const ke=[Ee];ie.forEach(At=>{const{fontObj:at}=At,{ascender:nt,descender:gt,unitsPerEm:bt,lineGap:Ct,capHeight:Dt,xHeight:kt}=at;let it=Pe.get(at);if(!it){const It=f/bt,Bt=x==="normal"?(nt-gt+Ct)*It:x*f,mt=(Bt-(nt-gt)*It)/2,st=Math.min(Bt,(nt-gt)*It),xt=(nt+gt)/2*It+st/2;it={index:Pe.size,src:at.src,fontObj:at,fontSizeMult:It,unitsPerEm:bt,ascender:nt*It,descender:gt*It,capHeight:Dt*It,xHeight:kt*It,lineHeight:Bt,baseline:-mt-nt*It,caretTop:xt,caretBottom:xt-st},Pe.set(at,it)}const{fontSizeMult:Yt}=it,pn=d.slice(At.start,At.end+1);let be,et;at.forEachGlyph(pn,f,y,(It,Bt,mt,st)=>{Bt+=Re,st+=At.start,be=Bt,et=It;const xt=d.charAt(st),Xe=It.advanceWidth*Yt,Ze=Ee.count;let dt;if("isEmpty"in It||(It.isWhitespace=!!xt&&new RegExp(i).test(xt),It.canBreakAfter=!!xt&&r.test(xt),It.isEmpty=It.xMin===It.xMax||It.yMin===It.yMax||o.test(xt)),!It.isWhitespace&&!It.isEmpty&&he++,Qe&&ne&&!It.isWhitespace&&Bt+Xe+Te>E&&Ze){if(Ee.glyphAt(Ze-1).glyphObj.canBreakAfter)dt=new g,Te=-Bt;else for(let Wt=Ze;Wt--;)if(Wt===0&&M==="break-word"){dt=new g,Te=-Bt;break}else if(Ee.glyphAt(Wt).glyphObj.canBreakAfter){dt=Ee.splitAt(Wt+1);const Xt=dt.glyphAt(0).x;Te-=Xt;for(let Jt=dt.count;Jt--;)dt.glyphAt(Jt).x-=Xt;break}dt&&(Ee.isSoftWrapped=!0,Ee=dt,ke.push(Ee),ve=E)}let Ut=Ee.glyphAt(Ee.count);Ut.glyphObj=It,Ut.x=Bt+Te,Ut.y=mt,Ut.width=Xe,Ut.charIndex=st,Ut.fontData=it,xt===`
`&&(Ee=new g,ke.push(Ee),Te=-(Bt+Xe+y*f)+Q)}),Re=be+et.advanceWidth*Yt+y*f});let Ce=0;ke.forEach(At=>{let at=!0;for(let nt=At.count;nt--;){const gt=At.glyphAt(nt);at&&!gt.glyphObj.isWhitespace&&(At.width=gt.x+gt.width,At.width>ve&&(ve=At.width),at=!1);let{lineHeight:bt,capHeight:Ct,xHeight:Dt,baseline:kt}=gt.fontData;bt>At.lineHeight&&(At.lineHeight=bt);const it=kt-At.baseline;it<0&&(At.baseline+=it,At.cap+=it,At.ex+=it),At.cap=Math.max(At.cap,At.baseline+Ct),At.ex=Math.max(At.ex,At.baseline+Dt)}At.baseline-=Ce,At.cap-=Ce,At.ex-=Ce,Ce+=At.lineHeight});let Le=0,Ye=0;if(k&&(typeof k=="number"?Le=-k:typeof k=="string"&&(Le=-ve*(k==="left"?0:k==="center"?.5:k==="right"?1:c(k)))),R&&(typeof R=="number"?Ye=-R:typeof R=="string"&&(Ye=R==="top"?0:R==="top-baseline"?-ke[0].baseline:R==="top-cap"?-ke[0].cap:R==="top-ex"?-ke[0].ex:R==="middle"?Ce/2:R==="bottom"?Ce:R==="bottom-baseline"?-ke[ke.length-1].baseline:c(R)*Ce)),!F){const At=e.getEmbeddingLevels(d,B);le=new Uint16Array(he),ge=new Uint8Array(he),_e=new Float32Array(he*2),ue={},ye=[1/0,1/0,-1/0,-1/0],Me=[],Y&&(pe=new Float32Array(d.length*4)),te&&(fe=new Uint8Array(he*3));let at=0,nt=-1,gt=-1,bt,Ct;if(ke.forEach((Dt,kt)=>{let{count:it,width:Yt}=Dt;if(it>0){let pn=0;for(let st=it;st--&&Dt.glyphAt(st).glyphObj.isWhitespace;)pn++;let be=0,et=0;if(S==="center")be=(ve-Yt)/2;else if(S==="right")be=ve-Yt;else if(S==="justify"&&Dt.isSoftWrapped){let st=0;for(let xt=it-pn;xt--;)Dt.glyphAt(xt).glyphObj.isWhitespace&&st++;et=(ve-Yt)/st}if(et||be){let st=0;for(let xt=0;xt<it;xt++){let Xe=Dt.glyphAt(xt);const Ze=Xe.glyphObj;Xe.x+=be+st,et!==0&&Ze.isWhitespace&&xt<it-pn&&(st+=et,Xe.width+=et)}}const It=e.getReorderSegments(d,At,Dt.glyphAt(0).charIndex,Dt.glyphAt(Dt.count-1).charIndex);for(let st=0;st<It.length;st++){const[xt,Xe]=It[st];let Ze=1/0,dt=-1/0;for(let Ut=0;Ut<it;Ut++)if(Dt.glyphAt(Ut).charIndex>=xt){let Wt=Ut,Xt=Ut;for(;Xt<it;Xt++){let Jt=Dt.glyphAt(Xt);if(Jt.charIndex>Xe)break;Xt<it-pn&&(Ze=Math.min(Ze,Jt.x),dt=Math.max(dt,Jt.x+Jt.width))}for(let Jt=Wt;Jt<Xt;Jt++){const yn=Dt.glyphAt(Jt);yn.x=dt-(yn.x+yn.width-Ze)}break}}let Bt;const mt=st=>Bt=st;for(let st=0;st<it;st++){const xt=Dt.glyphAt(st);Bt=xt.glyphObj;const Xe=Bt.index,Ze=At.levels[xt.charIndex]&1;if(Ze){const dt=e.getMirroredCharacter(d[xt.charIndex]);dt&&xt.fontData.fontObj.forEachGlyph(dt,0,0,mt)}if(Y){const{charIndex:dt,fontData:Ut}=xt,Wt=xt.x+Le,Xt=xt.x+xt.width+Le;pe[dt*4]=Ze?Xt:Wt,pe[dt*4+1]=Ze?Wt:Xt,pe[dt*4+2]=Dt.baseline+Ut.caretBottom+Ye,pe[dt*4+3]=Dt.baseline+Ut.caretTop+Ye;const Jt=dt-nt;Jt>1&&l(pe,nt,Jt),nt=dt}if(te){const{charIndex:dt}=xt;for(;dt>gt;)gt++,te.hasOwnProperty(gt)&&(Ct=te[gt])}if(!Bt.isWhitespace&&!Bt.isEmpty){const dt=at++,{fontSizeMult:Ut,src:Wt,index:Xt}=xt.fontData,Jt=ue[Wt]||(ue[Wt]={});Jt[Xe]||(Jt[Xe]={path:Bt.path,pathBounds:[Bt.xMin,Bt.yMin,Bt.xMax,Bt.yMax]});const yn=xt.x+Le,An=xt.y+Dt.baseline+Ye;_e[dt*2]=yn,_e[dt*2+1]=An;const kn=yn+Bt.xMin*Ut,$n=An+Bt.yMin*Ut,ht=yn+Bt.xMax*Ut,Kt=An+Bt.yMax*Ut;kn<ye[0]&&(ye[0]=kn),$n<ye[1]&&(ye[1]=$n),ht>ye[2]&&(ye[2]=ht),Kt>ye[3]&&(ye[3]=Kt),dt%W===0&&(bt={start:dt,end:dt,rect:[1/0,1/0,-1/0,-1/0]},Me.push(bt)),bt.end++;const rn=bt.rect;if(kn<rn[0]&&(rn[0]=kn),$n<rn[1]&&(rn[1]=$n),ht>rn[2]&&(rn[2]=ht),Kt>rn[3]&&(rn[3]=Kt),le[dt]=Xe,ge[dt]=Xt,te){const Lt=dt*3;fe[Lt]=Ct>>16&255,fe[Lt+1]=Ct>>8&255,fe[Lt+2]=Ct&255}}}}}),pe){const Dt=d.length-nt;Dt>1&&l(pe,nt,Dt)}}const tt=[];Pe.forEach(({index:At,src:at,unitsPerEm:nt,ascender:gt,descender:bt,lineHeight:Ct,capHeight:Dt,xHeight:kt})=>{tt[At]={src:at,unitsPerEm:nt,ascender:gt,descender:bt,lineHeight:Ct,capHeight:Dt,xHeight:kt}}),oe.typesetting=u()-we,j({glyphIds:le,glyphFontIndices:ge,glyphPositions:_e,glyphData:ue,fontData:tt,caretPositions:pe,glyphColors:fe,chunkedBounds:Me,fontSize:f,topBaseline:Ye+ke[0].baseline,blockBounds:[Le,Ye-Ce,Le+ve,Ye],visibleBounds:ye,timings:oe})})}function A(d,p){a({...d,metricsOnly:!0},m=>{const[_,f,I,C]=m.blockBounds;p({width:I-_,height:C-f})})}function c(d){let p=d.match(/^([\d.]+)%$/),m=p?parseFloat(p[1]):NaN;return isNaN(m)?0:m/100}function l(d,p,m){const _=d[p*4],f=d[p*4+1],I=d[p*4+2],C=d[p*4+3],y=(f-_)/m;for(let x=0;x<m;x++){const E=(p+x)*4;d[E]=_+y*x,d[E+1]=_+y*(x+1),d[E+2]=I,d[E+3]=C}}function u(){return(self.performance||Date).now()}function g(){this.data=[]}const h=["glyphObj","x","y","width","charIndex","fontData"];return g.prototype={width:0,lineHeight:0,baseline:0,cap:0,ex:0,isSoftWrapped:!1,get count(){return Math.ceil(this.data.length/h.length)},glyphAt(d){let p=g.flyweight;return p.data=this.data,p.index=d,p},splitAt(d){let p=new g;return p.data=this.data.splice(d*h.length),p}},g.flyweight=h.reduce((d,p,m,_)=>(Object.defineProperty(d,p,{get(){return this.data[this.index*h.length+m]},set(f){this.data[this.index*h.length+m]=f}}),d),{data:null,index:0}),{typeset:a,measure:A}}const ZR=()=>(self.performance||Date).now(),fhe=OJt();let zJt;function qoi(t,e,n,o,i,r,s,a,A,c,l=!0){return l?Zoi(t,e,n,o,i,r,s,a,A,c).then(null,u=>(zJt||(console.warn("WebGL SDF generation failed, falling back to JS",u),zJt=!0),jJt(t,e,n,o,i,r,s,a,A,c))):jJt(t,e,n,o,i,r,s,a,A,c)}const Ihe=[],Xoi=5;let Pke=0;function JJt(){const t=ZR();for(;Ihe.length&&ZR()-t<Xoi;)Ihe.shift()();Pke=Ihe.length?setTimeout(JJt,0):0}const Zoi=(...t)=>new Promise((e,n)=>{Ihe.push(()=>{const o=ZR();try{fhe.webgl.generateIntoCanvas(...t),e({timing:ZR()-o})}catch(i){n(i)}}),Pke||(Pke=setTimeout(JJt,0))}),eii=4,tii=2e3,WJt={};let nii=0;function jJt(t,e,n,o,i,r,s,a,A,c){const l="TroikaTextSDFGenerator_JS_"+nii++%eii;let u=WJt[l];return u||(u=WJt[l]={workerModule:yY({name:l,workerId:l,dependencies:[OJt,ZR],init(g,h){const d=g().javascript.generate;return function(...p){const m=h();return{textureData:d(...p),timing:h()-m}}},getTransferables(g){return[g.textureData.buffer]}}),requests:0,idleTimer:null}),u.requests++,clearTimeout(u.idleTimer),u.workerModule(t,e,n,o,i,r).then(({textureData:g,timing:h})=>{const d=ZR(),p=new Uint8Array(g.length*4);for(let m=0;m<g.length;m++)p[m*4+c]=g[m];return fhe.webglUtils.renderImageData(s,p,a,A,t,e,1<<3-c),h+=ZR()-d,--u.requests===0&&(u.idleTimer=setTimeout(()=>{Noi(l)},tii)),{timing:h}})}function oii(t){t._warm||(fhe.webgl.isSupported(t),t._warm=!0)}const iii=fhe.webglUtils.resizeWebGLCanvasWithoutClearing,AX={unicodeFontsURL:null,sdfGlyphSize:64,sdfMargin:1/16,sdfExponent:9,textureWidth:2048},rii=new Vi;function xY(){return(self.performance||Date).now()}const $Jt=Object.create(null);function sii(t,e){t=Aii({},t);const n=xY(),o=[];if(t.font&&o.push({label:"user",src:cii(t.font)}),t.font=o,t.text=""+t.text,t.sdfGlyphSize=t.sdfGlyphSize||AX.sdfGlyphSize,t.unicodeFontsURL=t.unicodeFontsURL||AX.unicodeFontsURL,t.colorRanges!=null){let g={};for(let h in t.colorRanges)if(t.colorRanges.hasOwnProperty(h)){let d=t.colorRanges[h];typeof d!="number"&&(d=rii.set(d).getHex()),g[h]=d}t.colorRanges=g}Object.freeze(t);const{textureWidth:i,sdfExponent:r}=AX,{sdfGlyphSize:s}=t,a=i/s*4;let A=$Jt[s];if(!A){const g=document.createElement("canvas");g.width=i,g.height=s*256/a,A=$Jt[s]={glyphCount:0,sdfGlyphSize:s,sdfCanvas:g,sdfTexture:new Hg(g,void 0,void 0,void 0,Fl,Fl),contextLost:!1,glyphsByFont:new Map},A.sdfTexture.generateMipmaps=!1,aii(A)}const{sdfTexture:c,sdfCanvas:l}=A;ZJt(t).then(g=>{const{glyphIds:h,glyphFontIndices:d,fontData:p,glyphPositions:m,fontSize:_,timings:f}=g,I=[],C=new Float32Array(h.length*4);let y=0,x=0;const E=xY(),B=p.map(k=>{let R=A.glyphsByFont.get(k.src);return R||A.glyphsByFont.set(k.src,R=new Map),R});h.forEach((k,R)=>{const F=d[R],{src:O,unitsPerEm:U}=p[F];let Y=B[F].get(k);if(!Y){const{path:oe,pathBounds:ie}=g.glyphData[O][k],ne=Math.max(ie[2]-ie[0],ie[3]-ie[1])/s*(AX.sdfMargin*s+.5),le=A.glyphCount++,ge=[ie[0]-ne,ie[1]-ne,ie[2]+ne,ie[3]+ne];B[F].set(k,Y={path:oe,atlasIndex:le,sdfViewBox:ge}),I.push(Y)}const{sdfViewBox:W}=Y,te=m[x++],j=m[x++],J=_/U;C[y++]=te+W[0]*J,C[y++]=j+W[1]*J,C[y++]=te+W[2]*J,C[y++]=j+W[3]*J,h[R]=Y.atlasIndex}),f.quads=(f.quads||0)+(xY()-E);const S=xY();f.sdf={};const Q=l.height,w=Math.ceil(A.glyphCount/a),M=Math.pow(2,Math.ceil(Math.log2(w*s)));M>Q&&(console.info(`Increasing SDF texture size ${Q}->${M}`),iii(l,i,M),c.dispose()),Promise.all(I.map(k=>qJt(k,A,t.gpuAccelerateSDF).then(({timing:R})=>{f.sdf[k.atlasIndex]=R}))).then(()=>{I.length&&!A.contextLost&&(XJt(A),c.needsUpdate=!0),f.sdfTotal=xY()-S,f.total=xY()-n,e(Object.freeze({parameters:t,sdfTexture:c,sdfGlyphSize:s,sdfExponent:r,glyphBounds:C,glyphAtlasIndices:h,glyphColors:g.glyphColors,caretPositions:g.caretPositions,chunkedBounds:g.chunkedBounds,ascender:g.ascender,descender:g.descender,lineHeight:g.lineHeight,capHeight:g.capHeight,xHeight:g.xHeight,topBaseline:g.topBaseline,blockBounds:g.blockBounds,visibleBounds:g.visibleBounds,timings:g.timings}))})}),Promise.resolve().then(()=>{A.contextLost||oii(l)})}function qJt({path:t,atlasIndex:e,sdfViewBox:n},{sdfGlyphSize:o,sdfCanvas:i,contextLost:r},s){if(r)return Promise.resolve({timing:-1});const{textureWidth:a,sdfExponent:A}=AX,c=Math.max(n[2]-n[0],n[3]-n[1]),l=Math.floor(e/4),u=l%(a/o)*o,g=Math.floor(l/(a/o))*o,h=e%4;return qoi(o,o,t,n,c,A,i,u,g,h,s)}function aii(t){const e=t.sdfCanvas;e.addEventListener("webglcontextlost",n=>{console.log("Context Lost",n),n.preventDefault(),t.contextLost=!0}),e.addEventListener("webglcontextrestored",n=>{console.log("Context Restored",n),t.contextLost=!1;const o=[];t.glyphsByFont.forEach(i=>{i.forEach(r=>{o.push(qJt(r,t,!0))})}),Promise.all(o).then(()=>{XJt(t),t.sdfTexture.needsUpdate=!0})})}function Aii(t,e){for(let n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}let Che;function cii(t){return Che||(Che=typeof document>"u"?{}:document.createElement("a")),Che.href=t,Che.href}function XJt(t){if(typeof createImageBitmap!="function"){console.info("Safari<15: applying SDF canvas workaround");const{sdfCanvas:e,sdfTexture:n}=t,{width:o,height:i}=e,r=t.sdfCanvas.getContext("webgl");let s=n.image.data;(!s||s.length!==o*i*4)&&(s=new Uint8Array(o*i*4),n.image={width:o,height:i,data:s},n.flipY=!1,n.isDataTexture=!0),r.readPixels(0,0,o,i,r.RGBA,r.UNSIGNED_BYTE,s)}}const ZJt=yY({name:"Typesetter",dependencies:[yY({name:"Typesetter",dependencies:[$oi,joi,Toi],init(t,e,n){return t(e,n())}})],init(t){return function(e){return new Promise(n=>{t.typeset(e,n)})}},getTransferables(t){const e=[];for(let n in t)t[n]&&t[n].buffer&&e.push(t[n].buffer);return e}});ZJt.onMainThread;const eWt={};function lii(t){let e=eWt[t];return e||(e=eWt[t]=new VB(1,1,t,t).translate(.5,.5,0)),e}const uii="aTroikaGlyphBounds",tWt="aTroikaGlyphIndex",gii="aTroikaGlyphColor";class dii extends jti{constructor(){super(),this.detail=1,this.curveRadius=0,this.groups=[{start:0,count:1/0,materialIndex:0},{start:0,count:1/0,materialIndex:1}],this.boundingSphere=new GB,this.boundingBox=new e2}computeBoundingSphere(){}computeBoundingBox(){}set detail(e){if(e!==this._detail){this._detail=e,(typeof e!="number"||e<1)&&(e=1);let n=lii(e);["position","normal","uv"].forEach(o=>{this.attributes[o]=n.attributes[o].clone()}),this.setIndex(n.getIndex().clone())}}get detail(){return this._detail}set curveRadius(e){e!==this._curveRadius&&(this._curveRadius=e,this._updateBounds())}get curveRadius(){return this._curveRadius}updateGlyphs(e,n,o,i,r){this.updateAttributeData(uii,e,4),this.updateAttributeData(tWt,n,1),this.updateAttributeData(gii,r,3),this._blockBounds=o,this._chunkedBounds=i,this.instanceCount=n.length,this._updateBounds()}_updateBounds(){const e=this._blockBounds;if(e){const{curveRadius:n,boundingBox:o}=this;if(n){const{PI:i,floor:r,min:s,max:a,sin:A,cos:c}=Math,l=i/2,u=i*2,g=Math.abs(n),h=e[0]/g,d=e[2]/g,p=r((h+l)/u)!==r((d+l)/u)?-g:s(A(h)*g,A(d)*g),m=r((h-l)/u)!==r((d-l)/u)?g:a(A(h)*g,A(d)*g),_=r((h+i)/u)!==r((d+i)/u)?g*2:a(g-c(h)*g,g-c(d)*g);o.min.set(p,e[1],n<0?-_:0),o.max.set(m,e[3],n<0?0:_)}else o.min.set(e[0],e[1],0),o.max.set(e[2],e[3],0);o.getBoundingSphere(this.boundingSphere)}}applyClipRect(e){let n=this.getAttribute(tWt).count,o=this._chunkedBounds;if(o)for(let i=o.length;i--;){n=o[i].end;let r=o[i].rect;if(r[1]<e.w&&r[3]>e.y&&r[0]<e.z&&r[2]>e.x)break}this.instanceCount=n}updateAttributeData(e,n,o){const i=this.getAttribute(e);n?i&&i.array.length===n.length?(i.array.set(n),i.needsUpdate=!0):(this.setAttribute(e,new Xde(n,o)),delete this._maxInstanceCount,this.dispose()):i&&this.deleteAttribute(e)}}const hii=`
uniform vec2 uTroikaSDFTextureSize;
uniform float uTroikaSDFGlyphSize;
uniform vec4 uTroikaTotalBounds;
uniform vec4 uTroikaClipRect;
uniform mat3 uTroikaOrient;
uniform bool uTroikaUseGlyphColors;
uniform float uTroikaEdgeOffset;
uniform float uTroikaBlurRadius;
uniform vec2 uTroikaPositionOffset;
uniform float uTroikaCurveRadius;
attribute vec4 aTroikaGlyphBounds;
attribute float aTroikaGlyphIndex;
attribute vec3 aTroikaGlyphColor;
varying vec2 vTroikaGlyphUV;
varying vec4 vTroikaTextureUVBounds;
varying float vTroikaTextureChannel;
varying vec3 vTroikaGlyphColor;
varying vec2 vTroikaGlyphDimensions;
`,pii=`
vec4 bounds = aTroikaGlyphBounds;
bounds.xz += uTroikaPositionOffset.x;
bounds.yw -= uTroikaPositionOffset.y;

vec4 outlineBounds = vec4(
  bounds.xy - uTroikaEdgeOffset - uTroikaBlurRadius,
  bounds.zw + uTroikaEdgeOffset + uTroikaBlurRadius
);
vec4 clippedBounds = vec4(
  clamp(outlineBounds.xy, uTroikaClipRect.xy, uTroikaClipRect.zw),
  clamp(outlineBounds.zw, uTroikaClipRect.xy, uTroikaClipRect.zw)
);

vec2 clippedXY = (mix(clippedBounds.xy, clippedBounds.zw, position.xy) - bounds.xy) / (bounds.zw - bounds.xy);

position.xy = mix(bounds.xy, bounds.zw, clippedXY);

uv = (position.xy - uTroikaTotalBounds.xy) / (uTroikaTotalBounds.zw - uTroikaTotalBounds.xy);

float rad = uTroikaCurveRadius;
if (rad != 0.0) {
  float angle = position.x / rad;
  position.xz = vec2(sin(angle) * rad, rad - cos(angle) * rad);
  normal.xz = vec2(sin(angle), cos(angle));
}
  
position = uTroikaOrient * position;
normal = uTroikaOrient * normal;

vTroikaGlyphUV = clippedXY.xy;
vTroikaGlyphDimensions = vec2(bounds[2] - bounds[0], bounds[3] - bounds[1]);


float txCols = uTroikaSDFTextureSize.x / uTroikaSDFGlyphSize;
vec2 txUvPerSquare = uTroikaSDFGlyphSize / uTroikaSDFTextureSize;
vec2 txStartUV = txUvPerSquare * vec2(
  mod(floor(aTroikaGlyphIndex / 4.0), txCols),
  floor(floor(aTroikaGlyphIndex / 4.0) / txCols)
);
vTroikaTextureUVBounds = vec4(txStartUV, vec2(txStartUV) + txUvPerSquare);
vTroikaTextureChannel = mod(aTroikaGlyphIndex, 4.0);
`,mii=`
uniform sampler2D uTroikaSDFTexture;
uniform vec2 uTroikaSDFTextureSize;
uniform float uTroikaSDFGlyphSize;
uniform float uTroikaSDFExponent;
uniform float uTroikaEdgeOffset;
uniform float uTroikaFillOpacity;
uniform float uTroikaBlurRadius;
uniform vec3 uTroikaStrokeColor;
uniform float uTroikaStrokeWidth;
uniform float uTroikaStrokeOpacity;
uniform bool uTroikaSDFDebug;
varying vec2 vTroikaGlyphUV;
varying vec4 vTroikaTextureUVBounds;
varying float vTroikaTextureChannel;
varying vec2 vTroikaGlyphDimensions;

float troikaSdfValueToSignedDistance(float alpha) {
  // Inverse of exponential encoding in webgl-sdf-generator
  
  float maxDimension = max(vTroikaGlyphDimensions.x, vTroikaGlyphDimensions.y);
  float absDist = (1.0 - pow(2.0 * (alpha > 0.5 ? 1.0 - alpha : alpha), 1.0 / uTroikaSDFExponent)) * maxDimension;
  float signedDist = absDist * (alpha > 0.5 ? -1.0 : 1.0);
  return signedDist;
}

float troikaGlyphUvToSdfValue(vec2 glyphUV) {
  vec2 textureUV = mix(vTroikaTextureUVBounds.xy, vTroikaTextureUVBounds.zw, glyphUV);
  vec4 rgba = texture2D(uTroikaSDFTexture, textureUV);
  float ch = floor(vTroikaTextureChannel + 0.5); //NOTE: can't use round() in WebGL1
  return ch == 0.0 ? rgba.r : ch == 1.0 ? rgba.g : ch == 2.0 ? rgba.b : rgba.a;
}

float troikaGlyphUvToDistance(vec2 uv) {
  return troikaSdfValueToSignedDistance(troikaGlyphUvToSdfValue(uv));
}

float troikaGetAADist() {
  
  #if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300
  return length(fwidth(vTroikaGlyphUV * vTroikaGlyphDimensions)) * 0.5;
  #else
  return vTroikaGlyphDimensions.x / 64.0;
  #endif
}

float troikaGetFragDistValue() {
  vec2 clampedGlyphUV = clamp(vTroikaGlyphUV, 0.5 / uTroikaSDFGlyphSize, 1.0 - 0.5 / uTroikaSDFGlyphSize);
  float distance = troikaGlyphUvToDistance(clampedGlyphUV);
 
  // Extrapolate distance when outside bounds:
  distance += clampedGlyphUV == vTroikaGlyphUV ? 0.0 : 
    length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions);

  

  return distance;
}

float troikaGetEdgeAlpha(float distance, float distanceOffset, float aaDist) {
  #if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL)
  float alpha = step(-distanceOffset, -distance);
  #else

  float alpha = smoothstep(
    distanceOffset + aaDist,
    distanceOffset - aaDist,
    distance
  );
  #endif

  return alpha;
}
`,_ii=`
float aaDist = troikaGetAADist();
float fragDistance = troikaGetFragDistValue();
float edgeAlpha = uTroikaSDFDebug ?
  troikaGlyphUvToSdfValue(vTroikaGlyphUV) :
  troikaGetEdgeAlpha(fragDistance, uTroikaEdgeOffset, max(aaDist, uTroikaBlurRadius));

#if !defined(IS_DEPTH_MATERIAL) && !defined(IS_DISTANCE_MATERIAL)
vec4 fillRGBA = gl_FragColor;
fillRGBA.a *= uTroikaFillOpacity;
vec4 strokeRGBA = uTroikaStrokeWidth == 0.0 ? fillRGBA : vec4(uTroikaStrokeColor, uTroikaStrokeOpacity);
if (fillRGBA.a == 0.0) fillRGBA.rgb = strokeRGBA.rgb;
gl_FragColor = mix(fillRGBA, strokeRGBA, smoothstep(
  -uTroikaStrokeWidth - aaDist,
  -uTroikaStrokeWidth + aaDist,
  fragDistance
));
gl_FragColor.a *= edgeAlpha;
#endif

if (edgeAlpha == 0.0) {
  discard;
}
`;function fii(t){const e=wke(t,{chained:!0,extensions:{derivatives:!0},uniforms:{uTroikaSDFTexture:{value:null},uTroikaSDFTextureSize:{value:new ni},uTroikaSDFGlyphSize:{value:0},uTroikaSDFExponent:{value:0},uTroikaTotalBounds:{value:new ru(0,0,0,0)},uTroikaClipRect:{value:new ru(0,0,0,0)},uTroikaEdgeOffset:{value:0},uTroikaFillOpacity:{value:1},uTroikaPositionOffset:{value:new ni},uTroikaCurveRadius:{value:0},uTroikaBlurRadius:{value:0},uTroikaStrokeWidth:{value:0},uTroikaStrokeColor:{value:new Vi},uTroikaStrokeOpacity:{value:1},uTroikaOrient:{value:new HA},uTroikaUseGlyphColors:{value:!0},uTroikaSDFDebug:{value:!1}},vertexDefs:hii,vertexTransform:pii,fragmentDefs:mii,fragmentColorTransform:_ii,customRewriter({vertexShader:n,fragmentShader:o}){let i=/\buniform\s+vec3\s+diffuse\b/;return i.test(o)&&(o=o.replace(i,"varying vec3 vTroikaGlyphColor").replace(/\bdiffuse\b/g,"vTroikaGlyphColor"),i.test(n)||(n=n.replace(GJt,`uniform vec3 diffuse;
$&
vTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse;
`))),{vertexShader:n,fragmentShader:o}}});return e.transparent=!0,e.forceSinglePass=!0,Object.defineProperties(e,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),e}const Mke=new fE({color:16777215,side:r_,transparent:!0}),nWt=8421504,oWt=new va,yhe=new jt,Dke=new jt,cX=[],Iii=new jt,Nke="+x+y";function iWt(t){return Array.isArray(t)?t[0]:t}let rWt=()=>{const t=new Er(new VB(1,1),Mke);return rWt=()=>t,t},sWt=()=>{const t=new Er(new VB(1,1,32,1),Mke);return sWt=()=>t,t};const Cii={type:"syncstart"},yii={type:"synccomplete"},aWt=["font","fontSize","fontStyle","fontWeight","lang","letterSpacing","lineHeight","maxWidth","overflowWrap","text","direction","textAlign","textIndent","whiteSpace","anchorX","anchorY","colorRanges","sdfGlyphSize"],xii=aWt.concat("material","color","depthOffset","clipRect","curveRadius","orientation","glyphGeometryDetail");let Rke=class extends Er{constructor(){const e=new dii;super(e,null),this.text="",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction="auto",this.font=null,this.unicodeFontsURL=null,this.fontSize=.1,this.fontWeight="normal",this.fontStyle="normal",this.lang=null,this.letterSpacing=0,this.lineHeight="normal",this.maxWidth=1/0,this.overflowWrap="normal",this.textAlign="left",this.textIndent=0,this.whiteSpace="normal",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=nWt,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=Nke,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(e){this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(e):(this._isSyncing=!0,this.dispatchEvent(Cii),sii({text:this.text,font:this.font,lang:this.lang,fontSize:this.fontSize||.1,fontWeight:this.fontWeight||"normal",fontStyle:this.fontStyle||"normal",letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||"normal",maxWidth:this.maxWidth,direction:this.direction||"auto",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF,unicodeFontsURL:this.unicodeFontsURL},n=>{this._isSyncing=!1,this._textRenderInfo=n,this.geometry.updateGlyphs(n.glyphBounds,n.glyphAtlasIndices,n.blockBounds,n.chunkedBounds,n.glyphColors);const o=this._queuedSyncs;o&&(this._queuedSyncs=null,this._needsSync=!0,this.sync(()=>{o.forEach(i=>i&&i())})),this.dispatchEvent(yii),e&&e()})))}onBeforeRender(e,n,o,i,r,s){this.sync(),r.isTroikaTextMaterial&&this._prepareForRender(r)}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}createDerivedMaterial(e){return fii(e)}get material(){let e=this._derivedMaterial;const n=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=Mke.clone());if((!e||!e.isDerivedFrom(n))&&(e=this._derivedMaterial=this.createDerivedMaterial(n),n.addEventListener("dispose",function o(){n.removeEventListener("dispose",o),e.dispose()})),this.hasOutline()){let o=e._outlineMtl;return o||(o=e._outlineMtl=Object.create(e,{id:{value:e.id+.1}}),o.isTextOutlineMaterial=!0,o.depthWrite=!1,o.map=null,e.addEventListener("dispose",function i(){e.removeEventListener("dispose",i),o.dispose()})),[o,e]}else return e}set material(e){e&&e.isTroikaTextMaterial?(this._derivedMaterial=e,this._baseMaterial=e.baseMaterial):this._baseMaterial=e}hasOutline(){return!!(this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY)}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(e){this.geometry.detail=e}get curveRadius(){return this.geometry.curveRadius}set curveRadius(e){this.geometry.curveRadius=e}get customDepthMaterial(){return iWt(this.material).getDepthMaterial()}set customDepthMaterial(e){}get customDistanceMaterial(){return iWt(this.material).getDistanceMaterial()}set customDistanceMaterial(e){}_prepareForRender(e){const n=e.isTextOutlineMaterial,o=e.uniforms,i=this.textRenderInfo;if(i){const{sdfTexture:a,blockBounds:A}=i;o.uTroikaSDFTexture.value=a,o.uTroikaSDFTextureSize.value.set(a.image.width,a.image.height),o.uTroikaSDFGlyphSize.value=i.sdfGlyphSize,o.uTroikaSDFExponent.value=i.sdfExponent,o.uTroikaTotalBounds.value.fromArray(A),o.uTroikaUseGlyphColors.value=!n&&!!i.glyphColors;let c=0,l=0,u=0,g,h,d,p=0,m=0;if(n){let{outlineWidth:f,outlineOffsetX:I,outlineOffsetY:C,outlineBlur:y,outlineOpacity:x}=this;c=this._parsePercent(f)||0,l=Math.max(0,this._parsePercent(y)||0),g=x,p=this._parsePercent(I)||0,m=this._parsePercent(C)||0}else u=Math.max(0,this._parsePercent(this.strokeWidth)||0),u&&(d=this.strokeColor,o.uTroikaStrokeColor.value.set(d??nWt),h=this.strokeOpacity,h==null&&(h=1)),g=this.fillOpacity;o.uTroikaEdgeOffset.value=c,o.uTroikaPositionOffset.value.set(p,m),o.uTroikaBlurRadius.value=l,o.uTroikaStrokeWidth.value=u,o.uTroikaStrokeOpacity.value=h,o.uTroikaFillOpacity.value=g??1,o.uTroikaCurveRadius.value=this.curveRadius||0;let _=this.clipRect;if(_&&Array.isArray(_)&&_.length===4)o.uTroikaClipRect.value.fromArray(_);else{const f=(this.fontSize||.1)*100;o.uTroikaClipRect.value.set(A[0]-f,A[1]-f,A[2]+f,A[3]+f)}this.geometry.applyClipRect(o.uTroikaClipRect.value)}o.uTroikaSDFDebug.value=!!this.debugSDF,e.polygonOffset=!!this.depthOffset,e.polygonOffsetFactor=e.polygonOffsetUnits=this.depthOffset||0;const r=n?this.outlineColor||0:this.color;if(r==null)delete e.color;else{const a=e.hasOwnProperty("color")?e.color:e.color=new Vi;(r!==a._input||typeof r=="object")&&a.set(a._input=r)}let s=this.orientation||Nke;if(s!==e._orientation){let a=o.uTroikaOrient.value;s=s.replace(/[^-+xyz]/g,"");let A=s!==Nke&&s.match(/^([-+])([xyz])([-+])([xyz])$/);if(A){let[,c,l,u,g]=A;yhe.set(0,0,0)[l]=c==="-"?1:-1,Dke.set(0,0,0)[g]=u==="-"?-1:1,oWt.lookAt(Iii,yhe.cross(Dke),Dke),a.setFromMatrix4(oWt)}else a.identity();e._orientation=s}}_parsePercent(e){if(typeof e=="string"){let n=e.match(/^(-?[\d.]+)%$/),o=n?parseFloat(n[1]):NaN;e=(isNaN(o)?0:o/100)*this.fontSize}return e}localPositionToTextCoords(e,n=new ni){n.copy(e);const o=this.curveRadius;return o&&(n.x=Math.atan2(e.x,Math.abs(o)-Math.abs(e.z))*Math.abs(o)),n}worldPositionToTextCoords(e,n=new ni){return yhe.copy(e),this.localPositionToTextCoords(this.worldToLocal(yhe),n)}raycast(e,n){const{textRenderInfo:o,curveRadius:i}=this;if(o){const r=o.blockBounds,s=i?sWt():rWt(),a=s.geometry,{position:A,uv:c}=a.attributes;for(let l=0;l<c.count;l++){let u=r[0]+c.getX(l)*(r[2]-r[0]);const g=r[1]+c.getY(l)*(r[3]-r[1]);let h=0;i&&(h=i-Math.cos(u/i)*i,u=Math.sin(u/i)*i),A.setXYZ(l,u,g,h)}a.boundingSphere=this.geometry.boundingSphere,a.boundingBox=this.geometry.boundingBox,s.matrixWorld=this.matrixWorld,s.material.side=this.material.side,cX.length=0,s.raycast(e,cX);for(let l=0;l<cX.length;l++)cX[l].object=this,n.push(cX[l])}}copy(e){const n=this.geometry;return super.copy(e),this.geometry=n,xii.forEach(o=>{this[o]=e[o]}),this}clone(){return new this.constructor().copy(this)}};aWt.forEach(t=>{const e="_private_"+t;Object.defineProperty(Rke.prototype,t,{get(){return this[e]},set(n){n!==this[e]&&(this[e]=n,this._needsSync=!0)}})}),new e2,new Vi;var Tke,AWt;function la(){return AWt||(AWt=1,Tke=e=>e.flat(1/0)),Tke}var kke,cWt;function Eii(){return cWt||(cWt=1,kke=e=>Object.assign({},e)),kke}var Fke,lWt;function Bii(){return lWt||(lWt=1,Fke=(e,n,o)=>(e[0]=n[0]+o[0],e[1]=n[1]+o[1],e[2]=n[2]+o[2],e[3]=n[3]+o[3],e[4]=n[4]+o[4],e[5]=n[5]+o[5],e[6]=n[6]+o[6],e[7]=n[7]+o[7],e[8]=n[8]+o[8],e[9]=n[9]+o[9],e[10]=n[10]+o[10],e[11]=n[11]+o[11],e[12]=n[12]+o[12],e[13]=n[13]+o[13],e[14]=n[14]+o[14],e[15]=n[15]+o[15],e)),Fke}var Lke,uWt;function Hke(){return uWt||(uWt=1,Lke=()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),Lke}var Oke,gWt;function bii(){if(gWt)return Oke;gWt=1;const t=Hke();return Oke=n=>{const o=t();return o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o[4]=n[4],o[5]=n[5],o[6]=n[6],o[7]=n[7],o[8]=n[8],o[9]=n[9],o[10]=n[10],o[11]=n[11],o[12]=n[12],o[13]=n[13],o[14]=n[14],o[15]=n[15],o},Oke}var Gke,dWt;function hWt(){return dWt||(dWt=1,Gke=(e,n)=>(e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],e)),Gke}var Yke,pWt;function Sii(){return pWt||(pWt=1,Yke=(e,n)=>{const o=n[0],i=n[1],r=n[2],s=n[3],a=n[4],A=n[5],c=n[6],l=n[7],u=n[8],g=n[9],h=n[10],d=n[11],p=n[12],m=n[13],_=n[14],f=n[15],I=o*A-i*a,C=o*c-r*a,y=o*l-s*a,x=i*c-r*A,E=i*l-s*A,B=r*l-s*c,S=u*m-g*p,Q=u*_-h*p,w=u*f-d*p,M=g*_-h*m,k=g*f-d*m,R=h*f-d*_;let F=I*R-C*k+y*M+x*w-E*Q+B*S;return F?(F=1/F,e[0]=(A*R-c*k+l*M)*F,e[1]=(r*k-i*R-s*M)*F,e[2]=(m*B-_*E+f*x)*F,e[3]=(h*E-g*B-d*x)*F,e[4]=(c*w-a*R-l*Q)*F,e[5]=(o*R-r*w+s*Q)*F,e[6]=(_*y-p*B-f*C)*F,e[7]=(u*B-h*y+d*C)*F,e[8]=(a*k-A*w+l*S)*F,e[9]=(i*w-o*k-s*S)*F,e[10]=(p*E-m*y+f*I)*F,e[11]=(g*y-u*E-d*I)*F,e[12]=(A*Q-a*M-c*S)*F,e[13]=(o*M-i*Q+r*S)*F,e[14]=(m*C-p*x-_*I)*F,e[15]=(u*x-g*C+h*I)*F,e):null}),Yke}var Uke,mWt;function Qii(){return mWt||(mWt=1,Uke=(e,n)=>e[0]===n[0]&&e[1]===n[1]&&e[2]===n[2]&&e[3]===n[3]&&e[4]===n[4]&&e[5]===n[5]&&e[6]===n[6]&&e[7]===n[7]&&e[8]===n[8]&&e[9]===n[9]&&e[10]===n[10]&&e[11]===n[11]&&e[12]===n[12]&&e[13]===n[13]&&e[14]===n[14]&&e[15]===n[15]),Uke}var Kke,_Wt;function pc(){if(_Wt)return Kke;_Wt=1;const t=1e5,e=1e-5,n=1e-13,o=Math.PI*2;return Kke={EPS:e,NEPS:n,TAU:o,spatialResolution:t},Kke}var Vke,fWt;function dI(){if(fWt)return Vke;fWt=1;const{NEPS:t}=pc(),e=i=>Math.abs(i)<t?0:i;return Vke={sin:i=>e(Math.sin(i)),cos:i=>e(Math.cos(i))},Vke}var zke,IWt;function CWt(){return IWt||(IWt=1,zke=e=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)),zke}var Jke,yWt;function xWt(){if(yWt)return Jke;yWt=1;const{EPS:t}=pc(),{sin:e,cos:n}=dI(),o=CWt();return Jke=(r,s,a)=>{let[A,c,l]=a;const u=A*A+c*c+l*l;if(Math.abs(u)<t)return o(r);const g=1/Math.sqrt(u);A*=g,c*=g,l*=g;const h=e(s),d=n(s),p=1-d;return r[0]=A*A*p+d,r[1]=c*A*p+l*h,r[2]=l*A*p-c*h,r[3]=0,r[4]=A*c*p-l*h,r[5]=c*c*p+d,r[6]=l*c*p+A*h,r[7]=0,r[8]=A*l*p+c*h,r[9]=c*l*p-A*h,r[10]=l*l*p+d,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r},Jke}var Wke,EWt;function vii(){return EWt||(EWt=1,Wke=(e,n)=>(e[0]=n[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=n[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)),Wke}var jke,BWt;function wii(){if(BWt)return jke;BWt=1;const{sin:t,cos:e}=dI();return jke=(o,i,r,s)=>{const a=t(i),A=e(i),c=t(r),l=e(r),u=t(s),g=e(s);return o[0]=l*A,o[1]=l*a,o[2]=-c,o[3]=0,o[4]=u*c*A-g*a,o[5]=g*A+u*c*a,o[6]=u*l,o[7]=0,o[8]=u*a+g*c*A,o[9]=g*c*a-u*A,o[10]=g*l,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},jke}var $ke,bWt;function Pii(){return bWt||(bWt=1,$ke=(e,n)=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e)),$ke}var qke,SWt;function Mii(){if(SWt)return qke;SWt=1;const t=Hke();return qke=(n,o,i,r,s,a,A,c,l,u,g,h,d,p,m,_)=>{const f=t();return f[0]=n,f[1]=o,f[2]=i,f[3]=r,f[4]=s,f[5]=a,f[6]=A,f[7]=c,f[8]=l,f[9]=u,f[10]=g,f[11]=h,f[12]=d,f[13]=p,f[14]=m,f[15]=_,f},qke}var Xke,QWt;function vWt(){return QWt||(QWt=1,Xke=(e,n)=>(e[0]=Math.abs(n[0]),e[1]=Math.abs(n[1]),e[2]=Math.abs(n[2]),e)),Xke}var Zke,wWt;function PWt(){return wWt||(wWt=1,Zke=(e,n,o)=>(e[0]=n[0]+o[0],e[1]=n[1]+o[1],e[2]=n[2]+o[2],e)),Zke}var eFe,MWt;function xhe(){return MWt||(MWt=1,eFe=(e,n)=>e[0]*n[0]+e[1]*n[1]+e[2]*n[2]),eFe}var tFe,DWt;function Dii(){if(DWt)return tFe;DWt=1;const t=xhe();return tFe=(n,o)=>{const i=n[0],r=n[1],s=n[2],a=o[0],A=o[1],c=o[2],l=Math.sqrt(i*i+r*r+s*s),u=Math.sqrt(a*a+A*A+c*c),g=l*u,h=g&&t(n,o)/g;return Math.acos(Math.min(Math.max(h,-1),1))},tFe}var nFe,NWt;function Ehe(){return NWt||(NWt=1,nFe=()=>[0,0,0]),nFe}var oFe,RWt;function Nii(){if(RWt)return oFe;RWt=1;const t=Ehe();return oFe=n=>{const o=t();return o[0]=n[0],o[1]=n[1],o[2]=n[2],o},oFe}var iFe,TWt;function kWt(){return TWt||(TWt=1,iFe=(e,n)=>(e[0]=n[0],e[1]=n[1],e[2]=n[2],e)),iFe}var rFe,FWt;function lX(){return FWt||(FWt=1,rFe=(e,n,o)=>{const i=n[0],r=n[1],s=n[2],a=o[0],A=o[1],c=o[2];return e[0]=r*c-s*A,e[1]=s*a-i*c,e[2]=i*A-r*a,e}),rFe}var sFe,LWt;function HWt(){return LWt||(LWt=1,sFe=(e,n)=>{const o=n[0]-e[0],i=n[1]-e[1],r=n[2]-e[2];return Math.sqrt(o*o+i*i+r*r)}),sFe}var aFe,OWt;function Rii(){return OWt||(OWt=1,aFe=(e,n,o)=>(e[0]=n[0]/o[0],e[1]=n[1]/o[1],e[2]=n[2]/o[2],e)),aFe}var AFe,GWt;function Tii(){return GWt||(GWt=1,AFe=(e,n)=>e[0]===n[0]&&e[1]===n[1]&&e[2]===n[2]),AFe}var cFe,YWt;function kii(){return YWt||(YWt=1,cFe=(e,n)=>(e[0]=n,e[1]=n,e[2]=n,e)),cFe}var lFe,UWt;function Fii(){if(UWt)return lFe;UWt=1;const t=Ehe();return lFe=(n,o,i)=>{const r=t();return r[0]=n,r[1]=o,r[2]=i,r},lFe}var uFe,KWt;function Lii(){return KWt||(KWt=1,uFe=(e,n,o=0)=>(e[0]=n[0],e[1]=n[1],e[2]=o,e)),uFe}var gFe,VWt;function zWt(){return VWt||(VWt=1,gFe=e=>{const n=e[0],o=e[1],i=e[2];return Math.sqrt(n*n+o*o+i*i)}),gFe}var dFe,JWt;function Hii(){return JWt||(JWt=1,dFe=(e,n,o,i)=>(e[0]=n[0]+i*(o[0]-n[0]),e[1]=n[1]+i*(o[1]-n[1]),e[2]=n[2]+i*(o[2]-n[2]),e)),dFe}var hFe,WWt;function jWt(){return WWt||(WWt=1,hFe=(e,n,o)=>(e[0]=Math.max(n[0],o[0]),e[1]=Math.max(n[1],o[1]),e[2]=Math.max(n[2],o[2]),e)),hFe}var pFe,$Wt;function qWt(){return $Wt||($Wt=1,pFe=(e,n,o)=>(e[0]=Math.min(n[0],o[0]),e[1]=Math.min(n[1],o[1]),e[2]=Math.min(n[2],o[2]),e)),pFe}var mFe,XWt;function Oii(){return XWt||(XWt=1,mFe=(e,n,o)=>(e[0]=n[0]*o[0],e[1]=n[1]*o[1],e[2]=n[2]*o[2],e)),mFe}var _Fe,ZWt;function Gii(){return ZWt||(ZWt=1,_Fe=(e,n)=>(e[0]=-n[0],e[1]=-n[1],e[2]=-n[2],e)),_Fe}var fFe,ejt;function IFe(){return ejt||(ejt=1,fFe=(e,n)=>{const o=n[0],i=n[1],r=n[2];let s=o*o+i*i+r*r;return s>0&&(s=1/Math.sqrt(s)),e[0]=o*s,e[1]=i*s,e[2]=r*s,e}),fFe}var CFe,tjt;function Yii(){if(tjt)return CFe;tjt=1;const t=vWt(),e=Ehe(),n=lX();return CFe=(i,r)=>{const s=t(e(),r),a=0+(s[0]<s[1]&&s[0]<s[2]),A=0+(s[1]<=s[0]&&s[1]<s[2]),c=0+(s[2]<=s[0]&&s[2]<=s[1]);return n(i,r,[a,A,c])},CFe}var yFe,njt;function Uii(){return njt||(njt=1,yFe=(e,n,o,i)=>{const r=[],s=[];return r[0]=n[0]-o[0],r[1]=n[1]-o[1],r[2]=n[2]-o[2],s[0]=r[0],s[1]=r[1]*Math.cos(i)-r[2]*Math.sin(i),s[2]=r[1]*Math.sin(i)+r[2]*Math.cos(i),e[0]=s[0]+o[0],e[1]=s[1]+o[1],e[2]=s[2]+o[2],e}),yFe}var xFe,ojt;function Kii(){return ojt||(ojt=1,xFe=(e,n,o,i)=>{const r=[],s=[];return r[0]=n[0]-o[0],r[1]=n[1]-o[1],r[2]=n[2]-o[2],s[0]=r[2]*Math.sin(i)+r[0]*Math.cos(i),s[1]=r[1],s[2]=r[2]*Math.cos(i)-r[0]*Math.sin(i),e[0]=s[0]+o[0],e[1]=s[1]+o[1],e[2]=s[2]+o[2],e}),xFe}var EFe,ijt;function Vii(){return ijt||(ijt=1,EFe=(e,n,o,i)=>{const r=[],s=[];return r[0]=n[0]-o[0],r[1]=n[1]-o[1],s[0]=r[0]*Math.cos(i)-r[1]*Math.sin(i),s[1]=r[0]*Math.sin(i)+r[1]*Math.cos(i),e[0]=s[0]+o[0],e[1]=s[1]+o[1],e[2]=n[2],e}),EFe}var BFe,rjt;function sjt(){return rjt||(rjt=1,BFe=(e,n,o)=>(e[0]=n[0]*o,e[1]=n[1]*o,e[2]=n[2]*o,e)),BFe}var bFe,ajt;function zii(){return ajt||(ajt=1,bFe=(e,n,o)=>(e[0]=Math.round(n[0]/o)*o+0,e[1]=Math.round(n[1]/o)*o+0,e[2]=Math.round(n[2]/o)*o+0,e)),bFe}var SFe,Ajt;function cjt(){return Ajt||(Ajt=1,SFe=(e,n)=>{const o=n[0]-e[0],i=n[1]-e[1],r=n[2]-e[2];return o*o+i*i+r*r}),SFe}var QFe,ljt;function ujt(){return ljt||(ljt=1,QFe=e=>{const n=e[0],o=e[1],i=e[2];return n*n+o*o+i*i}),QFe}var vFe,gjt;function Bhe(){return gjt||(gjt=1,vFe=(e,n,o)=>(e[0]=n[0]-o[0],e[1]=n[1]-o[1],e[2]=n[2]-o[2],e)),vFe}var wFe,djt;function Jii(){return djt||(djt=1,wFe=e=>`[${e[0].toFixed(7)}, ${e[1].toFixed(7)}, ${e[2].toFixed(7)}]`),wFe}var PFe,hjt;function Wii(){return hjt||(hjt=1,PFe=(e,n,o)=>{const i=n[0],r=n[1],s=n[2];let a=o[3]*i+o[7]*r+o[11]*s+o[15];return a=a||1,e[0]=(o[0]*i+o[4]*r+o[8]*s+o[12])/a,e[1]=(o[1]*i+o[5]*r+o[9]*s+o[13])/a,e[2]=(o[2]*i+o[6]*r+o[10]*s+o[14])/a,e}),PFe}var MFe,pjt;function jr(){return pjt||(pjt=1,MFe={abs:vWt(),add:PWt(),angle:Dii(),clone:Nii(),copy:kWt(),create:Ehe(),cross:lX(),distance:HWt(),divide:Rii(),dot:xhe(),equals:Tii(),fromScalar:kii(),fromValues:Fii(),fromVec2:Lii(),length:zWt(),lerp:Hii(),max:jWt(),min:qWt(),multiply:Oii(),negate:Gii(),normalize:IFe(),orthogonal:Yii(),rotateX:Uii(),rotateY:Kii(),rotateZ:Vii(),scale:sjt(),snap:zii(),squaredDistance:cjt(),squaredLength:ujt(),subtract:Bhe(),toString:Jii(),transform:Wii()}),MFe}var DFe,mjt;function jii(){if(mjt)return DFe;mjt=1;const t=jr(),e=xWt();return DFe=(o,i,r)=>{const s=t.normalize(t.create(),i),a=t.normalize(t.create(),r),A=t.cross(t.create(),a,s),c=t.dot(a,s);if(c===-1)return e(o,Math.PI,t.orthogonal(A,s));const l=1/(1+c);return o[0]=A[0]*A[0]*l+c,o[1]=A[1]*A[0]*l-A[2],o[2]=A[2]*A[0]*l+A[1],o[3]=0,o[4]=A[0]*A[1]*l+A[2],o[5]=A[1]*A[1]*l+c,o[6]=A[2]*A[1]*l-A[0],o[7]=0,o[8]=A[0]*A[2]*l-A[1],o[9]=A[1]*A[2]*l+A[0],o[10]=A[2]*A[2]*l+c,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},DFe}var NFe,_jt;function $ii(){if(_jt)return NFe;_jt=1;const{sin:t,cos:e}=dI();return NFe=(o,i)=>{const r=t(i),s=e(i);return o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=r,o[7]=0,o[8]=0,o[9]=-r,o[10]=s,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},NFe}var RFe,fjt;function qii(){if(fjt)return RFe;fjt=1;const{sin:t,cos:e}=dI();return RFe=(o,i)=>{const r=t(i),s=e(i);return o[0]=s,o[1]=0,o[2]=-r,o[3]=0,o[4]=0,o[5]=1,o[6]=0,o[7]=0,o[8]=r,o[9]=0,o[10]=s,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},RFe}var TFe,Ijt;function Xii(){if(Ijt)return TFe;Ijt=1;const{sin:t,cos:e}=dI();return TFe=(o,i)=>{const r=t(i),s=e(i);return o[0]=s,o[1]=r,o[2]=0,o[3]=0,o[4]=-r,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},TFe}var kFe,Cjt;function Zii(){return Cjt||(Cjt=1,kFe=e=>e[0]===1&&e[1]===0&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===1&&e[6]===0&&e[7]===0&&e[8]===0&&e[9]===0&&e[10]===1&&e[11]===0&&e[12]===0&&e[13]===0&&e[14]===0&&e[15]===1),kFe}var FFe,yjt;function eri(){if(yjt)return FFe;yjt=1;const t=n=>e(n[1])&&e(n[2])&&e(n[3])&&e(n[4])&&e(n[6])&&e(n[7])&&e(n[8])&&e(n[9])&&e(n[11])&&n[15]===1,e=n=>Math.abs(n)<Number.EPSILON;return FFe=t,FFe}var LFe,xjt;function tri(){return xjt||(xjt=1,LFe=e=>{const n=e[4]*e[9]-e[8]*e[5],o=e[8]*e[1]-e[0]*e[9],i=e[0]*e[5]-e[4]*e[1];return n*e[2]+o*e[6]+i*e[10]<0}),LFe}var HFe,Ejt;function nri(){return Ejt||(Ejt=1,HFe=(e,n)=>{const[o,i,r,s]=n;return e[0]=1-2*o*o,e[1]=-2*i*o,e[2]=-2*r*o,e[3]=0,e[4]=-2*o*i,e[5]=1-2*i*i,e[6]=-2*r*i,e[7]=0,e[8]=-2*o*r,e[9]=-2*i*r,e[10]=1-2*r*r,e[11]=0,e[12]=2*o*s,e[13]=2*i*s,e[14]=2*r*s,e[15]=1,e}),HFe}var OFe,Bjt;function ori(){return Bjt||(Bjt=1,OFe=(e,n,o)=>{const i=n[0],r=n[1],s=n[2],a=n[3],A=n[4],c=n[5],l=n[6],u=n[7],g=n[8],h=n[9],d=n[10],p=n[11],m=n[12],_=n[13],f=n[14],I=n[15];let C=o[0],y=o[1],x=o[2],E=o[3];return e[0]=C*i+y*A+x*g+E*m,e[1]=C*r+y*c+x*h+E*_,e[2]=C*s+y*l+x*d+E*f,e[3]=C*a+y*u+x*p+E*I,C=o[4],y=o[5],x=o[6],E=o[7],e[4]=C*i+y*A+x*g+E*m,e[5]=C*r+y*c+x*h+E*_,e[6]=C*s+y*l+x*d+E*f,e[7]=C*a+y*u+x*p+E*I,C=o[8],y=o[9],x=o[10],E=o[11],e[8]=C*i+y*A+x*g+E*m,e[9]=C*r+y*c+x*h+E*_,e[10]=C*s+y*l+x*d+E*f,e[11]=C*a+y*u+x*p+E*I,C=o[12],y=o[13],x=o[14],E=o[15],e[12]=C*i+y*A+x*g+E*m,e[13]=C*r+y*c+x*h+E*_,e[14]=C*s+y*l+x*d+E*f,e[15]=C*a+y*u+x*p+E*I,e}),OFe}var GFe,bjt;function iri(){if(bjt)return GFe;bjt=1;const{EPS:t}=pc(),{sin:e,cos:n}=dI(),o=hWt();return GFe=(r,s,a,A)=>{let[c,l,u]=A;const g=c*c+l*l+u*u;if(Math.abs(g)<t)return o(r,s);const h=1/Math.sqrt(g);c*=h,l*=h,u*=h;const d=e(a),p=n(a),m=1-p,_=s[0],f=s[1],I=s[2],C=s[3],y=s[4],x=s[5],E=s[6],B=s[7],S=s[8],Q=s[9],w=s[10],M=s[11],k=c*c*m+p,R=l*c*m+u*d,F=u*c*m-l*d,O=c*l*m-u*d,U=l*l*m+p,Y=u*l*m+c*d,W=c*u*m+l*d,te=l*u*m-c*d,j=u*u*m+p;return r[0]=_*k+y*R+S*F,r[1]=f*k+x*R+Q*F,r[2]=I*k+E*R+w*F,r[3]=C*k+B*R+M*F,r[4]=_*O+y*U+S*Y,r[5]=f*O+x*U+Q*Y,r[6]=I*O+E*U+w*Y,r[7]=C*O+B*U+M*Y,r[8]=_*W+y*te+S*j,r[9]=f*W+x*te+Q*j,r[10]=I*W+E*te+w*j,r[11]=C*W+B*te+M*j,s!==r&&(r[12]=s[12],r[13]=s[13],r[14]=s[14],r[15]=s[15]),r},GFe}var YFe,Sjt;function rri(){if(Sjt)return YFe;Sjt=1;const{sin:t,cos:e}=dI();return YFe=(o,i,r)=>{const s=t(r),a=e(r),A=i[4],c=i[5],l=i[6],u=i[7],g=i[8],h=i[9],d=i[10],p=i[11];return i!==o&&(o[0]=i[0],o[1]=i[1],o[2]=i[2],o[3]=i[3],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15]),o[4]=A*a+g*s,o[5]=c*a+h*s,o[6]=l*a+d*s,o[7]=u*a+p*s,o[8]=g*a-A*s,o[9]=h*a-c*s,o[10]=d*a-l*s,o[11]=p*a-u*s,o},YFe}var UFe,Qjt;function sri(){if(Qjt)return UFe;Qjt=1;const{sin:t,cos:e}=dI();return UFe=(o,i,r)=>{const s=t(r),a=e(r),A=i[0],c=i[1],l=i[2],u=i[3],g=i[8],h=i[9],d=i[10],p=i[11];return i!==o&&(o[4]=i[4],o[5]=i[5],o[6]=i[6],o[7]=i[7],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15]),o[0]=A*a-g*s,o[1]=c*a-h*s,o[2]=l*a-d*s,o[3]=u*a-p*s,o[8]=A*s+g*a,o[9]=c*s+h*a,o[10]=l*s+d*a,o[11]=u*s+p*a,o},UFe}var KFe,vjt;function ari(){if(vjt)return KFe;vjt=1;const{sin:t,cos:e}=dI();return KFe=(o,i,r)=>{const s=t(r),a=e(r),A=i[0],c=i[1],l=i[2],u=i[3],g=i[4],h=i[5],d=i[6],p=i[7];return i!==o&&(o[8]=i[8],o[9]=i[9],o[10]=i[10],o[11]=i[11],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15]),o[0]=A*a+g*s,o[1]=c*a+h*s,o[2]=l*a+d*s,o[3]=u*a+p*s,o[4]=g*a-A*s,o[5]=h*a-c*s,o[6]=d*a-l*s,o[7]=p*a-u*s,o},KFe}var VFe,wjt;function Ari(){return wjt||(wjt=1,VFe=(e,n,o)=>{const i=o[0],r=o[1],s=o[2];return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=n[3]*i,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=n[7]*r,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=n[11]*s,e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],e}),VFe}var zFe,Pjt;function cri(){return Pjt||(Pjt=1,zFe=(e,n,o)=>(e[0]=n[0]-o[0],e[1]=n[1]-o[1],e[2]=n[2]-o[2],e[3]=n[3]-o[3],e[4]=n[4]-o[4],e[5]=n[5]-o[5],e[6]=n[6]-o[6],e[7]=n[7]-o[7],e[8]=n[8]-o[8],e[9]=n[9]-o[9],e[10]=n[10]-o[10],e[11]=n[11]-o[11],e[12]=n[12]-o[12],e[13]=n[13]-o[13],e[14]=n[14]-o[14],e[15]=n[15]-o[15],e)),zFe}var JFe,Mjt;function lri(){return Mjt||(Mjt=1,JFe=e=>e.map(n=>n.toFixed(7)).toString()),JFe}var WFe,Djt;function uri(){return Djt||(Djt=1,WFe=(e,n,o)=>{const i=o[0],r=o[1],s=o[2];let a,A,c,l,u,g,h,d,p,m,_,f;return n===e?(e[12]=n[0]*i+n[4]*r+n[8]*s+n[12],e[13]=n[1]*i+n[5]*r+n[9]*s+n[13],e[14]=n[2]*i+n[6]*r+n[10]*s+n[14],e[15]=n[3]*i+n[7]*r+n[11]*s+n[15]):(a=n[0],A=n[1],c=n[2],l=n[3],u=n[4],g=n[5],h=n[6],d=n[7],p=n[8],m=n[9],_=n[10],f=n[11],e[0]=a,e[1]=A,e[2]=c,e[3]=l,e[4]=u,e[5]=g,e[6]=h,e[7]=d,e[8]=p,e[9]=m,e[10]=_,e[11]=f,e[12]=a*i+u*r+p*s+n[12],e[13]=A*i+g*r+m*s+n[13],e[14]=c*i+h*r+_*s+n[14],e[15]=l*i+d*r+f*s+n[15]),e}),WFe}var jFe,Njt;function Mu(){return Njt||(Njt=1,jFe={add:Bii(),clone:bii(),copy:hWt(),create:Hke(),invert:Sii(),equals:Qii(),fromRotation:xWt(),fromScaling:vii(),fromTaitBryanRotation:wii(),fromTranslation:Pii(),fromValues:Mii(),fromVectorRotation:jii(),fromXRotation:$ii(),fromYRotation:qii(),fromZRotation:Xii(),identity:CWt(),isIdentity:Zii(),isOnlyTransformScale:eri(),isMirroring:tri(),mirrorByPlane:nri(),multiply:ori(),rotate:iri(),rotateX:rri(),rotateY:sri(),rotateZ:ari(),scale:Ari(),subtract:cri(),toString:lri(),translate:uri()}),jFe}var $Fe,Rjt;function bhe(){if(Rjt)return $Fe;Rjt=1;const t=Mu();return $Fe=n=>(n===void 0&&(n=[]),{sides:n,transforms:t.create()}),$Fe}var qFe,Tjt;function gri(){return Tjt||(Tjt=1,qFe=(e,n)=>(e[0]=Math.abs(n[0]),e[1]=Math.abs(n[1]),e)),qFe}var XFe,kjt;function dri(){return kjt||(kjt=1,XFe=(e,n,o)=>(e[0]=n[0]+o[0],e[1]=n[1]+o[1],e)),XFe}var ZFe,Fjt;function eLe(){return Fjt||(Fjt=1,ZFe=e=>Math.atan2(e[1],e[0])),ZFe}var tLe,Ljt;function hri(){return Ljt||(Ljt=1,tLe=eLe()),tLe}var nLe,Hjt;function pri(){if(Hjt)return nLe;Hjt=1;const t=eLe();return nLe=n=>t(n)*57.29577951308232,nLe}var oLe,Ojt;function She(){return Ojt||(Ojt=1,oLe=()=>[0,0]),oLe}var iLe,Gjt;function mri(){if(Gjt)return iLe;Gjt=1;const t=She();return iLe=n=>{const o=t();return o[0]=n[0],o[1]=n[1],o},iLe}var rLe,Yjt;function _ri(){return Yjt||(Yjt=1,rLe=(e,n)=>(e[0]=n[0],e[1]=n[1],e)),rLe}var sLe,Ujt;function fri(){return Ujt||(Ujt=1,sLe=(e,n,o)=>(e[0]=0,e[1]=0,e[2]=n[0]*o[1]-n[1]*o[0],e)),sLe}var aLe,Kjt;function Iri(){return Kjt||(Kjt=1,aLe=(e,n)=>{const o=n[0]-e[0],i=n[1]-e[1];return Math.sqrt(o*o+i*i)}),aLe}var ALe,Vjt;function Cri(){return Vjt||(Vjt=1,ALe=(e,n,o)=>(e[0]=n[0]/o[0],e[1]=n[1]/o[1],e)),ALe}var cLe,zjt;function yri(){return zjt||(zjt=1,cLe=(e,n)=>e[0]*n[0]+e[1]*n[1]),cLe}var lLe,Jjt;function xri(){return Jjt||(Jjt=1,lLe=(e,n)=>e[0]===n[0]&&e[1]===n[1]),lLe}var uLe,Wjt;function jjt(){if(Wjt)return uLe;Wjt=1;const{sin:t,cos:e}=dI();return uLe=(o,i)=>(o[0]=e(i),o[1]=t(i),o),uLe}var gLe,$jt;function Eri(){if($jt)return gLe;$jt=1;const t=jjt();return gLe=(n,o)=>t(n,o*.017453292519943295),gLe}var dLe,qjt;function Bri(){return qjt||(qjt=1,dLe=(e,n)=>(e[0]=n,e[1]=n,e)),dLe}var hLe,Xjt;function bri(){if(Xjt)return hLe;Xjt=1;const t=She();return hLe=(n,o)=>{const i=t();return i[0]=n,i[1]=o,i},hLe}var pLe,Zjt;function Sri(){return Zjt||(Zjt=1,pLe=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1])),pLe}var mLe,e$t;function Qri(){return e$t||(e$t=1,mLe=(e,n,o,i)=>{const r=n[0],s=n[1];return e[0]=r+i*(o[0]-r),e[1]=s+i*(o[1]-s),e}),mLe}var _Le,t$t;function vri(){return t$t||(t$t=1,_Le=(e,n,o)=>(e[0]=Math.max(n[0],o[0]),e[1]=Math.max(n[1],o[1]),e)),_Le}var fLe,n$t;function wri(){return n$t||(n$t=1,fLe=(e,n,o)=>(e[0]=Math.min(n[0],o[0]),e[1]=Math.min(n[1],o[1]),e)),fLe}var ILe,o$t;function Pri(){return o$t||(o$t=1,ILe=(e,n,o)=>(e[0]=n[0]*o[0],e[1]=n[1]*o[1],e)),ILe}var CLe,i$t;function Mri(){return i$t||(i$t=1,CLe=(e,n)=>(e[0]=-n[0],e[1]=-n[1],e)),CLe}var yLe,r$t;function s$t(){return r$t||(r$t=1,yLe=(e,n,o,i)=>{const r=n[0]-o[0],s=n[1]-o[1],a=Math.cos(i),A=Math.sin(i);return e[0]=r*a-s*A+o[0],e[1]=r*A+s*a+o[1],e}),yLe}var xLe,a$t;function Dri(){if(a$t)return xLe;a$t=1;const{TAU:t}=pc(),e=She(),n=s$t();return xLe=(i,r)=>n(i,r,e(),t/4),xLe}var ELe,A$t;function Nri(){return A$t||(A$t=1,ELe=(e,n)=>{const o=n[0],i=n[1];let r=o*o+i*i;return r>0&&(r=1/Math.sqrt(r)),e[0]=o*r,e[1]=i*r,e}),ELe}var BLe,c$t;function Rri(){return c$t||(c$t=1,BLe=(e,n,o)=>(e[0]=n[0]*o,e[1]=n[1]*o,e)),BLe}var bLe,l$t;function Tri(){return l$t||(l$t=1,bLe=(e,n,o)=>(e[0]=Math.round(n[0]/o)*o+0,e[1]=Math.round(n[1]/o)*o+0,e)),bLe}var SLe,u$t;function kri(){return u$t||(u$t=1,SLe=(e,n)=>{const o=n[0]-e[0],i=n[1]-e[1];return o*o+i*i}),SLe}var QLe,g$t;function Fri(){return g$t||(g$t=1,QLe=e=>{const n=e[0],o=e[1];return n*n+o*o}),QLe}var vLe,d$t;function Lri(){return d$t||(d$t=1,vLe=(e,n,o)=>(e[0]=n[0]-o[0],e[1]=n[1]-o[1],e)),vLe}var wLe,h$t;function Hri(){return h$t||(h$t=1,wLe=e=>`[${e[0].toFixed(7)}, ${e[1].toFixed(7)}]`),wLe}var PLe,p$t;function Ori(){return p$t||(p$t=1,PLe=(e,n,o)=>{const i=n[0],r=n[1];return e[0]=o[0]*i+o[4]*r+o[12],e[1]=o[1]*i+o[5]*r+o[13],e}),PLe}var MLe,m$t;function mA(){return m$t||(m$t=1,MLe={abs:gri(),add:dri(),angle:hri(),angleDegrees:pri(),angleRadians:eLe(),clone:mri(),copy:_ri(),create:She(),cross:fri(),distance:Iri(),divide:Cri(),dot:yri(),equals:xri(),fromAngleDegrees:Eri(),fromAngleRadians:jjt(),fromScalar:Bri(),fromValues:bri(),length:Sri(),lerp:Qri(),max:vri(),min:wri(),multiply:Pri(),negate:Mri(),normal:Dri(),normalize:Nri(),rotate:s$t(),scale:Rri(),snap:Tri(),squaredDistance:kri(),squaredLength:Fri(),subtract:Lri(),toString:Hri(),transform:Ori()}),MLe}var DLe,_$t;function Gri(){if(_$t)return DLe;_$t=1;const t=mA(),e=bhe();return DLe=o=>{if(!Array.isArray(o))throw new Error("the given points must be an array");let i=o.length;if(i<3)throw new Error("the given points must define a closed geometry with three or more points");t.equals(o[0],o[i-1])&&--i;const r=[];let s=o[i-1];for(let a=0;a<i;a++){const A=o[a];r.push([t.clone(s),t.clone(A)]),s=A}return e(r)},DLe}var NLe,f$t;function Yri(){if(f$t)return NLe;f$t=1;const t=Mu(),e=mA(),n=bhe();return NLe=i=>{if(i[0]!==0)throw new Error("invalid compact binary data");const r=n();r.transforms=t.clone(i.slice(1,17));for(let s=21;s<i.length;s+=4){const a=e.fromValues(i[s+0],i[s+1]),A=e.fromValues(i[s+2],i[s+3]);r.sides.push([a,A])}return i[17]>=0&&(r.color=[i[17],i[18],i[19],i[20]]),r},NLe}var RLe,I$t;function C$t(){return I$t||(I$t=1,RLe=e=>!!(e&&typeof e=="object"&&"sides"in e&&"transforms"in e&&Array.isArray(e.sides)&&"length"in e.transforms)),RLe}var TLe,y$t;function Uri(){if(y$t)return TLe;y$t=1;const t=Mu(),e=mA();return TLe=o=>(t.isIdentity(o.transforms)||(o.sides=o.sides.map(i=>{const r=e.transform(e.create(),i[0],o.transforms),s=e.transform(e.create(),i[1],o.transforms);return[r,s]}),o.transforms=t.create()),o),TLe}var kLe,x$t;function uX(){if(x$t)return kLe;x$t=1;const t=Uri();return kLe=n=>t(n).sides,kLe}var FLe,E$t;function B$t(){if(E$t)return FLe;E$t=1;const t=bhe(),e=uX();return FLe=o=>{const r=e(o).map(s=>[s[1],s[0]]);return r.reverse(),t(r)},FLe}var LLe,b$t;function S$t(){if(b$t)return LLe;b$t=1;const t=mA(),e=uX(),n=s=>{const a=new Map,A=c=>{const l=c.toString();return a.has(l)?a.get(l):(a.set(l,c),c)};return s.map(c=>c.map(A))},o=s=>{const a=new Map;return n(s).forEach(c=>{a.has(c[0])?a.get(c[0]).push(c):a.set(c[0],[c])}),a},i=s=>{const a=o(e(s)),A=[];for(;;){let c;for(const[g,h]of a){if(c=h.shift(),!c){a.delete(g);continue}break}if(c===void 0)break;const l=[],u=c[0];for(;;){l.push(c[0]);const g=c[1];if(g===u)break;const h=a.get(g);if(!h)throw new Error(`geometry is not closed at vertex ${g}`);const d=r(c,h);h.length===0&&a.delete(g),c=d}l.length>0&&l.push(l.shift()),A.push(l)}return a.clear(),A},r=(s,a)=>{if(a.length===1)return a.pop();const A=t.create(),c=t.angleDegrees(t.subtract(A,s[1],s[0]));let l,u;a.forEach((h,d)=>{let m=t.angleDegrees(t.subtract(A,h[1],h[0]))-c;m<-180&&(m+=360),m>=180&&(m-=360),(u===void 0||m>l)&&(u=d,l=m)});const g=a[u];return a.splice(u,1),g};return LLe=i,LLe}var HLe,Q$t;function Kri(){if(Q$t)return HLe;Q$t=1;const t=uX();return HLe=n=>{const i=t(n).map(r=>r[0]);return i.length>0&&i.push(i.shift()),i},HLe}var OLe,v$t;function Vri(){if(v$t)return OLe;v$t=1;const t=mA(),e=uX();return OLe=o=>{const i=e(o);let r="geom2 ("+i.length+` sides):
[
`;return i.forEach(s=>{r+="  ["+t.toString(s[0])+", "+t.toString(s[1])+`]
`}),r+=`]
`,r},OLe}var GLe,w$t;function zri(){return w$t||(w$t=1,GLe=e=>{const n=e.sides,o=e.transforms;let i=[-1,-1,-1,-1];e.color&&(i=e.color);const r=new Float32Array(21+n.length*4);r[0]=0,r[1]=o[0],r[2]=o[1],r[3]=o[2],r[4]=o[3],r[5]=o[4],r[6]=o[5],r[7]=o[6],r[8]=o[7],r[9]=o[8],r[10]=o[9],r[11]=o[10],r[12]=o[11],r[13]=o[12],r[14]=o[13],r[15]=o[14],r[16]=o[15],r[17]=i[0],r[18]=i[1],r[19]=i[2],r[20]=i[3];for(let s=0;s<n.length;s++){const a=s*4+21,A=n[s][0],c=n[s][1];r[a+0]=A[0],r[a+1]=A[1],r[a+2]=c[0],r[a+3]=c[1]}return r}),GLe}var YLe,P$t;function Jri(){if(P$t)return YLe;P$t=1;const t=Mu(),e=B$t();return YLe=(o,i)=>{const r=t.multiply(t.create(),o,i.transforms),s=Object.assign({},i,{transforms:r});return o[0]*o[5]-o[4]*o[1]<0?e(s):s},YLe}var ULe,M$t;function Wri(){if(M$t)return ULe;M$t=1;const t=mA(),e=C$t(),n=S$t();return ULe=i=>{if(!e(i))throw new Error("invalid geom2 structure");if(n(i),i.sides.forEach(r=>{if(t.equals(r[0],r[1]))throw new Error(`geom2 self-edge ${r[0]}`)}),!i.transforms.every(Number.isFinite))throw new Error(`geom2 invalid transforms ${i.transforms}`)},ULe}var KLe,D$t;function Ga(){return D$t||(D$t=1,KLe={clone:Eii(),create:bhe(),fromPoints:Gri(),fromCompactBinary:Yri(),isA:C$t(),reverse:B$t(),toOutlines:S$t(),toPoints:Kri(),toSides:uX(),toString:Vri(),toCompactBinary:zri(),transform:Jri(),validate:Wri()}),KLe}var VLe,N$t;function jri(){return N$t||(N$t=1,VLe=e=>Object.assign({},e)),VLe}var zLe,R$t;function gX(){if(R$t)return zLe;R$t=1;const t=Mu();return zLe=n=>(n===void 0&&(n=[]),{polygons:n,transforms:t.create()}),zLe}var JLe,T$t;function $ri(){if(T$t)return JLe;T$t=1;const t=lX(),e=Bhe(),n=ujt(),o=(r,s,a)=>{const A=[],c=[],l=[];e(A,a,s),e(c,r,s);const u=n(t(l,c,A)),g=n(A);if(g===0)throw Error("a and b are the same point");return u/g};return JLe=(r,s,a)=>Math.sqrt(o(r,s,a)),JLe}var WLe,k$t;function qri(){if(k$t)return WLe;k$t=1;const t=lX(),e=IFe(),n=Bhe();return WLe=(i,r,s,a)=>{const A=[0,0,0];return n(i,r,s),n(A,s,a),t(i,i,A),e(i,i)},WLe}var jLe,F$t;function Xri(){if(F$t)return jLe;F$t=1;class t{constructor(){this.head=null,this.tail=null}clear(){this.head=this.tail=null}insertBefore(n,o){o.prev=n.prev,o.next=n,o.prev?o.prev.next=o:this.head=o,n.prev=o}insertAfter(n,o){o.prev=n,o.next=n.next,o.next?o.next.prev=o:this.tail=o,n.next=o}add(n){this.head?this.tail.next=n:this.head=n,n.prev=this.tail,n.next=null,this.tail=n}addAll(n){for(this.head?this.tail.next=n:this.head=n,n.prev=this.tail;n.next;)n=n.next;this.tail=n}remove(n){n.prev?n.prev.next=n.next:this.head=n.next,n.next?n.next.prev=n.prev:this.tail=n.prev}removeChain(n,o){n.prev?n.prev.next=o.next:this.head=o.next,o.next?o.next.prev=n.prev:this.tail=n.prev}first(){return this.head}isEmpty(){return!this.head}}return jLe=t,jLe}var $Le,L$t;function Zri(){if(L$t)return $Le;L$t=1;class t{constructor(n,o){this.point=n,this.index=o,this.next=null,this.prev=null,this.face=null}}return $Le=t,$Le}var qLe,H$t;function esi(){if(H$t)return qLe;H$t=1;const t=HWt(),e=cjt();class n{constructor(i,r){this.vertex=i,this.face=r,this.next=null,this.prev=null,this.opposite=null}head(){return this.vertex}tail(){return this.prev?this.prev.vertex:null}length(){return this.tail()?t(this.tail().point,this.head().point):-1}lengthSquared(){return this.tail()?e(this.tail().point,this.head().point):-1}setOpposite(i){this.opposite=i,i.opposite=this}}return qLe=n,qLe}var XLe,O$t;function tsi(){if(O$t)return XLe;O$t=1;const t=PWt(),e=kWt(),n=lX(),o=xhe(),i=zWt(),r=IFe(),s=sjt(),a=Bhe(),A=esi(),c=0,l=1,u=2;class g{constructor(){this.normal=[],this.centroid=[],this.offset=0,this.outside=null,this.mark=c,this.edge=null,this.nVertices=0}getEdge(d){if(typeof d!="number")throw Error("requires a number");let p=this.edge;for(;d>0;)p=p.next,d-=1;for(;d<0;)p=p.prev,d+=1;return p}computeNormal(){const d=this.edge,p=d.next;let m=p.next;const _=a([],p.head().point,d.head().point),f=[],I=[];for(this.nVertices=2,this.normal=[0,0,0];m!==d;)e(I,_),a(_,m.head().point,d.head().point),t(this.normal,this.normal,n(f,I,_)),m=m.next,this.nVertices+=1;this.area=i(this.normal),this.normal=s(this.normal,this.normal,1/this.area)}computeNormalMinArea(d){if(this.computeNormal(),this.area<d){let p,m=0,_=this.edge;do{const E=_.lengthSquared();E>m&&(p=_,m=E),_=_.next}while(_!==this.edge);const f=p.tail().point,I=p.head().point,C=a([],I,f),y=Math.sqrt(m);s(C,C,1/y);const x=o(this.normal,C);s(C,C,-x),t(this.normal,this.normal,C),r(this.normal,this.normal)}}computeCentroid(){this.centroid=[0,0,0];let d=this.edge;do t(this.centroid,this.centroid,d.head().point),d=d.next;while(d!==this.edge);s(this.centroid,this.centroid,1/this.nVertices)}computeNormalAndCentroid(d){typeof d<"u"?this.computeNormalMinArea(d):this.computeNormal(),this.computeCentroid(),this.offset=o(this.normal,this.centroid)}distanceToPlane(d){return o(this.normal,d)-this.offset}connectHalfEdges(d,p){let m;if(d.opposite.face===p.opposite.face){const _=p.opposite.face;let f;d===this.edge&&(this.edge=p),_.nVertices===3?(f=p.opposite.prev.opposite,_.mark=u,m=_):(f=p.opposite.next,_.edge===f.prev&&(_.edge=f),f.prev=f.prev.prev,f.prev.next=f),p.prev=d.prev,p.prev.next=p,p.setOpposite(f),_.computeNormalAndCentroid()}else d.next=p,p.prev=d;return m}mergeAdjacentFaces(d,p){const m=d.opposite,_=m.face;p.push(_),_.mark=u;let f=d.prev,I=d.next,C=m.prev,y=m.next;for(;f.opposite.face===_;)f=f.prev,y=y.next;for(;I.opposite.face===_;)I=I.next,C=C.prev;let x;for(x=y;x!==C.next;x=x.next)x.face=this;this.edge=I;let E;return E=this.connectHalfEdges(C,I),E&&p.push(E),E=this.connectHalfEdges(f,y),E&&p.push(E),this.computeNormalAndCentroid(),p}collectIndices(){const d=[];let p=this.edge;do d.push(p.head().index),p=p.next;while(p!==this.edge);return d}static createTriangle(d,p,m,_=0){const f=new g,I=new A(d,f),C=new A(p,f),y=new A(m,f);return I.next=y.prev=C,C.next=I.prev=y,y.next=C.prev=I,f.edge=I,f.computeNormalAndCentroid(_),f}}return XLe={VISIBLE:c,NON_CONVEX:l,DELETED:u,Face:g},XLe}var ZLe,G$t;function nsi(){if(G$t)return ZLe;G$t=1;const t=xhe(),e=$ri(),n=qri(),o=Xri(),i=Zri(),{Face:r,VISIBLE:s,NON_CONVEX:a,DELETED:A}=tsi(),c=1,l=2;class u{constructor(h){if(!Array.isArray(h))throw TypeError("input is not a valid array");if(h.length<4)throw Error("cannot build a simplex out of <4 points");this.tolerance=-1,this.nFaces=0,this.nPoints=h.length,this.faces=[],this.newFaces=[],this.claimed=new o,this.unclaimed=new o,this.vertices=[];for(let d=0;d<h.length;d+=1)this.vertices.push(new i(h[d],d));this.discardedFaces=[],this.vertexPointIndices=[]}addVertexToFace(h,d){h.face=d,d.outside?this.claimed.insertBefore(d.outside,h):this.claimed.add(h),d.outside=h}removeVertexFromFace(h,d){h===d.outside&&(h.next&&h.next.face===d?d.outside=h.next:d.outside=null),this.claimed.remove(h)}removeAllVerticesFromFace(h){if(h.outside){let d=h.outside;for(;d.next&&d.next.face===h;)d=d.next;return this.claimed.removeChain(h.outside,d),d.next=null,h.outside}}deleteFaceVertices(h,d){const p=this.removeAllVerticesFromFace(h);if(p)if(!d)this.unclaimed.addAll(p);else{let m;for(let _=p;_;_=m)m=_.next,d.distanceToPlane(_.point)>this.tolerance?this.addVertexToFace(_,d):this.unclaimed.add(_)}}resolveUnclaimedPoints(h){let d=this.unclaimed.first();for(let p=d;p;p=d){d=p.next;let m=this.tolerance,_;for(let f=0;f<h.length;f+=1){const I=h[f];if(I.mark===s){const C=I.distanceToPlane(p.point);if(C>m&&(m=C,_=I),m>1e3*this.tolerance)break}}_&&this.addVertexToFace(p,_)}}computeExtremes(){const h=[],d=[],p=[],m=[];let _,f;for(_=0;_<3;_+=1)p[_]=m[_]=this.vertices[0];for(_=0;_<3;_+=1)h[_]=d[_]=this.vertices[0].point[_];for(_=1;_<this.vertices.length;_+=1){const I=this.vertices[_],C=I.point;for(f=0;f<3;f+=1)C[f]<h[f]&&(h[f]=C[f],p[f]=I);for(f=0;f<3;f+=1)C[f]>d[f]&&(d[f]=C[f],m[f]=I)}return this.tolerance=3*Number.EPSILON*(Math.max(Math.abs(h[0]),Math.abs(d[0]))+Math.max(Math.abs(h[1]),Math.abs(d[1]))+Math.max(Math.abs(h[2]),Math.abs(d[2]))),[p,m]}createInitialSimplex(){const h=this.vertices,[d,p]=this.computeExtremes();let m,_,f,I,C=0,y=0;for(f=0;f<3;f+=1){const w=p[f].point[f]-d[f].point[f];w>C&&(C=w,y=f)}const x=d[y],E=p[y];for(C=0,f=0;f<this.vertices.length;f+=1){const w=this.vertices[f];if(w!==x&&w!==E){const M=e(w.point,x.point,E.point);M>C&&(C=M,m=w)}}const B=n([],x.point,E.point,m.point),S=t(x.point,B);for(C=-1,f=0;f<this.vertices.length;f+=1){const w=this.vertices[f];if(w!==x&&w!==E&&w!==m){const M=Math.abs(t(B,w.point)-S);M>C&&(C=M,_=w)}}const Q=[];if(t(_.point,B)-S<0)for(Q.push(r.createTriangle(x,E,m),r.createTriangle(_,E,x),r.createTriangle(_,m,E),r.createTriangle(_,x,m)),f=0;f<3;f+=1){const w=(f+1)%3;Q[f+1].getEdge(2).setOpposite(Q[0].getEdge(w)),Q[f+1].getEdge(1).setOpposite(Q[w+1].getEdge(0))}else for(Q.push(r.createTriangle(x,m,E),r.createTriangle(_,x,E),r.createTriangle(_,E,m),r.createTriangle(_,m,x)),f=0;f<3;f+=1){const w=(f+1)%3;Q[f+1].getEdge(2).setOpposite(Q[0].getEdge((3-f)%3)),Q[f+1].getEdge(0).setOpposite(Q[w+1].getEdge(1))}for(f=0;f<4;f+=1)this.faces.push(Q[f]);for(f=0;f<h.length;f+=1){const w=h[f];if(w!==x&&w!==E&&w!==m&&w!==_){C=this.tolerance;let M;for(I=0;I<4;I+=1){const k=Q[I].distanceToPlane(w.point);k>C&&(C=k,M=Q[I])}M&&this.addVertexToFace(w,M)}}}reindexFaceAndVertices(){const h=[];for(let d=0;d<this.faces.length;d+=1){const p=this.faces[d];p.mark===s&&h.push(p)}this.faces=h}collectFaces(h){const d=[];for(let p=0;p<this.faces.length;p+=1){if(this.faces[p].mark!==s)throw Error("attempt to include a destroyed face in the hull");const m=this.faces[p].collectIndices();if(h)d.push(m);else for(let _=0;_<m.length-2;_+=1)d.push([m[0],m[_+1],m[_+2]])}return d}nextVertexToAdd(){if(!this.claimed.isEmpty()){let h,d,p=0;const m=this.claimed.first().face;for(d=m.outside;d&&d.face===m;d=d.next){const _=m.distanceToPlane(d.point);_>p&&(p=_,h=d)}return h}}computeHorizon(h,d,p,m){this.deleteFaceVertices(p),p.mark=A;let _;d?_=d.next:_=d=p.getEdge(0);do{const f=_.opposite,I=f.face;I.mark===s&&(I.distanceToPlane(h)>this.tolerance?this.computeHorizon(h,f,I,m):m.push(_)),_=_.next}while(_!==d)}addAdjoiningFace(h,d){const p=r.createTriangle(h,d.tail(),d.head());return this.faces.push(p),p.getEdge(-1).setOpposite(d.opposite),p.getEdge(0)}addNewFaces(h,d){this.newFaces=[];let p,m;for(let _=0;_<d.length;_+=1){const f=d[_],I=this.addAdjoiningFace(h,f);p?I.next.setOpposite(m):p=I,this.newFaces.push(I.face),m=I}p.next.setOpposite(m)}oppositeFaceDistance(h){return h.face.distanceToPlane(h.opposite.face.centroid)}doAdjacentMerge(h,d){let p=h.edge,m=!0,_=0;do{if(_>=h.nVertices)throw Error("merge recursion limit exceeded");const f=p.opposite.face;let I=!1;if(d===l?(this.oppositeFaceDistance(p)>-this.tolerance||this.oppositeFaceDistance(p.opposite)>-this.tolerance)&&(I=!0):h.area>f.area?this.oppositeFaceDistance(p)>-this.tolerance?I=!0:this.oppositeFaceDistance(p.opposite)>-this.tolerance&&(m=!1):this.oppositeFaceDistance(p.opposite)>-this.tolerance?I=!0:this.oppositeFaceDistance(p)>-this.tolerance&&(m=!1),I){const C=h.mergeAdjacentFaces(p,[]);for(let y=0;y<C.length;y+=1)this.deleteFaceVertices(C[y],h);return!0}p=p.next,_+=1}while(p!==h.edge);return m||(h.mark=a),!1}addVertexToHull(h){const d=[];this.unclaimed.clear(),this.removeVertexFromFace(h,h.face),this.computeHorizon(h.point,null,h.face,d),this.addNewFaces(h,d);for(let p=0;p<this.newFaces.length;p+=1){const m=this.newFaces[p];if(m.mark===s)for(;this.doAdjacentMerge(m,c););}for(let p=0;p<this.newFaces.length;p+=1){const m=this.newFaces[p];if(m.mark===a)for(m.mark=s;this.doAdjacentMerge(m,l););}this.resolveUnclaimedPoints(this.newFaces)}build(){let h;for(this.createInitialSimplex();h=this.nextVertexToAdd();)this.addVertexToHull(h);this.reindexFaceAndVertices()}}return ZLe=u,ZLe}var eHe,Y$t;function U$t(){if(Y$t)return eHe;Y$t=1;const t=nsi();return eHe=(n,o={})=>{const i=new t(n);return i.build(),i.collectFaces(o.skipTriangulation)},eHe}var tHe,K$t;function EY(){return K$t||(K$t=1,tHe=e=>((e===void 0||e.length<3)&&(e=[]),{vertices:e})),tHe}var nHe,V$t;function osi(){if(V$t)return nHe;V$t=1;const t=EY(),e=jr();return nHe=(...o)=>{let i,r;return o.length===1?(i=t(),r=o[0]):(i=o[0],r=o[1]),i.vertices=r.vertices.map(s=>e.clone(s)),i},nHe}var oHe,z$t;function isi(){if(z$t)return oHe;z$t=1;const t=jr(),e=EY();return oHe=o=>{const i=o.map(r=>t.clone(r));return e(i)},oHe}var iHe,J$t;function rsi(){if(J$t)return iHe;J$t=1;const t=EY();return iHe=(n,o)=>{const i=t(n);return i.plane=o,i},iHe}var rHe,W$t;function Qhe(){return W$t||(W$t=1,rHe=()=>[0,0,0,0]),rHe}var sHe,j$t;function $$t(){if(j$t)return sHe;j$t=1;const t=Qhe();return sHe=n=>{const o=t();return o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o},sHe}var aHe,q$t;function X$t(){return q$t||(q$t=1,aHe=(e,n)=>(e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e)),aHe}var AHe,Z$t;function eqt(){return Z$t||(Z$t=1,AHe=(e,n)=>e[0]===n[0]&&e[1]===n[1]&&e[2]===n[2]&&e[3]===n[3]),AHe}var cHe,tqt;function nqt(){return tqt||(tqt=1,cHe=(e,n)=>(e[0]=-n[0],e[1]=-n[1],e[2]=-n[2],e[3]=-n[3],e)),cHe}var lHe,oqt;function iqt(){if(oqt)return lHe;oqt=1;const t=jr();return lHe=(n,o,i)=>{const r=t.normalize(t.create(),o),s=t.dot(i,r);return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=s,n},lHe}var uHe,rqt;function sqt(){if(rqt)return uHe;rqt=1;const t=Qhe();return uHe=(n,o,i,r)=>{const s=t();return s[0]=n,s[1]=o,s[2]=i,s[3]=r,s},uHe}var gHe,aqt;function ssi(){if(aqt)return gHe;aqt=1;const t=jr(),e=iqt();return gHe=(o,...i)=>{o[0]=0,o[1]=0,o[2]=0,o[3]=0;const r=i.length;i.forEach(m=>{t.add(o,o,m)}),t.scale(o,o,1/r);let s=0,a=0,A=0,c=0,l=0,u=0;const g=t.create();i.forEach(m=>{t.subtract(g,m,o),s+=g[0]*g[0],a+=g[0]*g[1],A+=g[0]*g[2],c+=g[1]*g[1],l+=g[1]*g[2],u+=g[2]*g[2]}),s/=r,a/=r,A/=r,c/=r,l/=r,u/=r,g[0]=0,g[1]=0,g[2]=0;const h=t.create();let d=c*u-l*l;h[0]=d,h[1]=A*l-a*u,h[2]=a*l-A*c;let p=d*d;return t.add(g,g,t.scale(h,h,p)),d=s*u-A*A,h[0]=A*l-a*u,h[1]=d,h[2]=a*A-l*s,p=d*d,t.dot(g,h)<0&&(p=-p),t.add(g,g,t.scale(h,h,p)),d=s*c-a*a,h[0]=a*l-A*c,h[1]=a*A-l*s,h[2]=d,p=d*d,t.dot(g,h)<0&&(p=-p),t.add(g,g,t.scale(h,h,p)),e(o,g,o)},gHe}var dHe,Aqt;function cqt(){if(Aqt)return dHe;Aqt=1;const t=jr();return dHe=(n,...o)=>{const i=o.length,r=t.create(),s=t.create(),a=A=>{const c=o[A],l=o[(A+1)%i],u=o[(A+2)%i];return t.subtract(r,l,c),t.subtract(s,u,c),t.cross(r,r,s),t.normalize(r,r),r};return n[0]=0,n[1]=0,n[2]=0,i===3?t.copy(n,a(0)):(o.forEach((A,c)=>{t.add(n,n,a(c))}),t.normalize(n,n)),n[3]=t.dot(n,o[0]),n},dHe}var hHe,lqt;function asi(){if(lqt)return hHe;lqt=1;const{EPS:t}=pc(),e=jr();return hHe=(o,i,r,s)=>{let a=e.subtract(e.create(),r,i),A=e.subtract(e.create(),s,i);e.length(a)<t&&(a=e.orthogonal(a,A)),e.length(A)<t&&(A=e.orthogonal(A,a));let c=e.cross(e.create(),a,A);e.length(c)<t&&(A=e.orthogonal(A,a),c=e.cross(c,a,A)),c=e.normalize(c,c);const l=e.dot(c,i);return o[0]=c[0],o[1]=c[1],o[2]=c[2],o[3]=l,o},hHe}var pHe,uqt;function Asi(){if(uqt)return pHe;uqt=1;const t=jr();return pHe=(n,o)=>{const i=o[0]*n[0]+o[1]*n[1]+o[2]*n[2]-n[3],r=o[0]-i*n[0],s=o[1]-i*n[1],a=o[2]-i*n[2];return t.fromValues(r,s,a)},pHe}var mHe,gqt;function dqt(){if(gqt)return mHe;gqt=1;const t=jr();return mHe=(n,o)=>t.dot(n,o)-n[3],mHe}var _He,hqt;function pqt(){return hqt||(hqt=1,_He=e=>`(${e[0].toFixed(9)}, ${e[1].toFixed(9)}, ${e[2].toFixed(9)}, ${e[3].toFixed(9)})`),_He}var fHe,mqt;function csi(){if(mqt)return fHe;mqt=1;const t=Mu(),e=jr(),n=cqt(),o=nqt();return fHe=(r,s,a)=>{const A=t.isMirroring(a),c=e.orthogonal(e.create(),s),l=e.cross(c,s,c),u=e.cross(e.create(),s,l);let g=e.fromScalar(e.create(),s[3]);e.multiply(g,g,s);let h=e.add(e.create(),g,l),d=e.add(e.create(),g,u);return g=e.transform(g,g,a),h=e.transform(h,h,a),d=e.transform(d,d,a),n(r,g,h,d),A&&o(r,r),r},fHe}var IHe,_qt;function E6(){return _qt||(_qt=1,IHe={clone:$$t(),copy:X$t(),create:Qhe(),equals:eqt(),flip:nqt(),fromNormalAndPoint:iqt(),fromValues:sqt(),fromNoisyPoints:ssi(),fromPoints:cqt(),fromPointsRandom:asi(),projectionOfPoint:Asi(),signedDistanceToPoint:dqt(),toString:pqt(),transform:csi()}),IHe}var CHe,fqt;function lsi(){if(fqt)return CHe;fqt=1;const t=E6(),e=EY();return CHe=o=>{const i=o.vertices.slice().reverse(),r=e(i);return o.plane&&(r.plane=t.flip(t.create(),o.plane)),r},CHe}var yHe,Iqt;function Cqt(){return Iqt||(Iqt=1,yHe=e=>!!(e&&typeof e=="object"&&"vertices"in e&&Array.isArray(e.vertices))),yHe}var xHe,yqt;function xqt(){if(yqt)return xHe;yqt=1;const t=E6(),e=jr(),n=r=>o(r.vertices),o=r=>{const s=r.length;if(s>2){const a=t.fromPoints(t.create(),...r);let A=r[s-2],c=r[s-1];for(let l=0;l<s;l++){const u=r[l];if(!i(A,c,u,a))return!1;A=c,c=u}}return!0},i=(r,s,a,A)=>{const c=e.cross(e.create(),e.subtract(e.create(),s,r),e.subtract(e.create(),a,s));return e.dot(c,A)>=0};return xHe=n,xHe}var EHe,Eqt;function BHe(){if(Eqt)return EHe;Eqt=1;const t=E6();return EHe=n=>(n.plane||(n.plane=t.fromPoints(t.create(),...n.vertices)),n.plane),EHe}var bHe,Bqt;function bqt(){if(Bqt)return bHe;Bqt=1;const t=BHe();return bHe=n=>{const o=n.vertices.length;if(o<3)return 0;const i=n.vertices,r=t(n),s=Math.abs(r[0]),a=Math.abs(r[1]),A=Math.abs(r[2]);if(s+a+A===0)return 0;let c=3;s>a&&s>A?c=1:a>A&&(c=2);let l=0,u=0,g=1,h=2;switch(c){case 1:for(g=1;g<o;g++)u=g-1,h=(g+1)%o,l+=i[g][1]*(i[h][2]-i[u][2]);l+=i[0][1]*(i[1][2]-i[o-1][2]),l/=2*r[0];break;case 2:for(g=1;g<o;g++)u=g-1,h=(g+1)%o,l+=i[g][2]*(i[h][0]-i[u][0]);l+=i[0][2]*(i[1][0]-i[o-1][0]),l/=2*r[1];break;default:for(g=1;g<o;g++)u=g-1,h=(g+1)%o,l+=i[g][0]*(i[h][1]-i[u][1]);l+=i[0][0]*(i[1][1]-i[o-1][1]),l/=2*r[2];break}return l},bHe}var SHe,Sqt;function usi(){if(Sqt)return SHe;Sqt=1;const t=jr();return SHe=n=>{const o=n.vertices,i=o.length,r=i===0?t.create():t.clone(o[0]),s=t.clone(r);for(let a=1;a<i;a++)t.min(r,r,o[a]),t.max(s,s,o[a]);return[r,s]},SHe}var QHe,Qqt;function gsi(){return Qqt||(Qqt=1,QHe=(e,n)=>e[0]*n[0]+e[1]*n[1]+e[2]*n[2]+e[3]*n[3]),QHe}var vHe,vqt;function dsi(){return vqt||(vqt=1,vHe=(e,n)=>(e[0]=n,e[1]=n,e[2]=n,e[3]=n,e)),vHe}var wHe,wqt;function hsi(){return wqt||(wqt=1,wHe=(e,n,o)=>{const[i,r,s,a]=n;return e[0]=o[0]*i+o[4]*r+o[8]*s+o[12]*a,e[1]=o[1]*i+o[5]*r+o[9]*s+o[13]*a,e[2]=o[2]*i+o[6]*r+o[10]*s+o[14]*a,e[3]=o[3]*i+o[7]*r+o[11]*s+o[15]*a,e}),wHe}var PHe,Pqt;function Mqt(){return Pqt||(Pqt=1,PHe={clone:$$t(),copy:X$t(),create:Qhe(),dot:gsi(),equals:eqt(),fromScalar:dsi(),fromValues:sqt(),toString:pqt(),transform:hsi()}),PHe}var MHe,Dqt;function psi(){if(Dqt)return MHe;Dqt=1;const t=Mqt(),e=new WeakMap;return MHe=o=>{const i=e.get(o);if(i)return i;const r=o.vertices,s=t.create();if(r.length===0)return s[0]=0,s[1]=0,s[2]=0,s[3]=0,s;let a=r[0],A=a,c=a,l=a,u=a,g=a;r.forEach(m=>{a[0]>m[0]&&(a=m),A[1]>m[1]&&(A=m),c[2]>m[2]&&(c=m),l[0]<m[0]&&(l=m),u[1]<m[1]&&(u=m),g[2]<m[2]&&(g=m)}),s[0]=(a[0]+l[0])*.5,s[1]=(A[1]+u[1])*.5,s[2]=(c[2]+g[2])*.5;const h=s[0]-l[0],d=s[1]-u[1],p=s[2]-g[2];return s[3]=Math.sqrt(h*h+d*d+p*p),e.set(o,s),s},MHe}var DHe,Nqt;function msi(){if(Nqt)return DHe;Nqt=1;const t=jr();return DHe=n=>{let o=0;const i=n.vertices,r=t.create();for(let s=0;s<i.length-2;s++)t.cross(r,i[s+1],i[s+2]),o+=t.dot(i[0],r);return o/=6,o},DHe}var NHe,Rqt;function _si(){return Rqt||(Rqt=1,NHe=e=>e.vertices),NHe}var RHe,Tqt;function fsi(){if(Tqt)return RHe;Tqt=1;const t=jr();return RHe=n=>{let o="poly3: vertices: [";return n.vertices.forEach(i=>{o+=`${t.toString(i)}, `}),o+="]",o},RHe}var THe,kqt;function Isi(){if(kqt)return THe;kqt=1;const t=Mu(),e=jr(),n=EY();return THe=(i,r)=>{const s=r.vertices.map(a=>e.transform(e.create(),a,i));return t.isMirroring(i)&&s.reverse(),n(s)},THe}var kHe,Fqt;function Csi(){if(Fqt)return kHe;Fqt=1;const t=dqt(),{NEPS:e}=pc(),n=jr(),o=Cqt(),i=xqt(),r=bqt(),s=BHe();return kHe=A=>{if(!o(A))throw new Error("invalid poly3 structure");if(A.vertices.length<3)throw new Error(`poly3 not enough vertices ${A.vertices.length}`);if(r(A)<=0)throw new Error("poly3 area must be greater than zero");for(let c=0;c<A.vertices.length;c++)if(n.equals(A.vertices[c],A.vertices[(c+1)%A.vertices.length]))throw new Error(`poly3 duplicate vertex ${A.vertices[c]}`);if(!i(A))throw new Error("poly3 must be convex");if(A.vertices.forEach(c=>{if(!c.every(Number.isFinite))throw new Error(`poly3 invalid vertex ${c}`)}),A.vertices.length>3){const c=s(A);A.vertices.forEach(l=>{const u=Math.abs(t(c,l));if(u>e)throw new Error(`poly3 must be coplanar: vertex ${l} distance ${u}`)})}},kHe}var FHe,Lqt;function qA(){return Lqt||(Lqt=1,FHe={clone:osi(),create:EY(),fromPoints:isi(),fromPointsAndPlane:rsi(),invert:lsi(),isA:Cqt(),isConvex:xqt(),measureArea:bqt(),measureBoundingBox:usi(),measureBoundingSphere:psi(),measureSignedVolume:msi(),plane:BHe(),toPoints:_si(),toString:fsi(),transform:Isi(),validate:Csi()}),FHe}var LHe,Hqt;function ysi(){if(Hqt)return LHe;Hqt=1;const t=U$t(),e=gX(),n=qA();return LHe=i=>{if(!Array.isArray(i))throw new Error("the given points must be an array");const s=t(i,{skipTriangulation:!0}).map(a=>{const A=a.map(c=>i[c]);return n.create(A)});return e(s)},LHe}var HHe,Oqt;function xsi(){if(Oqt)return HHe;Oqt=1;const t=qA(),e=gX();return HHe=o=>{if(!Array.isArray(o))throw new Error("the given points must be an array");const i=o.map((s,a)=>t.create(s));return e(i)},HHe}var OHe,Gqt;function Esi(){if(Gqt)return OHe;Gqt=1;const t=jr(),e=Mu(),n=qA(),o=gX();return OHe=r=>{if(r[0]!==1)throw new Error("invalid compact binary data");const s=o();s.transforms=e.clone(r.slice(1,17));const a=r[21];let A=22,c=r.length-a*3;for(;c<r.length;){const l=r[A];A++;const u=[];for(let g=0;g<l;g++)u.push(t.fromValues(r[c],r[c+1],r[c+2])),c+=3;s.polygons.push(n.create(u))}return r[17]>=0&&(s.color=[r[17],r[18],r[19],r[20]]),s},OHe}var GHe,Yqt;function Bsi(){if(Yqt)return GHe;Yqt=1;const t=Mu(),e=qA();return GHe=o=>(t.isIdentity(o.transforms)||(o.polygons=o.polygons.map(i=>e.transform(o.transforms,i)),o.transforms=t.create()),o),GHe}var YHe,Uqt;function dX(){if(Uqt)return YHe;Uqt=1;const t=Bsi();return YHe=n=>t(n).polygons,YHe}var UHe,Kqt;function bsi(){if(Kqt)return UHe;Kqt=1;const t=qA(),e=gX(),n=dX();return UHe=i=>{const s=n(i).map(a=>t.invert(a));return e(s)},UHe}var KHe,Vqt;function VHe(){return Vqt||(Vqt=1,KHe=e=>!!(e&&typeof e=="object"&&"polygons"in e&&"transforms"in e&&Array.isArray(e.polygons)&&"length"in e.transforms)),KHe}var zHe,zqt;function Ssi(){if(zqt)return zHe;zqt=1;const{EPS:t}=pc(),e=jr(),n=VHe(),o=dX(),i=qA();return zHe=s=>{if(!n(s))throw new Error("isConvex requires a geom3 geometry");const a=o(s);if(a.length===0)return!0;const A=[],c=new Set;for(let l=0;l<a.length;l++){const u=a[l].vertices;for(let g=0;g<u.length;g++){const h=u[g],d=`${h[0]},${h[1]},${h[2]}`;c.has(d)||(c.add(d),A.push(h))}}for(let l=0;l<a.length;l++){const u=i.plane(a[l]);for(let g=0;g<A.length;g++){const h=A[g];if(e.dot(u,h)-u[3]>t)return!1}}return!0},zHe}var JHe,Jqt;function Qsi(){if(Jqt)return JHe;Jqt=1;const t=qA(),e=dX();return JHe=o=>e(o).map(s=>t.toPoints(s)),JHe}var WHe,Wqt;function vsi(){if(Wqt)return WHe;Wqt=1;const t=qA(),e=dX();return WHe=o=>{const i=e(o);let r="geom3 ("+i.length+` polygons):
`;return i.forEach(s=>{r+="  "+t.toString(s)+`
`}),r},WHe}var jHe,jqt;function wsi(){if(jqt)return jHe;jqt=1;const t=qA();return jHe=n=>{const o=n.polygons,i=n.transforms,r=o.length,s=o.reduce((u,g)=>u+g.vertices.length,0);let a=[-1,-1,-1,-1];n.color&&(a=n.color);const A=new Float32Array(22+r+s*3);A[0]=1,A[1]=i[0],A[2]=i[1],A[3]=i[2],A[4]=i[3],A[5]=i[4],A[6]=i[5],A[7]=i[6],A[8]=i[7],A[9]=i[8],A[10]=i[9],A[11]=i[10],A[12]=i[11],A[13]=i[12],A[14]=i[13],A[15]=i[14],A[16]=i[15],A[17]=a[0],A[18]=a[1],A[19]=a[2],A[20]=a[3],A[21]=s;let c=22,l=c+r;return o.forEach(u=>{const g=t.toPoints(u);A[c]=g.length,c++;for(let h=0;h<g.length;h++){const d=g[h];A[l+0]=d[0],A[l+1]=d[1],A[l+2]=d[2],l+=3}}),A},jHe}var $He,$qt;function Psi(){if($qt)return $He;$qt=1;const t=Mu();return $He=(n,o)=>{const i=t.multiply(t.create(),n,o.transforms);return Object.assign({},o,{transforms:i})},$He}var qHe,qqt;function Msi(){if(qqt)return qHe;qqt=1;const t=qA(),e=VHe(),n=i=>{if(!e(i))throw new Error("invalid geom3 structure");if(i.polygons.forEach(t.validate),o(i),!i.transforms.every(Number.isFinite))throw new Error(`geom3 invalid transforms ${i.transforms}`)},o=i=>{const r=new Map;i.polygons.forEach(({vertices:a})=>{a.forEach((A,c)=>{const l=`${A}`,u=`${a[(c+1)%a.length]}`,g=`${l}/${u}`,h=r.has(g)?r.get(g):0;r.set(g,h+1)})});const s=[];if(r.forEach((a,A)=>{const c=A.split("/").reverse().join("/"),l=r.get(c);a!==l&&s.push(A.replace("/"," -> "))}),s.length>0)throw new Error(`non-manifold edges ${s.length}
${s.join(`
`)}`)};return qHe=n,qHe}var XHe,Xqt;function Ra(){return Xqt||(Xqt=1,XHe={clone:jri(),create:gX(),fromPointsConvex:ysi(),fromPoints:xsi(),fromCompactBinary:Esi(),invert:bsi(),isA:VHe(),isConvex:Ssi(),toPoints:Qsi(),toPolygons:dX(),toString:vsi(),toCompactBinary:wsi(),transform:Psi(),validate:Msi()}),XHe}var ZHe,Zqt;function eOe(){return Zqt||(Zqt=1,ZHe=e=>Object.assign({},e)),ZHe}var tOe,eXt;function tXt(){if(eXt)return tOe;eXt=1;const{EPS:t}=pc(),e=mA(),n=eOe();return tOe=i=>{if(i.isClosed)return i;const r=n(i);if(r.isClosed=!0,r.points.length>1){const s=r.points,a=s[0];let A=s[s.length-1];for(;e.distance(a,A)<t*t&&(s.pop(),s.length!==1);)A=s[s.length-1]}return r},tOe}var nOe,nXt;function vhe(){if(nXt)return nOe;nXt=1;const t=Mu();return nOe=n=>(n===void 0&&(n=[]),{points:n,isClosed:!1,transforms:t.create()}),nOe}var oOe,oXt;function iOe(){if(oXt)return oOe;oXt=1;const{EPS:t}=pc(),e=mA(),n=tXt(),o=vhe();return oOe=(r,s)=>{const a={closed:!1};let{closed:A}=Object.assign({},a,r),c=o();if(c.points=s.map(l=>e.clone(l)),c.points.length>1){const l=c.points[0],u=c.points[c.points.length-1];e.distance(l,u)<t*t&&(A=!0)}return A===!0&&(c=n(c)),c},oOe}var rOe,iXt;function Dsi(){if(iXt)return rOe;iXt=1;const t=Mu(),e=mA();return rOe=o=>(t.isIdentity(o.transforms)||(o.points=o.points.map(i=>e.transform(e.create(),i,o.transforms)),o.transforms=t.create()),o),rOe}var sOe,rXt;function BY(){if(rXt)return sOe;rXt=1;const t=Dsi();return sOe=n=>t(n).points,sOe}var aOe,sXt;function Nsi(){if(sXt)return aOe;sXt=1;const{TAU:t}=pc(),e=mA(),n=iOe(),o=BY();return aOe=(r,s)=>{const a={radius:[0,0],xaxisrotation:0,clockwise:!1,large:!1,segments:16};let{endpoint:A,radius:c,xaxisrotation:l,clockwise:u,large:g,segments:h}=Object.assign({},a,r);if(!Array.isArray(A))throw new Error("endpoint must be an array of X and Y values");if(A.length<2)throw new Error("endpoint must contain X and Y values");if(A=e.clone(A),!Array.isArray(c))throw new Error("radius must be an array of X and Y values");if(c.length<2)throw new Error("radius must contain X and Y values");if(h<4)throw new Error("segments must be four or more");const d=1e5;if(s.isClosed)throw new Error("the given path cannot be closed");const p=o(s);if(p.length<1)throw new Error("the given path must contain one or more points (as the starting point for the arc)");let m=c[0],_=c[1];const f=p[p.length-1];m=Math.round(m*d)/d,_=Math.round(_*d)/d,A=e.fromValues(Math.round(A[0]*d)/d,Math.round(A[1]*d)/d);const I=!u;let C=[];if(m===0||_===0)C.push(A);else{m=Math.abs(m),_=Math.abs(_);const x=l,E=Math.cos(x),B=Math.sin(x),S=e.subtract(e.create(),f,A);e.scale(S,S,.5);const Q=Math.round((E*S[0]+B*S[1])*d)/d,w=Math.round((-B*S[0]+E*S[1])*d)/d,M=e.fromValues(Q,w),k=M[0]*M[0]/(m*m)+M[1]*M[1]/(_*_);if(k>1){const oe=Math.sqrt(k);m*=oe,_*=oe,m=Math.round(m*d)/d,_=Math.round(_*d)/d}let R=Math.sqrt((m*m*_*_-m*m*M[1]*M[1]-_*_*M[0]*M[0])/(m*m*M[1]*M[1]+_*_*M[0]*M[0]));I===g&&(R=-R);const F=e.fromValues(m*M[1]/_,-_*M[0]/m);e.scale(F,F,R);let O=e.fromValues(E*F[0]-B*F[1],B*F[0]+E*F[1]);O=e.add(O,O,e.scale(e.create(),e.add(e.create(),f,A),.5));const U=e.fromValues((M[0]-F[0])/m,(M[1]-F[1])/_),Y=e.fromValues((-M[0]-F[0])/m,(-M[1]-F[1])/_),W=e.angleRadians(U);let j=e.angleRadians(Y)-W;j=j%t,!I&&j>0?j-=t:I&&j<0&&(j+=t);let J=Math.floor(h*(Math.abs(j)/t));J<1&&(J=1);for(let oe=1;oe<J;oe++){const ie=W+oe/J*j,ne=Math.cos(ie),le=Math.sin(ie),ge=e.fromValues(E*m*ne-B*_*le,B*m*ne+E*_*le);e.add(ge,ge,O),C.push(ge)}J&&C.push(r.endpoint)}return C=p.concat(C),n({},C)},aOe}var AOe,aXt;function AXt(){if(aXt)return AOe;aXt=1;const t=iOe(),e=BY(),{equals:n}=mA();return AOe=(...i)=>{let r=!1,s=[];return i.forEach((a,A)=>{const c=e(a).slice();if(s.length>0&&c.length>0&&n(c[0],s[s.length-1])&&c.shift(),c.length>0&&r)throw new Error(`Cannot concatenate to a closed path; check the ${A}th path`);r=a.isClosed,s=s.concat(c)}),t({closed:r},s)},AOe}var cOe,cXt;function lXt(){if(cXt)return cOe;cXt=1;const t=AXt(),e=vhe();return cOe=(o,i)=>t(i,e(o)),cOe}var lOe,uXt;function Rsi(){if(uXt)return lOe;uXt=1;const{TAU:t}=pc(),e=mA(),n=mA(),o=lXt(),i=BY();return lOe=(s,a)=>{const A={segments:16};let{controlPoints:c,segments:l}=Object.assign({},A,s);if(!Array.isArray(c))throw new Error("controlPoints must be an array of one or more points");if(c.length<1)throw new Error("controlPoints must be an array of one or more points");if(l<4)throw new Error("segments must be four or more");if(a.isClosed)throw new Error("the given geometry cannot be closed");const u=i(a);if(u.length<1)throw new Error("the given path must contain one or more points (as the starting point for the bezier curve)");if(c=c.slice(),c[0]===null){if(c.length<2)throw new Error("a null control point must be passed with one more control points");let M=u[u.length-2];if("lastBezierControlPoint"in a&&(M=a.lastBezierControlPoint),!Array.isArray(M))throw new Error("the given path must contain TWO or more points if given a null control point");const k=e.scale(e.create(),u[u.length-1],2);e.subtract(k,k,M),c[0]=k}c.unshift(u[u.length-1]);const h=c.length-1,d=[];let p=1;for(let M=0;M<=h;++M)M>0&&(p*=M),d.push(p);const m=[];for(let M=0;M<=h;++M){const k=d[h]/(d[M]*d[h-M]);m.push(k)}const _=e.create(),f=e.create(),I=n.create(),C=M=>{let k=1,R=Math.pow(1-M,h);const F=M!==1?1/(1-M):1,O=e.create();for(let U=0;U<=h;++U){U===h&&(R=1);const Y=m[U]*k*R,W=e.scale(_,c[U],Y);e.add(O,O,W),k*=M,R*=F}return O},y=[],x=[],E=h+1;for(let M=0;M<E;++M){const k=M/(E-1),R=C(k);y.push(R),x.push(k)}let B=1;const S=t/l,Q=Math.sin(S);for(;B<y.length-1;){const M=e.subtract(_,y[B],y[B-1]);e.normalize(M,M);const k=e.subtract(f,y[B+1],y[B]);e.normalize(k,k);const R=e.cross(I,M,k);if(Math.abs(R[2])>Q){const F=x[B-1],O=x[B+1],U=F+(O-F)*1/3,Y=F+(O-F)*2/3,W=C(U),te=C(Y);y.splice(B,1,W,te),x.splice(B,1,U,Y),B--,B<1&&(B=1)}else++B}y.shift();const w=o(y,a);return w.lastBezierControlPoint=c[c.length-2],w},lOe}var uOe,gXt;function Tsi(){if(gXt)return uOe;gXt=1;const t=mA(),e=BY();return uOe=(o,i)=>{if(o.isClosed!==i.isClosed||o.points.length!==i.points.length)return!1;const r=e(o),s=e(i),a=r.length;let A=0;do{let c=!1;for(let l=0;l<a;l++)if(!t.equals(r[l],s[(l+A)%a])){c=!0;break}if(c===!1)return!0;if(!o.isClosed)return!1}while(++A<a);return!1},uOe}var gOe,dXt;function ksi(){if(dXt)return gOe;dXt=1;const t=Mu(),e=mA(),n=vhe();return gOe=i=>{if(i[0]!==2)throw new Error("invalid compact binary data");const r=n();r.transforms=t.clone(i.slice(1,17)),r.isClosed=!!i[17];for(let s=22;s<i.length;s+=2){const a=e.fromValues(i[s],i[s+1]);r.points.push(a)}return i[18]>=0&&(r.color=[i[18],i[19],i[20],i[21]]),r},gOe}var dOe,hXt;function pXt(){return hXt||(hXt=1,dOe=e=>!!(e&&typeof e=="object"&&"points"in e&&"transforms"in e&&"isClosed"in e&&Array.isArray(e.points)&&"length"in e.transforms)),dOe}var hOe,mXt;function Fsi(){if(mXt)return hOe;mXt=1;const t=eOe();return hOe=n=>{const o=t(n);return o.points=n.points.slice().reverse(),o},hOe}var pOe,_Xt;function Lsi(){if(_Xt)return pOe;_Xt=1;const t=mA(),e=BY();return pOe=o=>{const i=e(o);let r="path ("+i.length+" points, "+o.isClosed+`):
[
`;return i.forEach(s=>{r+="  "+t.toString(s)+`,
`}),r+=`]
`,r},pOe}var mOe,fXt;function Hsi(){return fXt||(fXt=1,mOe=e=>{const n=e.points,o=e.transforms;let i=[-1,-1,-1,-1];e.color&&(i=e.color);const r=new Float32Array(22+n.length*2);r[0]=2,r[1]=o[0],r[2]=o[1],r[3]=o[2],r[4]=o[3],r[5]=o[4],r[6]=o[5],r[7]=o[6],r[8]=o[7],r[9]=o[8],r[10]=o[9],r[11]=o[10],r[12]=o[11],r[13]=o[12],r[14]=o[13],r[15]=o[14],r[16]=o[15],r[17]=e.isClosed?1:0,r[18]=i[0],r[19]=i[1],r[20]=i[2],r[21]=i[3];for(let s=0;s<n.length;s++){const a=s*2+22,A=n[s];r[a]=A[0],r[a+1]=A[1]}return r}),mOe}var _Oe,IXt;function Osi(){if(IXt)return _Oe;IXt=1;const t=Mu();return _Oe=(n,o)=>{const i=t.multiply(t.create(),n,o.transforms);return Object.assign({},o,{transforms:i})},_Oe}var fOe,CXt;function Gsi(){if(CXt)return fOe;CXt=1;const t=mA(),e=pXt();return fOe=o=>{if(!e(o))throw new Error("invalid path2 structure");if(o.points.length>1){for(let i=0;i<o.points.length;i++)if(t.equals(o.points[i],o.points[(i+1)%o.points.length]))throw new Error(`path2 duplicate points ${o.points[i]}`)}if(o.points.forEach(i=>{if(!i.every(Number.isFinite))throw new Error(`path2 invalid point ${i}`)}),!o.transforms.every(Number.isFinite))throw new Error(`path2 invalid transforms ${o.transforms}`)},fOe}var IOe,yXt;function au(){return yXt||(yXt=1,IOe={appendArc:Nsi(),appendBezier:Rsi(),appendPoints:lXt(),clone:eOe(),close:tXt(),concat:AXt(),create:vhe(),equals:Tsi(),fromPoints:iOe(),fromCompactBinary:ksi(),isA:pXt(),reverse:Fsi(),toPoints:BY(),toString:Lsi(),toCompactBinary:Hsi(),transform:Osi(),validate:Gsi()}),IOe}var COe,xXt;function Ysi(){if(xXt)return COe;xXt=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=qA(),r=(l,u)=>{const g=e.clone(u);return g.color=l,g},s=(l,u)=>{const g=n.clone(u);return g.color=l,g},a=(l,u)=>{const g=o.clone(u);return g.color=l,g},A=(l,u)=>{const g=i.clone(u);return g.color=l,g};return COe=(l,...u)=>{if(!Array.isArray(l))throw new Error("color must be an array");if(l.length<3)throw new Error("color must contain R, G and B values");if(l.length===3&&(l=[l[0],l[1],l[2],1]),u=t(u),u.length===0)throw new Error("wrong number of arguments");const g=u.map(h=>e.isA(h)?r(l,h):n.isA(h)?s(l,h):o.isA(h)?a(l,h):i.isA(h)?A(l,h):(h.color=l,h));return g.length===1?g[0]:g},COe}var yOe,EXt;function BXt(){return EXt||(EXt=1,yOe={black:[0/255,0/255,0/255],silver:[192/255,192/255,192/255],gray:[128/255,128/255,128/255],white:[255/255,255/255,255/255],maroon:[128/255,0/255,0/255],red:[255/255,0/255,0/255],purple:[128/255,0/255,128/255],fuchsia:[255/255,0/255,255/255],green:[0/255,128/255,0/255],lime:[0/255,255/255,0/255],olive:[128/255,128/255,0/255],yellow:[255/255,255/255,0/255],navy:[0/255,0/255,128/255],blue:[0/255,0/255,255/255],teal:[0/255,128/255,128/255],aqua:[0/255,255/255,255/255],aliceblue:[240/255,248/255,255/255],antiquewhite:[250/255,235/255,215/255],aquamarine:[127/255,255/255,212/255],azure:[240/255,255/255,255/255],beige:[245/255,245/255,220/255],bisque:[255/255,228/255,196/255],blanchedalmond:[255/255,235/255,205/255],blueviolet:[138/255,43/255,226/255],brown:[165/255,42/255,42/255],burlywood:[222/255,184/255,135/255],cadetblue:[95/255,158/255,160/255],chartreuse:[127/255,255/255,0/255],chocolate:[210/255,105/255,30/255],coral:[255/255,127/255,80/255],cornflowerblue:[100/255,149/255,237/255],cornsilk:[255/255,248/255,220/255],crimson:[220/255,20/255,60/255],cyan:[0/255,255/255,255/255],darkblue:[0/255,0/255,139/255],darkcyan:[0/255,139/255,139/255],darkgoldenrod:[184/255,134/255,11/255],darkgray:[169/255,169/255,169/255],darkgreen:[0/255,100/255,0/255],darkgrey:[169/255,169/255,169/255],darkkhaki:[189/255,183/255,107/255],darkmagenta:[139/255,0/255,139/255],darkolivegreen:[85/255,107/255,47/255],darkorange:[255/255,140/255,0/255],darkorchid:[153/255,50/255,204/255],darkred:[139/255,0/255,0/255],darksalmon:[233/255,150/255,122/255],darkseagreen:[143/255,188/255,143/255],darkslateblue:[72/255,61/255,139/255],darkslategray:[47/255,79/255,79/255],darkslategrey:[47/255,79/255,79/255],darkturquoise:[0/255,206/255,209/255],darkviolet:[148/255,0/255,211/255],deeppink:[255/255,20/255,147/255],deepskyblue:[0/255,191/255,255/255],dimgray:[105/255,105/255,105/255],dimgrey:[105/255,105/255,105/255],dodgerblue:[30/255,144/255,255/255],firebrick:[178/255,34/255,34/255],floralwhite:[255/255,250/255,240/255],forestgreen:[34/255,139/255,34/255],gainsboro:[220/255,220/255,220/255],ghostwhite:[248/255,248/255,255/255],gold:[255/255,215/255,0/255],goldenrod:[218/255,165/255,32/255],greenyellow:[173/255,255/255,47/255],grey:[128/255,128/255,128/255],honeydew:[240/255,255/255,240/255],hotpink:[255/255,105/255,180/255],indianred:[205/255,92/255,92/255],indigo:[75/255,0/255,130/255],ivory:[255/255,255/255,240/255],khaki:[240/255,230/255,140/255],lavender:[230/255,230/255,250/255],lavenderblush:[255/255,240/255,245/255],lawngreen:[124/255,252/255,0/255],lemonchiffon:[255/255,250/255,205/255],lightblue:[173/255,216/255,230/255],lightcoral:[240/255,128/255,128/255],lightcyan:[224/255,255/255,255/255],lightgoldenrodyellow:[250/255,250/255,210/255],lightgray:[211/255,211/255,211/255],lightgreen:[144/255,238/255,144/255],lightgrey:[211/255,211/255,211/255],lightpink:[255/255,182/255,193/255],lightsalmon:[255/255,160/255,122/255],lightseagreen:[32/255,178/255,170/255],lightskyblue:[135/255,206/255,250/255],lightslategray:[119/255,136/255,153/255],lightslategrey:[119/255,136/255,153/255],lightsteelblue:[176/255,196/255,222/255],lightyellow:[255/255,255/255,224/255],limegreen:[50/255,205/255,50/255],linen:[250/255,240/255,230/255],magenta:[255/255,0/255,255/255],mediumaquamarine:[102/255,205/255,170/255],mediumblue:[0/255,0/255,205/255],mediumorchid:[186/255,85/255,211/255],mediumpurple:[147/255,112/255,219/255],mediumseagreen:[60/255,179/255,113/255],mediumslateblue:[123/255,104/255,238/255],mediumspringgreen:[0/255,250/255,154/255],mediumturquoise:[72/255,209/255,204/255],mediumvioletred:[199/255,21/255,133/255],midnightblue:[25/255,25/255,112/255],mintcream:[245/255,255/255,250/255],mistyrose:[255/255,228/255,225/255],moccasin:[255/255,228/255,181/255],navajowhite:[255/255,222/255,173/255],oldlace:[253/255,245/255,230/255],olivedrab:[107/255,142/255,35/255],orange:[255/255,165/255,0/255],orangered:[255/255,69/255,0/255],orchid:[218/255,112/255,214/255],palegoldenrod:[238/255,232/255,170/255],palegreen:[152/255,251/255,152/255],paleturquoise:[175/255,238/255,238/255],palevioletred:[219/255,112/255,147/255],papayawhip:[255/255,239/255,213/255],peachpuff:[255/255,218/255,185/255],peru:[205/255,133/255,63/255],pink:[255/255,192/255,203/255],plum:[221/255,160/255,221/255],powderblue:[176/255,224/255,230/255],rosybrown:[188/255,143/255,143/255],royalblue:[65/255,105/255,225/255],saddlebrown:[139/255,69/255,19/255],salmon:[250/255,128/255,114/255],sandybrown:[244/255,164/255,96/255],seagreen:[46/255,139/255,87/255],seashell:[255/255,245/255,238/255],sienna:[160/255,82/255,45/255],skyblue:[135/255,206/255,235/255],slateblue:[106/255,90/255,205/255],slategray:[112/255,128/255,144/255],slategrey:[112/255,128/255,144/255],snow:[255/255,250/255,250/255],springgreen:[0/255,255/255,127/255],steelblue:[70/255,130/255,180/255],tan:[210/255,180/255,140/255],thistle:[216/255,191/255,216/255],tomato:[255/255,99/255,71/255],turquoise:[64/255,224/255,208/255],violet:[238/255,130/255,238/255],wheat:[245/255,222/255,179/255],whitesmoke:[245/255,245/255,245/255],yellowgreen:[154/255,205/255,50/255]}),yOe}var xOe,bXt;function Usi(){if(bXt)return xOe;bXt=1;const t=BXt();return xOe=n=>t[n.toLowerCase()],xOe}var EOe,SXt;function Ksi(){return SXt||(SXt=1,EOe=e=>{if(e=e.replace("#",""),e.length<6)throw new Error("the given notation must contain 3 or more hex values");const n=parseInt(e.substring(0,2),16)/255,o=parseInt(e.substring(2,4),16)/255,i=parseInt(e.substring(4,6),16)/255;if(e.length>=8){const r=parseInt(e.substring(6,8),16)/255;return[n,o,i,r]}return[n,o,i]}),EOe}var BOe,QXt;function vXt(){return QXt||(QXt=1,BOe=(e,n,o)=>(o<0&&(o+=1),o>1&&(o-=1),o<1/6?e+(n-e)*6*o:o<1/2?n:o<2/3?e+(n-e)*(2/3-o)*6:e)),BOe}var bOe,wXt;function Vsi(){if(wXt)return bOe;wXt=1;const t=la(),e=vXt();return bOe=(...o)=>{if(o=t(o),o.length<3)throw new Error("values must contain H, S and L values");const i=o[0],r=o[1],s=o[2];let a=s,A=s,c=s;if(r!==0){const l=s<.5?s*(1+r):s+r-s*r,u=2*s-l;a=e(u,l,i+1/3),A=e(u,l,i),c=e(u,l,i-1/3)}if(o.length>3){const l=o[3];return[a,A,c,l]}return[a,A,c]},bOe}var SOe,PXt;function zsi(){if(PXt)return SOe;PXt=1;const t=la();return SOe=(...n)=>{if(n=t(n),n.length<3)throw new Error("values must contain H, S and V values");const o=n[0],i=n[1],r=n[2];let s=0,a=0,A=0;const c=Math.floor(o*6),l=o*6-c,u=r*(1-i),g=r*(1-l*i),h=r*(1-(1-l)*i);switch(c%6){case 0:s=r,a=h,A=u;break;case 1:s=g,a=r,A=u;break;case 2:s=u,a=r,A=h;break;case 3:s=u,a=g,A=r;break;case 4:s=h,a=u,A=r;break;case 5:s=r,a=u,A=g;break}if(n.length>3){const d=n[3];return[s,a,A,d]}return[s,a,A]},SOe}var QOe,MXt;function Jsi(){if(MXt)return QOe;MXt=1;const t=la();return QOe=(...n)=>{if(n=t(n),n.length<3)throw new Error("values must contain R, G and B values");const o=n[0]*255,i=n[1]*255,r=n[2]*255;let s=`#${Number(16777216+o*65536+i*256+r).toString(16).substring(1,7)}`;return n.length>3&&(s=s+Number(n[3]*255).toString(16)),s},QOe}var vOe,DXt;function Wsi(){if(DXt)return vOe;DXt=1;const t=la();return vOe=(...n)=>{if(n=t(n),n.length<3)throw new Error("values must contain R, G and B values");const o=n[0],i=n[1],r=n[2],s=Math.max(o,i,r),a=Math.min(o,i,r);let A,c;const l=(s+a)/2;if(s===a)A=c=0;else{const u=s-a;switch(c=l>.5?u/(2-s-a):u/(s+a),s){case o:A=(i-r)/u+(i<r?6:0);break;case i:A=(r-o)/u+2;break;case r:A=(o-i)/u+4;break}A/=6}if(n.length>3){const u=n[3];return[A,c,l,u]}return[A,c,l]},vOe}var wOe,NXt;function jsi(){if(NXt)return wOe;NXt=1;const t=la();return wOe=(...n)=>{if(n=t(n),n.length<3)throw new Error("values must contain R, G and B values");const o=n[0],i=n[1],r=n[2],s=Math.max(o,i,r),a=Math.min(o,i,r);let A;const c=s,l=s-a,u=s===0?0:l/s;if(s===a)A=0;else{switch(s){case o:A=(i-r)/l+(i<r?6:0);break;case i:A=(r-o)/l+2;break;case r:A=(o-i)/l+4;break}A/=6}if(n.length>3){const g=n[3];return[A,u,c,g]}return[A,u,c]},wOe}var POe,RXt;function $si(){return RXt||(RXt=1,POe={colorize:Ysi(),colorNameToRgb:Usi(),cssColors:BXt(),hexToRgb:Ksi(),hslToRgb:Vsi(),hsvToRgb:zsi(),hueToColorComponent:vXt(),rgbToHex:Jsi(),rgbToHsl:Wsi(),rgbToHsv:jsi()}),POe}var MOe,TXt;function qsi(){if(TXt)return MOe;TXt=1;const t=i=>{if(!Array.isArray(i))throw new Error("Bezier points must be a valid array/");if(i.length<2)throw new Error("Bezier points must contain at least 2 values.");const r=e(i);return{points:i,pointType:r,dimensions:r==="float_single"?0:i[0].length,permutations:n(i.length-1),tangentPermutations:n(i.length-2)}},e=function(i){let r=null;return i.forEach(s=>{let a="";if(Number.isFinite(s))a="float_single";else if(Array.isArray(s))s.forEach(A=>{if(!Number.isFinite(A))throw new Error("Bezier point values must all be numbers.")}),a="float_"+s.length;else throw new Error("Bezier points must all be numbers or arrays of number.");if(r==null)r=a;else if(r!==a)throw new Error("Bezier points must be either all numbers or all arrays of numbers of the same size.")}),r},n=function(i){const r=[];for(let s=0;s<=i;s++)r.push(o(i)/(o(s)*o(i-s)));return r},o=function(i){let r=1;for(let s=2;s<=i;s++)r*=s;return r};return MOe=t,MOe}var DOe,kXt;function FXt(){if(kXt)return DOe;kXt=1;const t=(n,o)=>{if(n<0||n>1)throw new Error("Bezier valueAt() input must be between 0 and 1");if(o.pointType==="float_single")return e(o,o.points,n);{const i=[];for(let r=0;r<o.dimensions;r++){const s=[];for(let a=0;a<o.points.length;a++)s.push(o.points[a][r]);i.push(e(o,s,n))}return i}},e=function(n,o,i){const r=o.length-1;let s=0;for(let a=0;a<=r;a++)s+=n.permutations[a]*Math.pow(1-i,r-a)*Math.pow(i,a)*o[a];return s};return DOe=t,DOe}var NOe,LXt;function Xsi(){if(LXt)return NOe;LXt=1;const t=(n,o)=>{if(n<0||n>1)throw new Error("Bezier tangentAt() input must be between 0 and 1");if(o.pointType==="float_single")return e(o,o.points,n);{const i=[];for(let r=0;r<o.dimensions;r++){const s=[];for(let a=0;a<o.points.length;a++)s.push(o.points[a][r]);i.push(e(o,s,n))}return i}},e=function(n,o,i){const r=o.length-1;let s=0;for(let a=0;a<r;a++){const A=r*(o[a+1]-o[a]);s+=n.tangentPermutations[a]*Math.pow(1-i,r-1-a)*Math.pow(i,a)*A}return s};return NOe=t,NOe}var ROe,HXt;function TOe(){if(HXt)return ROe;HXt=1;const t=FXt(),e=(o,i)=>{let r=0;const s=[0];let a=t(0,i);for(let A=1;A<=o;A++){const c=t(A/o,i);r+=n(c,a),s.push(r),a=c}return s},n=(o,i)=>{if(Number.isFinite(o)&&Number.isFinite(i))return Math.abs(o-i);if(Array.isArray(o)&&Array.isArray(i)){if(o.length!==i.length)throw new Error("The operands must have the same number of dimensions.");let r=0;for(let s=0;s<o.length;s++)r+=(i[s]-o[s])*(i[s]-o[s]);return Math.sqrt(r)}else throw new Error("The operands must be of the same type, either number or array.")};return ROe=e,ROe}var kOe,OXt;function Zsi(){if(OXt)return kOe;OXt=1;const t=TOe();return kOe=(n,o)=>t(n,o)[n],kOe}var FOe,GXt;function eai(){if(GXt)return FOe;GXt=1;const t=TOe();return FOe=(n,o)=>{const i={distance:0,segments:100},{distance:r,segments:s}=Object.assign({},i,n),a=t(s,o);let A=0,c=s;for(;A<=c;){const p=Math.floor(A+(c-A)/2),m=a[p]-r;if(m<0)A=p+1;else if(m>0)c=p-1;else{c=p;break}}const l=c;if(a[l]===r)return l/s;const u=a[l],h=a[l+1]-u,d=(r-u)/h;return(l+d)/s},FOe}var LOe,YXt;function tai(){return YXt||(YXt=1,LOe={create:qsi(),valueAt:FXt(),tangentAt:Xsi(),lengths:TOe(),length:Zsi(),arcLengthToT:eai()}),LOe}var HOe,UXt;function nai(){return UXt||(UXt=1,HOe={bezier:tai()}),HOe}var OOe,KXt;function whe(){return KXt||(KXt=1,OOe=e=>{let n=0;for(let o=0;o<e.length;o++){const i=(o+1)%e.length;n+=e[o][0]*e[i][1],n-=e[i][0]*e[o][1]}return n/2}),OOe}var GOe,VXt;function zXt(){if(VXt)return GOe;VXt=1;const t=whe();return GOe=n=>t(n.vertices),GOe}var YOe,JXt;function WXt(){return JXt||(JXt=1,YOe=e=>((e===void 0||e.length<3)&&(e=[]),{vertices:e})),YOe}var UOe,jXt;function $Xt(){if(jXt)return UOe;jXt=1;const t=WXt();return UOe=n=>{const o=n.vertices.slice().reverse();return t(o)},UOe}var KOe,qXt;function oai(){if(qXt)return KOe;qXt=1;const t=zXt(),e=$Xt(),n=(i,r)=>{if(i.length===0)return 0;const s=r.vertices;return s.length<3?0:(t(r)<0&&(r=e(r)),i.reduce((A,c)=>A+o(c,s),0)===i.length?1:0)},o=(i,r)=>{const s=r.length,a=i[0],A=i[1];let c=r[s-1],l=r[0],u=c[1]>A,g=0,h=0;for(let d=s+1;--d;){const p=l[1]>A;if(u!==p){const m=c[0]>a,_=l[0]>a;(m&&_||l[0]-(l[1]-A)*(c[0]-l[0])/(c[1]-l[1])>=a)&&(g=!g)}u=p,c=l,l=r[++h]}return g};return KOe=n,KOe}var VOe,XXt;function zOe(){return XXt||(XXt=1,VOe={arePointsInside:oai(),create:WXt(),flip:$Xt(),measureArea:zXt()}),VOe}var JOe,ZXt;function WOe(){return ZXt||(ZXt=1,JOe={geom2:Ga(),geom3:Ra(),path2:au(),poly2:zOe(),poly3:qA()}),JOe}var jOe,eZt;function $Oe(){return eZt||(eZt=1,jOe=()=>[0,1,0]),jOe}var qOe,tZt;function iai(){if(tZt)return qOe;tZt=1;const t=$Oe();return qOe=n=>{const o=t();return o[0]=n[0],o[1]=n[1],o[2]=n[2],o},qOe}var XOe,nZt;function ZOe(){if(nZt)return XOe;nZt=1;const t=mA();return XOe=n=>{const o=t.normal(t.create(),n);return t.negate(o,o),o},XOe}var eGe,oZt;function Phe(){if(oZt)return eGe;oZt=1;const t=mA();return eGe=n=>t.scale(t.create(),n,n[2]),eGe}var tGe,iZt;function rai(){if(iZt)return tGe;iZt=1;const t=mA(),e=ZOe(),n=Phe();return tGe=(i,r)=>{const s=n(i),a=e(i),A=t.subtract(t.create(),r,s),c=t.dot(A,a);return t.scale(A,a,c),t.add(A,A,s),A},tGe}var nGe,rZt;function sZt(){return rZt||(rZt=1,nGe=(e,n)=>(e[0]=n[0],e[1]=n[1],e[2]=n[2],e)),nGe}var oGe,aZt;function sai(){if(aZt)return oGe;aZt=1;const t=mA();return oGe=(n,o)=>{let i=t.dot(o,n);return i=Math.abs(i-n[2]),i},oGe}var iGe,AZt;function aai(){return AZt||(AZt=1,iGe=(e,n)=>e[0]===n[0]&&e[1]===n[1]&&e[2]===n[2]),iGe}var rGe,cZt;function lZt(){if(cZt)return rGe;cZt=1;const t=mA();return rGe=(n,o,i)=>{const r=t.subtract(t.create(),i,o);t.normal(r,r),t.normalize(r,r);const s=t.dot(o,r);return n[0]=r[0],n[1]=r[1],n[2]=s,n},rGe}var sGe,uZt;function gZt(){if(uZt)return sGe;uZt=1;const t=$Oe();return sGe=(n,o,i)=>{const r=t();return r[0]=n,r[1]=o,r[2]=i,r},sGe}var aGe,dZt;function AGe(){if(dZt)return aGe;dZt=1;const{NEPS:t}=pc();return aGe=(n,o)=>Math.abs(n[0]-o[0])<=t&&Math.abs(n[1]-o[1])<=t&&Math.abs(n[2]-o[2])<=t,aGe}var cGe,hZt;function pZt(){return hZt||(hZt=1,cGe=(e,n,o)=>{let i=o-e[1],r=n[1]-e[1];r<0&&(i=-i,r=-r);let s;return i<=0?s=0:i>=r?s=1:r<1e-10?s=.5:s=i/r,e[0]+s*(n[0]-e[0])}),cGe}var lGe,mZt;function _Zt(){return mZt||(mZt=1,lGe=(e,n,o,i)=>{if(e[0]===n[0]&&e[1]===n[1]||o[0]===i[0]&&o[1]===i[1])return;const r=(i[1]-o[1])*(n[0]-e[0])-(i[0]-o[0])*(n[1]-e[1]);if(Math.abs(r)<Number.MIN_VALUE)return;const s=((i[0]-o[0])*(e[1]-o[1])-(i[1]-o[1])*(e[0]-o[0]))/r,a=((n[0]-e[0])*(e[1]-o[1])-(n[1]-e[1])*(e[0]-o[0]))/r;if(s<0||s>1||a<0||a>1)return;const A=e[0]+s*(n[0]-e[0]),c=e[1]+s*(n[1]-e[1]);return[A,c]}),lGe}var uGe,fZt;function Aai(){return fZt||(fZt=1,uGe=(e,n,o,i,r,s)=>{const A=1/(e*i-n*o);let c=r*i-n*s,l=-r*o+e*s;return c*=A,l*=A,[c,l]}),uGe}var gGe,IZt;function hX(){return IZt||(IZt=1,gGe={aboutEqualNormals:AGe(),area:whe(),cos:dI().cos,interpolateBetween2DPointsForY:pZt(),intersect:_Zt(),sin:dI().sin,solve2Linear:Aai()}),gGe}var dGe,CZt;function cai(){if(CZt)return dGe;CZt=1;const t=mA(),{solve2Linear:e}=hX();return dGe=(o,i)=>{const r=e(o[0],o[1],i[0],i[1],o[2],i[2]);return t.clone(r)},dGe}var hGe,yZt;function lai(){if(yZt)return hGe;yZt=1;const t=mA(),e=sZt(),n=gZt();return hGe=(i,r)=>{const s=t.negate(t.create(),r),a=-r[2];return e(i,n(s[0],s[1],a))},hGe}var pGe,xZt;function uai(){return xZt||(xZt=1,pGe=e=>`line2: (${e[0].toFixed(7)}, ${e[1].toFixed(7)}, ${e[2].toFixed(7)})`),pGe}var mGe,EZt;function gai(){if(EZt)return mGe;EZt=1;const t=mA(),e=lZt(),n=Phe(),o=ZOe();return mGe=(r,s,a)=>{const A=n(s),c=o(s);return t.transform(A,A,a),t.transform(c,c,a),e(r,A,c)},mGe}var _Ge,BZt;function dai(){if(BZt)return _Ge;BZt=1;const t=Phe();return _Ge=(n,o)=>{let i=(n[2]-n[1]*o)/n[0];return Number.isNaN(i)&&(i=t(n)[0]),i},_Ge}var fGe,bZt;function IGe(){return bZt||(bZt=1,fGe={clone:iai(),closestPoint:rai(),copy:sZt(),create:$Oe(),direction:ZOe(),distanceToPoint:sai(),equals:aai(),fromPoints:lZt(),fromValues:gZt(),intersectPointOfLines:cai(),origin:Phe(),reverse:lai(),toString:uai(),transform:gai(),xAtY:dai()}),fGe}var CGe,SZt;function QZt(){if(SZt)return CGe;SZt=1;const t=jr();return CGe=()=>[t.fromValues(0,0,0),t.fromValues(0,0,1)],CGe}var yGe,vZt;function hai(){if(vZt)return yGe;vZt=1;const t=jr(),e=QZt();return yGe=o=>{const i=e();return t.copy(i[0],o[0]),t.copy(i[1],o[1]),i},yGe}var xGe,wZt;function PZt(){if(wZt)return xGe;wZt=1;const t=jr();return xGe=(n,o)=>{const i=n[0],r=n[1],s=t.dot(t.subtract(t.create(),o,i),r),a=t.dot(r,r),A=s/a,c=t.scale(t.create(),r,A);return t.add(c,c,i),c},xGe}var EGe,MZt;function pai(){if(MZt)return EGe;MZt=1;const t=jr();return EGe=(n,o)=>(t.copy(n[0],o[0]),t.copy(n[1],o[1]),n),EGe}var BGe,DZt;function mai(){return DZt||(DZt=1,BGe=e=>e[1]),BGe}var bGe,NZt;function _ai(){if(NZt)return bGe;NZt=1;const t=jr(),e=PZt();return bGe=(o,i)=>{const r=e(o,i),s=t.subtract(t.create(),i,r);return t.length(s)},bGe}var SGe,RZt;function fai(){if(RZt)return SGe;RZt=1;const t=jr();return SGe=(n,o)=>!(!t.equals(n[1],o[1])||!t.equals(n[0],o[0])),SGe}var QGe,TZt;function pX(){if(TZt)return QGe;TZt=1;const t=jr();return QGe=(n,o,i)=>{const r=t.normalize(t.create(),i);return t.copy(n[0],o),t.copy(n[1],r),n},QGe}var vGe,kZt;function Iai(){if(kZt)return vGe;kZt=1;const t=jr(),{solve2Linear:e}=hX(),{EPS:n}=pc(),o=pX();return vGe=(r,s,a)=>{let A=t.cross(t.create(),s,a),c=t.length(A);if(c<n)throw new Error("parallel planes do not intersect");c=1/c,A=t.scale(A,A,c);const l=Math.abs(A[0]),u=Math.abs(A[1]),g=Math.abs(A[2]);let h,d;return l>=u&&l>=g?(d=e(s[1],s[2],a[1],a[2],s[3],a[3]),h=t.fromValues(0,d[0],d[1])):u>=l&&u>=g?(d=e(s[0],s[2],a[0],a[2],s[3],a[3]),h=t.fromValues(d[0],0,d[1])):(d=e(s[0],s[1],a[0],a[1],s[3],a[3]),h=t.fromValues(d[0],d[1],0)),o(r,h,A)},vGe}var wGe,FZt;function Cai(){if(FZt)return wGe;FZt=1;const t=jr(),e=pX();return wGe=(o,i,r)=>{const s=t.subtract(t.create(),r,i);return e(o,i,s)},wGe}var PGe,LZt;function yai(){if(LZt)return PGe;LZt=1;const t=jr();return PGe=(n,o)=>{const i=o,r=o[3],s=n[0],a=n[1],A=(r-t.dot(i,s))/t.dot(i,a);return t.add(t.create(),s,t.scale(t.create(),a,A))},PGe}var MGe,HZt;function xai(){return HZt||(HZt=1,MGe=e=>e[0]),MGe}var DGe,OZt;function Eai(){if(OZt)return DGe;OZt=1;const t=jr(),e=pX();return DGe=(o,i)=>{const r=t.clone(i[0]),s=t.negate(t.create(),i[1]);return e(o,r,s)},DGe}var NGe,GZt;function Bai(){return GZt||(GZt=1,NGe=e=>{const n=e[0],o=e[1];return`line3: point: (${n[0].toFixed(7)}, ${n[1].toFixed(7)}, ${n[2].toFixed(7)}) direction: (${o[0].toFixed(7)}, ${o[1].toFixed(7)}, ${o[2].toFixed(7)})`}),NGe}var RGe,YZt;function bai(){if(YZt)return RGe;YZt=1;const t=jr(),e=pX();return RGe=(o,i,r)=>{const s=i[0],a=i[1],A=t.add(t.create(),s,a),c=t.transform(t.create(),s,r),l=t.transform(A,A,r),u=t.subtract(l,l,c);return e(o,c,u)},RGe}var TGe,UZt;function Sai(){return UZt||(UZt=1,TGe={clone:hai(),closestPoint:PZt(),copy:pai(),create:QZt(),direction:mai(),distanceToPoint:_ai(),equals:fai(),fromPlanes:Iai(),fromPointAndDirection:pX(),fromPoints:Cai(),intersectPointOfLineAndPlane:yai(),origin:xai(),reverse:Eai(),toString:Bai(),transform:bai()}),TGe}var kGe,KZt;function Qai(){return KZt||(KZt=1,kGe={constants:pc(),line2:IGe(),line3:Sai(),mat4:Mu(),plane:E6(),utils:hX(),vec2:mA(),vec3:jr(),vec4:Mqt()}),kGe}var FGe,VZt;function zZt(){if(VZt)return FGe;VZt=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=qA(),r=new WeakMap,s=()=>0,a=l=>{let u=r.get(l);return u||(u=e.toSides(l).reduce((h,d)=>h+(d[0][0]*d[1][1]-d[0][1]*d[1][0]),0),u*=.5,r.set(l,u),u)},A=l=>{let u=r.get(l);return u||(u=n.toPolygons(l).reduce((h,d)=>h+i.measureArea(d),0),r.set(l,u),u)};return FGe=(...l)=>{if(l=t(l),l.length===0)throw new Error("wrong number of arguments");const u=l.map(g=>o.isA(g)?s():e.isA(g)?a(g):n.isA(g)?A(g):0);return u.length===1?u[0]:u},FGe}var LGe,JZt;function vai(){if(JZt)return LGe;JZt=1;const t=la(),e=zZt();return LGe=(...o)=>{if(o=t(o),o.length===0)throw new Error("measureAggregateArea: no geometries supplied");const i=e(o);return o.length===1?i:i.reduce((s,a)=>s+a,0)},LGe}var HGe,WZt;function eT(){if(WZt)return HGe;WZt=1;const t=la(),e=mA(),n=jr(),o=Ga(),i=Ra(),r=au(),s=qA(),a=new WeakMap,A=g=>{let h=a.get(g);if(h)return h;const d=r.toPoints(g);let p;d.length===0?p=e.create():p=e.clone(d[0]);let m=e.clone(p);return d.forEach(_=>{e.min(p,p,_),e.max(m,m,_)}),p=[p[0],p[1],0],m=[m[0],m[1],0],h=[p,m],a.set(g,h),h},c=g=>{let h=a.get(g);if(h)return h;const d=o.toPoints(g);let p;d.length===0?p=e.create():p=e.clone(d[0]);let m=e.clone(p);return d.forEach(_=>{e.min(p,p,_),e.max(m,m,_)}),p=[p[0],p[1],0],m=[m[0],m[1],0],h=[p,m],a.set(g,h),h},l=g=>{let h=a.get(g);if(h)return h;const d=i.toPolygons(g);let p=n.create();if(d.length>0){const _=s.toPoints(d[0]);n.copy(p,_[0])}let m=n.clone(p);return d.forEach(_=>{s.toPoints(_).forEach(f=>{n.min(p,p,f),n.max(m,m,f)})}),p=[p[0],p[1],p[2]],m=[m[0],m[1],m[2]],h=[p,m],a.set(g,h),h};return HGe=(...g)=>{if(g=t(g),g.length===0)throw new Error("wrong number of arguments");const h=g.map(d=>r.isA(d)?A(d):o.isA(d)?c(d):i.isA(d)?l(d):[[0,0,0],[0,0,0]]);return h.length===1?h[0]:h},HGe}var OGe,jZt;function GGe(){if(jZt)return OGe;jZt=1;const t=la(),e=qWt(),n=jWt(),o=eT();return OGe=(...r)=>{if(r=t(r),r.length===0)throw new Error("measureAggregateBoundingBox: no geometries supplied");const s=o(r);if(r.length===1)return s;const a=[[Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE],[-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE]];return s.reduce((A,c)=>(A=[e(A[0],A[0],c[0]),n(A[1],A[1],c[1])],A),a)},OGe}var YGe,$Zt;function qZt(){if($Zt)return YGe;$Zt=1;const{EPS:t}=pc();return YGe=(n,o)=>{let i=0;for(let r=0;r<o;r++)i+=n[1][r]-n[0][r];return t*i/o},YGe}var UGe,XZt;function wai(){if(XZt)return UGe;XZt=1;const t=la(),e=GGe(),n=qZt(),{geom2:o,geom3:i,path2:r}=WOe();return UGe=(...a)=>{if(a=t(a),a.length===0)throw new Error("measureAggregateEpsilon: no geometries supplied");const A=e(a);let c=0;return c=a.reduce((l,u)=>r.isA(u)||o.isA(u)?Math.max(l,2):i.isA(u)?Math.max(l,3):0,c),n(A,c)},UGe}var KGe,ZZt;function een(){if(ZZt)return KGe;ZZt=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=qA(),r=new WeakMap,s=()=>0,a=()=>0,A=l=>{let u=r.get(l);return u||(u=n.toPolygons(l).reduce((h,d)=>h+i.measureSignedVolume(d),0),r.set(l,u),u)};return KGe=(...l)=>{if(l=t(l),l.length===0)throw new Error("wrong number of arguments");const u=l.map(g=>o.isA(g)?s():e.isA(g)?a():n.isA(g)?A(g):0);return u.length===1?u[0]:u},KGe}var VGe,ten;function Pai(){if(ten)return VGe;ten=1;const t=la(),e=een();return VGe=(...o)=>{if(o=t(o),o.length===0)throw new Error("measureAggregateVolume: no geometries supplied");const i=e(o);return o.length===1?i:i.reduce((s,a)=>s+a,0)},VGe}var zGe,nen;function Mai(){if(nen)return zGe;nen=1;const t=la(),e=mA(),n=jr(),o=Ga(),i=Ra(),r=au(),s=qA(),a=new WeakMap,A=g=>{let h=a.get(g);if(h!==void 0)return h;const d=n.create();let p=0;const m=r.toPoints(g);if(m.length>0){let _=0;const f=n.create();m.forEach(I=>{n.add(d,d,n.fromVec2(f,I,0)),_++}),n.scale(d,d,1/_),m.forEach(I=>{p=Math.max(p,e.squaredDistance(d,I))}),p=Math.sqrt(p)}return h=[d,p],a.set(g,h),h},c=g=>{let h=a.get(g);if(h!==void 0)return h;const d=n.create();let p=0;const m=o.toSides(g);if(m.length>0){let _=0;const f=n.create();m.forEach(I=>{n.add(d,d,n.fromVec2(f,I[0],0)),_++}),n.scale(d,d,1/_),m.forEach(I=>{p=Math.max(p,e.squaredDistance(d,I[0]))}),p=Math.sqrt(p)}return h=[d,p],a.set(g,h),h},l=g=>{let h=a.get(g);if(h!==void 0)return h;const d=n.create();let p=0;const m=i.toPolygons(g);if(m.length>0){let _=0;m.forEach(f=>{s.toPoints(f).forEach(I=>{n.add(d,d,I),_++})}),n.scale(d,d,1/_),m.forEach(f=>{s.toPoints(f).forEach(I=>{p=Math.max(p,n.squaredDistance(d,I))})}),p=Math.sqrt(p)}return h=[d,p],a.set(g,h),h};return zGe=(...g)=>{g=t(g);const h=g.map(d=>r.isA(d)?A(d):o.isA(d)?c(d):i.isA(d)?l(d):[[0,0,0],0]);return h.length===1?h[0]:h},zGe}var JGe,oen;function Dai(){if(oen)return JGe;oen=1;const t=la(),e=eT();return JGe=(...o)=>{o=t(o);const i=o.map(r=>{const s=e(r);return[s[0][0]+(s[1][0]-s[0][0])/2,s[0][1]+(s[1][1]-s[0][1])/2,s[0][2]+(s[1][2]-s[0][2])/2]});return i.length===1?i[0]:i},JGe}var WGe,ien;function Nai(){if(ien)return WGe;ien=1;const t=la(),e=jr(),n=Ga(),o=Ra(),i=new WeakMap,r=A=>{let c=i.get(A);if(c!==void 0)return c;const l=n.toSides(A);let u=0,g=0,h=0;if(l.length>0){for(let p=0;p<l.length;p++){const m=l[p][0],_=l[p][1],f=m[0]*_[1]-m[1]*_[0];u+=f,g+=(m[0]+_[0])*f,h+=(m[1]+_[1])*f}u/=2;const d=1/(u*6);g*=d,h*=d}return c=e.fromValues(g,h,0),i.set(A,c),c},s=A=>{let c=i.get(A);if(c!==void 0)return c;c=e.create();const l=o.toPolygons(A);if(l.length===0)return c;let u=0;const g=e.create();return l.forEach(h=>{const d=h.vertices;for(let p=0;p<d.length-2;p++){e.cross(g,d[p+1],d[p+2]);const m=e.dot(d[0],g)/6;u+=m,e.add(g,d[0],d[p+1]),e.add(g,g,d[p+2]);const _=e.scale(g,g,1/4*m);e.add(c,c,_)}}),e.scale(c,c,1/u),i.set(A,c),c};return WGe=(...A)=>{A=t(A);const c=A.map(l=>n.isA(l)?r(l):o.isA(l)?s(l):[0,0,0]);return c.length===1?c[0]:c},WGe}var jGe,ren;function Rai(){if(ren)return jGe;ren=1;const t=la(),e=eT();return jGe=(...o)=>{o=t(o);const i=o.map(r=>{const s=e(r);return[s[1][0]-s[0][0],s[1][1]-s[0][1],s[1][2]-s[0][2]]});return i.length===1?i[0]:i},jGe}var $Ge,sen;function rP(){if(sen)return $Ge;sen=1;const t=la(),{geom2:e,geom3:n,path2:o}=WOe(),i=qZt(),r=eT(),s=l=>i(r(l),2),a=l=>i(r(l),2),A=l=>i(r(l),3);return $Ge=(...l)=>{if(l=t(l),l.length===0)throw new Error("wrong number of arguments");const u=l.map(g=>o.isA(g)?s(g):e.isA(g)?a(g):n.isA(g)?A(g):0);return u.length===1?u[0]:u},$Ge}var qGe,aen;function Tai(){return aen||(aen=1,qGe={measureAggregateArea:vai(),measureAggregateBoundingBox:GGe(),measureAggregateEpsilon:wai(),measureAggregateVolume:Pai(),measureArea:zZt(),measureBoundingBox:eT(),measureBoundingSphere:Mai(),measureCenter:Dai(),measureCenterOfMass:Nai(),measureDimensions:Rai(),measureEpsilon:rP(),measureVolume:een()}),qGe}var XGe,Aen;function cf(){return Aen||(Aen=1,XGe={isNumberArray:(o,i)=>Array.isArray(o)&&o.length>=i?o.every(r=>Number.isFinite(r)):!1,isGT:(o,i)=>Number.isFinite(o)&&o>i,isGTE:(o,i)=>Number.isFinite(o)&&o>=i}),XGe}var ZGe,cen;function kai(){if(cen)return ZGe;cen=1;const{EPS:t,TAU:e}=pc(),n=mA(),o=au(),{isGT:i,isGTE:r,isNumberArray:s}=cf();return ZGe=A=>{const c={center:[0,0],radius:1,startAngle:0,endAngle:e,makeTangent:!1,segments:32};let{center:l,radius:u,startAngle:g,endAngle:h,makeTangent:d,segments:p}=Object.assign({},c,A);if(!s(l,2))throw new Error("center must be an array of X and Y values");if(!i(u,0))throw new Error("radius must be greater than zero");if(!r(g,0))throw new Error("startAngle must be positive");if(!r(h,0))throw new Error("endAngle must be positive");if(!r(p,4))throw new Error("segments must be four or more");g=g%e,h=h%e;let m=e;g<h&&(m=h-g),g>h&&(m=h+(e-g));const _=Math.acos((u*u+u*u-t*t)/(2*u*u)),f=n.clone(l);let I;const C=[];if(m<_)I=n.fromAngleRadians(n.create(),g),n.scale(I,I,u),n.add(I,I,f),C.push(I);else{const y=Math.floor(p*(Math.abs(m)/e));let x=y*.5/m;x>.25&&(x=.25);const E=d?y+2:y;for(let B=0;B<=E;B++){let S=B;d&&(S=(B-1)*(y-2*x)/y+x,S<0&&(S=0),S>y&&(S=y));const Q=g+S*(m/y);I=n.fromAngleRadians(n.create(),Q),n.scale(I,I,u),n.add(I,I,f),C.push(I)}}return o.fromPoints({closed:!1},C)},ZGe}var eYe,len;function uen(){if(len)return eYe;len=1;const{EPS:t,TAU:e}=pc(),n=mA(),o=Ga(),{sin:i,cos:r}=dI(),{isGTE:s,isNumberArray:a}=cf();return eYe=c=>{const l={center:[0,0],radius:[1,1],startAngle:0,endAngle:e,segments:32};let{center:u,radius:g,startAngle:h,endAngle:d,segments:p}=Object.assign({},l,c);if(!a(u,2))throw new Error("center must be an array of X and Y values");if(!a(g,2))throw new Error("radius must be an array of X and Y values");if(!g.every(x=>x>=0))throw new Error("radius values must be positive");if(!s(h,0))throw new Error("startAngle must be positive");if(!s(d,0))throw new Error("endAngle must be positive");if(!s(p,3))throw new Error("segments must be three or more");if(g[0]===0||g[1]===0)return o.create();h=h%e,d=d%e;let m=e;h<d&&(m=d-h),h>d&&(m=d+(e-h));const _=Math.min(g[0],g[1]),f=Math.acos((_*_+_*_-t*t)/(2*_*_));if(m<f)throw new Error("startAngle and endAngle do not define a significant rotation");p=Math.floor(p*(m/e));const I=n.clone(u),C=m/p,y=[];p=m<e?p+1:p;for(let x=0;x<p;x++){const E=C*x+h,B=n.fromValues(g[0]*r(E),g[1]*i(E));n.add(B,I,B),y.push(B)}return m<e&&y.push(I),o.fromPoints(y)},eYe}var tYe,gen;function den(){if(gen)return tYe;gen=1;const{TAU:t}=pc(),e=uen(),{isGTE:n}=cf();return tYe=i=>{const r={center:[0,0],radius:1,startAngle:0,endAngle:t,segments:32};let{center:s,radius:a,startAngle:A,endAngle:c,segments:l}=Object.assign({},r,i);if(!n(a,0))throw new Error("radius must be positive");return a=[a,a],e({center:s,radius:a,startAngle:A,endAngle:c,segments:l})},tYe}var nYe,hen;function oYe(){if(hen)return nYe;hen=1;const t=Ra(),e=qA(),{isNumberArray:n}=cf();return nYe=i=>{const r={center:[0,0,0],size:[2,2,2]},{center:s,size:a}=Object.assign({},r,i);if(!n(s,3))throw new Error("center must be an array of X, Y and Z values");if(!n(a,3))throw new Error("size must be an array of width, depth and height values");if(!a.every(c=>c>=0))throw new Error("size values must be positive");return a[0]===0||a[1]===0||a[2]===0?t.create():t.create([[[0,4,6,2],[-1,0,0]],[[1,3,7,5],[1,0,0]],[[0,1,5,4],[0,-1,0]],[[2,6,7,3],[0,1,0]],[[0,2,3,1],[0,0,-1]],[[4,5,7,6],[0,0,1]]].map(c=>{const l=c[0].map(u=>[s[0]+a[0]/2*(2*!!(u&1)-1),s[1]+a[1]/2*(2*!!(u&2)-1),s[2]+a[2]/2*(2*!!(u&4)-1)]);return e.create(l)}))},nYe}var iYe,pen;function Fai(){if(pen)return iYe;pen=1;const t=oYe(),{isGTE:e}=cf();return iYe=o=>{const i={center:[0,0,0],size:2};let{center:r,size:s}=Object.assign({},i,o);if(!e(s,0))throw new Error("size must be positive");return s=[s,s,s],t({center:r,size:s})},iYe}var rYe,men;function _en(){if(men)return rYe;men=1;const{EPS:t,TAU:e}=pc(),n=jr(),o=Ra(),i=qA(),{sin:r,cos:s}=dI(),{isGT:a,isGTE:A,isNumberArray:c}=cf();return rYe=u=>{const g={center:[0,0,0],height:2,startRadius:[1,1],startAngle:0,endRadius:[1,1],endAngle:e,segments:32};let{center:h,height:d,startRadius:p,startAngle:m,endRadius:_,endAngle:f,segments:I}=Object.assign({},g,u);if(!c(h,3))throw new Error("center must be an array of X, Y and Z values");if(!a(d,0))throw new Error("height must be greater then zero");if(!c(p,2))throw new Error("startRadius must be an array of X and Y values");if(!p.every(te=>te>=0))throw new Error("startRadius values must be positive");if(!c(_,2))throw new Error("endRadius must be an array of X and Y values");if(!_.every(te=>te>=0))throw new Error("endRadius values must be positive");if(_.every(te=>te===0)&&p.every(te=>te===0))throw new Error("at least one radius must be positive");if(!A(m,0))throw new Error("startAngle must be positive");if(!A(f,0))throw new Error("endAngle must be positive");if(!A(I,4))throw new Error("segments must be four or more");m=m%e,f=f%e;let C=e;m<f&&(C=f-m),m>f&&(C=f+(e-m));const y=Math.min(p[0],p[1],_[0],_[1]),x=Math.acos((y*y+y*y-t*t)/(2*y*y));if(C<x)throw new Error("startAngle and endAngle do not define a significant rotation");const E=Math.floor(I*(C/e)),B=n.fromValues(0,0,-(d/2)),S=n.fromValues(0,0,d/2),Q=n.subtract(n.create(),S,B),w=n.fromValues(1,0,0),M=n.fromValues(0,1,0),k=n.create(),R=n.create(),F=n.create(),O=(te,j,J)=>{const oe=j*C+m;return n.scale(k,w,J[0]*s(oe)),n.scale(R,M,J[1]*r(oe)),n.add(k,k,R),n.scale(F,Q,te),n.add(F,F,B),n.add(n.create(),k,F)},U=(...te)=>{const j=te.map(J=>n.add(n.create(),J,h));return i.create(j)},Y=[];for(let te=0;te<E;te++){const j=te/E;let J=(te+1)/E;C===e&&te===E-1&&(J=0),_[0]===p[0]&&_[1]===p[1]?(Y.push(U(B,O(0,J,_),O(0,j,_))),Y.push(U(O(0,J,_),O(1,J,_),O(1,j,_),O(0,j,_))),Y.push(U(S,O(1,j,_),O(1,J,_)))):(p[0]>0&&p[1]>0&&Y.push(U(B,O(0,J,p),O(0,j,p))),(p[0]>0||p[1]>0)&&Y.push(U(O(0,j,p),O(0,J,p),O(1,j,_))),_[0]>0&&_[1]>0&&Y.push(U(S,O(1,j,_),O(1,J,_))),(_[0]>0||_[1]>0)&&Y.push(U(O(1,j,_),O(0,J,p),O(1,J,_))))}return C<e&&(Y.push(U(B,O(0,0,p),S)),Y.push(U(O(0,0,p),O(1,0,_),S)),Y.push(U(B,S,O(0,1,p))),Y.push(U(O(0,1,p),S,O(1,1,_)))),o.create(Y)},rYe}var sYe,fen;function Ien(){if(fen)return sYe;fen=1;const t=Ra(),e=_en(),{isGTE:n}=cf();return sYe=i=>{const r={center:[0,0,0],height:2,radius:1,segments:32},{center:s,height:a,radius:A,segments:c}=Object.assign({},r,i);if(!n(A,0))throw new Error("radius must be positive");return a===0||A===0?t.create():e({center:s,height:a,startRadius:[A,A],endRadius:[A,A],segments:c})},sYe}var aYe,Cen;function yen(){if(Cen)return aYe;Cen=1;const{TAU:t}=pc(),e=jr(),n=Ra(),o=qA(),{sin:i,cos:r}=dI(),{isGTE:s,isNumberArray:a}=cf();return aYe=c=>{const l={center:[0,0,0],radius:[1,1,1],segments:32,axes:[[1,0,0],[0,-1,0],[0,0,1]]},{center:u,radius:g,segments:h,axes:d}=Object.assign({},l,c);if(!a(u,3))throw new Error("center must be an array of X, Y and Z values");if(!a(g,3))throw new Error("radius must be an array of X, Y and Z values");if(!g.every(E=>E>=0))throw new Error("radius values must be positive");if(!s(h,4))throw new Error("segments must be four or more");if(g[0]===0||g[1]===0||g[2]===0)return n.create();const p=e.scale(e.create(),e.normalize(e.create(),d[0]),g[0]),m=e.scale(e.create(),e.normalize(e.create(),d[1]),g[1]),_=e.scale(e.create(),e.normalize(e.create(),d[2]),g[2]),f=Math.round(h/4);let I;const C=[],y=e.create(),x=e.create();for(let E=0;E<=h;E++){const B=t*E/h,S=e.add(e.create(),e.scale(y,p,r(B)),e.scale(x,m,i(B)));if(E>0){let Q,w;for(let M=0;M<=f;M++){const k=t/4*M/f,R=r(k),F=i(k);if(M>0){let O=[],U;U=e.subtract(e.create(),e.scale(y,I,Q),e.scale(x,_,w)),O.push(e.add(U,U,u)),U=e.subtract(e.create(),e.scale(y,S,Q),e.scale(x,_,w)),O.push(e.add(U,U,u)),M<f&&(U=e.subtract(e.create(),e.scale(y,S,R),e.scale(x,_,F)),O.push(e.add(U,U,u))),U=e.subtract(e.create(),e.scale(y,I,R),e.scale(x,_,F)),O.push(e.add(U,U,u)),C.push(o.create(O)),O=[],U=e.add(e.create(),e.scale(y,I,Q),e.scale(x,_,w)),O.push(e.add(e.create(),u,U)),U=e.add(U,e.scale(y,S,Q),e.scale(x,_,w)),O.push(e.add(e.create(),u,U)),M<f&&(U=e.add(U,e.scale(y,S,R),e.scale(x,_,F)),O.push(e.add(e.create(),u,U))),U=e.add(U,e.scale(y,I,R),e.scale(x,_,F)),O.push(e.add(e.create(),u,U)),O.reverse(),C.push(o.create(O))}Q=R,w=F}}I=S}return n.create(C)},aYe}var AYe,xen;function Een(){if(xen)return AYe;xen=1;const t=Ra(),e=qA(),{isNumberArray:n}=cf();return AYe=i=>{const r={points:[],faces:[],colors:void 0,orientation:"outward"},{points:s,faces:a,colors:A,orientation:c}=Object.assign({},r,i);if(!(Array.isArray(s)&&Array.isArray(a)))throw new Error("points and faces must be arrays");if(s.length<3)throw new Error("three or more points are required");if(a.length<1)throw new Error("one or more faces are required");if(A){if(!Array.isArray(A))throw new Error("colors must be an array");if(A.length!==a.length)throw new Error("faces and colors must have the same length")}s.forEach((u,g)=>{if(!n(u,3))throw new Error(`point ${g} must be an array of X, Y, Z values`)}),a.forEach((u,g)=>{if(u.length<3)throw new Error(`face ${g} must contain 3 or more indexes`);if(!n(u,u.length))throw new Error(`face ${g} must be an array of numbers`)}),c!=="outward"&&a.forEach(u=>u.reverse());const l=a.map((u,g)=>{const h=e.create(u.map(d=>s[d]));return A&&A[g]&&(h.color=A[g]),h});return t.create(l)},AYe}var cYe,Ben;function Lai(){if(Ben)return cYe;Ben=1;const t=Mu(),e=jr(),n=Ra(),o=Een(),{isGTE:i}=cf();return cYe=s=>{const a={radius:1,frequency:6};let{radius:A,frequency:c}=Object.assign({},a,s);if(!i(A,0))throw new Error("radius must be positive");if(!i(c,6))throw new Error("frequency must be six or more");if(A===0)return n.create();c=Math.floor(c/6);const l=[[.850651,0,-.525731],[.850651,-0,.525731],[-.850651,-0,.525731],[-.850651,0,-.525731],[0,-.525731,.850651],[0,.525731,.850651],[0,.525731,-.850651],[0,-.525731,-.850651],[-.525731,-.850651,-0],[.525731,-.850651,-0],[.525731,.850651,0],[-.525731,.850651,0]],u=[[0,9,1],[1,10,0],[6,7,0],[10,6,0],[7,9,0],[5,1,4],[4,1,9],[5,10,1],[2,8,3],[3,11,2],[2,5,4],[4,8,2],[2,11,5],[3,7,6],[6,11,3],[8,7,3],[9,8,4],[11,10,5],[10,11,6],[8,9,7]],g=(f,I,C)=>{const y=f[0],x=f[1],E=f[2];let B=C;const S=[],Q=[];for(let w=0;w<I;w++)for(let M=0;M<I-w;M++){const k=w/I,R=(w+1)/I,F=M/(I-w),O=(M+1)/(I-w),U=I-w-1?M/(I-w-1):1,Y=[];Y[0]=h(h(y,x,F),E,k),Y[1]=h(h(y,x,O),E,k),Y[2]=h(h(y,x,U),E,R);for(let W=0;W<3;W++){const te=e.length(Y[W]);for(let j=0;j<3;j++)Y[W][j]/=te}if(S.push(Y[0],Y[1],Y[2]),Q.push([B,B+1,B+2]),B+=3,M<I-w-1){const W=I-w-1?(M+1)/(I-w-1):1;Y[0]=h(h(y,x,O),E,k),Y[1]=h(h(y,x,W),E,R),Y[2]=h(h(y,x,U),E,R);for(let te=0;te<3;te++){const j=e.length(Y[te]);for(let J=0;J<3;J++)Y[te][J]/=j}S.push(Y[0],Y[1],Y[2]),Q.push([B,B+1,B+2]),B+=3}}return{points:S,triangles:Q,offset:B}},h=(f,I,C)=>{const y=1-C,x=[];for(let E=0;E<3;E++)x[E]=f[E]*y+I[E]*C;return x};let d=[],p=[],m=0;for(let f=0;f<u.length;f++){const I=g([l[u[f][0]],l[u[f][1]],l[u[f][2]]],c,m);d=d.concat(I.points),p=p.concat(I.triangles),m=I.offset}let _=o({points:d,faces:p,orientation:"inward"});return A!==1&&(_=n.transform(t.fromScaling(t.create(),[A,A,A]),_)),_},cYe}var lYe,ben;function Hai(){if(ben)return lYe;ben=1;const t=au();return lYe=n=>{if(!Array.isArray(n))throw new Error("points must be an array");return t.fromPoints({},n)},lYe}var uYe,Sen;function Oai(){if(Sen)return uYe;Sen=1;const t=Ga();return uYe=n=>{const o={points:[],paths:[],orientation:"counterclockwise"},{points:i,paths:r,orientation:s}=Object.assign({},o,n);if(!(Array.isArray(i)&&Array.isArray(r)))throw new Error("points and paths must be arrays");let a=i;Array.isArray(i[0])&&(Array.isArray(i[0][0])||(a=[i])),a.forEach((g,h)=>{if(!Array.isArray(g))throw new Error("list of points "+h+" must be an array");if(g.length<3)throw new Error("list of points "+h+" must contain three or more points");g.forEach((d,p)=>{if(!Array.isArray(d))throw new Error("list of points "+h+", point "+p+" must be an array");if(d.length<2)throw new Error("list of points "+h+", point "+p+" must contain by X and Y values")})});let A=r;if(r.length===0){let g=0;A=a.map(h=>h.map(d=>g++))}const c=[];a.forEach(g=>g.forEach(h=>c.push(h)));let l=[];A.forEach(g=>{const h=g.map(p=>c[p]),d=t.fromPoints(h);l=l.concat(t.toSides(d))});let u=t.create(l);return s==="clockwise"&&(u=t.reverse(u)),u},uYe}var gYe,Qen;function dYe(){if(Qen)return gYe;Qen=1;const t=mA(),e=Ga(),{isNumberArray:n}=cf();return gYe=i=>{const r={center:[0,0],size:[2,2]},{center:s,size:a}=Object.assign({},r,i);if(!n(s,2))throw new Error("center must be an array of X and Y values");if(!n(a,2))throw new Error("size must be an array of X and Y values");if(!a.every(u=>u>=0))throw new Error("size values must be positive");if(a[0]===0||a[1]===0)return e.create();const A=[a[0]/2,a[1]/2],c=[A[0],-A[1]],l=[t.subtract(t.create(),s,A),t.add(t.create(),s,c),t.add(t.create(),s,A),t.subtract(t.create(),s,c)];return e.fromPoints(l)},gYe}var hYe,ven;function Gai(){if(ven)return hYe;ven=1;const{EPS:t,TAU:e}=pc(),n=mA(),o=jr(),i=Ra(),r=qA(),{sin:s,cos:a}=dI(),{isGTE:A,isNumberArray:c}=cf(),l=oYe(),u=(m,_,f,I,C,y)=>{const x=e/4*C/I,E=a(x),B=s(x),S=I-C;let Q=f*E,w=_[2]-(f-f*B);y||(w=f-f*B-_[2]),Q=Q>t?Q:0;const M=o.add(o.create(),m,[_[0]-f,_[1]-f,w]),k=o.add(o.create(),m,[f-_[0],_[1]-f,w]),R=o.add(o.create(),m,[f-_[0],f-_[1],w]),F=o.add(o.create(),m,[_[0]-f,f-_[1],w]),O=[],U=[],Y=[],W=[];for(let te=0;te<=S;te++){const j=S>0?e/4*te/S:0,J=n.fromAngleRadians(n.create(),j);n.scale(J,J,Q);const oe=o.fromVec2(o.create(),J);O.push(o.add(o.create(),M,oe)),o.rotateZ(oe,oe,[0,0,0],e/4),U.push(o.add(o.create(),k,oe)),o.rotateZ(oe,oe,[0,0,0],e/4),Y.push(o.add(o.create(),R,oe)),o.rotateZ(oe,oe,[0,0,0],e/4),W.push(o.add(o.create(),F,oe))}return y?[O,U,Y,W]:(O.reverse(),U.reverse(),Y.reverse(),W.reverse(),[W,Y,U,O])},g=(m,_)=>{const f=[];for(let I=0;I<m.length;I++){const C=m[I],y=_[I];for(let x=0;x<C.length-1;x++)f.push(r.create([C[x],C[x+1],y[x]])),x<y.length-1&&f.push(r.create([y[x],C[x+1],y[x+1]]))}return f},h=(m,_)=>{const f=[];for(let I=0;I<m.length;I++){let C=m[I],y=_[I];const x=C[C.length-1],E=y[y.length-1],B=(I+1)%m.length;C=m[B],y=_[B];const S=C[0],Q=y[0];f.push(r.create([x,S,Q,E]))}return f},d=(m,_)=>{m=[m[3],m[2],m[1],m[0]],m=m.map(y=>y.slice().reverse());const f=[];m.forEach(y=>{y.forEach(x=>f.push(x))});const I=[];_.forEach(y=>{y.forEach(x=>I.push(x))});const C=[];for(let y=0;y<I.length;y++){const x=(y+1)%I.length;C.push(r.create([f[y],f[x],I[x],I[y]]))}return C};return hYe=m=>{const _={center:[0,0,0],size:[2,2,2],roundRadius:.2,segments:32};let{center:f,size:I,roundRadius:C,segments:y}=Object.assign({},_,m);if(!c(f,3))throw new Error("center must be an array of X, Y and Z values");if(!c(I,3))throw new Error("size must be an array of X, Y and Z values");if(!I.every(S=>S>=0))throw new Error("size values must be positive");if(!A(C,0))throw new Error("roundRadius must be positive");if(!A(y,4))throw new Error("segments must be four or more");if(I[0]===0||I[1]===0||I[2]===0)return i.create();if(C===0)return l({center:f,size:I});if(I=I.map(S=>S/2),C>I[0]-t||C>I[1]-t||C>I[2]-t)throw new Error("roundRadius must be smaller than the radius of all dimensions");y=Math.floor(y/4);let x=null,E=null,B=[];for(let S=0;S<=y;S++){const Q=u(f,I,C,y,S,!0),w=u(f,I,C,y,S,!1);if(S===0&&(B=B.concat(d(w,Q))),x&&(B=B.concat(g(x,Q),h(x,Q))),E&&(B=B.concat(g(E,w),h(E,w))),S===y){let M=Q.map(k=>k[0]);B.push(r.create(M)),M=w.map(k=>k[0]),B.push(r.create(M))}x=Q,E=w}return i.create(B)},hYe}var pYe,wen;function Yai(){if(wen)return pYe;wen=1;const{EPS:t,TAU:e}=pc(),n=jr(),o=Ra(),i=qA(),{sin:r,cos:s}=dI(),{isGTE:a,isNumberArray:A}=cf(),c=Ien();return pYe=u=>{const g={center:[0,0,0],height:2,radius:1,roundRadius:.2,segments:32},{center:h,height:d,radius:p,roundRadius:m,segments:_}=Object.assign({},g,u);if(!A(h,3))throw new Error("center must be an array of X, Y and Z values");if(!a(d,0))throw new Error("height must be positive");if(!a(p,0))throw new Error("radius must be positive");if(!a(m,0))throw new Error("roundRadius must be positive");if(m>p)throw new Error("roundRadius must be smaller than the radius");if(!a(_,4))throw new Error("segments must be four or more");if(d===0||p===0)return o.create();if(m===0)return c({center:h,height:d,radius:p});const f=[0,0,-(d/2)],I=[0,0,d/2],C=n.subtract(n.create(),I,f),y=n.length(C);if(2*m>y-t)throw new Error("height must be larger than twice roundRadius");let x;Math.abs(C[0])>Math.abs(C[1])?x=n.fromValues(0,1,0):x=n.fromValues(1,0,0);const E=n.scale(n.create(),n.normalize(n.create(),C),m),B=n.scale(n.create(),n.normalize(n.create(),n.cross(n.create(),E,x)),p),S=n.scale(n.create(),n.normalize(n.create(),n.cross(n.create(),B,E)),p);n.add(f,f,E),n.subtract(I,I,E);const Q=Math.floor(.25*_),w=U=>{const Y=U.map(W=>n.add(W,W,h));return i.create(Y)},M=[],k=n.create(),R=n.create();let F;for(let U=0;U<=_;U++){const Y=e*U/_,W=n.add(n.create(),n.scale(k,B,s(Y)),n.scale(R,S,r(Y)));if(U>0){let te=[];te.push(n.add(n.create(),f,W)),te.push(n.add(n.create(),f,F)),te.push(n.add(n.create(),I,F)),te.push(n.add(n.create(),I,W)),M.push(w(te));let j,J;for(let oe=0;oe<=Q;oe++){const ie=e/4*oe/Q,ne=s(ie),le=r(ie);if(oe>0){te=[];let ge;ge=n.add(n.create(),f,n.subtract(k,n.scale(k,F,j),n.scale(R,E,J))),te.push(ge),ge=n.add(n.create(),f,n.subtract(k,n.scale(k,W,j),n.scale(R,E,J))),te.push(ge),oe<Q&&(ge=n.add(n.create(),f,n.subtract(k,n.scale(k,W,ne),n.scale(R,E,le))),te.push(ge)),ge=n.add(n.create(),f,n.subtract(k,n.scale(k,F,ne),n.scale(R,E,le))),te.push(ge),M.push(w(te)),te=[],ge=n.add(n.create(),n.scale(k,F,j),n.scale(R,E,J)),n.add(ge,ge,I),te.push(ge),ge=n.add(n.create(),n.scale(k,W,j),n.scale(R,E,J)),n.add(ge,ge,I),te.push(ge),oe<Q&&(ge=n.add(n.create(),n.scale(k,W,ne),n.scale(R,E,le)),n.add(ge,ge,I),te.push(ge)),ge=n.add(n.create(),n.scale(k,F,ne),n.scale(R,E,le)),n.add(ge,ge,I),te.push(ge),te.reverse(),M.push(w(te))}j=ne,J=le}}F=W}return o.create(M)},pYe}var mYe,Pen;function Uai(){if(Pen)return mYe;Pen=1;const{EPS:t,TAU:e}=pc(),n=mA(),o=Ga(),{isGTE:i,isNumberArray:r}=cf(),s=dYe();return mYe=A=>{const c={center:[0,0],size:[2,2],roundRadius:.2,segments:32};let{center:l,size:u,roundRadius:g,segments:h}=Object.assign({},c,A);if(!r(l,2))throw new Error("center must be an array of X and Y values");if(!r(u,2))throw new Error("size must be an array of X and Y values");if(!u.every(E=>E>=0))throw new Error("size values must be positive");if(!i(g,0))throw new Error("roundRadius must be positive");if(!i(h,4))throw new Error("segments must be four or more");if(u[0]===0||u[1]===0)return o.create();if(g===0)return s({center:l,size:u});if(u=u.map(E=>E/2),g>u[0]-t||g>u[1]-t)throw new Error("roundRadius must be smaller than the radius of all dimensions");const d=Math.floor(h/4),p=n.add(n.create(),l,[u[0]-g,u[1]-g]),m=n.add(n.create(),l,[g-u[0],u[1]-g]),_=n.add(n.create(),l,[g-u[0],g-u[1]]),f=n.add(n.create(),l,[u[0]-g,g-u[1]]),I=[],C=[],y=[],x=[];for(let E=0;E<=d;E++){const B=e/4*E/d,S=n.fromAngleRadians(n.create(),B);n.scale(S,S,g),I.push(n.add(n.create(),p,S)),n.rotate(S,S,n.create(),e/4),C.push(n.add(n.create(),m,S)),n.rotate(S,S,n.create(),e/4),y.push(n.add(n.create(),_,S)),n.rotate(S,S,n.create(),e/4),x.push(n.add(n.create(),f,S))}return o.fromPoints(I.concat(C,y,x))},mYe}var _Ye,Men;function Den(){if(Men)return _Ye;Men=1;const t=yen(),{isGTE:e}=cf();return _Ye=o=>{const i={center:[0,0,0],radius:1,segments:32,axes:[[1,0,0],[0,-1,0],[0,0,1]]};let{center:r,radius:s,segments:a,axes:A}=Object.assign({},i,o);if(!e(s,0))throw new Error("radius must be positive");return s=[s,s,s],t({center:r,radius:s,segments:a,axes:A})},_Ye}var fYe,Nen;function Kai(){if(Nen)return fYe;Nen=1;const t=dYe(),{isGTE:e}=cf();return fYe=o=>{const i={center:[0,0],size:2};let{center:r,size:s}=Object.assign({},i,o);if(!e(s,0))throw new Error("size must be positive");return s=[s,s],t({center:r,size:s})},fYe}var IYe,Ren;function Vai(){if(Ren)return IYe;Ren=1;const{TAU:t}=pc(),e=mA(),n=Ga(),{isGT:o,isGTE:i,isNumberArray:r}=cf(),s=(c,l)=>c>0&&l>1&&l<c/2?Math.cos(Math.PI*l/c)/Math.cos(Math.PI*(l-1)/c):0,a=(c,l,u,g)=>{const h=t/c,d=[];for(let p=0;p<c;p++){const m=e.fromAngleRadians(e.create(),h*p+u);e.scale(m,m,l),e.add(m,g,m),d.push(m)}return d};return IYe=c=>{const l={center:[0,0],vertices:5,outerRadius:1,innerRadius:0,density:2,startAngle:0};let{center:u,vertices:g,outerRadius:h,innerRadius:d,density:p,startAngle:m}=Object.assign({},l,c);if(!r(u,2))throw new Error("center must be an array of X and Y values");if(!i(g,2))throw new Error("vertices must be two or more");if(!o(h,0))throw new Error("outerRadius must be greater than zero");if(!i(d,0))throw new Error("innerRadius must be greater than zero");if(!i(m,0))throw new Error("startAngle must be greater than zero");if(g=Math.floor(g),p=Math.floor(p),m=m%t,d===0){if(!i(p,2))throw new Error("density must be two or more");d=h*s(g,p)}const _=e.clone(u),f=a(g,h,m,_),I=a(g,d,m+Math.PI/g,_),C=[];for(let y=0;y<g;y++)C.push(f[y]),C.push(I[y]);return n.fromPoints(C)},IYe}var CYe,Ten;function mX(){if(Ten)return CYe;Ten=1;const t=la(),e=Mu(),n=E6(),o=Ga(),i=Ra(),r=au(),s=(l,...u)=>{const g={origin:[0,0,0],normal:[0,0,1]},{origin:h,normal:d}=Object.assign({},g,l);if(u=t(u),u.length===0)throw new Error("wrong number of arguments");const p=n.fromNormalAndPoint(n.create(),d,h);if(Number.isNaN(p[0]))throw new Error("the given origin and normal do not define a proper plane");const m=e.mirrorByPlane(e.create(),p),_=u.map(f=>r.isA(f)?r.transform(m,f):o.isA(f)?o.transform(m,f):i.isA(f)?i.transform(m,f):f);return _.length===1?_[0]:_};return CYe={mirror:s,mirrorX:(...l)=>s({normal:[1,0,0]},l),mirrorY:(...l)=>s({normal:[0,1,0]},l),mirrorZ:(...l)=>s({normal:[0,0,1]},l)},CYe}var yYe,ken;function Fen(){if(ken)return yYe;ken=1;const t=E6(),e=jr();return yYe=o=>{const i=o.edges;if(i.length<3)throw new Error("slices must have 3 or more edges to calculate a plane");const r=i.reduce((c,l)=>e.add(e.create(),c,l[0]),e.create());e.scale(r,r,1/i.length);let s,a=0;i.forEach(c=>{if(!e.equals(c[0],c[1])){const l=e.squaredDistance(r,c[0]);l>a&&(s=c,a=l)}});const A=i.find(c=>e.equals(c[1],s[0]));return t.fromPoints(t.create(),A[0],s[0],s[1])},yYe}var xYe,Len;function tT(){return Len||(Len=1,xYe=e=>(e||(e=[]),{edges:e})),xYe}var EYe,Hen;function zai(){if(Hen)return EYe;Hen=1;const t=tT(),e=jr();return EYe=(...o)=>{let i,r;return o.length===1?(i=t(),r=o[0]):(i=o[0],r=o[1]),i.edges=r.edges.map(s=>[e.clone(s[0]),e.clone(s[1])]),i},EYe}var BYe,Oen;function Jai(){if(Oen)return BYe;Oen=1;const t=jr();return BYe=(n,o)=>{const i=n.edges,r=o.edges;return i.length!==r.length?!1:i.reduce((a,A,c)=>{const l=r[c],u=t.squaredDistance(A[0],l[0]);return a&&u<Number.EPSILON},!0)},BYe}var bYe,Gen;function Wai(){if(Gen)return bYe;Gen=1;const t=jr(),e=tT();return bYe=o=>{if(!Array.isArray(o))throw new Error("the given points must be an array");if(o.length<3)throw new Error("the given points must contain THREE or more points");const i=[];let r=o[o.length-1];return o.forEach(s=>{s.length===2&&i.push([t.fromVec2(t.create(),r),t.fromVec2(t.create(),s)]),s.length===3&&i.push([r,s]),r=s}),e(i)},bYe}var SYe,Yen;function jai(){if(Yen)return SYe;Yen=1;const t=jr(),e=tT();return SYe=o=>{if(!Array.isArray(o))throw new Error("the given sides must be an array");const i=[];return o.forEach(r=>{i.push([t.fromVec2(t.create(),r[0]),t.fromVec2(t.create(),r[1])])}),e(i)},SYe}var QYe,Uen;function $ai(){return Uen||(Uen=1,QYe=e=>!!(e&&typeof e=="object"&&"edges"in e&&Array.isArray(e.edges))),QYe}var vYe,Ken;function qai(){if(Ken)return vYe;Ken=1;const t=tT();return vYe=(...n)=>{let o,i;return n.length===1?(o=t(),i=n[0]):(o=n[0],i=n[1]),o.edges=i.edges.map(r=>[r[1],r[0]]),o},vYe}var wYe,Ven;function Xai(){return Ven||(Ven=1,wYe=e=>e.edges),wYe}var PYe,zen;function Zai(){return zen||(zen=1,PYe=(e,n)=>{let o,i,r,s,a,A=1;do{i=e,e=null;let c=null;for(a=0;i;){a++,r=i;let l=0;for(o=0;o<A&&(l++,r=r.nextZ,!!r);o++);let u=A;for(;l>0||u>0&&r;)l!==0&&(u===0||!r||n(i)<=n(r))?(s=i,i=i.nextZ,l--):(s=r,r=r.nextZ,u--),c?c.nextZ=s:e=s,s.prevZ=c,c=s;i=r}c.nextZ=null,A*=2}while(a>1);return e}),PYe}var MYe,Jen;function Wen(){if(Jen)return MYe;Jen=1;const t=Zai();class e{constructor(r,s,a){this.i=r,this.x=s,this.y=a,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}}return MYe={Node:e,insertNode:(i,r,s,a)=>{const A=new e(i,r,s);return a?(A.next=a.next,A.prev=a,a.next.prev=A,a.next=A):(A.prev=A,A.next=A),A},removeNode:i=>{i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)},sortLinked:t},MYe}var DYe,jen;function NYe(){return jen||(jen=1,DYe={area:(n,o,i)=>(o.y-n.y)*(i.x-o.x)-(o.x-n.x)*(i.y-o.y),pointInTriangle:(n,o,i,r,s,a,A,c)=>(s-A)*(o-c)-(n-A)*(a-c)>=0&&(n-A)*(r-c)-(i-A)*(o-c)>=0&&(i-A)*(a-c)-(s-A)*(r-c)>=0}),DYe}var RYe,$en;function qen(){if($en)return RYe;$en=1;const{Node:t,insertNode:e,removeNode:n}=Wen(),{area:o}=NYe(),i=(m,_,f,I,C)=>{let y;if(C===d(m,_,f,I)>0)for(let x=_;x<f;x+=I)y=e(x,m[x],m[x+1],y);else for(let x=f-I;x>=_;x-=I)y=e(x,m[x],m[x+1],y);return y&&p(y,y.next)&&(n(y),y=y.next),y},r=(m,_)=>{if(!m)return m;_||(_=m);let f=m,I;do if(I=!1,!f.steiner&&(p(f,f.next)||o(f.prev,f,f.next)===0)){if(n(f),f=_=f.prev,f===f.next)break;I=!0}else f=f.next;while(I||f!==_);return _},s=(m,_,f)=>{let I=m;do{const C=I.prev,y=I.next.next;!p(C,y)&&g(C,I,I.next,y)&&A(C,y)&&A(y,C)&&(_.push(C.i/f),_.push(I.i/f),_.push(y.i/f),n(I),n(I.next),I=m=y),I=I.next}while(I!==m);return r(I)},a=(m,_)=>{let f=m;do{if(f.i!==m.i&&f.next.i!==m.i&&f.i!==_.i&&f.next.i!==_.i&&g(f,f.next,m,_))return!0;f=f.next}while(f!==m);return!1},A=(m,_)=>o(m.prev,m,m.next)<0?o(m,_,m.next)>=0&&o(m,m.prev,_)>=0:o(m,_,m.prev)<0||o(m,m.next,_)<0,c=(m,_)=>{let f=m,I=!1;const C=(m.x+_.x)/2,y=(m.y+_.y)/2;do f.y>y!=f.next.y>y&&f.next.y!==f.y&&C<(f.next.x-f.x)*(y-f.y)/(f.next.y-f.y)+f.x&&(I=!I),f=f.next;while(f!==m);return I},l=(m,_)=>{const f=new t(m.i,m.x,m.y),I=new t(_.i,_.x,_.y),C=m.next,y=_.prev;return m.next=_,_.prev=m,f.next=C,C.prev=f,I.next=f,f.prev=I,y.next=I,I.prev=y,I},u=(m,_)=>m.next.i!==_.i&&m.prev.i!==_.i&&!a(m,_)&&(A(m,_)&&A(_,m)&&c(m,_)&&(o(m.prev,m,_.prev)||o(m,_.prev,_))||p(m,_)&&o(m.prev,m,m.next)>0&&o(_.prev,_,_.next)>0),g=(m,_,f,I)=>{const C=Math.sign(o(m,_,f)),y=Math.sign(o(m,_,I)),x=Math.sign(o(f,I,m)),E=Math.sign(o(f,I,_));return!!(C!==y&&x!==E||C===0&&h(m,f,_)||y===0&&h(m,I,_)||x===0&&h(f,m,I)||E===0&&h(f,_,I))},h=(m,_,f)=>_.x<=Math.max(m.x,f.x)&&_.x>=Math.min(m.x,f.x)&&_.y<=Math.max(m.y,f.y)&&_.y>=Math.min(m.y,f.y),d=(m,_,f,I)=>{let C=0;for(let y=_,x=f-I;y<f;y+=I)C+=(m[x]-m[y])*(m[y+1]+m[x+1]),x=y;return C},p=(m,_)=>m.x===_.x&&m.y===_.y;return RYe={cureLocalIntersections:s,filterPoints:r,isValidDiagonal:u,linkedPolygon:i,locallyInside:A,splitPolygon:l},RYe}var TYe,Xen;function eAi(){if(Xen)return TYe;Xen=1;const{filterPoints:t,linkedPolygon:e,locallyInside:n,splitPolygon:o}=qen(),{area:i,pointInTriangle:r}=NYe(),s=(u,g,h,d)=>{const p=[];for(let m=0,_=g.length;m<_;m++){const f=g[m]*d,I=m<_-1?g[m+1]*d:u.length,C=e(u,f,I,d,!1);C===C.next&&(C.steiner=!0),p.push(l(C))}p.sort((m,_)=>m.x-_.x);for(let m=0;m<p.length;m++)h=a(p[m],h),h=t(h,h.next);return h},a=(u,g)=>{const h=A(u,g);if(!h)return g;const d=o(h,u),p=t(h,h.next);return t(d,d.next),g===h?p:g},A=(u,g)=>{let h=g;const d=u.x,p=u.y;let m=-1/0,_;do{if(p<=h.y&&p>=h.next.y&&h.next.y!==h.y){const x=h.x+(p-h.y)*(h.next.x-h.x)/(h.next.y-h.y);if(x<=d&&x>m){if(m=x,x===d){if(p===h.y)return h;if(p===h.next.y)return h.next}_=h.x<h.next.x?h:h.next}}h=h.next}while(h!==g);if(!_)return null;if(d===m)return _;const f=_,I=_.x,C=_.y;let y=1/0;h=_;do{if(d>=h.x&&h.x>=I&&d!==h.x&&r(p<C?d:m,p,I,C,p<C?m:d,p,h.x,h.y)){const x=Math.abs(p-h.y)/(d-h.x);n(h,u)&&(x<y||x===y&&(h.x>_.x||h.x===_.x&&c(_,h)))&&(_=h,y=x)}h=h.next}while(h!==f);return _},c=(u,g)=>i(u.prev,u,g.prev)<0&&i(g.next,u,u.next)<0,l=u=>{let g=u,h=u;do(g.x<h.x||g.x===h.x&&g.y<h.y)&&(h=g),g=g.next;while(g!==u);return h};return TYe=s,TYe}var kYe,Zen;function tAi(){if(Zen)return kYe;Zen=1;const t=eAi(),{removeNode:e,sortLinked:n}=Wen(),{cureLocalIntersections:o,filterPoints:i,isValidDiagonal:r,linkedPolygon:s,splitPolygon:a}=qen(),{area:A,pointInTriangle:c}=NYe(),l=(_,f,I=2)=>{const C=f&&f.length,y=C?f[0]*I:_.length;let x=s(_,0,y,I,!0);const E=[];if(!x||x.next===x.prev)return E;let B,S,Q,w,M;if(C&&(x=t(_,f,x,I)),_.length>80*I){B=Q=_[0],S=w=_[1];for(let k=I;k<y;k+=I){const R=_[k],F=_[k+1];R<B&&(B=R),F<S&&(S=F),R>Q&&(Q=R),F>w&&(w=F)}M=Math.max(Q-B,w-S),M=M!==0?1/M:0}return u(x,E,I,B,S,M),E},u=(_,f,I,C,y,x,E)=>{if(!_)return;!E&&x&&p(_,C,y,x);let B=_,S,Q;for(;_.prev!==_.next;){if(S=_.prev,Q=_.next,x?h(_,C,y,x):g(_)){f.push(S.i/I),f.push(_.i/I),f.push(Q.i/I),e(_),_=Q.next,B=Q.next;continue}if(_=Q,_===B){E?E===1?(_=o(i(_),f,I),u(_,f,I,C,y,x,2)):E===2&&d(_,f,I,C,y,x):u(i(_),f,I,C,y,x,1);break}}},g=_=>{const f=_.prev,I=_,C=_.next;if(A(f,I,C)>=0)return!1;let y=_.next.next;for(;y!==_.prev;){if(c(f.x,f.y,I.x,I.y,C.x,C.y,y.x,y.y)&&A(y.prev,y,y.next)>=0)return!1;y=y.next}return!0},h=(_,f,I,C)=>{const y=_.prev,x=_,E=_.next;if(A(y,x,E)>=0)return!1;const B=y.x<x.x?y.x<E.x?y.x:E.x:x.x<E.x?x.x:E.x,S=y.y<x.y?y.y<E.y?y.y:E.y:x.y<E.y?x.y:E.y,Q=y.x>x.x?y.x>E.x?y.x:E.x:x.x>E.x?x.x:E.x,w=y.y>x.y?y.y>E.y?y.y:E.y:x.y>E.y?x.y:E.y,M=m(B,S,f,I,C),k=m(Q,w,f,I,C);let R=_.prevZ,F=_.nextZ;for(;R&&R.z>=M&&F&&F.z<=k;){if(R!==_.prev&&R!==_.next&&c(y.x,y.y,x.x,x.y,E.x,E.y,R.x,R.y)&&A(R.prev,R,R.next)>=0||(R=R.prevZ,F!==_.prev&&F!==_.next&&c(y.x,y.y,x.x,x.y,E.x,E.y,F.x,F.y)&&A(F.prev,F,F.next)>=0))return!1;F=F.nextZ}for(;R&&R.z>=M;){if(R!==_.prev&&R!==_.next&&c(y.x,y.y,x.x,x.y,E.x,E.y,R.x,R.y)&&A(R.prev,R,R.next)>=0)return!1;R=R.prevZ}for(;F&&F.z<=k;){if(F!==_.prev&&F!==_.next&&c(y.x,y.y,x.x,x.y,E.x,E.y,F.x,F.y)&&A(F.prev,F,F.next)>=0)return!1;F=F.nextZ}return!0},d=(_,f,I,C,y,x)=>{let E=_;do{let B=E.next.next;for(;B!==E.prev;){if(E.i!==B.i&&r(E,B)){let S=a(E,B);E=i(E,E.next),S=i(S,S.next),u(E,f,I,C,y,x),u(S,f,I,C,y,x);return}B=B.next}E=E.next}while(E!==_)},p=(_,f,I,C)=>{let y=_;do y.z===null&&(y.z=m(y.x,y.y,f,I,C)),y.prevZ=y.prev,y.nextZ=y.next,y=y.next;while(y!==_);y.prevZ.nextZ=null,y.prevZ=null,n(y,x=>x.z)},m=(_,f,I,C,y)=>(_=32767*(_-I)*y,f=32767*(f-C)*y,_=(_|_<<8)&16711935,_=(_|_<<4)&252645135,_=(_|_<<2)&858993459,_=(_|_<<1)&1431655765,f=(f|f<<8)&16711935,f=(f|f<<4)&252645135,f=(f|f<<2)&858993459,f=(f|f<<1)&1431655765,_|f<<1);return kYe=l,kYe}var FYe,etn;function nAi(){if(etn)return FYe;etn=1;const{area:t}=hX(),{toOutlines:e}=Ga(),{arePointsInside:n}=zOe(),o=r=>{const s=e(r),a=[],A=[];s.forEach((u,g)=>{const h=t(u);h<0?A.push(g):h>0&&a.push(g)});const c=[],l=[];return a.forEach((u,g)=>{const h=s[u];c[g]=[],A.forEach((d,p)=>{const m=s[d];n([m[0]],{vertices:h})&&(c[g].push(d),l[p]||(l[p]=[]),l[p].push(g))})}),A.forEach((u,g)=>{if(l[g]&&l[g].length>1){const h=i(l[g],d=>c[d].length);l[g].forEach((d,p)=>{p!==h&&(c[d]=c[d].filter(m=>m!==u))})}}),c.map((u,g)=>({solid:s[a[g]],holes:u.map(h=>s[h])}))},i=(r,s)=>{let a,A;return r.forEach((c,l)=>{const u=s(c);(A===void 0||u<A)&&(a=l,A=u)}),a};return FYe=o,FYe}var LYe,ttn;function oAi(){if(ttn)return LYe;ttn=1;const t=Ga(),e=E6(),n=mA(),o=jr(),i=Fen(),r=nAi();class s{constructor(A){this.plane=i(A);const c=o.orthogonal(o.create(),this.plane),l=o.cross(o.create(),this.plane,c);this.v=o.normalize(l,l),this.u=o.cross(o.create(),this.v,this.plane),this.basisMap=new Map;const u=A.edges.map(h=>h.map(d=>this.to2D(d))),g=t.create(u);this.roots=r(g)}to2D(A){const c=n.fromValues(o.dot(A,this.u),o.dot(A,this.v));return this.basisMap.set(c,A),c}to3D(A){const c=this.basisMap.get(A);if(c)return c;{console.log("Warning: point not in original slice");const l=o.scale(o.create(),this.u,A[0]),u=o.scale(o.create(),this.v,A[1]),g=o.scale(o.create(),e,e[3]),h=o.add(l,l,g);return o.add(u,u,h)}}}return LYe=s,LYe}var HYe,ntn;function iAi(){if(ntn)return HYe;ntn=1;const t=qA(),e=tAi(),n=oAi();return HYe=i=>{const r=new n(i),s=[];return r.roots.forEach(({solid:a,holes:A})=>{let c=a.length;const l=[];A.forEach((p,m)=>{l.push(c),c+=p.length});const u=[a,...A].flat(),g=u.flat(),h=p=>r.to3D(u[p]),d=e(g,l);for(let p=0;p<d.length;p+=3){const m=d.slice(p,p+3).map(h);s.push(t.fromPointsAndPlane(m,r.plane))}}),s},HYe}var OYe,otn;function rAi(){if(otn)return OYe;otn=1;const t=jr(),e=o=>o.reduce((i,r)=>i+=`[${t.toString(r[0])}, ${t.toString(r[1])}], `,"");return OYe=o=>`[${e(o.edges)}]`,OYe}var GYe,itn;function sAi(){if(itn)return GYe;itn=1;const t=jr(),e=tT();return GYe=(o,i)=>{const r=i.edges.map(s=>[t.transform(t.create(),s[0],o),t.transform(t.create(),s[1],o)]);return e(r)},GYe}var YYe,rtn;function bY(){return rtn||(rtn=1,YYe={calculatePlane:Fen(),clone:zai(),create:tT(),equals:Jai(),fromPoints:Wai(),fromSides:jai(),isA:$ai(),reverse:qai(),toEdges:Xai(),toPolygons:iAi(),toString:rAi(),transform:sAi()}),YYe}var UYe,stn;function aAi(){if(stn)return UYe;stn=1;const t=jr(),e=tT();return UYe=o=>{if(!o.edges)return o;let i=o.edges;const r=new Map,s=new Map;i=i.filter(c=>!t.equals(c[0],c[1])),i.forEach(c=>{const l=c[0].toString(),u=c[1].toString();r.set(l,c[0]),r.set(u,c[1]),s.set(l,(s.get(l)||0)+1),s.set(u,(s.get(u)||0)-1)});const a=[],A=[];return s.forEach((c,l)=>{c<0&&a.push(l),c>0&&A.push(l)}),a.forEach(c=>{const l=r.get(c);let u=1/0,g;A.forEach(h=>{const d=r.get(h),p=t.distance(l,d);p<u&&(u=p,g=d)}),console.warn(`slice.repair: repairing vertex gap ${l} to ${g} distance ${u}`),i=i.map(h=>h[0].toString()===c?[g,h[1]]:h[1].toString()===c?[h[0],g]:h)}),e(i)},UYe}var KYe,atn;function AAi(){if(atn)return KYe;atn=1;const{EPS:t}=pc(),e=jr(),n=qA(),o=bY(),i=(c,l)=>c===l?c:c<l?i(l,c):l===1?1:l===0?c:i(l,c%l),r=(c,l)=>c*l/i(c,l),s=(c,l)=>{const u=c/l.length;if(u===1)return l;const g=e.fromValues(u,u,u),h=e.create(),d=[];return l.forEach(p=>{e.subtract(h,p[1],p[0]),e.divide(h,h,g);let m=p[0];for(let _=1;_<=u;++_){const f=e.add(e.create(),m,h);d.push([m,f]),m=f}}),d},a=t*t/2*Math.sin(Math.PI/3);return KYe=(c,l)=>{let u=o.toEdges(c),g=o.toEdges(l);if(u.length!==g.length){const d=r(u.length,g.length);d!==u.length&&(u=s(d,u)),d!==g.length&&(g=s(d,g))}const h=[];return u.forEach((d,p)=>{const m=g[p],_=n.create([d[0],d[1],m[1]]),f=n.measureArea(_);Number.isFinite(f)&&f>a&&h.push(_);const I=n.create([d[0],m[1],m[0]]),C=n.measureArea(I);Number.isFinite(C)&&C>a&&h.push(I)}),h},KYe}var VYe,Atn;function Mhe(){if(Atn)return VYe;Atn=1;const t=Mu(),e=Ga(),n=Ra(),o=qA(),i=bY(),r=aAi(),s=AAi(),a=(c,l,u)=>{let g=null;return e.isA(u)&&(g=i.fromSides(e.toSides(u))),o.isA(u)&&(g=i.fromPoints(o.toPoints(u))),c===0||c===1?i.transform(t.fromTranslation(t.create(),[0,0,c]),g):null};return VYe=(c,l)=>{const u={numberOfSlices:2,capStart:!0,capEnd:!0,close:!1,repair:!0,callback:a},{numberOfSlices:g,capStart:h,capEnd:d,close:p,repair:m,callback:_}=Object.assign({},u,c);if(g<2)throw new Error("numberOfSlices must be 2 or more");m&&(l=r(l));const f=g-1;let I=null,C=null,y=null,x=[];for(let E=0;E<g;E++){const B=_(E/f,E,l);if(B){if(!i.isA(B))throw new Error("the callback function must return slice objects");if(i.toEdges(B).length===0)throw new Error("the callback function must return slices with one or more edges");if(y){const Q=s(y,B);for(let w=0;w<Q.length;w++)x.push(Q[w])}E===0&&(I=B),E===g-1&&(C=B),y=B}}if(d){const E=i.toPolygons(C);for(let B=0;B<E.length;B++)x.push(E[B])}if(h){const E=i.toPolygons(I).map(o.invert);for(let B=0;B<E.length;B++)x.push(E[B])}if(!h&&!d&&p&&!i.equals(C,I)){const E=s(C,I);for(let B=0;B<E.length;B++)x.push(E[B])}return n.create(x)},VYe}var zYe,ctn;function ltn(){if(ctn)return zYe;ctn=1;const{TAU:t}=pc(),e=Mu(),{mirrorX:n}=mX(),o=Ga(),i=bY(),r=Mhe();return zYe=(a,A)=>{const c={segments:12,startAngle:0,angle:t,overflow:"cap"};let{segments:l,startAngle:u,angle:g,overflow:h}=Object.assign({},c,a);if(l<3)throw new Error("segments must be greater then 3");u=Math.abs(u)>t?u%t:u,g=Math.abs(g)>t?g%t:g;let d=u+g;if(d=Math.abs(d)>t?d%t:d,d<u){const w=u;u=d,d=w}let p=d-u;if(p<=0&&(p=t),Math.abs(p)<t){const w=t/l;l=Math.floor(Math.abs(p)/w),Math.abs(p)>l*w&&l++}let m=o.toSides(A);if(m.length===0)throw new Error("the given geometry cannot be empty");const _=m.filter(w=>w[0][0]<0),f=m.filter(w=>w[0][0]>=0);_.length>0&&f.length>0&&h==="cap"&&(_.length>f.length?(m=m.map(w=>{let M=w[0],k=w[1];return M=[Math.min(M[0],0),M[1]],k=[Math.min(k[0],0),k[1]],[M,k]}),A=o.create(m),A=n(A)):f.length>=_.length&&(m=m.map(w=>{let M=w[0],k=w[1];return M=[Math.max(M[0],0),M[1]],k=[Math.max(k[0],0),k[1]],[M,k]}),A=o.create(m)));const C=p/l,y=Math.abs(p)<t,x=i.fromSides(o.toSides(A));i.reverse(x,x);const E=e.create(),B=e.fromXRotation(e.create(),t/4),S=e.create(),Q=(w,M,k)=>{let R=C*M+u;return p===t&&M===l&&(R=u),e.fromZRotation(S,R),e.multiply(E,S,B),i.transform(E,k)};return a={numberOfSlices:l+1,capStart:y,capEnd:y,close:!y,callback:Q},r(a,x)},zYe}var JYe,utn;function _X(){if(utn)return JYe;utn=1;const t=la(),e=Mu(),n=Ga(),o=Ra(),i=au(),r=(c,...l)=>{if(!Array.isArray(c))throw new Error("angles must be an array");if(l=t(l),l.length===0)throw new Error("wrong number of arguments");for(c=c.slice();c.length<3;)c.push(0);const u=c[2],g=c[1],h=c[0],d=e.fromTaitBryanRotation(e.create(),u,g,h),p=l.map(m=>i.isA(m)?i.transform(d,m):n.isA(m)?n.transform(d,m):o.isA(m)?o.transform(d,m):m);return p.length===1?p[0]:p};return JYe={rotate:r,rotateX:(c,...l)=>r([c,0,0],l),rotateY:(c,...l)=>r([0,c,0],l),rotateZ:(c,...l)=>r([0,0,c],l)},JYe}var WYe,gtn;function nT(){if(gtn)return WYe;gtn=1;const t=la(),e=Mu(),n=Ga(),o=Ra(),i=au(),r=(c,...l)=>{if(!Array.isArray(c))throw new Error("offset must be an array");if(l=t(l),l.length===0)throw new Error("wrong number of arguments");for(c=c.slice();c.length<3;)c.push(0);const u=e.fromTranslation(e.create(),c),g=l.map(h=>i.isA(h)?i.transform(u,h):n.isA(h)?n.transform(u,h):o.isA(h)?o.transform(u,h):h);return g.length===1?g[0]:g};return WYe={translate:r,translateX:(c,...l)=>r([c,0,0],l),translateY:(c,...l)=>r([0,c,0],l),translateZ:(c,...l)=>r([0,0,c],l)},WYe}var jYe,dtn;function cAi(){if(dtn)return jYe;dtn=1;const{TAU:t}=pc(),e=ltn(),{rotate:n}=_X(),{translate:o}=nT(),i=den(),{isGT:r,isGTE:s}=cf();return jYe=A=>{const c={innerRadius:1,innerSegments:32,outerRadius:4,outerSegments:32,innerRotation:0,startAngle:0,outerRotation:t},{innerRadius:l,innerSegments:u,outerRadius:g,outerSegments:h,innerRotation:d,startAngle:p,outerRotation:m}=Object.assign({},c,A);if(!r(l,0))throw new Error("innerRadius must be greater than zero");if(!s(u,3))throw new Error("innerSegments must be three or more");if(!r(g,0))throw new Error("outerRadius must be greater than zero");if(!s(h,3))throw new Error("outerSegments must be three or more");if(!s(p,0))throw new Error("startAngle must be positive");if(!r(m,0))throw new Error("outerRotation must be greater than zero");if(l>=g)throw new Error("inner circle is too large to rotate about the outer circle");let _=i({radius:l,segments:u});return d!==0&&(_=n([0,0,d],_)),_=o([g,0],_),e({startAngle:p,angle:m,segments:h},_)},jYe}var $Ye,htn;function lAi(){if(htn)return $Ye;htn=1;const{NEPS:t}=pc(),e=mA(),n=Ga(),{isNumberArray:o}=cf(),i=(d,p,m)=>Math.acos((d*d+p*p-m*m)/(2*d*p)),r=(d,p,m)=>p>t?Math.sqrt(d*d+m*m-2*d*m*Math.cos(p)):Math.sqrt((d-m)*(d-m)+d*m*p*p*(1-p*p/12)),s=d=>{if(Math.abs(d[0]+d[1]+d[2]-Math.PI)>t)throw new Error("AAA triangles require angles that sum to PI");const m=d[0],_=d[1],f=Math.PI-m-_,I=1,C=I/Math.sin(f)*Math.sin(m),y=I/Math.sin(f)*Math.sin(_);return g(m,_,f,C,y,I)},a=d=>{const p=d[0],m=d[1],_=Math.PI+t-p-m;if(_<t)throw new Error("AAS triangles require angles that sum to PI");const f=d[2],I=f/Math.sin(p)*Math.sin(m),C=f/Math.sin(p)*Math.sin(_);return g(p,m,_,f,I,C)},A=d=>{const p=d[0],m=d[2],_=Math.PI+t-p-m;if(_<t)throw new Error("ASA triangles require angles that sum to PI");const f=d[1],I=f/Math.sin(_)*Math.sin(p),C=f/Math.sin(_)*Math.sin(m);return g(p,m,_,I,C,f)},c=d=>{const p=d[0],m=d[1],_=d[2],f=r(p,m,_),I=i(f,p,_),C=Math.PI-I-m;return g(I,m,C,_,f,p)},l=d=>{const p=d[0],m=d[1],_=d[2],f=Math.asin(m*Math.sin(_)/p),I=Math.PI-f-_,C=p/Math.sin(_)*Math.sin(I);return g(f,I,_,m,C,p)},u=d=>{const p=d[1],m=d[2],_=d[0];if(p+m<=_||m+_<=p||_+p<=m)throw new Error("SSS triangle is incorrect, as the longest side is longer than the sum of the other sides");const f=i(m,_,p),I=i(_,p,m),C=Math.PI-f-I;return g(f,I,C,p,m,_)},g=(d,p,m,_,f,I)=>{const C=e.fromValues(0,0),y=e.fromValues(I,0),x=e.fromValues(_,0);return e.add(x,e.rotate(x,x,[0,0],Math.PI-p),y),n.fromPoints([C,y,x])};return $Ye=d=>{const p={type:"SSS",values:[1,1,1]};let{type:m,values:_}=Object.assign({},p,d);if(typeof m!="string")throw new Error("triangle type must be a string");if(m=m.toUpperCase(),!((m[0]==="A"||m[0]==="S")&&(m[1]==="A"||m[1]==="S")&&(m[2]==="A"||m[2]==="S")))throw new Error("triangle type must contain three letters; A or S");if(!o(_,3))throw new Error("triangle values must contain three values");if(!_.every(f=>f>0))throw new Error("triangle values must be greater than zero");switch(m){case"AAA":return s(_);case"AAS":return a(_);case"ASA":return A(_);case"SAS":return c(_);case"SSA":return l(_);case"SSS":return u(_);default:throw new Error("invalid triangle type, try again")}},$Ye}var qYe,ptn;function uAi(){return ptn||(ptn=1,qYe={arc:kai(),circle:den(),cube:Fai(),cuboid:oYe(),cylinder:Ien(),cylinderElliptic:_en(),ellipse:uen(),ellipsoid:yen(),geodesicSphere:Lai(),line:Hai(),polygon:Oai(),polyhedron:Een(),rectangle:dYe(),roundedCuboid:Gai(),roundedCylinder:Yai(),roundedRectangle:Uai(),sphere:Den(),square:Kai(),star:Vai(),torus:cAi(),triangle:lAi()}),qYe}var XYe,mtn;function gAi(){return mtn||(mtn=1,XYe={height:14,32:[16],33:[10,5,21,5,7,void 0,5,2,4,1,5,0,6,1,5,2],34:[16,4,21,4,14,void 0,12,21,12,14],35:[21,11,25,4,-7,void 0,17,25,10,-7,void 0,4,12,18,12,void 0,3,6,17,6],36:[20,8,25,8,-4,void 0,12,25,12,-4,void 0,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3],37:[24,21,21,3,0,void 0,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,void 0,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7],38:[26,23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2],39:[10,5,19,4,20,5,21,6,20,6,18,5,16,4,15],40:[14,11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7],41:[14,3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7],42:[16,8,21,8,9,void 0,3,18,13,12,void 0,13,18,3,12],43:[26,13,18,13,0,void 0,4,9,22,9],44:[10,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4],45:[26,4,9,22,9],46:[10,5,2,4,1,5,0,6,1,5,2],47:[22,20,25,2,-7],48:[20,9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21],49:[20,6,17,8,18,11,21,11,0],50:[20,4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0],51:[20,5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4],52:[20,13,21,3,7,18,7,void 0,13,21,13,0],53:[20,15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4],54:[20,16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7],55:[20,17,21,7,0,void 0,3,21,17,21],56:[20,8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21],57:[20,16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3],58:[10,5,14,4,13,5,12,6,13,5,14,void 0,5,2,4,1,5,0,6,1,5,2],59:[10,5,14,4,13,5,12,6,13,5,14,void 0,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4],60:[24,20,18,4,9,20,0],61:[26,4,12,22,12,void 0,4,6,22,6],62:[24,4,18,20,9,4,0],63:[18,3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,void 0,9,2,8,1,9,0,10,1,9,2],64:[27,18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,void 0,12,16,10,14,9,11,9,8,10,6,11,5,void 0,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,void 0,19,16,18,8,18,6,19,5],65:[18,9,21,1,0,void 0,9,21,17,0,void 0,4,7,14,7],66:[21,4,21,4,0,void 0,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,void 0,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0],67:[21,18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5],68:[21,4,21,4,0,void 0,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0],69:[19,4,21,4,0,void 0,4,21,17,21,void 0,4,11,12,11,void 0,4,0,17,0],70:[18,4,21,4,0,void 0,4,21,17,21,void 0,4,11,12,11],71:[21,18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,void 0,13,8,18,8],72:[22,4,21,4,0,void 0,18,21,18,0,void 0,4,11,18,11],73:[8,4,21,4,0],74:[16,12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7],75:[21,4,21,4,0,void 0,18,21,4,7,void 0,9,12,18,0],76:[17,4,21,4,0,void 0,4,0,16,0],77:[24,4,21,4,0,void 0,4,21,12,0,void 0,20,21,12,0,void 0,20,21,20,0],78:[22,4,21,4,0,void 0,4,21,18,0,void 0,18,21,18,0],79:[22,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21],80:[21,4,21,4,0,void 0,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10],81:[22,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,void 0,12,4,18,-2],82:[21,4,21,4,0,void 0,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,void 0,11,11,18,0],83:[20,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3],84:[16,8,21,8,0,void 0,1,21,15,21],85:[22,4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21],86:[18,1,21,9,0,void 0,17,21,9,0],87:[24,2,21,7,0,void 0,12,21,7,0,void 0,12,21,17,0,void 0,22,21,17,0],88:[20,3,21,17,0,void 0,17,21,3,0],89:[18,1,21,9,11,9,0,void 0,17,21,9,11],90:[20,17,21,3,0,void 0,3,21,17,21,void 0,3,0,17,0],91:[14,4,25,4,-7,void 0,5,25,5,-7,void 0,4,25,11,25,void 0,4,-7,11,-7],92:[14,0,21,14,-3],93:[14,9,25,9,-7,void 0,10,25,10,-7,void 0,3,25,10,25,void 0,3,-7,10,-7],94:[16,6,15,8,18,10,15,void 0,3,12,8,17,13,12,void 0,8,17,8,0],95:[16,0,-2,16,-2],96:[10,6,21,5,20,4,18,4,16,5,15,6,16,5,17],97:[19,15,14,15,0,void 0,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],98:[19,4,21,4,0,void 0,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3],99:[18,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],100:[19,15,21,15,0,void 0,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],101:[18,3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],102:[12,10,21,8,21,6,20,5,17,5,0,void 0,2,14,9,14],103:[19,15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,void 0,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],104:[19,4,21,4,0,void 0,4,10,7,13,9,14,12,14,14,13,15,10,15,0],105:[8,3,21,4,20,5,21,4,22,3,21,void 0,4,14,4,0],106:[10,5,21,6,20,7,21,6,22,5,21,void 0,6,14,6,-3,5,-6,3,-7,1,-7],107:[17,4,21,4,0,void 0,14,14,4,4,void 0,8,8,15,0],108:[8,4,21,4,0],109:[30,4,14,4,0,void 0,4,10,7,13,9,14,12,14,14,13,15,10,15,0,void 0,15,10,18,13,20,14,23,14,25,13,26,10,26,0],110:[19,4,14,4,0,void 0,4,10,7,13,9,14,12,14,14,13,15,10,15,0],111:[19,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14],112:[19,4,14,4,-7,void 0,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3],113:[19,15,14,15,-7,void 0,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],114:[13,4,14,4,0,void 0,4,8,5,11,7,13,9,14,12,14],115:[17,14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3],116:[12,5,21,5,4,6,1,8,0,10,0,void 0,2,14,9,14],117:[19,4,14,4,4,5,1,7,0,10,0,12,1,15,4,void 0,15,14,15,0],118:[16,2,14,8,0,void 0,14,14,8,0],119:[22,3,14,7,0,void 0,11,14,7,0,void 0,11,14,15,0,void 0,19,14,15,0],120:[17,3,14,14,0,void 0,14,14,3,0],121:[16,2,14,8,0,void 0,14,14,8,0,6,-4,4,-6,2,-7,1,-7],122:[17,14,14,3,0,void 0,3,14,14,14,void 0,3,0,14,0],123:[14,9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,void 0,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,void 0,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7],124:[8,4,25,4,-7],125:[14,5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,void 0,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,void 0,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7],126:[24,3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,void 0,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]}),XYe}var ZYe,_tn;function ftn(){if(_tn)return ZYe;_tn=1;const e={xOffset:0,yOffset:0,input:"?",align:"left",font:gAi(),height:14,lineSpacing:2.142857142857143,letterSpacing:1,extrudeOffset:0};return ZYe=(o,i)=>{!i&&typeof o=="string"&&(o={input:o}),o=o||{};const r=Object.assign({},e,o);return r.input=i||r.input,r},ZYe}var eUe,Itn;function Ctn(){if(Itn)return eUe;Itn=1;const t=ftn();return eUe=(n,o)=>{const{xOffset:i,yOffset:r,input:s,font:a,height:A,extrudeOffset:c}=t(n,o);let l=s.charCodeAt(0);(!l||!a[l])&&(l=63);const u=[].concat(a[l]),g=(A-c)/a.height,h=c/2,d=u.shift()*g,p=[];let m=[];for(let _=0,f=u.length;_<f;_+=2){const I=g*u[_]+i,C=g*u[_+1]+r+h;if(u[_]!==void 0){m.push([I,C]);continue}p.push(m),m=[],_--}return m.length&&p.push(m),{width:d,height:A,segments:p}},eUe}var tUe,ytn;function dAi(){if(ytn)return tUe;ytn=1;const t=Ctn(),e=ftn(),n=(i,r)=>{const{x:s,y:a}=Object.assign({x:0,y:0},i||{}),A=r.segments;let c=null,l=null;for(let u=0,g=A.length;u<g;u++){c=A[u];for(let h=0,d=c.length;h<d;h++)l=c[h],c[h]=[l[0]+s,l[1]+a]}return r};return tUe=(i,r)=>{const{xOffset:s,yOffset:a,input:A,font:c,height:l,align:u,extrudeOffset:g,lineSpacing:h,letterSpacing:d}=e(i,r);let[p,m]=[s,a],_,f,I,C,y,x,E={width:0,segments:[]};const B=[];let S=[],Q=0;const w=p,M=()=>{B.push(E),Q=Math.max(Q,E.width),E={width:0,segments:[]}};for(_=0,f=A.length;_<f;_++){if(I=A[_],C=t({xOffset:p,yOffset:m,font:c,height:l,extrudeOffset:g},I),I===`
`){p=w,m-=C.height*h,M();continue}y=C.width*d,E.width+=y,p+=y,I!==" "&&(E.segments=E.segments.concat(C.segments))}for(E.segments.length&&M(),_=0,f=B.length;_<f;_++)E=B[_],Q>E.width&&(x=Q-E.width,u==="right"?E=n({x},E):u==="center"&&(E=n({x:x/2},E))),S=S.concat(E.segments);return S},tUe}var nUe,xtn;function hAi(){return xtn||(xtn=1,nUe={vectorChar:Ctn(),vectorText:dAi()}),nUe}var oUe,Etn;function fX(){if(Etn)return oUe;Etn=1;const t=Ga(),e=Ra(),n=au();return oUe=i=>{let r;for(const s of i){let a=0;if(t.isA(s)&&(a=1),e.isA(s)&&(a=2),n.isA(s)&&(a=3),r&&a!==r)return!1;r=a}return!0},oUe}var iUe,Btn;function pAi(){return Btn||(Btn=1,iUe=e=>e*.017453292519943295),iUe}var rUe,btn;function Stn(){return btn||(btn=1,rUe=(e,n)=>e-n),rUe}var sUe,Qtn;function mAi(){return Qtn||(Qtn=1,sUe=(e,n,o)=>{let i=0,r=e.length;for(;r>i;){const s=Math.floor((i+r)/2),a=e[s];o(n,a)>0?i=s+1:r=s}e.splice(i,0,n)}),sUe}var aUe,vtn;function _Ai(){if(vtn)return aUe;vtn=1;const{TAU:t}=pc();return aUe=(n,o,i)=>{const r=o>0?n*t/o:0,s=i>0?t/i:0;return Math.ceil(Math.max(r,s,4))},aUe}var AUe,wtn;function fAi(){return wtn||(wtn=1,AUe=e=>e*57.29577951308232),AUe}var cUe,Ptn;function Mtn(){return Ptn||(Ptn=1,cUe={areAllShapesTheSameType:fX(),degToRad:pAi(),flatten:la(),fnNumberSort:Stn(),insertSorted:mAi(),radiusToSegments:_Ai(),radToDeg:fAi()}),cUe}var lUe,Dtn;function uUe(){if(Dtn)return lUe;Dtn=1;const t=mA(),e=Ga(),n=(i,r)=>{if(r.vertices.length<4)return null;const s=[],a=r.vertices.filter((l,u)=>l[2]>0?(s.push(u),!0):!1);if(a.length!==2)throw new Error("Assertion failed: fromFakePolygon: not enough points found");const A=a.map(l=>{const u=Math.round(l[0]/i)*i+0,g=Math.round(l[1]/i)*i+0;return t.fromValues(u,g)});if(t.equals(A[0],A[1]))return null;const c=s[1]-s[0];if(c===1||c===3)c===1&&A.reverse();else throw new Error("Assertion failed: fromFakePolygon: unknown index ordering");return A};return lUe=(i,r)=>{const s=r.map(a=>n(i,a)).filter(a=>a!==null);return e.create(s)},lUe}var gUe,Ntn;function dUe(){if(Ntn)return gUe;Ntn=1;const t=jr(),e=Ga(),n=Ra(),o=qA(),i=(s,a,A)=>{const c=[t.fromVec2(t.create(),A[0],s),t.fromVec2(t.create(),A[1],s),t.fromVec2(t.create(),A[1],a),t.fromVec2(t.create(),A[0],a)];return o.create(c)};return gUe=(s,a)=>{const c=e.toSides(a).map(u=>i(s.z0,s.z1,u));return n.create(c)},gUe}var hUe,Rtn;function IAi(){if(Rtn)return hUe;Rtn=1;const t=Mu(),e=mA(),n=jr(),o=function(i,r){arguments.length<2&&(r=n.orthogonal(n.create(),i)),this.v=n.normalize(n.create(),n.cross(n.create(),i,r)),this.u=n.cross(n.create(),this.v,i),this.plane=i,this.planeorigin=n.scale(n.create(),i,i[3])};return o.prototype={getProjectionMatrix:function(){return t.fromValues(this.u[0],this.v[0],this.plane[0],0,this.u[1],this.v[1],this.plane[1],0,this.u[2],this.v[2],this.plane[2],0,0,0,-this.plane[3],1)},getInverseProjectionMatrix:function(){const i=n.scale(n.create(),this.plane,this.plane[3]);return t.fromValues(this.u[0],this.u[1],this.u[2],0,this.v[0],this.v[1],this.v[2],0,this.plane[0],this.plane[1],this.plane[2],0,i[0],i[1],i[2],1)},to2D:function(i){return e.fromValues(n.dot(i,this.u),n.dot(i,this.v))},to3D:function(i){const r=n.scale(n.create(),this.u,i[0]),s=n.scale(n.create(),this.v,i[1]),a=n.add(r,r,this.planeorigin);return n.add(s,s,a)}},hUe=o,hUe}var pUe,Ttn;function CAi(){if(Ttn)return pUe;Ttn=1;const{EPS:t}=pc(),e=IGe(),n=mA(),o=IAi(),i=pZt(),{insertSorted:r,fnNumberSort:s}=Mtn(),a=qA();return pUe=c=>{if(c.length<2)return c;const l=[],u=c.length,g=a.plane(c[0]),h=new o(g),d=[],p=[],m=new Map,_=new Map,f=new Map,I=10/t;for(let E=0;E<u;E++){const B=c[E];let S=[],Q=B.vertices.length,w=-1;if(Q>0){let M,k;for(let R=0;R<Q;R++){let F=h.to2D(B.vertices[R]);const O=Math.floor(F[1]*I);let U;f.has(O)?U=f.get(O):f.has(O+1)?U=f.get(O+1):f.has(O-1)?U=f.get(O-1):(U=F[1],f.set(O,F[1])),F=n.fromValues(F[0],U),S.push(F);const Y=F[1];(R===0||Y<M)&&(M=Y,w=R),(R===0||Y>k)&&(k=Y);let W=_.get(Y);W||(W={},_.set(Y,W)),W[E]=!0}if(M>=k)S=[],Q=0,w=-1;else{let R=m.get(M);R||(R=[],m.set(M,R)),R.push(E)}}S.reverse(),w=Q-w-1,d.push(S),p.push(w)}const C=[];_.forEach((E,B)=>C.push(B)),C.sort(s);let y=[],x=[];for(let E=0;E<C.length;E++){const B=[],S=C[E],Q=_.get(S);let w=0;for(let k=0;k<y.length;++k){const R=y[k],F=R.polygonindex;if(Q[F]){const O=d[F],U=O.length;let Y=R.leftvertexindex,W=R.rightvertexindex;for(;;){let j=Y+1;if(j>=U&&(j=0),O[j][1]!==S)break;Y=j}let te=W-1;if(te<0&&(te=U-1),O[te][1]===S&&(W=te),Y!==R.leftvertexindex&&Y===W)R._remove=!0,w++;else{R.leftvertexindex=Y,R.rightvertexindex=W,R.topleft=O[Y],R.topright=O[W];let j=Y+1;j>=U&&(j=0),R.bottomleft=O[j];let J=W-1;J<0&&(J=U-1),R.bottomright=O[J]}}}w>0&&(y=y.filter(k=>!k._remove));let M;if(E>=C.length-1)y=[],M=null;else{M=Number(C[E+1]);const k=.5*(S+M),R=m.get(S);for(const F in R){const O=R[F],U=d[O],Y=U.length,W=p[O];let te=W;for(;;){let ne=te+1;if(ne>=Y&&(ne=0),U[ne][1]!==S||ne===W)break;te=ne}let j=W;for(;;){let ne=j-1;if(ne<0&&(ne=Y-1),U[ne][1]!==S||ne===te)break;j=ne}let J=te+1;J>=Y&&(J=0);let oe=j-1;oe<0&&(oe=Y-1);const ie={polygonindex:O,leftvertexindex:te,rightvertexindex:j,topleft:U[te],topright:U[j],bottomleft:U[J],bottomright:U[oe]};r(y,ie,(ne,le)=>{const ge=i(ne.topleft,ne.bottomleft,k),_e=i(le.topleft,le.bottomleft,k);return ge>_e?1:ge<_e?-1:0})}}for(const k in y){const R=y[k];let F=i(R.topleft,R.bottomleft,S);const O=n.fromValues(F,S);F=i(R.topright,R.bottomright,S);const U=n.fromValues(F,S);F=i(R.topleft,R.bottomleft,M);const Y=n.fromValues(F,M);F=i(R.topright,R.bottomright,M);const W=n.fromValues(F,M),te={topleft:O,topright:U,bottomleft:Y,bottomright:W,leftline:e.fromPoints(e.create(),O,Y),rightline:e.fromPoints(e.create(),W,U)};if(B.length>0){const j=B[B.length-1],J=n.distance(te.topleft,j.topright),oe=n.distance(te.bottomleft,j.bottomright);J<t&&oe<t&&(te.topleft=j.topleft,te.leftline=j.leftline,te.bottomleft=j.bottomleft,B.splice(B.length-1,1))}B.push(te)}if(E>0){const k=new Set,R=new Set;for(let F=0;F<B.length;F++){const O=B[F];for(let U=0;U<x.length;U++)if(!R.has(U)){const Y=x[U];if(n.distance(Y.bottomleft,O.topleft)<t&&n.distance(Y.bottomright,O.topright)<t){R.add(U);const W=e.direction(O.leftline),te=e.direction(Y.leftline),j=W[0]-te[0],J=e.direction(O.rightline),oe=e.direction(Y.rightline),ie=J[0]-oe[0],ne=Math.abs(j)<t,le=Math.abs(ie)<t,ge=ne||j>=0,_e=le||ie>=0;ge&&_e&&(O.outpolygon=Y.outpolygon,O.leftlinecontinues=ne,O.rightlinecontinues=le,k.add(U));break}}}for(let F=0;F<x.length;F++)if(!k.has(F)){const O=x[F];O.outpolygon.rightpoints.push(O.bottomright),n.distance(O.bottomright,O.bottomleft)>t&&O.outpolygon.leftpoints.push(O.bottomleft),O.outpolygon.leftpoints.reverse();const Y=O.outpolygon.rightpoints.concat(O.outpolygon.leftpoints).map(te=>h.to3D(te)),W=a.fromPointsAndPlane(Y,g);W.vertices.length&&l.push(W)}}for(let k=0;k<B.length;k++){const R=B[k];R.outpolygon?(R.leftlinecontinues||R.outpolygon.leftpoints.push(R.topleft),R.rightlinecontinues||R.outpolygon.rightpoints.push(R.topright)):(R.outpolygon={leftpoints:[],rightpoints:[]},R.outpolygon.leftpoints.push(R.topleft),n.distance(R.topleft,R.topright)>t&&R.outpolygon.rightpoints.push(R.topright))}x=B}return l},pUe}var mUe,ktn;function IX(){if(ktn)return mUe;ktn=1;const t=Ra(),e=qA(),{NEPS:n}=pc(),o=CAi(),i=a=>{if(a.isRetesselated)return a;const A=t.toPolygons(a).map((g,h)=>({vertices:g.vertices,plane:e.plane(g),index:h})),c=r(A),l=[];c.forEach(g=>{if(Array.isArray(g)){const h=o(g);for(let d=0;d<h.length;d++)l.push(h[d])}else l.push(g)});const u=t.create(l);return u.isRetesselated=!0,u},r=a=>{let A=[a];const c=[];for(let u=3;u>=0;u--){const g=[],h=u===3?15e-9:n;A.forEach(d=>{d.sort(s(u,h));let p=0;for(let m=1;m<d.length;m++)d[m].plane[u]-d[p].plane[u]>h&&(m-p===1?c.push(d[p]):g.push(d.slice(p,m)),p=m);d.length-p===1?c.push(d[p]):g.push(d.slice(p))}),A=g}const l=[];return A.forEach(u=>{u[0]&&(l[u[0].index]=u)}),c.forEach(u=>{l[u.index]=u}),l},s=(a,A)=>(c,l)=>c.plane[a]-l.plane[a]>A?1:l.plane[a]-c.plane[a]>A?-1:0;return mUe=i,mUe}var _Ue,Ftn;function fUe(){if(Ftn)return _Ue;Ftn=1;const{EPS:t}=pc(),e=eT();return _Ue=(o,i)=>{if(o.polygons.length===0||i.polygons.length===0)return!1;const r=e(o),s=r[0],a=r[1],A=e(i),c=A[0],l=A[1];return!(c[0]-a[0]>t||s[0]-l[0]>t||c[1]-a[1]>t||s[1]-l[1]>t||c[2]-a[2]>t||s[2]-l[2]>t)},_Ue}var IUe,Ltn;function yAi(){if(Ltn)return IUe;Ltn=1;const t=E6(),e=qA();class n{constructor(i){this.plane=null,this.front=null,this.back=null,this.polygontreenodes=[],this.parent=i}invert(){const i=[this];let r;for(let s=0;s<i.length;s++){r=i[s],r.plane&&(r.plane=t.flip(t.create(),r.plane)),r.front&&i.push(r.front),r.back&&i.push(r.back);const a=r.front;r.front=r.back,r.back=a}}clipPolygons(i,r){let s={node:this,polygontreenodes:i},a;const A=[];do{if(a=s.node,i=s.polygontreenodes,a.plane){const c=a.plane,l=[],u=[],g=r?l:u,h=i.length;for(let p=0;p<h;p++){const m=i[p];m.isRemoved()||m.splitByPlane(c,g,l,u,l)}a.front&&u.length>0&&A.push({node:a.front,polygontreenodes:u});const d=l.length;if(a.back&&d>0)A.push({node:a.back,polygontreenodes:l});else for(let p=0;p<d;p++)l[p].remove()}s=A.pop()}while(s!==void 0)}clipTo(i,r){let s=this;const a=[];do s.polygontreenodes.length>0&&i.rootnode.clipPolygons(s.polygontreenodes,r),s.front&&a.push(s.front),s.back&&a.push(s.back),s=a.pop();while(s!==void 0)}addPolygonTreeNodes(i){let r={node:this,polygontreenodes:i};const s=[];do{const a=r.node,A=r.polygontreenodes;if(A.length===0){r=s.pop();continue}if(!a.plane){let g=0;g=Math.floor(A.length/2);const h=A[g].getPolygon();a.plane=e.plane(h)}const c=[],l=[],u=A.length;for(let g=0;g<u;++g)A[g].splitByPlane(a.plane,a.polygontreenodes,l,c,l);c.length>0&&(a.front||(a.front=new n(a)),u===c.length&&l.length===0?a.front.polygontreenodes=c:s.push({node:a.front,polygontreenodes:c})),l.length>0&&(a.back||(a.back=new n(a)),u===l.length&&c.length===0?a.back.polygontreenodes=l:s.push({node:a.back,polygontreenodes:l})),r=s.pop()}while(r!==void 0)}}return IUe=n,IUe}var CUe,Htn;function xAi(){if(Htn)return CUe;Htn=1;const t=jr();return CUe=(n,o,i)=>{const r=t.subtract(t.create(),i,o);let s=(n[3]-t.dot(n,o))/t.dot(n,r);return Number.isNaN(s)&&(s=0),s>1&&(s=1),s<0&&(s=0),t.scale(r,r,s),t.add(r,o,r),r},CUe}var yUe,Otn;function EAi(){if(Otn)return yUe;Otn=1;const{EPS:t}=pc(),e=E6(),n=jr(),o=qA(),i=xAi(),r=t*t,s=A=>{const c=[];let l=A[A.length-1];for(let u=0;u<A.length;u++){const g=A[u];n.squaredDistance(g,l)>=r&&c.push(g),l=g}return c};return yUe=(A,c)=>{const l={type:null,front:null,back:null},u=c.vertices,g=u.length,h=o.plane(c);if(e.equals(h,A))l.type=0;else{let d=!1,p=!1;const m=[],_=-t;for(let f=0;f<g;f++){const I=n.dot(A,u[f])-A[3],C=I<_;m.push(C),I>t&&(d=!0),I<_&&(p=!0)}if(!d&&!p){const f=n.dot(A,h);l.type=f>=0?0:1}else if(!p)l.type=2;else if(!d)l.type=3;else{l.type=4;const f=[],I=[];let C=m[0];for(let y=0;y<g;y++){const x=u[y];let E=y+1;E>=g&&(E=0);const B=m[E];if(C===B)C?I.push(x):f.push(x);else{const S=u[E],Q=i(A,x,S);C?(I.push(x),I.push(Q),f.push(Q)):(f.push(x),f.push(Q),I.push(Q))}C=B}if(f.length>=3){const y=s(f);y.length>=3&&(l.front=o.fromPointsAndPlane(y,h))}if(I.length>=3){const y=s(I);y.length>=3&&(l.back=o.fromPointsAndPlane(y,h))}}}return l},yUe}var xUe,Gtn;function BAi(){if(Gtn)return xUe;Gtn=1;const{EPS:t}=pc(),e=jr(),n=qA(),o=EAi();class i{constructor(s,a){this.parent=s,this.children=[],this.polygon=a,this.removed=!1}addPolygons(s){if(!this.isRootNode())throw new Error("Assertion failed");const a=this;s.forEach(A=>{a.addChild(A)})}remove(){this.removed||(this.removed=!0,this.polygon=null,this.parent.recursivelyInvalidatePolygon())}isRemoved(){return this.removed}isRootNode(){return!this.parent}invert(){if(!this.isRootNode())throw new Error("Assertion failed");this.invertSub()}getPolygon(){if(!this.polygon)throw new Error("Assertion failed");return this.polygon}getPolygons(s){if(this.isRootNode()&&this.children.length>0){const h=[];for(let d=0;d<this.children.length;d++)this.children[d].removed||h.push(this.children[d]);this.children=h}let a=[this];const A=[a];let c,l,u,g;for(c=0;c<A.length;++c)for(a=A[c],l=0,u=a.length;l<u;l++)g=a[l],g.polygon?s.push(g.polygon):g.children.length>0&&A.push(g.children)}splitByPlane(s,a,A,c,l){if(this.children.length){const u=[this.children];let g,h,d,p,m;for(g=0;g<u.length;g++)for(m=u[g],h=0,d=m.length;h<d;h++)p=m[h],p.children.length>0?u.push(p.children):p._splitByPlane(s,a,A,c,l)}else this._splitByPlane(s,a,A,c,l)}_splitByPlane(s,a,A,c,l){const u=this.polygon;if(u){const g=n.measureBoundingSphere(u),h=g[3]+t,d=g,p=e.dot(s,d)-s[3];if(p>h)c.push(this);else if(p<-h)l.push(this);else{const m=o(s,u);switch(m.type){case 0:a.push(this);break;case 1:A.push(this);break;case 2:c.push(this);break;case 3:l.push(this);break;case 4:if(m.front){const _=this.addChild(m.front);c.push(_)}if(m.back){const _=this.addChild(m.back);l.push(_)}break}}}}addChild(s){const a=new i(this,s);return this.children.push(a),a}invertSub(){let s=[this];const a=[s];let A,c,l,u;for(A=0;A<a.length;A++)for(s=a[A],c=0,l=s.length;c<l;c++)u=s[c],u.polygon&&(u.polygon=n.invert(u.polygon)),u.children.length>0&&a.push(u.children)}recursivelyInvalidatePolygon(){this.polygon=null,this.parent&&this.parent.recursivelyInvalidatePolygon()}clear(){let s=[this];const a=[s];for(let A=0;A<a.length;++A){s=a[A];const c=s.length;for(let l=0;l<c;l++){const u=s[l];u.polygon&&(u.polygon=null),u.parent&&(u.parent=null),u.children.length>0&&a.push(u.children),u.children=[]}}}toString(){let s="",a=[this];const A=[a];let c,l,u,g;for(c=0;c<A.length;++c){a=A[c];const h=" ".repeat(c);for(l=0,u=a.length;l<u;l++)g=a[l],s+=`${h}PolygonTreeNode (${g.isRootNode()}): ${g.children.length}`,g.polygon?s+=`
 ${h}polygon: ${g.polygon.vertices}
`:s+=`
`,g.children.length>0&&A.push(g.children)}return s}}return xUe=i,xUe}var EUe,Ytn;function bAi(){if(Ytn)return EUe;Ytn=1;const t=yAi(),e=BAi();class n{constructor(i){this.polygonTree=new e,this.rootnode=new t(null),i&&this.addPolygons(i)}invert(){this.polygonTree.invert(),this.rootnode.invert()}clipTo(i,r=!1){this.rootnode.clipTo(i,r)}allPolygons(){const i=[];return this.polygonTree.getPolygons(i),i}addPolygons(i){const r=new Array(i.length);for(let s=0;s<i.length;s++)r[s]=this.polygonTree.addChild(i[s]);this.rootnode.addPolygonTreeNodes(r)}clear(){this.polygonTree.clear()}toString(){return"Tree: "+this.polygonTree.toString("")}}return EUe=n,EUe}var BUe,Utn;function bUe(){return Utn||(Utn=1,BUe={Tree:bAi()}),BUe}var SUe,Ktn;function SAi(){if(Ktn)return SUe;Ktn=1;const t=Ra(),e=fUe(),{Tree:n}=bUe();return SUe=(i,r)=>{if(!e(i,r))return t.create();const s=new n(t.toPolygons(i)),a=new n(t.toPolygons(r));s.invert(),a.clipTo(s),a.invert(),s.clipTo(a),a.clipTo(s),s.addPolygons(a.allPolygons()),s.invert();const A=s.allPolygons();return t.create(A)},SUe}var QUe,Vtn;function ztn(){if(Vtn)return QUe;Vtn=1;const t=la(),e=IX(),n=SAi();return QUe=(...i)=>{i=t(i);let r=i.shift();return i.forEach(s=>{r=n(r,s)}),r=e(r),r},QUe}var vUe,Jtn;function QAi(){if(Jtn)return vUe;Jtn=1;const t=la(),e=Ra(),n=rP(),o=uUe(),i=dUe(),r=ztn();return vUe=(...a)=>{a=t(a);const A=a.map(u=>i({z0:-1,z1:1},u)),c=r(A),l=n(c);return o(l,e.toPolygons(c))},vUe}var wUe,Wtn;function vAi(){if(Wtn)return wUe;Wtn=1;const t=la(),e=fX(),n=Ga(),o=Ra(),i=QAi(),r=ztn();return wUe=(...a)=>{if(a=t(a),a.length===0)throw new Error("wrong number of arguments");if(!e(a))throw new Error("only intersect of the types are supported");const A=a[0];return n.isA(A)?i(a):o.isA(A)?r(a):A},wUe}var PUe,jtn;function MUe(){if(jtn)return PUe;jtn=1;const t=qA(),e=U$t();return PUe=o=>e(o,{skipTriangulation:!0}).map(s=>{const a=s.map(A=>o[A]);return t.create(a)}),PUe}var DUe,$tn;function qtn(){if($tn)return DUe;$tn=1;const t=Ra(),e=fUe(),{Tree:n}=bUe(),o=(r,s)=>{if(!e(r,s))return i(r,s);const a=new n(t.toPolygons(r)),A=new n(t.toPolygons(s));a.clipTo(A,!1),A.clipTo(a),A.invert(),A.clipTo(a),A.invert();const c=a.allPolygons().concat(A.allPolygons());return t.create(c)},i=(r,s)=>{let a=t.toPolygons(r);return a=a.concat(t.toPolygons(s)),t.create(a)};return DUe=o,DUe}var NUe,Xtn;function RUe(){if(Xtn)return NUe;Xtn=1;const t=la(),e=IX(),n=qtn();return NUe=(...i)=>{i=t(i);let r;for(r=1;r<i.length;r+=2)i.push(n(i[r-1],i[r]));let s=i[r-1];return s=e(s),s},NUe}var TUe,Ztn;function enn(){if(Ztn)return TUe;Ztn=1;const t=la(),e=Ra(),n=qA(),o=MUe(),i=RUe(),r=(...u)=>{if(u=t(u),u.length!==2)throw new Error("minkowskiSum requires exactly two geometries");const[g,h]=u;if(!e.isA(g)||!e.isA(h))throw new Error("minkowskiSum requires geom3 geometries");const d=e.isConvex(g),p=e.isConvex(h);if(d&&p)return c(g,h);if(!d&&p)return s(g,h);if(d&&!p)return s(h,g);throw new Error("minkowskiSum of two non-convex geometries is not yet supported")},s=(u,g)=>{const h=a(u);if(h.length===0)return e.create();const d=h.map(p=>c(p,g));return d.length===1?d[0]:i(d)},a=u=>{const g=e.toPolygons(u);if(g.length===0)return[];const h=[];for(let d=0;d<g.length;d++){const p=g[d],m=p.vertices;let _=0,f=0,I=0;for(let Q=0;Q<m.length;Q++)_+=m[Q][0],f+=m[Q][1],I+=m[Q][2];_/=m.length,f/=m.length,I/=m.length;const C=n.plane(p),y=C[0],x=C[1],E=C[2],B=.1,S=[_-y*B,f-x*B,I-E*B];for(let Q=1;Q<m.length-1;Q++){const w=m[0],M=m[Q],k=m[Q+1],R=A(S,w,M,k);h.push(e.create(R))}}return h},A=(u,g,h,d)=>[n.create([u,h,g]),n.create([u,g,d]),n.create([g,h,d]),n.create([h,u,d])],c=(u,g)=>{const h=l(u),d=l(g);if(h.length===0||d.length===0)return e.create();const p=[];for(let _=0;_<h.length;_++){const f=h[_];for(let I=0;I<d.length;I++){const C=d[I];p.push([f[0]+C[0],f[1]+C[1],f[2]+C[2]])}}const m=o(p);return e.create(m)},l=u=>{const g=new Set,h=[],d=e.toPolygons(u);for(let p=0;p<d.length;p++){const m=d[p].vertices;for(let _=0;_<m.length;_++){const f=m[_],I=`${f[0]},${f[1]},${f[2]}`;g.has(I)||(g.add(I),h.push(f))}}return h};return TUe=r,TUe}var kUe,tnn;function wAi(){if(tnn)return kUe;tnn=1;const t=jr(),e=rP(),n=Ra(),o=a=>a.sort((A,c)=>A-c).filter((A,c,l)=>!c||A!==l[c-1]),i=(a,A,c)=>{const l=`${A}`,u=a.get(l);u===void 0?a.set(l,[c]):u.push(c)},r=(a,A)=>{const c=`${A}`;return a.get(c)};return kUe=a=>{const A=e(a),c=n.toPolygons(a),l=c.length,u=new Map,g=t.create();c.forEach((_,f)=>{_.vertices.forEach(I=>{i(u,t.snap(g,I,A),f)})});const h=c.map(_=>{let f=[];return _.vertices.forEach(I=>{f=f.concat(r(u,t.snap(g,I,A)))}),{e:1,d:o(f)}});u.clear();let d=0;const p=h.length;for(let _=0;_<p;_++){const f=h[_];if(f.e>0){const I=new Array(l);I[_]=!0;do d=0,I.forEach((C,y)=>{const x=h[y];if(x.e>0){x.e=-1;for(let E=0;E<x.d.length;E++)I[x.d[E]]=!0;d++}});while(d>0);f.indexes=I}}const m=[];for(let _=0;_<p;_++)if(h[_].indexes){const f=[];h[_].indexes.forEach((I,C)=>f.push(c[C])),m.push(n.create(f))}return m},kUe}var FUe,nnn;function PAi(){if(nnn)return FUe;nnn=1;const t=la(),e=Ra(),n=wAi();return FUe=(...i)=>{if(i=t(i),i.length===0)throw new Error("wrong number of arguments");const r=i.map(s=>e.isA(s)?n(s):s);return r.length===1?r[0]:r},FUe}var LUe,onn;function MAi(){if(onn)return LUe;onn=1;const t=Ra(),e=fUe(),{Tree:n}=bUe();return LUe=(i,r)=>{if(!e(i,r))return t.clone(i);const s=new n(t.toPolygons(i)),a=new n(t.toPolygons(r));s.invert(),s.clipTo(a),a.clipTo(s,!0),s.addPolygons(a.allPolygons()),s.invert();const A=s.allPolygons();return t.create(A)},LUe}var HUe,inn;function rnn(){if(inn)return HUe;inn=1;const t=la(),e=IX(),n=MAi();return HUe=(...i)=>{i=t(i);let r=i.shift();return i.forEach(s=>{r=n(r,s)}),r=e(r),r},HUe}var OUe,snn;function DAi(){if(snn)return OUe;snn=1;const t=la(),e=Ra(),n=rP(),o=uUe(),i=dUe(),r=rnn();return OUe=(...a)=>{a=t(a);const A=a.map(u=>i({z0:-1,z1:1},u)),c=r(A),l=n(c);return o(l,e.toPolygons(c))},OUe}var GUe,ann;function NAi(){if(ann)return GUe;ann=1;const t=la(),e=fX(),n=Ga(),o=Ra(),i=DAi(),r=rnn();return GUe=(...a)=>{if(a=t(a),a.length===0)throw new Error("wrong number of arguments");if(!e(a))throw new Error("only subtract of the types are supported");const A=a[0];return n.isA(A)?i(a):o.isA(A)?r(a):A},GUe}var YUe,Ann;function cnn(){if(Ann)return YUe;Ann=1;const t=la(),e=Ra(),n=rP(),o=uUe(),i=dUe(),r=RUe();return YUe=(...a)=>{a=t(a);const A=a.map(u=>i({z0:-1,z1:1},u)),c=r(A),l=n(c);return o(l,e.toPolygons(c))},YUe}var UUe,lnn;function KUe(){if(lnn)return UUe;lnn=1;const t=la(),e=fX(),n=Ga(),o=Ra(),i=cnn(),r=RUe();return UUe=(...a)=>{if(a=t(a),a.length===0)throw new Error("wrong number of arguments");if(!e(a))throw new Error("only unions of the same type are supported");const A=a[0];return n.isA(A)?i(a):o.isA(A)?r(a):A},UUe}var VUe,unn;function RAi(){return unn||(unn=1,VUe={intersect:vAi(),minkowski:enn(),scission:PAi(),subtract:NAi(),union:KUe()}),VUe}var zUe,gnn;function Dhe(){if(gnn)return zUe;gnn=1;const{EPS:t,TAU:e}=pc(),n=_Zt(),o=IGe(),i=mA(),r=whe();return zUe=(a,A)=>{const c={delta:1,corners:"edge",closed:!1,segments:16};let{delta:l,corners:u,closed:g,segments:h}=Object.assign({},c,a);if(Math.abs(l)<t)return A;let d=a.closed?r(A):1;d===0&&(d=1);const p=d>0&&l>=0||d<0&&l<0;l=Math.abs(l);let m=null,_=[];const f=[],I=i.create(),C=A.length;for(let y=0;y<C;y++){const x=(y+1)%C,E=A[y],B=A[x];p?i.subtract(I,E,B):i.subtract(I,B,E),i.normal(I,I),i.normalize(I,I),i.scale(I,I,l);const S=i.add(i.create(),E,I),Q=i.add(i.create(),B,I),w=[S,Q];if(m!=null&&(g||!g&&x!==0)){const M=n(m[0],m[1],w[0],w[1]);M?(_.pop(),w[0]=M):f.push({c:E,s0:m,s1:w})}m=[S,Q],!(x===0&&!g)&&(_.push(w[0]),_.push(w[1]))}if(g&&m!=null){const y=_[0],x=_[1],E=n(m[0],m[1],y,x);if(E)_[0]=E,_.pop();else{const B=A[0],S=[y,x];f.push({c:B,s0:m,s1:S})}}if(u==="edge"){const y=new Map;_.forEach((B,S)=>y.set(B,S));const x=o.create(),E=o.create();f.forEach(B=>{o.fromPoints(x,B.s0[0],B.s0[1]),o.fromPoints(E,B.s1[0],B.s1[1]);const S=o.intersectPointOfLines(x,E);if(Number.isFinite(S[0])&&Number.isFinite(S[1])){const Q=B.s0[1],w=y.get(Q);_[w]=S,_[(w+1)%_.length]=void 0}else{const Q=B.s1[0],w=y.get(Q);_[w]=void 0}}),_=_.filter(B=>B!==void 0)}if(u==="round"){let y=Math.floor(h/4);const x=i.create();f.forEach(E=>{let B=i.angle(i.subtract(x,E.s1[0],E.c));if(B-=i.angle(i.subtract(x,E.s0[1],E.c)),p&&B<0&&(B=B+Math.PI,B<0&&(B=B+Math.PI)),!p&&B>0&&(B=B-Math.PI,B>0&&(B=B-Math.PI)),B!==0){y=Math.floor(h*(Math.abs(B)/e));const S=B/y,Q=i.angle(i.subtract(x,E.s0[1],E.c)),w=[];for(let M=1;M<y;M++){const k=Q+S*M,R=i.fromAngleRadians(i.create(),k);i.scale(R,R,l),i.add(R,R,E.c),w.push(R)}if(w.length>0){const M=E.s0[1];let k=_.findIndex(R=>i.equals(M,R));k=(k+1)%_.length,_.splice(k,0,...w)}}else{const S=E.s1[0],Q=_.findIndex(w=>i.equals(S,w));_.splice(Q,1)}})}return _},zUe}var JUe,dnn;function TAi(){if(dnn)return JUe;dnn=1;const t=Ga(),e=Dhe();return JUe=(o,i)=>{const r={delta:1,corners:"edge",segments:16},{delta:s,corners:a,segments:A}=Object.assign({},r,o);if(!(a==="edge"||a==="chamfer"||a==="round"))throw new Error('corners must be "edge", "chamfer", or "round"');const u=t.toOutlines(i).map(g=>(o={delta:s,corners:a,closed:!0,segments:A},e(o,g))).reduce((g,h)=>g.concat(t.toSides(t.fromPoints(h))),[]);return t.create(u)},JUe}var WUe,hnn;function kAi(){if(hnn)return WUe;hnn=1;const t=Mu(),e=jr(),n=Ra(),o=qA();return WUe=(r,s)=>{e.dot(o.plane(s),r)>0&&(s=o.invert(s));const A=[s],c=o.transform(t.fromTranslation(t.create(),r),s),l=s.vertices.length;for(let u=0;u<l;u++){const g=u<l-1?u+1:0,h=o.create([s.vertices[u],c.vertices[u],c.vertices[g],s.vertices[g]]);A.push(h)}return A.push(o.invert(c)),n.create(A)},WUe}var jUe,pnn;function FAi(){if(pnn)return jUe;pnn=1;const{EPS:t,TAU:e}=pc(),n=Mu(),o=jr(),i=Stn(),r=Ra(),s=qA(),a=Den(),A=IX(),c=qtn(),l=kAi(),u=(p,m,_)=>{const f=m.toString();if(p.has(f))p.get(f)[1].push(_);else{const I=[m,[_]];p.set(f,I)}},g=(p,m,_)=>{const f=m[0].toString(),I=m[1].toString(),C=f<I?`${f},${I}`:`${I},${f}`;if(p.has(C))p.get(C)[1].push(_);else{const y=[m,[_]];p.set(C,y)}},h=(p,m)=>{p.findIndex(f=>f===m)<0&&p.push(m)};return jUe=(p,m)=>{const _={delta:1,segments:12},{delta:f,segments:I}=Object.assign({},_,p);let C=r.create();const y=new Map,x=new Map,E=o.create(),B=o.create();return r.toPolygons(m).forEach((Q,w)=>{const M=o.scale(o.create(),s.plane(Q),2*f),k=s.transform(n.fromTranslation(n.create(),o.scale(o.create(),M,-.5)),Q),R=l(M,k);C=c(C,R);const F=Q.vertices;for(let O=0;O<F.length;O++){u(y,F[O],s.plane(Q));const U=(O+1)%F.length,Y=[F[O],F[U]];g(x,Y,s.plane(Q))}}),x.forEach(Q=>{const w=Q[0],M=Q[1],k=w[0],R=w[1],F=o.subtract(o.create(),R,k);o.normalize(F,F);const O=M[0],U=o.cross(o.create(),O,F);let Y=[];for(let le=0;le<I;le++)h(Y,le*e/I);for(let le=0,ge=M.length;le<ge;le++){const _e=M[le],ue=o.dot(U,_e),fe=o.dot(O,_e);let pe=Math.atan2(ue,fe);pe<0&&(pe+=e),h(Y,pe),pe=Math.atan2(-ue,-fe),pe<0&&(pe+=e),h(Y,pe)}Y=Y.sort(i);const W=Y.length;let te,j;const J=[],oe=[],ie=[];for(let le=-1;le<W;le++){const ge=Y[le<0?le+W:le],_e=Math.sin(ge),ue=Math.cos(ge);o.scale(E,O,ue*f),o.scale(B,U,_e*f),o.add(E,E,B);const fe=o.add(o.create(),k,E),pe=o.add(o.create(),R,E);let ye=!1;if(le>=0&&o.distance(fe,te)<t&&(ye=!0),!ye){if(le>=0){J.push(fe),oe.push(pe);const Me=[j,pe,fe,te],ve=s.create(Me);ie.push(ve)}te=fe,j=pe}}oe.reverse(),ie.push(s.create(J)),ie.push(s.create(oe));const ne=r.create(ie);C=c(C,ne)}),y.forEach(Q=>{const w=Q[0],M=Q[1],k=M[0];let R=null,F=0;for(let W=1;W<M.length;W++){const te=M[W],j=o.cross(E,k,te),J=o.length(j);J>.05&&J>F&&(F=J,R=te)}R||(R=o.orthogonal(E,k));const O=o.cross(E,k,R);o.normalize(O,O);const U=o.cross(B,O,k),Y=a({center:[w[0],w[1],w[2]],radius:f,segments:I,axes:[k,O,U]});C=c(C,Y)}),A(C)},jUe}var $Ue,mnn;function LAi(){if(mnn)return $Ue;mnn=1;const t=Ra(),e=KUe(),n=FAi();return $Ue=(i,r)=>{const s={delta:1,corners:"round",segments:12},{delta:a,corners:A,segments:c}=Object.assign({},s,i);if(A!=="round")throw new Error('corners must be "round" for 3D geometries');if(t.toPolygons(r).length===0)throw new Error("the given geometry cannot be empty");i={delta:a,corners:A,segments:c};const u=n(i,r);return e(r,u)},$Ue}var qUe,_nn;function HAi(){if(_nn)return qUe;_nn=1;const t=whe(),e=mA(),n=Ga(),o=au(),i=Dhe(),r=A=>{let{external:c,internal:l}=A;t(c)<0?c=c.reverse():l=l.reverse();const u=o.fromPoints({closed:!0},c),g=o.fromPoints({closed:!0},l),h=n.toSides(n.fromPoints(o.toPoints(u))),d=n.toSides(n.fromPoints(o.toPoints(g)));return h.push(...d),n.create(h)},s=(A,c,l,u)=>{const{points:g,external:h,internal:d}=A,p=Math.floor(c/2),m=[],_=[];if(l==="round"&&p>0){const I=Math.PI/p,C=g[g.length-1],y=e.angle(e.subtract(e.create(),h[h.length-1],C)),x=g[0],E=e.angle(e.subtract(e.create(),d[0],x));for(let B=1;B<p;B++){let S=y+I*B,Q=e.fromAngleRadians(e.create(),S);e.scale(Q,Q,u),e.add(Q,Q,C),m.push(Q),S=E+I*B,Q=e.fromAngleRadians(e.create(),S),e.scale(Q,Q,u),e.add(Q,Q,x),_.push(Q)}}const f=[];return f.push(...h,...m,...d.reverse(),..._),n.fromPoints(f)};return qUe=(A,c)=>{A=Object.assign({},{delta:1,corners:"edge",segments:16},A);const{delta:u,corners:g,segments:h}=A;if(u<=0)throw new Error("the given delta must be positive for paths");if(!(g==="edge"||g==="chamfer"||g==="round"))throw new Error('corners must be "edge", "chamfer", or "round"');const d=c.isClosed,p=o.toPoints(c);if(p.length===0)throw new Error("the given geometry cannot be empty");const m={points:p,external:i({delta:u,corners:g,segments:h,closed:d},p),internal:i({delta:-u,corners:g,segments:h,closed:d},p)};return c.isClosed?r(m):s(m,h,g,u)},qUe}var XUe,fnn;function ZUe(){if(fnn)return XUe;fnn=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=TAi(),r=LAi(),s=HAi();return XUe=(A,...c)=>{if(c=t(c),c.length===0)throw new Error("wrong number of arguments");const l=c.map(u=>o.isA(u)?s(A,u):e.isA(u)?i(A,u):n.isA(u)?r(A,u):u);return l.length===1?l[0]:l},XUe}var eKe,Inn;function OAi(){if(Inn)return eKe;Inn=1;const t=Ga(),e=zOe(),n=Dhe();return eKe=(i,r)=>{const s={delta:1,corners:"edge",segments:0},{delta:a,corners:A,segments:c}=Object.assign({},s,i);if(!(A==="edge"||A==="chamfer"||A==="round"))throw new Error('corners must be "edge", "chamfer", or "round"');const l=t.toOutlines(r),g=l.map(h=>(i={delta:l.reduce((m,_)=>m+e.arePointsInside(h,e.create(_)),0)%2===0?a:-a,corners:A,closed:!0,segments:c},n(i,h))).reduce((h,d)=>h.concat(t.toSides(t.fromPoints(d))),[]);return t.create(g)},eKe}var tKe,Cnn;function GAi(){if(Cnn)return tKe;Cnn=1;const t=au(),e=Dhe();return tKe=(o,i)=>{const r={delta:1,corners:"edge",closed:i.isClosed,segments:16},{delta:s,corners:a,closed:A,segments:c}=Object.assign({},r,o);if(!(a==="edge"||a==="chamfer"||a==="round"))throw new Error('corners must be "edge", "chamfer", or "round"');o={delta:s,corners:a,closed:A,segments:c};const l=e(o,t.toPoints(i));return t.fromPoints({closed:A},l)},tKe}var nKe,ynn;function YAi(){if(ynn)return nKe;ynn=1;const t=la(),e=Ga(),n=au(),o=OAi(),i=GAi();return nKe=(s,...a)=>{if(a=t(a),a.length===0)throw new Error("wrong number of arguments");const A=a.map(c=>n.isA(c)?i(s,c):e.isA(c)?o(s,c):c);return A.length===1?A[0]:A},nKe}var oKe,xnn;function UAi(){return xnn||(xnn=1,oKe={expand:ZUe(),offset:YAi()}),oKe}var iKe,Enn;function Nhe(){if(Enn)return iKe;Enn=1;const t=Mu(),e=jr(),n=Ga(),o=bY(),i=Mhe();return iKe=(s,a)=>{const A={offset:[0,0,1],twistAngle:0,twistSteps:12,repair:!0};let{offset:c,twistAngle:l,twistSteps:u,repair:g}=Object.assign({},A,s);if(u<1)throw new Error("twistSteps must be 1 or more");l===0&&(u=1);const h=e.clone(c),d=n.toSides(a);if(d.length===0)throw new Error("the given geometry cannot be empty");const p=o.fromSides(d);h[2]<0&&o.reverse(p,p);const m=t.create(),_=(f,I,C)=>{const y=I/u*l,x=e.scale(e.create(),h,I/u);return t.multiply(m,t.fromZRotation(m,y),t.fromTranslation(t.create(),x)),o.transform(m,C)};return s={numberOfSlices:u+1,capStart:!0,capEnd:!0,repair:g,callback:_},i(s,p)},iKe}var rKe,Bnn;function KAi(){if(Bnn)return rKe;Bnn=1;const t=Ga(),e=au(),n=Nhe();return rKe=(i,r)=>{if(!r.isClosed)throw new Error("extruded path must be closed");const s=e.toPoints(r),a=t.fromPoints(s);return n(i,a)},rKe}var sKe,bnn;function VAi(){if(bnn)return sKe;bnn=1;const t=la(),e=Ga(),n=au(),o=Nhe(),i=KAi();return sKe=(s,...a)=>{const A={height:1,twistAngle:0,twistSteps:1,repair:!0},{height:c,twistAngle:l,twistSteps:u,repair:g}=Object.assign({},A,s);if(a=t(a),a.length===0)throw new Error("wrong number of arguments");s={offset:[0,0,c],twistAngle:l,twistSteps:u,repair:g};const h=a.map(d=>n.isA(d)?i(s,d):e.isA(d)?o(s,d):d);return h.length===1?h[0]:h},sKe}var aKe,Snn;function zAi(){if(Snn)return aKe;Snn=1;const t=au(),e=ZUe(),n=Nhe();return aKe=(i,r)=>{const s={size:1,height:1},{size:a,height:A}=Object.assign({},s,i);if(i.delta=a,i.offset=[0,0,A],t.toPoints(r).length===0)throw new Error("the given geometry cannot be empty");const l=e(i,r);return n(i,l)},aKe}var AKe,Qnn;function JAi(){if(Qnn)return AKe;Qnn=1;const{area:t}=hX(),e=Ga(),n=au(),o=ZUe(),i=Nhe();return AKe=(s,a)=>{const A={size:1,height:1},{size:c,height:l}=Object.assign({},A,s);s.delta=c,s.offset=[0,0,l];const u=e.toOutlines(a);if(u.length===0)throw new Error("the given geometry cannot be empty");const h=u.map(p=>(t(p)<0&&p.reverse(),o(s,n.fromPoints({closed:!0},p)))).reduce((p,m)=>p.concat(e.toSides(m)),[]),d=e.create(h);return i(s,d)},AKe}var cKe,vnn;function WAi(){if(vnn)return cKe;vnn=1;const t=la(),e=Ga(),n=au(),o=zAi(),i=JAi();return cKe=(s,...a)=>{const A={size:1,height:1},{size:c,height:l}=Object.assign({},A,s);if(a=t(a),a.length===0)throw new Error("wrong number of arguments");if(c<=0)throw new Error("size must be positive");if(l<=0)throw new Error("height must be positive");const u=a.map(g=>n.isA(g)?o(s,g):e.isA(g)?i(s,g):g);return u.length===1?u[0]:u},cKe}var lKe,wnn;function jAi(){if(wnn)return lKe;wnn=1;const{TAU:t}=pc(),e=Mu(),n=Ga(),o=Mhe(),i=bY();return lKe=(s,a)=>{const A={angle:t,startAngle:0,pitch:10,height:0,endOffset:0,segmentsPerRotation:32};let{angle:c,startAngle:l,pitch:u,height:g,endOffset:h,segmentsPerRotation:d}=Object.assign({},A,s);if(g!=0&&(u=g/(c/t)),d<3)throw new Error("The number of segments per rotation needs to be at least 3.");const m=n.toSides(a);if(m.length===0)throw new Error("The given geometry cannot be empty");const _=m.filter(B=>B[0][0]>=0);let f=i.fromSides(m);_.length===0&&(f=i.reverse(f));const I=Math.round(d/t*Math.abs(c)),C=I>=2?I:2,y=e.create(),x=e.create(),E=(B,S,Q)=>{const w=l+c/C*S,M=h/C*S,k=(w-l)/t*u;return e.multiply(y,e.fromTranslation(e.create(),[M,0,k*Math.sign(c)]),e.fromXRotation(e.create(),-t/4*Math.sign(c))),e.multiply(x,e.fromZRotation(e.create(),w),y),i.transform(x,Q)};return o({numberOfSlices:C+1,callback:E},f)},lKe}var uKe,Pnn;function $Ai(){if(Pnn)return uKe;Pnn=1;const t=la(),e=AGe(),n=E6(),o=Mu(),i=Ga(),r=Ra(),s=qA(),a=rP(),A=cnn(),c=(u,g)=>{const h=n.fromNormalAndPoint(n.create(),u.axis,u.origin);if(Number.isNaN(h[0])||Number.isNaN(h[1])||Number.isNaN(h[2])||Number.isNaN(h[3]))throw new Error("project: invalid axis or origin");const d=a(g),p=d*d*Math.sqrt(3)/4;if(d===0)return i.create();const m=r.toPolygons(g);let _=[];for(let I=0;I<m.length;I++){const C=m[I].vertices.map(E=>n.projectionOfPoint(h,E)),y=s.create(C),x=s.plane(y);e(h,x)&&(s.measureArea(y)<p||_.push(y))}if(!e(h,[0,0,1])){const I=o.fromVectorRotation(o.create(),h,[0,0,1]);_=_.map(C=>s.transform(I,C))}_=_.sort((I,C)=>s.measureArea(C)-s.measureArea(I));const f=_.map(I=>i.fromPoints(I.vertices));return A(f)};return uKe=(u,...g)=>{const h={axis:[0,0,1],origin:[0,0,0]},{axis:d,origin:p}=Object.assign({},h,u);if(g=t(g),g.length===0)throw new Error("wrong number of arguments");u={axis:d,origin:p};const m=g.map(_=>r.isA(_)?c(u,_):_);return m.length===1?m[0]:m},uKe}var gKe,Mnn;function qAi(){return Mnn||(Mnn=1,gKe={extrudeFromSlices:Mhe(),extrudeLinear:VAi(),extrudeRectangular:WAi(),extrudeRotate:ltn(),extrudeHelical:jAi(),project:$Ai(),slice:bY()}),gKe}var dKe,Dnn;function hKe(){if(Dnn)return dKe;Dnn=1;const t=mA(),e=i=>{let r=t.fromValues(1/0,1/0);i.forEach(A=>{(A[1]<r[1]||A[1]===r[1]&&A[0]<r[0])&&(r=A)});const s=[];i.forEach(A=>{const c=o(A[1]-r[1],A[0]-r[0]),l=t.squaredDistance(A,r);s.push({point:A,angle:c,distSq:l})}),s.sort((A,c)=>A.angle!==c.angle?A.angle-c.angle:A.distSq-c.distSq);const a=[];return s.forEach(A=>{let c=a.length;for(;c>1&&n(a[c-2],a[c-1],A.point)<=Number.EPSILON;)a.pop(),c=a.length;a.push(A.point)}),a},n=(i,r,s)=>(r[0]-i[0])*(s[1]-i[1])-(r[1]-i[1])*(s[0]-i[0]),o=(i,r)=>i===0&&r===0?-1/0:-r/i;return dKe=e,dKe}var pKe,Nnn;function mKe(){if(Nnn)return pKe;Nnn=1;const t=Ga(),e=Ra(),n=au();return pKe=i=>{const r=new Set,s=[],a=A=>{const c=A.toString();r.has(c)||(s.push(A),r.add(c))};return i.forEach(A=>{t.isA(A)?t.toPoints(A).forEach(a):e.isA(A)?e.toPoints(A).forEach(c=>c.forEach(a)):n.isA(A)&&n.toPoints(A).forEach(a)}),s},pKe}var _Ke,Rnn;function XAi(){if(Rnn)return _Ke;Rnn=1;const t=la(),e=au(),n=hKe(),o=mKe();return _Ke=(...r)=>{r=t(r);const s=o(r),a=n(s);return e.fromPoints({closed:!0},a)},_Ke}var fKe,Tnn;function ZAi(){if(Tnn)return fKe;Tnn=1;const t=la(),e=Ga(),n=hKe(),o=mKe();return fKe=(...r)=>{r=t(r);const s=o(r),a=n(s);return a.length<3?e.create():e.fromPoints(a)},fKe}var IKe,knn;function eci(){if(knn)return IKe;knn=1;const t=la(),e=Ra(),n=mKe(),o=MUe();return IKe=(...r)=>{r=t(r);const s=n(r);return s.length===0?e.create():e.create(o(s))},IKe}var CKe,Fnn;function Lnn(){if(Fnn)return CKe;Fnn=1;const t=la(),e=fX(),n=Ga(),o=Ra(),i=au(),r=XAi(),s=ZAi(),a=eci();return CKe=(...c)=>{if(c=t(c),c.length===0)throw new Error("wrong number of arguments");if(!e(c))throw new Error("only hulls of the same type are supported");const l=c[0];return i.isA(l)?r(c):n.isA(l)?s(c):o.isA(l)?a(c):l},CKe}var yKe,Hnn;function tci(){if(Hnn)return yKe;Hnn=1;const t=la(),e=KUe(),n=Lnn();return yKe=(...i)=>{if(i=t(i),i.length<2)throw new Error("wrong number of arguments");const r=[];for(let s=1;s<i.length;s++)r.push(n(i[s-1],i[s]));return e(r)},yKe}var xKe,Onn;function nci(){return Onn||(Onn=1,xKe={hull:Lnn(),hullChain:tci(),hullPoints2:hKe(),hullPoints3:MUe()}),xKe}var EKe,Gnn;function oci(){return Gnn||(Gnn=1,EKe={minkowskiSum:enn()}),EKe}var BKe,Ynn;function Unn(){if(Ynn)return BKe;Ynn=1;const t=jr(),e=qA(),n=(i,r)=>{const s=Math.abs(e.measureArea(r));return Number.isFinite(s)&&s>i};return BKe=(i,r)=>{let s=r.map(A=>{const c=A.vertices.map(g=>t.snap(t.create(),g,i)),l=[];for(let g=0;g<c.length;g++){const h=(g+1)%c.length;t.equals(c[g],c[h])||l.push(c[g])}const u=e.create(l);return A.color&&(u.color=A.color),u});const a=i*i*Math.sqrt(3)/4;return s=s.filter(A=>n(a,A)),s},BKe}var bKe,Knn;function ici(){if(Knn)return bKe;Knn=1;const t=AGe(),e=jr(),n=qA(),o=p=>{const m=n.toPoints(p),_=[];for(let f=0;f<m.length;f++){const I=(f+1)%m.length,C={v1:m[f],v2:m[I]};_.push(C)}for(let f=0;f<_.length;f++){const I=(f+1)%m.length;_[f].next=_[I],_[I].prev=_[f]}return _},i=(p,m)=>{const _=`${m.v1}:${m.v2}`;p.set(_,m)},r=(p,m)=>{const _=`${m.v1}:${m.v2}`;p.delete(_)},s=(p,m)=>{const _=`${m.v2}:${m.v1}`;return p.get(_)},a=(p,m,_)=>{let f=p.prev.v1,I=p.prev.v2,C=m.next.v2;const y=l(f,I,C,_);f=m.prev.v1,I=m.prev.v2,C=p.next.v2;const x=l(f,I,C,_);return[y,x]},A=e.create(),c=e.create(),l=(p,m,_,f)=>{const I=e.subtract(A,m,p),C=e.subtract(c,_,m);return e.cross(I,I,C),e.dot(I,f)},u=p=>{let m;const _=[];for(;p.next;){const f=p.next;_.push(p.v1),p.v1=null,p.v2=null,p.next=null,p.prev=null,p=f}return _.length>0&&(m=n.create(_)),m},g=p=>{if(p.length<2)return p;const m=p[0].plane,_=p.slice(),f=new Map;for(;_.length>0;){const C=_.shift(),y=o(C);for(let x=0;x<y.length;x++){const E=y[x],B=s(f,E);if(B){const S=a(E,B,m);if(S[0]>=0&&S[1]>=0){const Q=B.next,w=E.next;E.prev.next=B.next,E.next.prev=B.prev,B.prev.next=E.next,B.next.prev=E.prev,E.v1=null,E.v2=null,E.next=null,E.prev=null,r(f,B),B.v1=null,B.v2=null,B.next=null,B.prev=null;const M=(k,R,F)=>{const O={v1:F.v1,v2:R.v2,next:R.next,prev:F.prev};F.prev.next=O,R.next.prev=O,r(k,R),R.v1=null,R.v2=null,R.next=null,R.prev=null,r(k,F),F.v1=null,F.v2=null,F.next=null,F.prev=null};S[0]===0&&M(f,Q,Q.prev),S[1]===0&&M(f,w,w.prev)}}else E.next&&i(f,E)}}const I=[];return f.forEach(C=>{const y=u(C);y&&I.push(y)}),f.clear(),I},h=(p,m)=>Math.abs(p[3]-m[3])<15e-8?t(p,m):!1;return bKe=(p,m)=>{const _=[];m.forEach(I=>{const C=_.find(y=>h(y[0],n.plane(I)));C?C[1].push(I):_.push([n.plane(I),[I]])});let f=[];return _.forEach(I=>{const C=I[1],y=g(C);f=f.concat(y)}),f},bKe}var SKe,Vnn;function rci(){if(Vnn)return SKe;Vnn=1;const t=pc(),e=jr(),n=qA(),o=a=>`${a}`,i=(a,A,c,l,u,g)=>{const h=o(l),d=o(u),p=`${h}/${d}`,m=`${d}/${h}`;if(a.has(m))return r(a,A,c,u,l,null),null;const _={vertex0:l,vertex1:u,polygonindex:g};return a.has(p)?a.get(p).push(_):a.set(p,[_]),A.has(h)?A.get(h).push(p):A.set(h,[p]),c.has(d)?c.get(d).push(p):c.set(d,[p]),p},r=(a,A,c,l,u,g)=>{const h=o(l),d=o(u),p=`${h}/${d}`;let m=-1;const _=a.get(p);for(let f=0;f<_.length;f++){const I=_[f];let C=o(I.vertex0);if(C===h&&(C=o(I.vertex1),C===d&&!(g!==null&&I.polygonindex!==g))){m=f;break}}_.splice(m,1),_.length===0&&a.delete(p),m=A.get(h).indexOf(p),A.get(h).splice(m,1),A.get(h).length===0&&A.delete(h),m=c.get(d).indexOf(p),c.get(d).splice(m,1),c.get(d).length===0&&c.delete(d)};return SKe=a=>{const A=new Map;for(let c=0;c<a.length;c++){const l=a[c],u=l.vertices.length;if(u>=3){let g=l.vertices[0],h=o(g);for(let d=0;d<u;d++){let p=d+1;p===u&&(p=0);const m=l.vertices[p],_=o(m),f=`${h}/${_}`,I=`${_}/${h}`;if(A.has(I)){const C=A.get(I);C.splice(-1,1),C.length===0&&A.delete(I)}else{const C={vertex0:g,vertex1:m,polygonindex:c};A.has(f)?A.get(f).push(C):A.set(f,[C])}g=m,h=_}}else console.warn("warning: invalid polygon found during insertTjunctions")}if(A.size>0){const c=new Map,l=new Map,u=new Map;for(const[h,d]of A)u.set(h,!0),d.forEach(p=>{const m=o(p.vertex0),_=o(p.vertex1);c.has(m)?c.get(m).push(h):c.set(m,[h]),l.has(_)?l.get(_).push(h):l.set(_,[h])});const g=a.slice(0);for(;A.size!==0;){for(const d of A.keys())u.set(d,!0);let h=!1;for(;;){const d=Array.from(u.keys());if(d.length===0)break;const p=d[0];let m=!0;if(A.has(p)){const f=A.get(p)[0];for(let I=0;I<2;I++){const C=I===0?f.vertex0:f.vertex1,y=I===0?f.vertex1:f.vertex0,x=o(C),E=o(y);let B=[];I===0?l.has(x)&&(B=l.get(x)):c.has(x)&&(B=c.get(x));for(let S=0;S<B.length;S++){const Q=B[S],w=A.get(Q)[0],M=I===0?w.vertex0:w.vertex1;if(I===0?w.vertex1:w.vertex0,o(M)===E){r(A,c,l,C,y,null),r(A,c,l,y,C,null),m=!1,I=2,h=!0;break}else{const R=C,F=y,O=M,U=e.subtract(e.create(),O,R),Y=e.dot(e.subtract(e.create(),F,R),U)/e.dot(U,U);if(Y>0&&Y<1){const W=e.scale(e.create(),U,Y);if(e.add(W,W,R),e.squaredDistance(W,F)<t.EPS*t.EPS){const j=w.polygonindex,J=g[j],oe=o(w.vertex1);let ie=-1;for(let ue=0;ue<J.vertices.length;ue++)if(o(J.vertices[ue])===oe){ie=ue;break}const ne=J.vertices.slice(0);ne.splice(ie,0,y);const le=n.create(ne);g[j]=le,r(A,c,l,w.vertex0,w.vertex1,j);const ge=i(A,c,l,w.vertex0,y,j),_e=i(A,c,l,y,w.vertex1,j);ge!==null&&u.set(ge,!0),_e!==null&&u.set(_e,!0),m=!1,I=2,h=!0;break}}}}}}m&&u.delete(p)}if(!h)break}a=g}return A.clear(),a},SKe}var QKe,znn;function sci(){if(znn)return QKe;znn=1;const t=jr(),e=qA(),n=(i,r,s)=>{const a=r.vertices.length;if(a>3){if(a>4){const l=[0,0,0];r.vertices.forEach(u=>t.add(l,l,u)),t.snap(l,t.divide(l,l,[a,a,a]),i);for(let u=0;u<a;u++){const g=e.create([l,r.vertices[u],r.vertices[(u+1)%a]]);r.color&&(g.color=r.color),s.push(g)}return}const A=e.create([r.vertices[0],r.vertices[1],r.vertices[2]]),c=e.create([r.vertices[0],r.vertices[2],r.vertices[3]]);r.color&&(A.color=r.color,c.color=r.color),s.push(A,c);return}s.push(r)};return QKe=(i,r)=>{const s=[];return r.forEach(a=>{n(i,a,s)}),s},QKe}var vKe,Jnn;function aci(){if(Jnn)return vKe;Jnn=1;const t=la(),e=rP(),n=Ga(),o=Ra(),i=au(),r=Unn(),s=ici(),a=rci(),A=sci(),c=(h,d)=>d,l=(h,d)=>d,u=(h,d)=>{const p={snap:!1,simplify:!1,triangulate:!1},{snap:m,simplify:_,triangulate:f}=Object.assign({},p,h),I=e(d);let C=o.toPolygons(d);m&&(C=r(I,C)),_&&(C=s(I,C)),f&&(C=a(C),C=A(I,C));const y=Object.assign({},d);return y.polygons=C,y};return vKe=(h,...d)=>{if(d=t(d),d.length===0)throw new Error("wrong number of arguments");const p=d.map(m=>{if(i.isA(m))return c(h,m);if(n.isA(m))return l(h,m);if(o.isA(m))return u(h,m);throw new Error("invalid geometry")});return p.length===1?p[0]:p},vKe}var wKe,Wnn;function Aci(){if(Wnn)return wKe;Wnn=1;const t=la(),e=mA(),n=Ga(),o=Ra(),i=au(),r=rP(),s=Unn(),a=u=>{const g=r(u),d=i.toPoints(u).map(p=>e.snap(e.create(),p,g));return i.create(d)},A=u=>{const g=r(u);let d=n.toSides(u).map(p=>[e.snap(e.create(),p[0],g),e.snap(e.create(),p[1],g)]);return d=d.filter(p=>!e.equals(p[0],p[1])),n.create(d)},c=u=>{const g=r(u),h=o.toPolygons(u),d=s(g,h);return o.create(d)};return wKe=(...u)=>{if(u=t(u),u.length===0)throw new Error("wrong number of arguments");const g=u.map(h=>i.isA(h)?a(h):n.isA(h)?A(h):o.isA(h)?c(h):h);return g.length===1?g[0]:g},wKe}var PKe,jnn;function cci(){return jnn||(jnn=1,PKe={generalize:aci(),snap:Aci(),retessellate:IX()}),PKe}var MKe,$nn;function lci(){return $nn||($nn=1,MKe=(e,n,o)=>{for(e=e.slice();e.length<o;)e.push(n);return e}),MKe}var DKe,qnn;function uci(){if(qnn)return DKe;qnn=1;const t=la(),e=lci(),n=GGe(),{translate:o}=nT(),i=A=>{if(!Array.isArray(A.modes)||A.modes.length>3)throw new Error("align(): modes must be an array of length <= 3");if(A.modes=e(A.modes,"none",3),A.modes.filter(c=>["center","max","min","none"].includes(c)).length!==3)throw new Error('align(): all modes must be one of "center", "max" or "min"');if(!Array.isArray(A.relativeTo)||A.relativeTo.length>3)throw new Error("align(): relativeTo must be an array of length <= 3");if(A.relativeTo=e(A.relativeTo,0,3),A.relativeTo.filter(c=>Number.isFinite(c)||c==null).length!==3)throw new Error("align(): all relativeTo values must be a number, or null.");if(typeof A.grouped!="boolean")throw new Error("align(): grouped must be a boolean value.");return A},r=(A,c,l)=>{for(let u=0;u<3;u++)A[u]==null&&(c[u]==="center"?A[u]=(l[0][u]+l[1][u])/2:c[u]==="max"?A[u]=l[1][u]:c[u]==="min"&&(A[u]=l[0][u]));return A},s=(A,c,l)=>{const u=n(A),g=[0,0,0];for(let h=0;h<3;h++)c[h]==="center"?g[h]=l[h]-(u[0][h]+u[1][h])/2:c[h]==="max"?g[h]=l[h]-u[1][h]:c[h]==="min"&&(g[h]=l[h]-u[0][h]);return o(g,A)};return DKe=(A,...c)=>{A=Object.assign({},{modes:["center","center","min"],relativeTo:[0,0,0],grouped:!1},A),A=i(A);let{modes:u,relativeTo:g,grouped:h}=A;if(c=t(c),c.length===0)throw new Error("align(): No geometries were provided to act upon");if(g.filter(d=>d==null).length){const d=n(c);g=r(g,u,d)}return h?c=s(c,u,g):c=c.map(d=>s(d,u,g)),c.length===1?c[0]:c},DKe}var NKe,Xnn;function Rhe(){if(Xnn)return NKe;Xnn=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=eT(),{translate:r}=nT(),s=(u,g)=>{const h={axes:[!0,!0,!0],relativeTo:[0,0,0]},{axes:d,relativeTo:p}=Object.assign({},h,u),m=i(g),_=[0,0,0];return d[0]&&(_[0]=p[0]-(m[0][0]+(m[1][0]-m[0][0])/2)),d[1]&&(_[1]=p[1]-(m[0][1]+(m[1][1]-m[0][1])/2)),d[2]&&(_[2]=p[2]-(m[0][2]+(m[1][2]-m[0][2])/2)),r(_,g)},a=(u,...g)=>{const h={axes:[!0,!0,!0],relativeTo:[0,0,0]},{axes:d,relativeTo:p}=Object.assign({},h,u);if(g=t(g),g.length===0)throw new Error("wrong number of arguments");if(p.length!==3)throw new Error("relativeTo must be an array of length 3");u={axes:d,relativeTo:p};const m=g.map(_=>o.isA(_)||e.isA(_)||n.isA(_)?s(u,_):_);return m.length===1?m[0]:m};return NKe={center:a,centerX:(...u)=>a({axes:[!0,!1,!1]},u),centerY:(...u)=>a({axes:[!1,!0,!1]},u),centerZ:(...u)=>a({axes:[!1,!1,!0]},u)},NKe}var RKe,Znn;function The(){if(Znn)return RKe;Znn=1;const t=la(),e=Mu(),n=Ga(),o=Ra(),i=au(),r=(c,...l)=>{if(!Array.isArray(c))throw new Error("factors must be an array");if(l=t(l),l.length===0)throw new Error("wrong number of arguments");for(c=c.slice();c.length<3;)c.push(1);if(c[0]<=0||c[1]<=0||c[2]<=0)throw new Error("factors must be positive");const u=e.fromScaling(e.create(),c),g=l.map(h=>i.isA(h)?i.transform(u,h):n.isA(h)?n.transform(u,h):o.isA(h)?o.transform(u,h):h);return g.length===1?g[0]:g};return RKe={scale:r,scaleX:(c,...l)=>r([c,1,1],l),scaleY:(c,...l)=>r([1,c,1],l),scaleZ:(c,...l)=>r([1,1,c],l)},RKe}var TKe,eon;function gci(){if(eon)return TKe;eon=1;const t=la(),e=Ga(),n=Ra(),o=au();return TKe=(r,...s)=>{if(s=t(s),s.length===0)throw new Error("wrong number of arguments");const a=s.map(A=>o.isA(A)?o.transform(r,A):e.isA(A)?e.transform(r,A):n.isA(A)?n.transform(r,A):A);return a.length===1?a[0]:a},TKe}var kKe,ton;function dci(){return ton||(ton=1,kKe={align:uci(),center:Rhe().center,centerX:Rhe().centerX,centerY:Rhe().centerY,centerZ:Rhe().centerZ,mirror:mX().mirror,mirrorX:mX().mirrorX,mirrorY:mX().mirrorY,mirrorZ:mX().mirrorZ,rotate:_X().rotate,rotateX:_X().rotateX,rotateY:_X().rotateY,rotateZ:_X().rotateZ,scale:The().scale,scaleX:The().scaleX,scaleY:The().scaleY,scaleZ:The().scaleZ,transform:gci(),translate:nT().translate,translateX:nT().translateX,translateY:nT().translateY,translateZ:nT().translateZ}),kKe}var FKe,non;function LKe(){return non||(non=1,FKe={colors:$si(),curves:nai(),geometries:WOe(),maths:Qai(),measurements:Tai(),primitives:uAi(),text:hAi(),utils:Mtn(),booleans:RAi(),expansions:UAi(),extrusions:qAi(),hulls:nci(),minkowski:oci(),modifiers:cci(),transforms:dci()}),FKe}var HKe,oon;function hci(){if(oon)return HKe;oon=1;const t=e=>e.reduce((n,o)=>Array.isArray(o)?n.concat(t(o)):n.concat(o),[]);return HKe=t,HKe}var OKe,ion;function pci(){return ion||(ion=1,OKe=(e,n)=>e-n),OKe}var GKe,ron;function mci(){return ron||(ron=1,GKe=e=>{if(!(!Array.isArray(e)||e.length===0))return e[0]}),GKe}var YKe,son;function _ci(){return son||(son=1,YKe=(e,n,o)=>{let i=0,r=e.length;for(;r>i;){const s=Math.floor((i+r)/2),a=e[s];o(n,a)>0?i=s+1:r=s}return e.splice(i,0,n),e}),YKe}var UKe,aon;function fci(){return aon||(aon=1,UKe=(e,n)=>{if(!(!Array.isArray(e)||e.length<n))return e[n]}),UKe}var KKe,Aon;function Ici(){return Aon||(Aon=1,KKe=(e,n,o)=>{for(e=e.slice();e.length<o;)e.push(n);return e}),KKe}var VKe,con;function Cci(){return con||(con=1,VKe=e=>Array.isArray(e)?e:e==null?[]:[e]),VKe}var zKe,lon;function yci(){return lon||(lon=1,zKe={flatten:hci(),fnNumberSort:pci(),head:mci(),insertSorted:_ci(),nth:fci(),padToLength:Ici(),toArray:Cci()}),zKe}var JKe,uon;function xci(){if(uon)return JKe;uon=1;const{geometries:t}=LKe();return JKe={serializeBinary:(n,o)=>{o.statusCallback&&o.statusCallback({progress:0});const i=new ArrayBuffer(4),r=new Int32Array(i,0,1),s=new Int8Array(i,0,4);if(r[0]=287454020,s[0]!==68)throw new Error("Binary STL output is currently only supported on little-endian (Intel) processors");let a=0,A=0;n.forEach((f,I)=>{t.geom3.toPolygons(f).forEach(y=>{const x=y.vertices.length,E=x>=3?x-2:0;a+=E,A+=1})});const c=new Uint8Array(80);for(let f=0;f<80;f++)c[f]=65;const l=new Uint32Array(1);l[0]=a;const u=new ArrayBuffer(50*a),g=new Int8Array(u),h=new ArrayBuffer(50),d=new Int8Array(h),p=new Float32Array(h,0,12),m=new Uint16Array(h,48,1);let _=0;return n.forEach(f=>{t.geom3.toPolygons(f).forEach((C,y)=>{const x=C.vertices,E=x.length,B=t.poly3.plane(C);for(let S=0;S<E-2;S++){p[0]=B[0],p[1]=B[1],p[2]=B[2];let Q=3;for(let w=0;w<3;w++){const M=w+(w>0?S:0),k=x[M];p[Q++]=k[0],p[Q++]=k[1],p[Q++]=k[2]}m[0]=0,g.set(d,_),_+=50}o.statusCallback&&o.statusCallback({progress:100*y/A})})}),o.statusCallback&&o.statusCallback({progress:100}),[c.buffer,l.buffer,u]}},JKe}var WKe,gon;function Eci(){if(gon)return WKe;gon=1;const{geometries:t}=LKe(),e=(a,A)=>{A.statusCallback&&A.statusCallback({progress:0});const c=`solid JSCAD
${n(a,A)}
endsolid JSCAD
`;return A.statusCallback&&A.statusCallback({progress:100}),[c]},n=(a,A)=>{const c=[];return a.forEach((l,u)=>{c.push(o(l)),A.statusCallback&&A.statusCallback({progress:100*u/a.length})}),c.join(`
`)},o=(a,A)=>{const c=[];return t.geom3.toPolygons(a).forEach((u,g)=>{c.push(s(u))}),c.join(`
`)},i=a=>`${a[0]} ${a[1]} ${a[2]}`,r=a=>`vertex ${i(a)}`,s=a=>{const A=[];if(a.vertices.length>=3){const c=r(a.vertices[0]);for(let l=0;l<a.vertices.length-2;l++){const u=`facet normal ${i(t.poly3.plane(a))}
outer loop
${c}
${r(a.vertices[l+1])}
${r(a.vertices[l+2])}
endloop
endfacet`;A.push(u)}}return A.join(`
`)};return WKe={serializeText:e},WKe}var jKe,don;function Bci(){if(don)return jKe;don=1;const{geometries:t,modifiers:e}=LKe(),{flatten:n,toArray:o}=yci(),{serializeBinary:i}=xci(),{serializeText:r}=Eci();return jKe={mimeType:"application/sla",serialize:(A,...c)=>{A=Object.assign({},{binary:!0,statusCallback:null},A),c=n(c);let u=c.filter(g=>t.geom3.isA(g));if(u.length===0)throw new Error("only 3D geometries can be serialized to STL");return c.length!==u.length&&console.warn("some objects could not be serialized to STL"),u=o(e.generalize({snap:!0,triangulate:!0},u)),A.binary?i(u,A):r(u,A)}},jKe}var bci=Bci();const Sci=_y(bci);var Qci={0:[[{x:.019944796633211075,y:.35828068632415006},{x:.020222641007547733,y:.3550960892473839},{x:.020327535068617307,y:.3519011161217302},{x:.02060526835904108,y:.3507104904820116},{x:.02071153113201321,y:.34949252766745387},{x:.047065531132013214,y:.20882352766745393},{x:.047989939967683706,y:.20564918300405605},{x:.04875673163473768,y:.20243312543665407},{x:.04922094308839032,y:.20142201853303832},{x:.04953201774467938,y:.20035381349539033},{x:.05105794824635218,y:.1974208061920286},{x:.05243742793298141,y:.1944161379022362},{x:.1205174279329814,y:.07784313790223615},{x:.1216536619223176,y:.07627409360623287},{x:.12261018498510404,y:.07458945972562232},{x:.1242345189777056,y:.07271014544101197},{x:.12569143736362237,y:.07069826276137084},{x:.12711194429242206,y:.06938103546641537},{x:.12837874379901673,y:.06791537974577894},{x:.130338502698373,y:.06638906779986004},{x:.132159925645859,y:.06470007355882942},{x:.13381011622947792,y:.06368528357115737},{x:.13533850978527173,y:.062494930337889824},{x:.2330665097852717,y:.000743930337889824},{x:.2364974226485404,y:-.000978818921256936},{x:.23988324554357096,y:-.0027885789630079164},{x:.24043487144166406,y:-.0029559128497863825},{x:.24095002304009888,y:-.0032145836671228292},{x:.2446511035824589,y:-.0042348928870151745},{x:.24832493550927423,y:-.005349337618145378},{x:.24889860729226898,y:-.005405839357118937},{x:.2494543245702404,y:-.005559038796006631},{x:.2532833423420387,y:-.0058376980655201055},{x:.257104,y:-.006214000000000011},{x:.344948,y:-.006214000000000011},{x:.34876845169289644,y:-.005837718351308385},{x:.352597265623821,y:-.005559109487024962},{x:.35315318526669126,y:-.00540585978827806},{x:.3537270644907258,y:-.005349337618145378},{x:.3574006983675983,y:-.004234952964808514},{x:.36110158881940224,y:-.0032147329490055873},{x:.36161692908913895,y:-.0029559733581057666},{x:.36216875445642904,y:-.0027885789630079164},{x:.36555439482758706,y:-.000978916482299381},{x:.3689851386556908,y:.0007437082019616584},{x:.4667151386556908,y:.06249470820196166},{x:.46824382031514195,y:.0636852631221029},{x:.4698943035897058,y:.06470024765114774},{x:.4717154585013725,y:.06638901501054441},{x:.47367495473362387,y:.0679150932923645},{x:.4749419974608878,y:.0693810030307532},{x:.47636275350351887,y:.0706984782301942},{x:.4778194532662604,y:.07271008609647399},{x:.47944357522443626,y:.07458911996296573},{x:.4804002872780698,y:.07627405043044727},{x:.48153671723081914,y:.07784338646721853},{x:.5496157172308191,y:.19441638646721857},{x:.5509951179002539,y:.19742093333312605},{x:.5525209822553206,y:.20035381349539033},{x:.5528320971760705,y:.20142215679791795},{x:.5532963622471587,y:.2024333975455826},{x:.5540631001039363,y:.20564932060673602},{x:.5549874688679868,y:.20882352766745393},{x:.5813414688679868,y:.34949252766745387},{x:.5814477200321959,y:.3507103574246747},{x:.581725430046729,y:.351900851345405},{x:.5818303474337426,y:.35509595676374855},{x:.5821082033667889,y:.35828068632415006},{x:.5819748261451739,y:.3594958443979094},{x:.5820149461972951,y:.36071764184793353},{x:.5710349461972951,y:.5284976418479336},{x:.5705756858728281,y:.5312810757499365},{x:.5703149436633981,y:.5340900680661724},{x:.5698592272920282,y:.5356233082419208},{x:.5695988288779222,y:.5372015019922555},{x:.5686053720955593,y:.5398418557477263},{x:.5678016327590553,y:.5425460057826548},{x:.5216826327590552,y:.6556800057826547},{x:.5211943471023096,y:.656605995281004},{x:.5208498728309648,y:.6575945381025444},{x:.5191405880551111,y:.6605007631972294},{x:.5175679428069421,y:.6634831423933323},{x:.5169083878327574,y:.664296079457111},{x:.5163776774005638,y:.665198424109003},{x:.5141342596628157,y:.6677153419860701},{x:.5120099990343735,y:.6703336077343061},{x:.511204521070525,y:.6710022516480534},{x:.510507969381766,y:.6717837215313657},{x:.425955969381766,y:.7497057215313657},{x:.4243831978740034,y:.750892537075826},{x:.42294870744900304,y:.7522432326643229},{x:.4208707687817478,y:.7535430209032156},{x:.4189143183619635,y:.7550193610827685},{x:.4171402309909699,y:.7558765397994217},{x:.4154697962599445,y:.7569214269519826},{x:.41317820849544135,y:.7577908544006052},{x:.41097133104084405,y:.7588571425751742},{x:.40906410498936707,y:.7593517435666508},{x:.4072219198222394,y:.7600506678559823},{x:.3127869198222394,y:.7856226678559822},{x:.3097655669518694,y:.7861297177594856},{x:.3067801557646532,y:.7868174624905968},{x:.3054245519856559,y:.7868582361795984},{x:.30408703940192616,y:.7870827004032797},{x:.3010248204508113,y:.7869905707806608},{x:.2979626007613803,y:.7870826758597451},{x:.29662508997676323,y:.7868582009159747},{x:.29526948652460844,y:.786817416361878},{x:.2922840808497275,y:.7861296477028675},{x:.28926273204343433,y:.7856225735833884},{x:.19483073204343437,y:.7600505735833885},{x:.19298859701529922,y:.7593516514268194},{x:.1910814199885863,y:.7588570511522524},{x:.1888745059729717,y:.757790729268721},{x:.18658288068670334,y:.7569212665731724},{x:.18491249471518256,y:.7558763912940257},{x:.18313845528709377,y:.7550192228447639},{x:.18118197558509466,y:.7535428424712565},{x:.17910400699337814,y:.7522430123425641},{x:.17766956207459372,y:.7508923379118444},{x:.17609683558545802,y:.7497055417906873},{x:.09154583558545802,y:.6717835417906872},{x:.09084937681091164,y:.6710021668773223},{x:.09004400096562647,y:.6703336077343061},{x:.087919657143162,y:.6677152394449524},{x:.08567616637982708,y:.6651982097729843},{x:.0851455285488078,y:.6642959763928821},{x:.08448605719305789,y:.6634831423933323},{x:.08291335035419628,y:.6605006463960624},{x:.08120401576602496,y:.6575942974079984},{x:.08085959099279398,y:.6566058778839782},{x:.08037136724094471,y:.6556800057826547},{x:.03425236724094472,y:.5425460057826548},{x:.03344866581310472,y:.5398419832899659},{x:.03245524021837327,y:.537201759963462},{x:.0321948107181119,y:.5356234361255728},{x:.03173905633660196,y:.5340900680661724},{x:.03147832642517492,y:.5312812082371015},{x:.031019071243648687,y:.5284979083423142},{x:.020038071243648682,y:.36071790834231426},{x:.020078188427320915,y:.3594959771633442},{x:.019944796633211075,y:.35828068632415006}],[{x:.11021604810185967,y:.3604951889884744},{x:.12035004420691338,y:.5153337161267963},{x:.1599220965290545,y:.612407472440097},{x:.22898846858521874,y:.6760588762479813},{x:.301025186831377,y:.6955662779655215},{x:.373064807645506,y:.6760587099720985},{x:.44213195602343713,y:.6124073435241713},{x:.48170390405887986,y:.5153338430353971},{x:.49183697687726113,y:.3604953223188204},{x:.4679633532090146,y:.23306575687188358},{x:.4093572783633461,y:.13271343144136735},{x:.3319224534250481,y:.08378599999999999},{x:.27012977192577264,y:.08378599999999999},{x:.19269670382412518,y:.13271332265415062},{x:.13408961949133952,y:.23306590258843124},{x:.11021604810185967,y:.3604951889884744}]],1:[[{x:.17556757075794932,y:.5951166967821685},{x:.17573368487361973,y:.586296718297643},{x:.17761729959585784,y:.5776786204828649},{x:.18114602866723137,y:.5695935920037709},{x:.1861842650084615,y:.5623523359706766},{x:.19253839202243023,y:.5562331297919906},{x:.19996422417142623,y:.5514711311294693},{x:.20817639089041826,y:.548249340921154},{x:.21685930321783156,y:.5466915707579493},{x:.225679281702357,y:.5468576848736197},{x:.2342973795171352,y:.5487412995958578},{x:.24238240799622912,y:.5522700286672314},{x:.24962366402932343,y:.5573082650084615},{x:.33662600000000004,y:.6314944876419193},{x:.33662600000000004,y:.051034000000000024},{x:.33749066238185466,y:.042254935509274234},{x:.3400514210369921,y:.033813245543570986},{x:.3442098674463855,y:.026033339514117928},{x:.34980619484660536,y:.019214194846605387},{x:.35662533951411796,y:.013617867446385483},{x:.364405245543571,y:.00945942103699212},{x:.3728469355092743,y:.006898662381854659},{x:.381626,y:.0060340000000000255},{x:.3904050644907258,y:.006898662381854659},{x:.3988467544564291,y:.00945942103699212},{x:.40662666048588214,y:.01361786744638549},{x:.4134458051533947,y:.019214194846605387},{x:.41904213255361455,y:.026033339514117928},{x:.42320057896300795,y:.033813245543570986},{x:.4257613376181454,y:.042254935509274255},{x:.426626,y:.051034000000000024},{x:.426626,y:.729004},{x:.42636789988195944,y:.7316245344755278},{x:.4263183151263803,y:.7342572817023569},{x:.42593657376816557,y:.7360038620015019},{x:.4257613376181454,y:.7377830644907257},{x:.42499695590681574,y:.7403028932959718},{x:.4244347004041422,y:.7428753795171351},{x:.42371955318609683,y:.744513925721078},{x:.42320057896300795,y:.746224754456429},{x:.4219592904188853,y:.7485470419835442},{x:.42090597133276864,y:.7509604079962291},{x:.419884900961423,y:.7524279516932593},{x:.41904213255361455,y:.7540046604858821},{x:.41737163919932724,y:.7560401625275525},{x:.41586773499153856,y:.7582016640293234},{x:.4145799806286405,y:.7594418083381722},{x:.4134458051533947,y:.7608238051533946},{x:.41141030311172405,y:.7624942985076821},{x:.4095136079775698,y:.7643208702080094},{x:.40800865730110464,y:.7652859570783687},{x:.40662666048588214,y:.7664201325536145},{x:.40430437295876726,y:.767661421097737},{x:.4020877758285738,y:.7690828688705307},{x:.4004234632490515,y:.7697358105551997},{x:.3988467544564291,y:.7705785789630079},{x:.39632692565118355,y:.7713429606743374},{x:.3938756091095818,y:.772304659078846},{x:.39211589322607654,y:.7726203633950566},{x:.3904050644907258,y:.7731393376181454},{x:.3877845300151986,y:.7733974377361859},{x:.3851926967821685,y:.7738624292420507},{x:.38340520248922366,y:.7738287638499798},{x:.381626,y:.774004},{x:.37900546552447173,y:.7737458998819594},{x:.376372718297643,y:.7736963151263803},{x:.37462613799849803,y:.7733145737681656},{x:.3728469355092743,y:.7731393376181454},{x:.3703271067040287,y:.7723749559068158},{x:.36775462048286484,y:.7718127004041422},{x:.3661160742789217,y:.7710975531860966},{x:.364405245543571,y:.7705785789630079},{x:.3620829580164563,y:.7693372904188854},{x:.3596695920037709,y:.7682839713327686},{x:.35820204830674063,y:.7672629009614229},{x:.35662533951411796,y:.7664201325536145},{x:.3545898374724472,y:.7647496391993269},{x:.35242833597067663,y:.7632457349915385},{x:.1912283359706766,y:.6257917349915385},{x:.18510912979199054,y:.6194376079775697},{x:.18034713112946932,y:.6120117758285738},{x:.17712534092115398,y:.6037996091095817},{x:.17556757075794932,y:.5951166967821685}]],2:[[{x:.034589999999999996,y:.05195499999999997},{x:.034692251306008066,y:.05091682506774448},{x:.03463809526377374,y:.04987503351343359},{x:.03512383076438082,y:.04653492529109402},{x:.03545466238185463,y:.043175935509274184},{x:.03575748683953214,y:.042177657057450094},{x:.03590761484026801,y:.04114531791601493},{x:.0370356398580977,y:.03796415123181852},{x:.03801542103699209,y:.034734245543570935},{x:.03850718127225641,y:.0338142268532408},{x:.03885582398108696,y:.03283101233894428},{x:.040582789147307716,y:.02993103764454602},{x:.04217386744638545,y:.02695433951411788},{x:.04283566538917773,y:.026147936387598623},{x:.04336942466232366,y:.025251630882832152},{x:.04562896367409083,y:.022744292579413156},{x:.04777019484660536,y:.020135194846605337},{x:.04857659797312457,y:.019473396903813094},{x:.04927496174105457,y:.01869844492647086},{x:.0519802417813102,y:.01668009861889986},{x:.05458933951411791,y:.014538867446385433},{x:.055509358204447995,y:.01404710721112114},{x:.05634548873920743,y:.013423289731094336},{x:.05939254741314285,y:.011971499336069797},{x:.062369245543570956,y:.01038042103699207},{x:.0633675239953951,y:.010077596579314544},{x:.06430928926944049,y:.00962888655251979},{x:.06758102982102647,y:.008799443560749052},{x:.07081093550927423,y:.007819662381854608},{x:.0718491104415297,y:.007717411075846537},{x:.07286031894352762,y:.007461052176974015},{x:.07623101021818018,y:.0072858316174737835},{x:.07959,y:.006954999999999975},{x:.522462,y:.006954999999999975},{x:.5312410644907257,y:.007819662381854608},{x:.539682754456429,y:.01038042103699207},{x:.5474626604858821,y:.014538867446385433},{x:.5542818051533946,y:.020135194846605337},{x:.5598781325536145,y:.02695433951411788},{x:.5640365789630079,y:.034734245543570935},{x:.5665973376181453,y:.043175935509274205},{x:.567462,y:.05195499999999997},{x:.5665973376181453,y:.06073406449072574},{x:.5640365789630079,y:.06917575445642901},{x:.5598781325536145,y:.07695566048588207},{x:.5542818051533946,y:.08377480515339461},{x:.5474626604858821,y:.08937113255361451},{x:.539682754456429,y:.09352957896300787},{x:.5312410644907257,y:.09609033761814534},{x:.522462,y:.09695499999999997},{x:.1815000359059797,y:.09695499999999997},{x:.2783905550735291,y:.2032469617410546},{x:.2792807818102756,y:.20444017254595384},{x:.28031851181367967,y:.20550758629318672},{x:.43775551181367967,y:.4029575862931866},{x:.4393581707982963,y:.4054309283363016},{x:.4411189018513206,y:.4077943501865292},{x:.5036359018513206,y:.5115903501865292},{x:.5044316302389797,y:.5132634494776924},{x:.5054127007337849,y:.5148350555317778},{x:.5063216043693862,y:.5172373109446714},{x:.5074247535047713,y:.5195567934026113},{x:.5078787867151084,y:.5213529834674229},{x:.5085344010842773,y:.5230857889106145},{x:.5229384010842772,y:.5764717889106146},{x:.5230947969602031,y:.5774089507908463},{x:.5233933154704733,y:.5783109589719573},{x:.5238196553887738,y:.5817524776504878},{x:.5243904806061233,y:.5851730002877248},{x:.5243610401661515,y:.586122666187007},{x:.5244778496604383,y:.5870655806061408},{x:.5252778496604383,y:.6189585806061408},{x:.525154398698275,y:.6206444560860672},{x:.5252359209411441,y:.6223328785443973},{x:.5248330095087286,y:.6250334227224941},{x:.5246336028763079,y:.6277565667648055},{x:.5241836259995084,y:.6293859645321488},{x:.5239341869342451,y:.6310578486269935},{x:.5118811869342451,y:.6790048486269935},{x:.5115474759395316,y:.6799350391147754},{x:.5113589931552627,y:.6809051378786065},{x:.5100605296725933,y:.6840797730170447},{x:.5089023081582834,y:.6873082151493771},{x:.5083935381649621,y:.6881554285023456},{x:.5080194201443183,y:.6890701159233712},{x:.5061265656819337,y:.6919304336788418},{x:.5043607612540449,y:.6948708843926746},{x:.5036964840076373,y:.6956025626767983},{x:.5031511078963445,y:.6964266878303904},{x:.4695951078963445,y:.7376876878303904},{x:.46829294792790443,y:.7390014838193654},{x:.46714904955699066,y:.7404551608815331},{x:.46519525859727806,y:.7421268539092958},{x:.4633851429208498,y:.7439531446668906},{x:.4618516947085211,y:.7449876576267703},{x:.4604461776978856,y:.7461902391902692},{x:.4582037971525157,y:.7474486453977692},{x:.45607217068925404,y:.7488867084403534},{x:.4543663637878686,y:.7496021826182516},{x:.45275324136800726,y:.7505074541480116},{x:.3913892413680073,y:.7774134541480116},{x:.3883140702117422,y:.7784156528007931},{x:.3852957573995619,y:.7795779210778271},{x:.3841283231887951,y:.779779788263216},{x:.3830018757962646,y:.7801468976050565},{x:.3797902739335826,y:.7805299031606142},{x:.3766032098633093,y:.781080995160135},{x:.2948022098633093,y:.7870669951601349},{x:.29450281220893076,y:.7870594704966325},{x:.2942070489499988,y:.7871065838776864},{x:.29009611613079095,y:.7869487184427649},{x:.2859834519838158,y:.7868453561974301},{x:.28569127516043946,y:.7867795665334233},{x:.28539200354491423,y:.7867680740946454},{x:.2381110035449142,y:.7802710740946455},{x:.2365476307297285,y:.7798972084805876},{x:.2349498387179436,y:.7797212234138579},{x:.23226739693423346,y:.7788736316211718},{x:.2295313767481002,y:.7782193386355017},{x:.22807098126622102,y:.7775476578384392},{x:.22653822336325463,y:.7770633405173258},{x:.15287222336325462,y:.7455503405173259},{x:.15277120515837472,y:.7454948388638573},{x:.15266147866932564,y:.7454595513468599},{x:.14890641990559073,y:.7433714396994592},{x:.14514076206912752,y:.7413025033471496},{x:.1450525127361761,y:.7412283604682699},{x:.14495177886390068,y:.7411723444149347},{x:.14167624287507044,y:.7383917796239132},{x:.1383865705572421,y:.7356279539035645},{x:.138314481468594,y:.7355380190685297},{x:.13822661135931125,y:.7354634271443719},{x:.09327661135931127,y:.6889934271443718},{x:.09215967204365061,y:.6875853345117547},{x:.09088652507606766,y:.6863167230283468},{x:.0894249598835053,y:.6841377631074377},{x:.0877944205712414,y:.6820821900242812},{x:.08697364817646357,y:.6804832494460014},{x:.08597245819367963,y:.6789906353246448},{x:.0849640705590952,y:.6765684062835642},{x:.08376588401722862,y:.6742342280213215},{x:.08327282036617045,y:.6725058858871059},{x:.08258206253775009,y:.6708466294514168},{x:.06737006253775008,y:.6210196294514168},{x:.06563362911198059,y:.61237067498716},{x:.06561788807912042,y:.6035491464015462},{x:.0673234443582347,y:.5948940500909503},{x:.07068475437800403,y:.5867379965527546},{x:.07557264487941309,y:.5793944183504645},{x:.08179927697165325,y:.5731455250760676},{x:.08912536467535526,y:.5682314581936796},{x:.09726937054858317,y:.56484106253775},{x:.10591832501283995,y:.5631046291119806},{x:.11473985359845373,y:.5630888880791204},{x:.12339494990904962,y:.5647944443582347},{x:.13155100344724535,y:.568155754378004},{x:.13889458164953555,y:.5730436448794131},{x:.14514347492393234,y:.5792702769716532},{x:.15005754180632036,y:.5865963646753553},{x:.1534479374622499,y:.5947403705485832},{x:.16549687462406137,y:.6342067386764809},{x:.19660916323298405,y:.666371100226128},{x:.2563653288901179,y:.6919337213587163},{x:.29295461470925055,y:.696961546277117},{x:.3623268316838737,y:.6918850546595318},{x:.40664087103378327,y:.672454875030618},{x:.4270299373286165,y:.6473841495451277},{x:.4351521014718352,y:.6150740687208592},{x:.4346413299816387,y:.5947115247998124},{x:.4232850296720603,y:.5526213103922067},{x:.3655461500158852,y:.45675834907300783},{x:.21087613207581168,y:.2627785664153893},{x:.04633344492647088,y:.0822700382589454},{x:.04431509861889995,y:.07956475821868986},{x:.04217386744638545,y:.07695566048588207},{x:.04168210721112112,y:.0760356417955519},{x:.04105828973109435,y:.07519951126079251},{x:.03960649933606985,y:.07215245258685718},{x:.03801542103699209,y:.06917575445642901},{x:.037712596579314576,y:.0681774760046049},{x:.037263886552519804,y:.06723571073055948},{x:.036434443560749034,y:.06396397017897336},{x:.03545466238185463,y:.06073406449072574},{x:.03535241107584656,y:.059695889558470286},{x:.035096052176974035,y:.05868468105647236},{x:.03492083161747381,y:.05531398978181981},{x:.034589999999999996,y:.05195499999999997}]],3:[[{x:.02624429558875499,y:.07454886751538828},{x:.02628189246403191,y:.06572740500388341},{x:.028039748887915363,y:.057082779207475086},{x:.03145031142385274,y:.04894719824755728},{x:.036382514066253493,y:.04163330793793327},{x:.042646815033581253,y:.035422176981524986},{x:.05000248075272204,y:.030552495657744837},{x:.05816683711519421,y:.027211403088916904},{x:.11448783711519421,y:.010388403088916982},{x:.11753114712885143,y:.009796523380387901},{x:.12053464064709668,y:.009027703431080128},{x:.20267064064709667,y:-.0035892965689199724},{x:.20562630159751,y:-.003749783589053152},{x:.20856537842676282,y:-.004101230781641964},{x:.30947437842676284,y:-.00620423078164193},{x:.31075400531193675,y:-.006105070212514369},{x:.31203499449415534,y:-.0061847225744922005},{x:.3151428517207607,y:-.005764970678224511},{x:.3182695531731509,y:-.005522677007230838},{x:.31950524711917533,y:-.005175778959545043},{x:.3207771618583987,y:-.005003992231664048},{x:.3829651618583987,y:.009716007768336019},{x:.3849642059743718,y:.010402067561162992},{x:.38702295869345676,y:.010879972006216251},{x:.389126076828856,y:.011830396347599064},{x:.3913090018652735,y:.012579562954916447},{x:.3931357912831918,y:.013642434461507345},{x:.39506175111398195,y:.014512798837572657},{x:.47719975111398194,y:.06182779883757265},{x:.47924722409526294,y:.06329195880211928},{x:.48141099047099317,y:.06457804786673271},{x:.4828265323572166,y:.06585154318044145},{x:.484375351035892,y:.06695911252196202},{x:.4860978389589892,y:.06879458122658251},{x:.48796912564078,y:.07047808832945178},{x:.54077112564078,y:.12830608832945176},{x:.5409949120745448,y:.12860551518367325},{x:.5412686389329152,y:.1288600940829806},{x:.5436334835107667,y:.13213593090859313},{x:.5460522072884215,y:.13537218987116906},{x:.5462132784472015,y:.1357095218897727},{x:.546432079841298,y:.13601261058785885},{x:.5481124005325159,y:.13968686141763526},{x:.5498532864078638,y:.14333280617235186},{x:.5499454524173568,y:.14369507987504085},{x:.5501009199323095,y:.14403503084321223},{x:.5735679199323094,y:.2123790308432122},{x:.5742003382158373,y:.21504899342087444},{x:.5750294951185407,y:.21766455299430504},{x:.5752146521018063,y:.21933125436759},{x:.575601167738761,y:.22096305773765262},{x:.575700550423256,y:.22370509641963415},{x:.5760035049491392,y:.22643215923642232},{x:.5758599468852712,y:.22810295774565637},{x:.5759206866877095,y:.2297788119316045},{x:.5754832145523405,y:.2324875517091097},{x:.575248324328873,y:.23522131827456078},{x:.563515324328873,y:.2983063182745607},{x:.5624930457986839,y:.30183400865706583},{x:.561587550163308,y:.3053934651440046},{x:.5612670272694029,y:.3060647673464004},{x:.5610599744254687,y:.30677926765590185},{x:.5593691204378909,y:.31003973780923805},{x:.5577866081350055,y:.3133541469027738},{x:.5573412794357957,y:.31395001930700017},{x:.5569988129587381,y:.31461039668740554},{x:.5547043620842722,y:.317478348572073},{x:.5525056481741942,y:.32042033938948294},{x:.4997036481741942,y:.378250339389483},{x:.4970091109540712,y:.38067456957783247},{x:.49440132723244246,y:.38319188697894757},{x:.4937347452782226,y:.3836204617554604},{x:.49314561461057166,y:.3841504927896343},{x:.49002990831948917,y:.38600246394071897},{x:.48698112816844114,y:.387962658427834},{x:.4171684643874312,y:.4237087345514058},{x:.48487098803351525,y:.4540412587201935},{x:.4882241875669253,y:.4559584413246188},{x:.4916233115558361,y:.4577929691542233},{x:.4920492459188098,y:.45814540790983926},{x:.4925291804180174,y:.45841980913886743},{x:.49544392539098053,y:.4609543303938907},{x:.49841983754054403,y:.46341674447922576},{x:.545354837540544,y:.5107317444792258},{x:.5454749496657809,y:.5108793107625336},{x:.5456205162109946,y:.5110018387655073},{x:.548258239278959,y:.5142987798858712},{x:.5509236260451226,y:.5175733969812307},{x:.5510126414958236,y:.5177415605329735},{x:.5511315069931322,y:.5178901328189077},{x:.5530753456471339,y:.5216383183828395},{x:.5550506716503533,y:.525370005791429},{x:.5551051696126684,y:.5255523041806199},{x:.555192766127671,y:.525721211199887},{x:.5563680197383496,y:.5297766005381628},{x:.5575773743081012,y:.5338219516056334},{x:.5575952604559016,y:.5340113792074108},{x:.557648221703651,y:.5341941299579837},{x:.569382221703651,y:.5972801299579837},{x:.5696549699390315,y:.6004540423597167},{x:.5701008412017201,y:.6036082951002054},{x:.5700318821169291,y:.6048400880993865},{x:.5701375119403227,y:.6060692795769916},{x:.5697858198023349,y:.6092354166829699},{x:.5696077595908724,y:.6124160465097288},{x:.5692998146426919,y:.6136107177017713},{x:.5691636114574624,y:.614836897966064},{x:.5682009942777376,y:.6178735869028962},{x:.5674058453461934,y:.6209583639953996},{x:.5668707486862845,y:.622070002836373},{x:.5664979467044567,y:.623246050467446},{x:.5649613973213707,y:.6260365929822823},{x:.5635797167972587,y:.6289069710868302},{x:.5283787167972587,y:.6867359710868302},{x:.526364685994031,y:.6894131274243959},{x:.524479650893362,y:.6921826271628648},{x:.5237177195860089,y:.6929316152663909},{x:.5230754099184859,y:.6937854072711274},{x:.5205777908604191,y:.6960182048823972},{x:.5181886735848373,y:.6983667373551676},{x:.4595186735848373,y:.7456807373551677},{x:.45627545779875317,y:.7478078267647688},{x:.4530837115337172,y:.7500113951823929},{x:.4525909707504246,y:.7502243275150239},{x:.4521421155924859,y:.7505187128152536},{x:.44854624273044896,y:.7519722107862162},{x:.4449859301027389,y:.7535107594479447},{x:.362848930102739,y:.7797967594479446},{x:.36158078031831586,y:.7800691142952486},{x:.3603625229719573,y:.7805143446587972},{x:.35727696699365546,y:.7809934249999153},{x:.35422405316989464,y:.781649085623381},{x:.352927136733123,y:.7816688034988555},{x:.3516454277250751,y:.7818678086678129},{x:.2577774277250751,y:.7871168086678129},{x:.2534831925795917,y:.7869349938938289},{x:.24918809681378723,y:.7867747925856998},{x:.2490774333618657,y:.786748457272228},{x:.24896378128970398,y:.7867436453266514},{x:.24478752897123962,y:.7857275603552258},{x:.2406062159909945,y:.7847325056542677},{x:.16433721599099446,y:.7584545056542678},{x:.1612047546311144,y:.7570179671101032},{x:.15801334200327716,y:.7557176430739929},{x:.09817134200327716,y:.7241756430739928},{x:.09479788711775466,y:.721949723610623},{x:.09138819905405325,y:.7197797137879894},{x:.05384019905405325,y:.6903397137879895},{x:.04746503339724546,y:.6842424293748122},{x:.0424018859405069,y:.677018569451043},{x:.0388453306011542,y:.6689457429023652},{x:.036932043806339465,y:.6603341839257509},{x:.036735552094603836,y:.6515148299032538},{x:.03826340653223549,y:.6428266036640077},{x:.041456892530026886,y:.6346033888699733},{x:.046193286212010486,y:.6271611990540533},{x:.05229057062518783,y:.6207860333972455},{x:.05951443054895701,y:.615722885940507},{x:.06758725709763488,y:.6121663306011542},{x:.07619881607424907,y:.6102530438063395},{x:.08501817009674617,y:.6100565520946039},{x:.09370639633599236,y:.6115844065322356},{x:.1019296111300268,y:.6147778925300269},{x:.10937180094594674,y:.6195142862120105},{x:.14372643260130716,y:.6464504840370294},{x:.1969218011618275,y:.6744891243755197},{x:.2615721948597163,y:.6967640072977177},{x:.3408866683163358,y:.6923288252210377},{x:.40955721054777616,y:.6703524458415177},{x:.4555820596629536,y:.6332360369266462},{x:.477752059875079,y:.596814658492312},{x:.4716998550115053,y:.5642759337587675},{x:.44042564505409965,y:.532748518309004},{x:.3700728058889163,y:.5012285825754976},{x:.28267158635688694,y:.4816496665818946},{x:.2026156257994338,y:.47140070238604853},{x:.19958923290487823,y:.4707064281346213},{x:.19652752938874105,y:.4701896668089735},{x:.19529880233776667,y:.46972217540403877},{x:.1940174323454584,y:.4694282207777866},{x:.19118463692903986,y:.4681568668470777},{x:.18828257832087977,y:.4670527262205195},{x:.18716866396437967,y:.46635450477580015},{x:.18596926283986664,y:.4658162155208443},{x:.1834389276407875,y:.4640166393294268},{x:.18080803842542348,y:.46236755090702814},{x:.17985174386742717,y:.4614654316810775},{x:.17878040392329292,y:.4607034939516098},{x:.17664976830422657,y:.45844485220330683},{x:.1743911520787843,y:.45631418952832026},{x:.17362922718285934,y:.45524284045707714},{x:.17272711941234267,y:.45428653509274164},{x:.17107806250525512,y:.45165562612327925},{x:.16927851662463225,y:.44912526936741537},{x:.1687402417372368,y:.44792586179486843},{x:.1680420336360506,y:.4468119390745141},{x:.1669379277730794,y:.44390986724015796},{x:.1656666077762714,y:.4410770565945043},{x:.16537266849946,y:.43979568308103084},{x:.16490519181337332,y:.438566950430106},{x:.16438846716364272,y:.4355052407239498},{x:.16369422916516244,y:.43247883951296023},{x:.16365592142049992,y:.43116474252408066},{x:.16343714101639506,y:.42986841944927895},{x:.1635276550184117,y:.4267647316583033},{x:.16343717819520762,y:.42366104278329114},{x:.1636559741278381,y:.4223647223293339},{x:.1636942976139514,y:.42105062579943375},{x:.1643885718653787,y:.41802423290487795},{x:.16490533319102646,y:.414962529388741},{x:.1653728245959611,y:.41373380233776696},{x:.1656667792222133,y:.41245243234545836},{x:.1669381331529224,y:.40961963692903947},{x:.16804227377948042,y:.40671757832087974},{x:.16874049522419982,y:.4056036639643795},{x:.16927878447915568,y:.4044042628398666},{x:.17107836067057278,y:.40187392764078794},{x:.1727274490929718,y:.3992430384254234},{x:.17362956831892262,y:.3982867438674269},{x:.17439150604839013,y:.3972154039232929},{x:.1766501477966929,y:.39508476830422673},{x:.1787808104716797,y:.39282615207878424},{x:.17985215954292283,y:.39206422718285927},{x:.18080846490725827,y:.39116211941234263},{x:.18343937387672077,y:.38951306250525497},{x:.18596973063258454,y:.3877135166246322},{x:.18716913820513145,y:.3871752417372368},{x:.1882830609254858,y:.38647703363605057},{x:.19118513275984234,y:.3853729277730792},{x:.19401794340549564,y:.3841016077762714},{x:.19529931691896882,y:.38380766849946},{x:.19652804956989395,y:.38334019181337325},{x:.19958975927605035,y:.38282346716364263},{x:.20261616048703973,y:.3821292291651624},{x:.28149235433605535,y:.37203226198800626},{x:.3678476199052635,y:.34785057975990136},{x:.4387239808422848,y:.31155986033736477},{x:.4773813812672204,y:.26922136053481893},{x:.48460036747312013,y:.2304069273293995},{x:.4680118822440525,y:.1820955353962423},{x:.4262197745588727,y:.1363254129914362},{x:.35583608100487274,y:.09578139608686695},{x:.3056218275014876,y:.083895601213743},{x:.2134048551529998,y:.08581745449589688},{x:.13726972612583144,y:.09751265420048184},{x:.0839251628848058,y:.11344659691108305},{x:.0752658675153883,y:.11513070441124498},{x:.06644440500388343,y:.11509310753596806},{x:.05779977920747511,y:.11333525111208462},{x:.0496641982475573,y:.10992468857614723},{x:.04235030793793329,y:.10499248593374648},{x:.036139176981525016,y:.09872818496641873},{x:.03126949565774486,y:.09137251924727793},{x:.027928403088916927,y:.08320816288480577},{x:.02624429558875499,y:.07454886751538828}]],4:[[{x:.003828000000000005,y:.27580099999999996},{x:.0040512821902059844,y:.2735339778783202},{x:.004058111165048277,y:.2712559968420181},{x:.004482570943879651,y:.26915502967601196},{x:.004692662381854638,y:.26702193550927417},{x:.005353928343121064,y:.26484203377636983},{x:.005805038155045426,y:.26260915577382815},{x:.0066312204192078995,y:.26063136609773396},{x:.0072534210369921,y:.25858024554357095},{x:.008327258689269697,y:.2565712366005347},{x:.009205313441189196,y:.2544692698811785},{x:.010401468469599332,y:.25269066304309135},{x:.011411867446385462,y:.25080033951411784},{x:.01285700981091242,y:.2490394284479652},{x:.014128266351129452,y:.24714915041402313},{x:.01564842657685691,y:.24563807727727646},{x:.017008194846605366,y:.24398119484660533},{x:.018769105912757822,y:.24253605248207852},{x:.020384710565360974,y:.24093010545831445},{x:.022170457083446928,y:.23974463571613375},{x:.023827339514117918,y:.23838486744638543},{x:.025836348457154004,y:.2373110297941079},{x:.027734214441385185,y:.2360511294240198},{x:.029716922014597604,y:.23523682001377813},{x:.031607245543570965,y:.23422642103699207},{x:.03378714727647517,y:.23356515507572567},{x:.03589434066689576,y:.23269971862397582},{x:.03799781495511128,y:.23228786299963877},{x:.040048935509274235,y:.2316656623818546},{x:.04231595763095386,y:.23144238019164864},{x:.0445515001672978,y:.23100466589573537},{x:.046694905833262405,y:.23101109143797494},{x:.048828,y:.23080099999999998},{x:.36918100000000004,y:.23080099999999998},{x:.36918100000000004,y:.05103000000000002},{x:.37004566238185466,y:.04225093550927423},{x:.3726064210369921,y:.03380924554357098},{x:.3767648674463855,y:.026029339514117924},{x:.38236119484660536,y:.019210194846605383},{x:.38918033951411796,y:.013613867446385479},{x:.396960245543571,y:.009455421036992116},{x:.4054019355092743,y:.006894662381854655},{x:.414181,y:.0060300000000000215},{x:.4229600644907258,y:.006894662381854655},{x:.4314017544564291,y:.009455421036992116},{x:.43918166048588214,y:.013613867446385486},{x:.4460008051533947,y:.019210194846605383},{x:.45159713255361456,y:.026029339514117924},{x:.45575557896300795,y:.03380924554357098},{x:.4583163376181454,y:.04225093550927425},{x:.459181,y:.05103000000000002},{x:.459181,y:.23080099999999998},{x:.553224,y:.23080099999999998},{x:.5620030644907258,y:.2316656623818546},{x:.5704447544564291,y:.23422642103699207},{x:.5782246604858822,y:.23838486744638543},{x:.5850438051533947,y:.24398119484660533},{x:.5906401325536146,y:.25080033951411784},{x:.5947985789630079,y:.25858024554357095},{x:.5973593376181454,y:.26702193550927417},{x:.5982240000000001,y:.27580099999999996},{x:.5973593376181454,y:.28458006449072576},{x:.5947985789630079,y:.293021754456429},{x:.5906401325536146,y:.3008016604858821},{x:.5850438051533947,y:.3076208051533946},{x:.5782246604858822,y:.3132171325536145},{x:.5704447544564291,y:.3173755789630079},{x:.5620030644907258,y:.31993633761814533},{x:.553224,y:.32080099999999995},{x:.459181,y:.32080099999999995},{x:.459181,y:.421833},{x:.4583163376181454,y:.4306120644907258},{x:.45575557896300795,y:.439053754456429},{x:.45159713255361456,y:.4468336604858821},{x:.4460008051533947,y:.4536528051533947},{x:.43918166048588214,y:.45924913255361455},{x:.4314017544564291,y:.4634075789630079},{x:.4229600644907258,y:.4659683376181454},{x:.414181,y:.466833},{x:.4054019355092743,y:.4659683376181454},{x:.396960245543571,y:.4634075789630079},{x:.38918033951411796,y:.45924913255361455},{x:.38236119484660536,y:.4536528051533947},{x:.3767648674463855,y:.4468336604858821},{x:.3726064210369921,y:.439053754456429},{x:.37004566238185466,y:.4306120644907258},{x:.36918100000000004,y:.421833},{x:.36918100000000004,y:.32080099999999995},{x:.1436046917940101,y:.32080099999999995},{x:.4533648945416855,y:.700560710565361},{x:.45824387057598015,y:.7079102144413851},{x:.4615952813760241,y:.7160703406668958},{x:.46329033410426457,y:.7247275001672978},{x:.46326388883495173,y:.7335490031579818},{x:.46151696184495455,y:.7421958442261718},{x:.45811668655881077,y:.7503357301188214},{x:.4531937336488705,y:.7576558495859769},{x:.446937289434639,y:.7638748945416856},{x:.4395877855586148,y:.7687538705759801},{x:.43142765933310423,y:.7721052813760241},{x:.42277049983270215,y:.7738003341042645},{x:.41394899684201814,y:.7737738888349517},{x:.40530215577382817,y:.7720269618449546},{x:.39716226988117853,y:.7686266865588108},{x:.38984215041402315,y:.7637037336488706},{x:.38362310545831446,y:.757447289434639},{x:.013957105458314502,y:.304244289434639},{x:.012771635716133971,y:.30245854291655333},{x:.011411867446385462,y:.3008016604858821},{x:.010338029794107799,y:.29879265154284573},{x:.009078129424019837,y:.29689478555861476},{x:.008263820013778204,y:.2949120779854024},{x:.0072534210369921,y:.293021754456429},{x:.006592155075725704,y:.29084185272352475},{x:.005726718623975863,y:.2887346593331042},{x:.0053148629996388475,y:.28663118504488877},{x:.004692662381854638,y:.28458006449072576},{x:.00446938019164866,y:.282313042369046},{x:.00403166589573542,y:.2800774998327022},{x:.00403809143797499,y:.27793409416673776},{x:.003828000000000005,y:.27580099999999996}]],5:[[{x:.029951000000000005,y:.38529899999999995},{x:.030026331329377584,y:.3845341481773043},{x:.029977079633894697,y:.38376717530271315},{x:.030458063889865227,y:.38015069392879464},{x:.03081566238185464,y:.37651993550927415},{x:.03103876142924568,y:.3757844765131909},{x:.03114008507636279,y:.3750226322781917},{x:.0323173678705276,y:.3715694759531816},{x:.0333764210369921,y:.36807824554357094},{x:.033738714231120716,y:.3674004426508694},{x:.033986719409902104,y:.366673004302166},{x:.03581505842470893,y:.3635158758870829},{x:.03753486744638546,y:.3602983395141178},{x:.03802243206297786,y:.35970424030984804},{x:.03840758807348568,y:.3590391628952293},{x:.04081672126593952,y:.35629938906452685},{x:.04313119484660537,y:.3534791948466053},{x:.04372529405087513,y:.3529916302300129},{x:.04423279956362368,y:.3524144723015426},{x:.04713014529619686,y:.3501973410270508},{x:.04995033951411792,y:.3478828674463854},{x:.05062814240681941,y:.3475205742522568},{x:.05123849426956635,y:.347053515665452},{x:.054512709170605814,y:.34544423005866864},{x:.057730245543570965,y:.343724421036992},{x:.05846570453965444,y:.3435013219896009},{x:.05915544727260316,y:.34316231154402344},{x:.06268070509966306,y:.34222271554831923},{x:.06617193550927424,y:.3411636623818546},{x:.0669367873319697,y:.34108833105247705},{x:.06767941450870582,y:.34089039672943083},{x:.07132024158048059,y:.34065659849198926},{x:.074951,y:.34029899999999996},{x:.0757158518226955,y:.3403743313293775},{x:.07648282469728679,y:.34032507963389463},{x:.08009930607120508,y:.3408060638898651},{x:.08373006449072577,y:.3411636623818546},{x:.0844655234868091,y:.3413867614292456},{x:.08522736772180821,y:.34148808507636275},{x:.2701097088502776,y:.3848544225750548},{x:.39095673206080095,y:.3699215697302287},{x:.4312208460684155,y:.34735587040502247},{x:.4569274445394237,y:.3179203076157562},{x:.4808881134259603,y:.2201177906149206},{x:.47151862074291284,y:.1781066999956386},{x:.4461217481742335,y:.14395206669668215},{x:.3876788357927069,y:.10680533743499816},{x:.3169820044514503,y:.08634947983662909},{x:.2505487358362677,y:.08307118781270932},{x:.19638270317906092,y:.09339965838335124},{x:.15518503458472022,y:.11245499400015477},{x:.1051531598037562,y:.15775209985578706},{x:.09806479623887651,y:.16300326318775482},{x:.09008818244690309,y:.16677065575830224},{x:.0815298552225249,y:.16890949878372125},{x:.07271870628140957,y:.16933759772602197},{x:.06399334313601493,y:.16803850098293246},{x:.05568907659877849,y:.16506213211374782},{x:.04812503497563989,y:.16052287130494386},{x:.041591900144212934,y:.15459515980375618},{x:.03634073681224515,y:.1475067962388765},{x:.03257334424169774,y:.13953018244690307},{x:.03043450121627874,y:.13097185522252489},{x:.03000640227397801,y:.12216070628140954},{x:.031305499017067515,y:.1134353431360149},{x:.034281867886252176,y:.10513107659877846},{x:.03882112869505611,y:.09756703497563987},{x:.044748840196243804,y:.09103390014421289},{x:.09986584019624378,y:.041132900144212926},{x:.10178680031290575,y:.03970982481314967},{x:.10357183338498165,y:.03811957700249835},{x:.10532248536915285,y:.037090537646117014},{x:.10695420376112348,y:.035881736812245144},{x:.10911588139237749,y:.0348607662023731},{x:.11117685751196796,y:.03364931723433351},{x:.16362485751196798,y:.009390317234333478},{x:.1646572774363771,y:.009030847933342759},{x:.16562545909873666,y:.008523173483185618},{x:.16881529925253239,y:.0075831025339957205},{x:.1719558576504946,y:.006489618860012841},{x:.17303856889723523,y:.006338471796353147},{x:.17408718959239433,y:.0060294350406820685},{x:.23897018959239436,y:-.00634256495931787},{x:.2399001168767359,y:-.006426714843400178},{x:.24080591100583193,y:-.006653392925378379},{x:.24428588214420577,y:-.0068235863462415185},{x:.247755834543085,y:-.007137585190079683},{x:.24868431036339586,y:-.007038698344381461},{x:.24961692261229596,y:-.007084309202250054},{x:.32666292261229596,y:-.003282309202250082},{x:.32746661284147915,y:-.0031629125067284265},{x:.32827905619988357,y:-.00317336931171093},{x:.3318231917274382,y:-.002515696572186591},{x:.33538870069659477,y:-.001986002452099067},{x:.33615365510360457,y:-.0017121077449900682},{x:.3369525276121403,y:-.0015638637889859724},{x:.4188855276121403,y:.02214313621101406},{x:.4207304127428032,y:.02287964098341223},{x:.42264402370761556,y:.023412682727046455},{x:.4248170355152836,y:.024511079778651145},{x:.4270783417525648,y:.02541382586724525},{x:.42874409297954025,y:.02649609814118395},{x:.43051694316083267,y:.027392224616519634},{x:.5014129431608326,y:.07245422461651957},{x:.5044011686844615,y:.0747943741105689},{x:.5074525565132345,y:.07705154573740032},{x:.5078697672823866,y:.07751071502587484},{x:.5083582165656543,y:.07789323111579813},{x:.5108324836553944,y:.0807713891731658},{x:.5133848875831327,y:.08358048611421783},{x:.5494628875831328,y:.1320994861142178},{x:.5497798823390716,y:.1326268676033582},{x:.5501811109693575,y:.13309337858567127},{x:.5520495631508493,y:.13640291633591076},{x:.5540074974944301,y:.13966031511116345},{x:.5542155142604781,y:.14023940572188273},{x:.5545180216173755,y:.1407752286491667},{x:.5557049132287019,y:.14438569149730107},{x:.5569897394368822,y:.14796247431004633},{x:.5570807842453774,y:.1485710199149322},{x:.5572729451408087,y:.14915556341258465},{x:.5710219451408087,y:.2108035634125847},{x:.5712046210163666,y:.21230267395853206},{x:.5715791512667351,y:.2137656948046034},{x:.571736996194895,y:.21667155541097086},{x:.5720890113736304,y:.2195603313107129},{x:.5719757152243157,y:.2210662751632623},{x:.5720576277729665,y:.2225742517011615},{x:.5716455344736617,y:.2254550710286549},{x:.5714272135589309,y:.2283570146640783},{x:.5710222992922247,y:.22981191924551903},{x:.5708084462858501,y:.23130690078257787},{x:.5417354462858501,y:.3499769007825779},{x:.5411002871662289,y:.3517814599872898},{x:.540669734049328,y:.3536454570484658},{x:.5396393400617131,y:.355932176655931},{x:.5388066121493867,y:.3582980512419798},{x:.5378316053978042,y:.3599440229503987},{x:.537045677451414,y:.361688207084494},{x:.5355889653307644,y:.36372996812105773},{x:.5343106788169316,y:.36588792593376723},{x:.5330332933960605,y:.36731205637621067},{x:.5319221933904076,y:.36886939956510134},{x:.49389619339040763,y:.4124113995651013},{x:.49150876583293945,y:.41465677330496736},{x:.4892379705562563,y:.41702003426923534},{x:.48830169237996507,y:.41767302336482964},{x:.48747017448549057,y:.4184550652905171},{x:.4846905699931398,y:.420191530792605},{x:.4820023580684325,y:.4220663721783498},{x:.4272473580684325,y:.4527533721783498},{x:.42330567688981036,y:.45447898255061825},{x:.4193723578126433,y:.45622356923745777},{x:.4192660752068488,y:.4562474610875831},{x:.4191662841579818,y:.4562911481493166},{x:.41496369139475175,y:.45721461755172516},{x:.4107655979622113,y:.4581583300092093},{x:.27317359796221125,y:.47516033000920926},{x:.26964530070808584,y:.4752477446385603},{x:.2661231753027132,y:.4754739203661053},{x:.26524270860794985,y:.4753568201865933},{x:.26435476148695686,y:.47537881934450843},{x:.2608772057270339,y:.4747762176787918},{x:.2573786322781918,y:.4743109149236372},{x:.119951,y:.44207564006371447},{x:.119951,y:.684004},{x:.527101,y:.684004},{x:.5358800644907258,y:.6848686623818546},{x:.544321754456429,y:.6874294210369921},{x:.5521016604858822,y:.6915878674463855},{x:.5589208051533947,y:.6971841948466053},{x:.5645171325536146,y:.7040033395141179},{x:.5686755789630079,y:.711783245543571},{x:.5712363376181454,y:.7202249355092742},{x:.5721010000000001,y:.729004},{x:.5712363376181454,y:.7377830644907257},{x:.5686755789630079,y:.746224754456429},{x:.5645171325536146,y:.7540046604858821},{x:.5589208051533947,y:.7608238051533946},{x:.5521016604858822,y:.7664201325536145},{x:.544321754456429,y:.7705785789630079},{x:.5358800644907258,y:.7731393376181454},{x:.527101,y:.774004},{x:.074951,y:.774004},{x:.06617193550927424,y:.7731393376181454},{x:.05773024554357094,y:.7705785789630079},{x:.04995033951411792,y:.7664201325536145},{x:.04313119484660537,y:.7608238051533946},{x:.03753486744638546,y:.7540046604858821},{x:.0333764210369921,y:.746224754456429},{x:.03081566238185464,y:.7377830644907257},{x:.029951000000000005,y:.729004},{x:.029951000000000005,y:.38529899999999995}]],6:[[{x:.01994450211145162,y:.2755194646798348},{x:.020758274672659796,y:.26806396163938684},{x:.0201773643330274,y:.24423363638780976},{x:.020440223451033163,y:.2406784570189078},{x:.020568639264984916,y:.237115887070161},{x:.02076496657089406,y:.23628629421823594},{x:.02082782677693791,y:.23543610758842642},{x:.021779216218601925,y:.23200052126419074},{x:.022600187477202785,y:.22853145778054884},{x:.04459918747720279,y:.16442145778054884},{x:.04602253566469808,y:.16130748249724527},{x:.047307319174730654,y:.15813382633120915},{x:.06831231917473066,y:.11806482633120913},{x:.06934150993632018,y:.11649740482650416},{x:.07018719324152095,y:.11482382676006757},{x:.07175673818837072,y:.11281909673987861},{x:.07315419088510985,y:.11069082519836773},{x:.0744693948008918,y:.10935430641546007},{x:.07562532742241568,y:.1078778703106287},{x:.1253733274224157,y:.055788870310628645},{x:.12585541612958862,y:.055374327647901005},{x:.12626130847256478,y:.0548849335871293},{x:.1291958120945167,y:.0525019586891126},{x:.1320620582603259,y:.05003730581521479},{x:.13261575702973094,y:.04972477931463493},{x:.1331093263100589,y:.049323974491408525},{x:.1861743263100589,y:.014262974491408516},{x:.18683955107784095,y:.013911818906951787},{x:.187438960697758,y:.013457349607970202},{x:.1907349034619545,y:.011855559414887177},{x:.19397565070571454,y:.010144849670490022},{x:.19469660042216425,y:.009930220356283175},{x:.19537315511619574,y:.009601422573216056},{x:.19891826102894206,y:.008673416864759805},{x:.2024304811380398,y:.007627816351770726},{x:.20317945010986724,y:.007557961391993223},{x:.20390715026053782,y:.0073674706392518954},{x:.2857161502605378,y:-.005654529360748083},{x:.2860775594607644,y:-.005676122674759226},{x:.28642923596273784,y:-.0057621838110407525},{x:.2904772893795591,y:-.005938995755027237},{x:.2945219894833068,y:-.006180656673914681},{x:.2948806669536751,y:-.006131327641200151},{x:.2952423757850646,y:-.006147126454864343},{x:.38700037578506463,y:-.001139126454864331},{x:.39074801870473747,y:-.000562375362895672},{x:.3945101708776463,y:-8942684208443352e-20},{x:.395102371884912,y:.00010774663253235539},{x:.3957192721812796,y:.00020268575218489876},{x:.39928238663684656,y:.0014994835976446027},{x:.4028799824314506,y:.002697304024131271},{x:.47474098243145063,y:.03475230402413133},{x:.4764407459001163,y:.03572046389197228},{x:.4782361407270164,y:.03649705052245801},{x:.48026428101539703,y:.03789829234877595},{x:.4824063061811086,y:.03911835786940705},{x:.4838845305509628,y:.04039952221931584},{x:.48549392283388365,y:.041511451110380196},{x:.5363469228338836,y:.08458545111038014},{x:.5369424578291695,y:.08519979361043255},{x:.5376274627831791,y:.08571247952886965},{x:.5400078699953618,y:.08836201411598918},{x:.5424869876672573,y:.09091942444541115},{x:.5429512273484354,y:.09163814564059086},{x:.5435230500634102,y:.09227461827992436},{x:.5453408198626901,y:.09533763721244376},{x:.5472733759789791,y:.0983295594844189},{x:.5475884798754501,y:.09912503932225875},{x:.5480251455251356,y:.09986083939589693},{x:.5756631455251356,y:.15896283939589692},{x:.5756676990332947,y:.1589757429605767},{x:.575674675284325,y:.15898751446598428},{x:.5771354507402345,y:.1631350040011944},{x:.5785987361645655,y:.16728160865370237},{x:.5786006848177536,y:.16729515262537814},{x:.5786052305152959,y:.16730805894366996},{x:.5792288025114348,y:.17166083878445604},{x:.5798550088797246,y:.1760132404159827},{x:.5798542777922926,y:.17602690430741857},{x:.5798562182477396,y:.17604044945602063},{x:.5820672182477395,y:.2261264494560206},{x:.5819074721227447,y:.22907858468741052},{x:.5819395990078049,y:.232034864293962},{x:.5816696541741431,y:.23347350033714379},{x:.5815905637246603,y:.23493510513282764},{x:.580857954063737,y:.2377993509905685},{x:.5803127220992973,y:.2407050941577823},{x:.5648357220992973,y:.2937960941577823},{x:.5632290277642941,y:.2977974374258546},{x:.5616400226499054,y:.30180583827676916},{x:.5384240226499054,y:.3468838382767692},{x:.5373215489467563,y:.3485896803397862},{x:.5364060617863755,y:.35040275195151915},{x:.5349331318310961,y:.3522852445680167},{x:.5336357086983223,y:.35429272914301846},{x:.5322216254408594,y:.35575071197935654},{x:.5309700163849885,y:.3573503432435408},{x:.49559401638498846,y:.39441334324354077},{x:.4926979475395651,y:.39690515537305066},{x:.48986855873600776,y:.3994724304741097},{x:.48935820160472765,y:.3997787125549045},{x:.48890701524930746,y:.4001669186691625},{x:.48558046512393155,y:.4020458563236817},{x:.4823045917066957,y:.404011815580751},{x:.4336605917066957,y:.42705181558075106},{x:.43309173356321873,y:.4272557130907893},{x:.4325654489917744,y:.42755269513041455},{x:.42894434743018467,y:.4287422729922158},{x:.4253563740806812,y:.43002832091195864},{x:.42475866795602985,y:.4301173218701226},{x:.42418455747331046,y:.430305924456616},{x:.35674655747331047,y:.44533192445661596},{x:.3529000911149492,y:.4457998510145922},{x:.3490659246900917,y:.4463596961147396},{x:.28494592469009167,y:.4493636961147396},{x:.2805873413475358,y:.449139645094856},{x:.27622830276644406,y:.44892463285807194},{x:.20879130276644411,y:.4389076328580719},{x:.2058686377582091,y:.4381749274884603},{x:.2029059705898912,y:.4376259000221244},{x:.2015992206546876,y:.4371045944779896},{x:.20023455588710068,y:.4367624761715421},{x:.19751099279397463,y:.4354736658725529},{x:.19471236238975773,y:.4343572001231398},{x:.1250653623897577,y:.39829620012313977},{x:.12281565387932818,y:.3968352958512946},{x:.12046004217050754,y:.3955521266688945},{x:.11912493361112,y:.39443863469229795},{x:.1176668837895426,y:.39349181371392206},{x:.11574541108214431,y:.3916200839502759},{x:.11440461043594556,y:.3905018447245139},{x:.11499744675527566,y:.4076710597897629},{x:.14015918883207887,y:.48309781218266834},{x:.17625691985197756,y:.5624688107059582},{x:.22079283681825793,y:.6049160879451294},{x:.2812243215554422,y:.6473094683632384},{x:.35529887985725983,y:.6721340784004237},{x:.44197867319461825,y:.699237682451455},{x:.450099621980826,y:.7026829408131323},{x:.45739239245003865,y:.7076463180152294},{x:.4635767275229571,y:.7139370742553635},{x:.4684149666709443,y:.7213134592991232},{x:.47172117907685873,y:.729492002806001},{x:.4733683088520865,y:.7381584079356077},{x:.4732930577230865,y:.7469796295989887},{x:.471498317548545,y:.7556166731946181},{x:.4680530591868676,y:.7637376219808258},{x:.4630896819847706,y:.7710303924500386},{x:.4567989257446365,y:.7772147275229571},{x:.4494225407008768,y:.7820529666709441},{x:.4412439971939989,y:.7853591790768587},{x:.43257759206439217,y:.7870063088520864},{x:.4237563704010112,y:.7869310577230865},{x:.41511932680538177,y:.7851363175485448},{x:.32800332680538175,y:.7578963175485449},{x:.32758097645219697,y:.7577171382279785},{x:.32713377373466446,y:.7576146941984534},{x:.2464307737346645,y:.7305686941984535},{x:.24453959681011464,y:.7297206474805041},{x:.2425703892464572,y:.7290741531131611},{x:.24052462272791658,y:.727920241844807},{x:.2383814751569417,y:.7269592057619036},{x:.2366920823739949,y:.725758503708645},{x:.23488683737580707,y:.7247402582115807},{x:.16634483737580705,y:.6766572582115807},{x:.16379281785599412,y:.6744641039532857},{x:.16114120086592887,y:.6723924725748345},{x:.10785520086592887,y:.6216054725748346},{x:.10512406158167997,y:.61843588774195},{x:.10236095541706475,y:.6152941312068447},{x:.10224621895073822,y:.6150960484276141},{x:.1020967920615373,y:.6149226331776604},{x:.10003648617852028,y:.6112811321861437},{x:.09793939861820375,y:.6076606883504815},{x:.057256398618203745,y:.5182076883504814},{x:.05649445644348035,y:.515973451082899},{x:.055531562043165734,y:.5138181769891187},{x:.02756156204316574,y:.4299731769891187},{x:.02710606704062858,y:.4279720709807987},{x:.026442901166776424,y:.42602987841114226},{x:.0261294707087366,y:.42368163359604843},{x:.025603668479436986,y:.4213716499642221},{x:.02554732210120287,y:.4193201319800137},{x:.025275801747494525,y:.4172858808521062},{x:.022290801747494524,y:.3308368808521062},{x:.022305383523873214,y:.330608131273329},{x:.022277364333027405,y:.33038063638780973},{x:.021194122115214913,y:.2859434614650037},{x:.02071653916751727,y:.2843071590959475},{x:.01994450211145162,y:.2755194646798348}],[{x:.11034731747482908,y:.25010871966048204},{x:.11054573733688708,y:.2582483748303443},{x:.14138614929871246,y:.28974619429248377},{x:.17280436841728808,y:.32166563054627706},{x:.2294333737827033,y:.3509863272379111},{x:.2851142784460479,y:.35925709287120927},{x:.3409693478959939,y:.3566403020317264},{x:.39969116147327427,y:.34355637352239615},{x:.43624565447916347,y:.3262425111990739},{x:.46138408324665353,y:.29990528863548604},{x:.47964461062187336,y:.2644492215688011},{x:.49182659739178797,y:.22266115801633354},{x:.4903391577658353,y:.18896604218391924},{x:.47066764412974615,y:.14689983627465894},{x:.4322187986209955,y:.11433252320671945},{x:.3738017517723872,y:.08827446060346957},{x:.29512698962943984,y:.08398052210424463},{x:.22766698305582697,y:.09471851188045},{x:.18695506157646963,y:.1216176107024183},{x:.1450838647757246,y:.1654591474507099},{x:.12861258258928074,y:.1968796571354811},{x:.11034731747482908,y:.25010871966048204}]],7:[[{x:.026534000000000002,y:.729004},{x:.027398662381854635,y:.7202249355092742},{x:.029959421036992097,y:.711783245543571},{x:.03411786744638546,y:.7040033395141179},{x:.039714194846605363,y:.6971841948466053},{x:.046533339514117915,y:.6915878674463855},{x:.05431324554357096,y:.6874294210369921},{x:.06275493550927423,y:.6848686623818546},{x:.071534,y:.684004},{x:.4019606654607806,y:.684004},{x:.4004737160341744,y:.6825246433416329},{x:.3773547160341744,y:.6545006433416328},{x:.37631768094411194,y:.6529571778549935},{x:.37511206403824765,y:.6515414747212956},{x:.3516100640382476,y:.6177174747212957},{x:.35070717908442606,y:.6160998190359583},{x:.34962595461558005,y:.6145955036421288},{x:.32637595461558006,y:.5744575036421288},{x:.32562538351875275,y:.5728072168885044},{x:.3246890272988689,y:.5712547864166106},{x:.3023170272988689,y:.5242907864166106},{x:.3017220252289498,y:.5226423026482856},{x:.3009361907094137,y:.5210757809262708},{x:.2800741907094137,y:.4667717809262708},{x:.2796297795277362,y:.4651572895546526},{x:.27899211910181604,y:.46360891205912846},{x:.26027511910181605,y:.40145091205912853},{x:.2599700482242006,y:.399900691568321},{x:.2594722021762355,y:.3984012246220316},{x:.2435242021762355,y:.3278752246220315},{x:.24329560198997774,y:.32604433113097486},{x:.24285939794168837,y:.32425152465814894},{x:.22552039794168838,y:.201651524658149},{x:.22543629437721757,y:.19966542745190077},{x:.2251384028560513,y:.1976999971774209},{x:.21759140285605127,y:.0533799971774209},{x:.2179964236931644,y:.04456775725283754},{x:.22011284489303193,y:.03600385769296016},{x:.22385933357584556,y:.028017404355184638},{x:.22909191428257988,y:.020915312162427036},{x:.23560950187114016,y:.014970510534755857},{x:.24316162910560324,y:.010411454864839347},{x:.25145807197163045,y:.007413347105324521},{x:.2601800028225791,y:.006091402856051323},{x:.26899224274716244,y:.0064964236931644576},{x:.27755614230703984,y:.008612844893031955},{x:.2855425956448154,y:.0123593335758456},{x:.29264468783757297,y:.017591914282579925},{x:.29858948946524416,y:.02410950187114019},{x:.30314854513516065,y:.03166162910560326},{x:.30614665289467546,y:.03995807197163046},{x:.3074685971439487,y:.04868000282257914},{x:.3149118365119932,y:.19101580586964154},{x:.33171443080019297,y:.3098230069615897},{x:.3469078029209317,y:.3770118558572018},{x:.3646876244488305,y:.43605754408347375},{x:.3843219343355222,y:.48716585412502805},{x:.40516196826036527,y:.5309139031705462},{x:.42657620329737017,y:.5678827017045378},{x:.4479617026009278,y:.5986606409626235},{x:.4682073320853445,y:.6232016470905397},{x:.5069453480603512,y:.6602460238293135},{x:.5211069187127709,y:.670919967941474},{x:.553634852004927,y:.6903949675582732},{x:.5545334052571363,y:.6910607030437311},{x:.5555196604858821,y:.6915878674463855},{x:.5580709875097788,y:.6936816874233654},{x:.5607229359621996,y:.6956465083018619},{x:.5614743452153894,y:.6964747509099635},{x:.5623388051533946,y:.6971841948466053},{x:.5644326251303754,y:.699735521870503},{x:.5666502995990071,y:.7021799587443133},{x:.5672256886169725,y:.7031388795761127},{x:.5679351325536145,y:.7040033395141179},{x:.5694909811561905,y:.7069141275182039},{x:.5711891576548912,y:.709744242049125},{x:.5715664145603537,y:.7107969903148255},{x:.5720935789630078,y:.711783245543571},{x:.5730516658019124,y:.7149416345772374},{x:.5741650843601849,y:.7180486670509921},{x:.5743297113818354,y:.7191547862251302},{x:.5746543376181453,y:.7202249355092742},{x:.574977843953461,y:.7235095504532041},{x:.5754637165205229,y:.7267740993542682},{x:.5754093871342436,y:.7278910818973009},{x:.575519,y:.729004},{x:.5751954936646845,y:.7322886149439295},{x:.5750351484302645,y:.735585225488817},{x:.5747639504839017,y:.7366701463880269},{x:.5746543376181453,y:.7377830644907257},{x:.5736962507792408,y:.7409414535243923},{x:.5728958497207748,y:.7441434388186243},{x:.5724182051993175,y:.7451546051722857},{x:.5720935789630078,y:.746224754456429},{x:.570537730360432,y:.749135542460515},{x:.5691280324417267,y:.752119852004927},{x:.5684622969562688,y:.7530184052571364},{x:.5679351325536145,y:.7540046604858821},{x:.5658413125766343,y:.756555987509779},{x:.563876491698138,y:.7592079359621996},{x:.5630482490900365,y:.7599593452153895},{x:.5623388051533946,y:.7608238051533946},{x:.5597874781294971,y:.7629176251303754},{x:.5573430412556867,y:.7651352995990072},{x:.5563841204238874,y:.7657106886169726},{x:.5555196604858821,y:.7664201325536145},{x:.5526088724817957,y:.7679759811561907},{x:.5497787579508749,y:.7696741576548912},{x:.5487260096851745,y:.7700514145603538},{x:.547739754456429,y:.7705785789630079},{x:.5445813654227618,y:.7715366658019126},{x:.5414743329490078,y:.7726500843601849},{x:.5403682137748697,y:.7728147113818356},{x:.5392980644907257,y:.7731393376181454},{x:.5360134495467959,y:.773462843953461},{x:.5327489006457318,y:.7739487165205229},{x:.531631918102699,y:.7738943871342436},{x:.530519,y:.774004},{x:.071534,y:.774004},{x:.06275493550927423,y:.7731393376181454},{x:.054313245543570934,y:.7705785789630079},{x:.046533339514117915,y:.7664201325536145},{x:.039714194846605363,y:.7608238051533946},{x:.03411786744638546,y:.7540046604858821},{x:.029959421036992097,y:.746224754456429},{x:.027398662381854635,y:.7377830644907257},{x:.026534000000000002,y:.729004}]],8:[[{x:.018998734783549534,y:.19034712298183487},{x:.01918983868826437,y:.187136446932327},{x:.01920952916989005,y:.18392014879903562},{x:.019451409422642358,y:.18274188004279768},{x:.019522877627479743,y:.18154116541629586},{x:.0203366813486396,y:.1784294641291047},{x:.020983462121705806,y:.17527880768498513},{x:.021450563544301488,y:.17417036752890672},{x:.021754906310756543,y:.17300666705236456},{x:.02316013582774355,y:.17011352146289485},{x:.024409151469860245,y:.16714958466818597},{x:.06244715146986025,y:.097021584668186},{x:.06364531823888224,y:.0952519506947441},{x:.06465809579443724,y:.09337006609963419},{x:.0661122558858275,y:.09160840391706095},{x:.06739294989385258,y:.08971688123025286},{x:.06891333268610705,y:.08821500101819715},{x:.07027378747657535,y:.08656685940733966},{x:.07204368953204261,y:.0851227396301211},{x:.07366879313388441,y:.08351741302778071},{x:.0754529644913056,y:.08234100299139627},{x:.07710881500204132,y:.08098994152260804},{x:.14910981500204132,y:.03317594152260801},{x:.1504928100364302,y:.03244176283843531},{x:.15177178054792087,y:.031538475488709236},{x:.15438005907773164,y:.030378172358910993},{x:.15690151209615905,y:.029039630272177964},{x:.1584011644246711,y:.028589367572161194},{x:.15983178249634203,y:.027952951404511282},{x:.24949378249634205,y:-.0017990485954887184},{x:.251605077566582,y:-.002276091838878668},{x:.25365804064979064,y:-.002962007073194259},{x:.2558970148670134,y:-.0032458471890824472},{x:.2580984148155577,y:-.003743249464233246},{x:.2602622084630055,y:-.003799233220341744},{x:.26240953986016613,y:-.0040714555567724145},{x:.33848653986016614,y:-.006196455556772458},{x:.34211630259529946,y:-.0059410451417675775},{x:.3457527120689106,y:-.005810898556388326},{x:.34651004211407876,y:-.005631877045722989},{x:.3472863241290845,y:-.005577253499755554},{x:.35079651389094996,y:-.004618619143417753},{x:.3543376604369356,y:-.0037815449929937683},{x:.4535096604369356,y:.03022045500700621},{x:.45591274590665615,y:.03131812424947078},{x:.4583949217344816,y:.03222283453480715},{x:.45991547545056405,y:.03314647083206772},{x:.461533744189149,y:.033885655452327273},{x:.46367651039942226,y:.035431052006208004},{x:.4659344916938285,y:.03680262701864639},{x:.5338604916938285,y:.08780462701864639},{x:.5368034713408607,y:.09050382186837246},{x:.5397962541268131,y:.09314768896709699},{x:.5400513850489728,y:.09348269124727963},{x:.5403617177400871,y:.09376731720532937},{x:.5427215620660051,y:.09698879462990716},{x:.5451410464862535,y:.10016572352111452},{x:.5453259194365666,y:.1005440624001799},{x:.5455747614022292,y:.10088376225489704},{x:.547260782913003,y:.10450372268352329},{x:.5490139895381407,y:.10809162577156875},{x:.5802599895381407,y:.1920326257715688},{x:.5808621946470703,y:.19431314395649216},{x:.5816704362178704,y:.19652903198349428},{x:.5819856183913868,y:.19856748893015458},{x:.5825122482529622,y:.20056180773987195},{x:.5826579751325236,y:.20291599079595712},{x:.5830183882594349,y:.20524698126417715},{x:.5829298310737253,y:.20730775882392333},{x:.5830572695913885,y:.20936649774620245},{x:.5827409180393249,y:.21170387573884492},{x:.582639652248002,y:.21406038999182395},{x:.570412652248002,y:.30012638999182395},{x:.5703409363500996,y:.30042034316527866},{x:.5703238989157716,y:.30072243812390526},{x:.5692961437829783,y:.3047027979582916},{x:.5683217827960937,y:.30869656381164773},{x:.5681940974797931,y:.30897087767968473},{x:.5681184516122305,y:.3092638441298401},{x:.5663339148242972,y:.3129672173863048},{x:.5645991308441736,y:.31669415574996157},{x:.5644203829845738,y:.31693828858446854},{x:.5642890357120441,y:.31721086798977133},{x:.5618162960169492,y:.32049493611094637},{x:.5593877558190667,y:.3238118228336772},{x:.5591648145961691,y:.32401639274673566},{x:.5589828135206953,y:.3242581100335041},{x:.5032838135206953,y:.3848241100335041},{x:.5011622073766187,y:.38671918495638496},{x:.4991781602202921,y:.38875783119234486},{x:.4978799327840818,y:.3896509997457094},{x:.496704700181234,y:.39070074870143656},{x:.4942541493273608,y:.39214550546522026},{x:.4919105049301597,y:.39375791128677606},{x:.42072451102124153,y:.4330589294870645},{x:.4777200661568854,y:.4633968522602595},{x:.4805213378044988,y:.46526159042857346},{x:.48340658539474834,y:.46699355971902134},{x:.4841865730327025,y:.4677014480666941},{x:.48506339053858555,y:.46828512408085676},{x:.487447044167244,y:.4706605328159332},{x:.4899389620874836,y:.4729221066835925},{x:.4905658603159866,y:.4737685611946159},{x:.49131196047780046,y:.47451208064740324},{x:.493186393615322,y:.4773068743236967},{x:.4951892188573616,y:.48001114175313947},{x:.5250762188573616,y:.5299501417531395},{x:.5263287500632193,y:.5326029758232522},{x:.5277533683388757,y:.5351675080991},{x:.5282078804872482,y:.5365829335183069},{x:.5288425912810938,y:.5379272372855163},{x:.5295535131980511,y:.5407734546091212},{x:.5304504424054924,y:.5435666393545394},{x:.5306200854295579,y:.5450435386925929},{x:.5309803397786421,y:.5464858379730204},{x:.5311223320761199,y:.5494160600145488},{x:.5314571037289079,y:.5523305567062068},{x:.5328161037289079,y:.6362725567062067},{x:.5325682225912138,y:.6392892202473488},{x:.5325070847315841,y:.6423154334158161},{x:.5322077563487247,y:.6436760218476847},{x:.5320936668790056,y:.6450644677251389},{x:.5312620268462096,y:.647974807711247},{x:.530611678831884,y:.6509309456375182},{x:.530052664324664,y:.6522069946735811},{x:.5296698946987799,y:.6535465042014387},{x:.5282864552309536,y:.656238677898982},{x:.5270718895714029,y:.659011137860374},{x:.493108889571403,y:.7195761378603741},{x:.49086599866607616,y:.7227903647520136},{x:.4886941713149356,y:.7260530293196586},{x:.4883443495413535,y:.7264040725827037},{x:.48806074906628455,y:.7268104928286833},{x:.4852338901214668,y:.7295253929429124},{x:.4824672795427586,y:.7323016638284542},{x:.4820556943532359,y:.7325777150511769},{x:.48169825452511067,y:.7329209983380867},{x:.4783960621447291,y:.7350322395860499},{x:.4751409876314614,y:.737215426256307},{x:.4058559876314614,y:.774404426256307},{x:.40535390944732597,y:.7746134197603937},{x:.4048950878292554,y:.7749053846735706},{x:.40128606998249994,y:.7763066859700772},{x:.39771184087056327,y:.7777944834687843},{x:.3971786373679402,y:.7779015106266721},{x:.3966716723496766,y:.778098353858693},{x:.39285862044769176,y:.7787686450898307},{x:.3890628142527955,y:.7795305574683767},{x:.38851897614326597,y:.7795315052864096},{x:.3879833501061526,y:.7796256622622586},{x:.29017035010615255,y:.7870576622622585},{x:.28883979914978264,y:.7870279344512828},{x:.28751770557027906,y:.7871806372910648},{x:.2844390802539456,y:.7869296114679608},{x:.28135100845003463,y:.7868606162788429},{x:.2800518232654171,y:.7865718820648824},{x:.2787253424971381,y:.7864637231002555},{x:.20264834249713812,y:.7726567231002556},{x:.20090732012312768,y:.7721604024311715},{x:.19912055356042774,y:.7718689262507037},{x:.1966754417776232,y:.7709540028332816},{x:.19416478523538352,y:.7702382792713757},{x:.19255404347725652,y:.7694118386491953},{x:.19085847331495095,y:.7687773822377194},{x:.12157447331495094,y:.7347753822377193},{x:.11864840230662128,y:.7329636093328938},{x:.1156466869822177,y:.7312801255296781},{x:.11490452792065226,y:.7306454666247165},{x:.11407427694169714,y:.7301313894804525},{x:.11155788892673538,y:.7277835811487093},{x:.10894228211787771,y:.7255468394054793},{x:.1083381992447159,y:.7247795872431081},{x:.10762419278113186,y:.7241134140161837},{x:.10561419113974596,y:.7213197952150451},{x:.1034852091492498,y:.7186157522626143},{x:.05457920914924981,y:.6421127522626143},{x:.05400544809690788,y:.6409849569633866},{x:.05327967340990527,y:.639948436299892},{x:.05200937551205521,y:.6370614399018406},{x:.05057918033015655,y:.6342502218929852},{x:.050236465883645505,y:.633032161635733},{x:.04972685190376166,y:.6318739658087451},{x:.04904418748077848,y:.6287946194110116},{x:.04818991452487371,y:.6257584009293389},{x:.04809141700817653,y:.6244968850866522},{x:.047817547914863534,y:.6232615229122788},{x:.04774875137767971,y:.6201081640700103},{x:.04750322987838258,y:.6169636252890404},{x:.04765273449582791,y:.6157071332072875},{x:.04762513492475421,y:.6144420789610904},{x:.04817285008571219,y:.6113358894861711},{x:.048545515296550656,y:.608203873267779},{x:.04893727666953319,y:.607000691233013},{x:.04915700725673716,y:.6057545602402229},{x:.06817600725673716,y:.537751560240223},{x:.0695259178796919,y:.5342803033966695},{x:.07076883034011841,y:.5307693133112962},{x:.07112252784165454,y:.530174666206544},{x:.07137329591617819,y:.5295298232221028},{x:.07337447700044117,y:.5263886201035727},{x:.07527846743280868,y:.5231875729003385},{x:.0757413786311829,y:.522673354732434},{x:.07611313089295507,y:.5220898246495332},{x:.07868867817173447,y:.5193993899302627},{x:.08118057729149615,y:.5166313000580217},{x:.13823757729149616,y:.46456630005802163},{x:.1415344063491032,y:.46210392848613274},{x:.14479841194755694,y:.45959821041612353},{x:.17870395742216458,y:.4385038845164132},{x:.16590813892329467,y:.43401753680148847},{x:.1630836262780146,y:.43270367241359486},{x:.16018787852971583,y:.4315553012665589},{x:.15909238677042803,y:.43084708753997614},{x:.15790960896480868,y:.43029690071741367},{x:.15539569076452509,y:.4284572467838155},{x:.15277962009410193,y:.4267660089056696},{x:.07398562009410191,y:.3640750089056696},{x:.07334669706368892,y:.36345515994886657},{x:.07261876409580822,y:.3629427646304707},{x:.07018582297292754,y:.3603886489381779},{x:.067654053855944,y:.3579324619307791},{x:.06714833408498834,y:.3571998754981266},{x:.06653435151263618,y:.35655531303498644},{x:.06464644192410274,y:.3535756306924294},{x:.06264249835499126,y:.3506727149773525},{x:.06228941637067996,y:.3498555439546183},{x:.061812979199786275,y:.3491035845207174},{x:.026491979199786284,y:.27897658452071744},{x:.026206182636496978,y:.2782362375154344},{x:.02580526951533789,y:.27755135647970497},{x:.024619992088609113,y:.2741272608068926},{x:.023315086847465263,y:.27074694483548933},{x:.02317921632066564,y:.26996506724675395},{x:.022919620294515476,y:.2692151317381758},{x:.022425125568608657,y:.2656255929487299},{x:.02180476064715109,y:.2620556544171705},{x:.02182403758498896,y:.26126229336223583},{x:.021715734783549545,y:.26047612298183487},{x:.018998734783549534,y:.19034712298183487}],[{x:.10940940002433477,y:.19920410482166873},{x:.1112697837122767,y:.2472228194523932},{x:.137749803196691,y:.2997967648781603},{x:.20286290613296581,y:.3516028102138205},{x:.27392321813344717,y:.3765172983642545},{x:.30180455045059645,y:.38547932587505673},{x:.3589974388819276,y:.364332623176267},{x:.44199758150171664,y:.31850914110336725},{x:.48327372240847105,y:.27362627516037924},{x:.4919267227459848,y:.21271770175329152},{x:.46927072007314496,y:.15185335046477932},{x:.41758736799183827,y:.11304708595854013},{x:.33285528741119674,y:.08399594043457195},{x:.2715476841223936,y:.0857083982994813},{x:.19388634557978268,y:.1114782912788902},{x:.13622191473335832,y:.14977174687660325},{x:.10940940002433477,y:.19920410482166873}],[{x:.1412545940070051,y:.610603192179028},{x:.17253143522148345,y:.6595291354872365},{x:.22488466829434647,y:.6852221473073319},{x:.28911227954018853,y:.6968786351876549},{x:.37167628924266627,y:.6906052797020977},{x:.4210229734590171,y:.664118250196117},{x:.4426312796779887,y:.6255849325813003},{x:.4416638895166663,y:.5658316839266069},{x:.4243877259953326,y:.5369644730960824},{x:.3411654121752423,y:.49266641996418925},{x:.3038587353431559,y:.48067475972705925},{x:.2482367446999157,y:.5012406330709052},{x:.1958501022844071,y:.5338329684082593},{x:.1513751879049268,y:.5744167077770947},{x:.1412545940070051,y:.610603192179028}]],9:[[{x:.04617702144416433,y:.5785043710151274},{x:.046308257010348054,y:.5777836867379841},{x:.04632014162646953,y:.5770512474182771},{x:.047097404355444614,y:.5734500590446777},{x:.04775742235616295,y:.5698255492446179},{x:.06775742235616294,y:.499825549244618},{x:.06870401207934061,y:.497431122678351},{x:.06945142103699212,y:.4949672455435709},{x:.07032179921115676,y:.4933388825112154},{x:.07100061044171635,y:.4916218095236955},{x:.07239614115864691,y:.4894580616864063},{x:.07360986744638548,y:.48718733951411786},{x:.07478119941633177,y:.4857600673791044},{x:.07578195180149752,y:.48420841696912487},{x:.07757279404935197,y:.4823584994767568},{x:.07920619484660538,y:.4803681948466053},{x:.1292061948466054,y:.43036819484660543},{x:.1324047212320044,y:.4277432320802026},{x:.1355710052680468,y:.42507946670648067},{x:.13581237417673697,y:.4249466435819557},{x:.13602533951411794,y:.4247718674463855},{x:.13967451194327588,y:.422821344145996},{x:.14329963156393744,y:.42082647364918746},{x:.21329963156393744,y:.39082647364918743},{x:.21510775104315333,y:.39025382151681987},{x:.2168404136401385,y:.3894823898342746},{x:.21930272871556003,y:.3889252240779052},{x:.22170947225776405,y:.3881629808537447},{x:.22359456811709633,y:.38795407868297094},{x:.22544443694348562,y:.38753549554788497},{x:.30544443694348566,y:.37753549554788496},{x:.30933066171136914,y:.37743373006124875},{x:.3132134481214367,y:.3772411973248817},{x:.31373545479679327,y:.3773183852372503},{x:.314262956584918,y:.37730457196617717},{x:.3180943620951528,y:.37796292671622445},{x:.321940103126635,y:.37853158749346005},{x:.39912055139763536,y:.39782669956121014},{x:.3920145202755848,y:.3793136184800785},{x:.3919728818872528,y:.3791621799808353},{x:.39190347676812315,y:.3790212888743934},{x:.33928123709710245,y:.23902627390054626},{x:.29593066247424293,y:.13853176000209894},{x:.2601678276974797,y:.06104561798577861},{x:.25727396725620644,y:.05271224015242973},{x:.25606147289685455,y:.04397442167208486},{x:.2565769400976792,y:.035167952008718584},{x:.2588005597432301,y:.02663125885276897},{x:.2626468793775489,y:.018692402534786497},{x:.2679680870941297,y:.011656468850909336},{x:.274559691864592,y:.005793844786811796},{x:.2821683820142214,y:.0013298276974796769},{x:.29050175984757026,y:-.0015640327437935753},{x:.29923957832791515,y:-.002776527103145486},{x:.30804604799128144,y:-.002261059902320825},{x:.31658274114723106,y:-3744025676995222e-20},{x:.32452159746521353,y:.003808879377548882},{x:.3315575311490907,y:.009130087094129706},{x:.33742015521318824,y:.015721691864591977},{x:.34188417230252033,y:.023330382014221395},{x:.3778841723025203,y:.10133038201422136},{x:.3780704961344211,y:.10186693411204945},{x:.37834550457920557,y:.10236389998544072},{x:.42234550457920556,y:.2043638999854408},{x:.4226728981736059,y:.20538920106595157},{x:.42314852323187685,y:.20635471112560658},{x:.47609350933819694,y:.3472083534084579},{x:.5496013805841499,y:.5387157021808093},{x:.5512752235949963,y:.542063388202502},{x:.5520259437659378,y:.5440252139743784},{x:.5529745491659372,y:.5458993775022888},{x:.553598518494472,y:.5481347580495968},{x:.5544279630456541,y:.5503023109672317},{x:.5547815251174404,y:.5523728990468965},{x:.5553462721645,y:.554396114781092},{x:.555522150986547,y:.5567102734952235},{x:.5559127893965689,y:.5589979940959194},{x:.5558556061770612,y:.5610977729446709},{x:.5560147919588762,y:.5631922898391183},{x:.5557358213499382,y:.5654962948984841},{x:.5556726416037749,y:.5678162673625252},{x:.5552069106120301,y:.5698645436567753},{x:.5549544177082778,y:.5719498706018395},{x:.5349544177082779,y:.6619498706018395},{x:.5345092452033302,y:.663307558548854},{x:.5342480120020212,y:.6647122835522489},{x:.5331378863550271,y:.6674899313564284},{x:.5322058990004909,y:.6703323081518522},{x:.5315044085816177,y:.6715770596583215},{x:.5309741466497647,y:.6729038291953012},{x:.5293434595512297,y:.6754115305058349},{x:.5278748598680685,y:.6780174701150343},{x:.5269440094186665,y:.6791014500786302},{x:.5261650964249364,y:.6802992771399491},{x:.4861650964249363,y:.7302992771399491},{x:.4855393928217795,y:.7309407996522789},{x:.48502142797480674,y:.7316720783612058},{x:.48246447922773295,y:.7340934525762789},{x:.48000567043073006,y:.7366144244690945},{x:.4792668347133476,y:.7371215515888083},{x:.4786161570168623,y:.7377377290536072},{x:.47563595264764597,y:.7396137412876539},{x:.4727325719538572,y:.7416065836124539},{x:.4719089971645242,y:.7419598267287414},{x:.4711506117974981,y:.7424372235949962},{x:.4111506117974981,y:.7724372235949962},{x:.40814803697660645,y:.7735862009991664},{x:.4052110607504687,y:.7748937847545917},{x:.4040364518244048,y:.77515955677446},{x:.40291168903276836,y:.7755899630456542},{x:.39974265347336024,y:.7761310898824948},{x:.39660701348596056,y:.7768405731449995},{x:.3166070134859606,y:.7868395731449994},{x:.31542693671630134,y:.7868704603456931},{x:.31426350899694466,y:.7870703881908964},{x:.3110259999999998,y:.7869856499834279},{x:.3077884910030554,y:.7870703881908964},{x:.3066250632836987,y:.7868704603456931},{x:.30544498651403945,y:.7868395731449994},{x:.22544498651403946,y:.7768405731449995},{x:.22359484289355938,y:.7764219517671516},{x:.22170947225776405,y:.7762130191462554},{x:.21930299190993624,y:.775450859278766},{x:.2168409392495313,y:.7748937847545917},{x:.21510801459933976,y:.7741222619544408},{x:.21329963156393744,y:.7735495263508126},{x:.14329963156393744,y:.7435495263508126},{x:.1396745119432796,y:.741554655854006},{x:.13602533951411788,y:.7396041325536146},{x:.13581237417673678,y:.7394293564180442},{x:.1355710052680468,y:.7392965332935194},{x:.13240472123200803,y:.7366327679198006},{x:.12920619484660534,y:.7340078051533947},{x:.07920619484660535,y:.6840078051533947},{x:.07757279404935197,y:.6820175005232432},{x:.0757819518014975,y:.6801675830308751},{x:.07478119941633177,y:.6786159326208956},{x:.07360986744638545,y:.6771886604858821},{x:.07239614115864686,y:.6749179383135936},{x:.07100061044171635,y:.6727541904763045},{x:.07032179921115676,y:.6710371174887846},{x:.06945142103699209,y:.669408754456429},{x:.06870401207934061,y:.666944877321649},{x:.06775742235616294,y:.664550450755382},{x:.04775742235616295,y:.5945504507553819},{x:.0470974043554446,y:.590925940955322},{x:.04632014162646953,y:.5873247525817227},{x:.046308257010348054,y:.5865923132620157},{x:.04617702144416433,y:.5858716289848723},{x:.0462367922883029,y:.5821879999999999},{x:.04617702144416433,y:.5785043710151274}],[{x:.13782670643108905,y:.5821879999999999},{x:.15109114488080894,y:.6286135345740196},{x:.18671787059591238,y:.6642402602891231},{x:.24291204200407931,y:.688323476606909},{x:.311026,y:.696836869931924},{x:.377796042530131,y:.6884914492411893},{x:.4220611757635009,y:.6663588826245044},{x:.4493630453483168,y:.6322315456434845},{x:.46363172164975686,y:.5680225022870041},{x:.4540425513192988,y:.5488441616260881},{x:.42235697647551157,y:.5171585867823008},{x:.37255000597497323,y:.48395393978194207},{x:.30826669745594837,y:.4678831126521858},{x:.24291230161158606,y:.4760524121327311},{x:.1867178705959123,y:.500135739710877},{x:.15109114488080894,y:.5357624654259804},{x:.13782670643108905,y:.5821879999999999}]],"!":[[{x:.20646600000000004,y:.05103000000000002},{x:.20733066238185466,y:.04225093550927423},{x:.20989142103699213,y:.03380924554357098},{x:.2140498674463855,y:.026029339514117927},{x:.21964619484660539,y:.019210194846605383},{x:.22646533951411793,y:.013613867446385479},{x:.23424524554357098,y:.009455421036992116},{x:.24268693550927425,y:.006894662381854655},{x:.251466,y:.0060300000000000215},{x:.350587,y:.0060300000000000215},{x:.3593660644907258,y:.006894662381854655},{x:.36780775445642905,y:.009455421036992116},{x:.3755876604858821,y:.013613867446385479},{x:.38240680515339465,y:.019210194846605383},{x:.3880031325536145,y:.026029339514117927},{x:.3921615789630079,y:.03380924554357098},{x:.39472233761814535,y:.04225093550927425},{x:.39558699999999997,y:.05103000000000002},{x:.39472233761814535,y:.05980906449072579},{x:.3921615789630079,y:.06825075445642906},{x:.3880031325536145,y:.07603066048588211},{x:.38240680515339465,y:.08284980515339466},{x:.3755876604858821,y:.08844613255361455},{x:.36780775445642905,y:.09260457896300792},{x:.3593660644907258,y:.09516533761814538},{x:.350587,y:.09603000000000002},{x:.251466,y:.09603000000000002},{x:.24268693550927425,y:.09516533761814538},{x:.23424524554357098,y:.09260457896300792},{x:.22646533951411793,y:.08844613255361455},{x:.21964619484660539,y:.08284980515339466},{x:.2140498674463855,y:.07603066048588211},{x:.20989142103699213,y:.06825075445642906},{x:.20733066238185466,y:.05980906449072579},{x:.20646600000000004,y:.05103000000000002}],[{x:.25602600000000003,y:.25043400000000005},{x:.25689066238185465,y:.24165493550927428},{x:.2594514210369921,y:.233213245543571},{x:.2636098674463855,y:.22543333951411795},{x:.26920619484660535,y:.2186141948466054},{x:.27602533951411795,y:.2130178674463855},{x:.283805245543571,y:.20885942103699215},{x:.2922469355092743,y:.20629866238185468},{x:.301026,y:.20543400000000006},{x:.3098050644907258,y:.20629866238185468},{x:.3182467544564291,y:.20885942103699215},{x:.32602666048588214,y:.2130178674463855},{x:.3328458051533947,y:.2186141948466054},{x:.33844213255361455,y:.22543333951411795},{x:.34260057896300794,y:.233213245543571},{x:.3451613376181454,y:.24165493550927428},{x:.346026,y:.25043400000000005},{x:.346026,y:.729004},{x:.3451613376181454,y:.7377830644907257},{x:.34260057896300794,y:.746224754456429},{x:.33844213255361455,y:.7540046604858821},{x:.3328458051533947,y:.7608238051533946},{x:.32602666048588214,y:.7664201325536145},{x:.3182467544564291,y:.7705785789630079},{x:.3098050644907258,y:.7731393376181454},{x:.301026,y:.774004},{x:.2922469355092743,y:.7731393376181454},{x:.283805245543571,y:.7705785789630079},{x:.27602533951411795,y:.7664201325536145},{x:.26920619484660535,y:.7608238051533946},{x:.2636098674463855,y:.7540046604858821},{x:.2594514210369921,y:.746224754456429},{x:.25689066238185465,y:.7377830644907257},{x:.25602600000000003,y:.729004},{x:.25602600000000003,y:.25043400000000005}]],'"':[[{x:.12004,y:.476978},{x:.12090466238185463,y:.4681989355092742},{x:.1234654210369921,y:.459757245543571},{x:.12762386744638546,y:.4519773395141179},{x:.13322019484660536,y:.44515819484660535},{x:.1400393395141179,y:.4395618674463855},{x:.14781924554357095,y:.4354034210369921},{x:.15626093550927422,y:.43284266238185465},{x:.16504,y:.43197800000000003},{x:.17381906449072576,y:.43284266238185465},{x:.18226075445642903,y:.4354034210369921},{x:.19004066048588208,y:.4395618674463855},{x:.19685980515339463,y:.44515819484660535},{x:.20245613255361453,y:.4519773395141179},{x:.2066145789630079,y:.459757245543571},{x:.20917533761814536,y:.4681989355092742},{x:.21004,y:.476978},{x:.21004,y:.729004},{x:.20917533761814536,y:.7377830644907257},{x:.2066145789630079,y:.746224754456429},{x:.20245613255361453,y:.7540046604858821},{x:.19685980515339463,y:.7608238051533946},{x:.19004066048588208,y:.7664201325536145},{x:.18226075445642903,y:.7705785789630079},{x:.17381906449072576,y:.7731393376181454},{x:.16504,y:.774004},{x:.15626093550927422,y:.7731393376181454},{x:.14781924554357095,y:.7705785789630079},{x:.1400393395141179,y:.7664201325536145},{x:.13322019484660536,y:.7608238051533946},{x:.12762386744638546,y:.7540046604858821},{x:.1234654210369921,y:.746224754456429},{x:.12090466238185463,y:.7377830644907257},{x:.12004,y:.729004},{x:.12004,y:.476978}],[{x:.392013,y:.476978},{x:.3928776623818546,y:.4681989355092742},{x:.39543842103699206,y:.459757245543571},{x:.39959686744638545,y:.4519773395141179},{x:.4051931948466053,y:.44515819484660535},{x:.4120123395141179,y:.4395618674463855},{x:.419792245543571,y:.4354034210369921},{x:.42823393550927424,y:.43284266238185465},{x:.437013,y:.43197800000000003},{x:.4457920644907258,y:.43284266238185465},{x:.45423375445642905,y:.4354034210369921},{x:.4620136604858821,y:.4395618674463855},{x:.46883280515339465,y:.44515819484660535},{x:.4744291325536145,y:.4519773395141179},{x:.4785875789630079,y:.459757245543571},{x:.48114833761814535,y:.4681989355092742},{x:.48201299999999997,y:.476978},{x:.48201299999999997,y:.729004},{x:.48114833761814535,y:.7377830644907257},{x:.4785875789630079,y:.746224754456429},{x:.4744291325536145,y:.7540046604858821},{x:.46883280515339465,y:.7608238051533946},{x:.4620136604858821,y:.7664201325536145},{x:.45423375445642905,y:.7705785789630079},{x:.4457920644907258,y:.7731393376181454},{x:.437013,y:.774004},{x:.42823393550927424,y:.7731393376181454},{x:.419792245543571,y:.7705785789630079},{x:.4120123395141179,y:.7664201325536145},{x:.4051931948466053,y:.7608238051533946},{x:.39959686744638545,y:.7540046604858821},{x:.39543842103699206,y:.746224754456429},{x:.3928776623818546,y:.7377830644907257},{x:.392013,y:.729004},{x:.392013,y:.476978}]],"#":[[{x:-.04343582416242281,y:.17932596542766122},{x:-.043155600373289436,y:.1705088746946064},{x:-.04116063193533153,y:.16191587083690517},{x:-.037527584366828626,y:.15387717817379684},{x:-.03239607364840174,y:.1467017191561739},{x:-.025963300859175642,y:.14066524265003977},{x:-.01847647384989975,y:.13599972706223024},{x:-.010223307183879607,y:.1328844655403335},{x:-.0015209654276611437,y:.13143917583757725},{x:.007296125305393629,y:.13171939962671061},{x:.11028337660265361,y:.14517801654688708},{x:.10171449233133083,y:.05447855391336175},{x:.10174959121806887,y:.04565708110917159},{x:.10350499965956604,y:.03701195788446062},{x:.10691325829386003,y:.02887541147651351},{x:.11184338965300836,y:.02156012480075985},{x:.11810593155372849,y:.015347220221688843},{x:.1254602180228497,y:.01047545617803717},{x:.13362362795569505,y:.007132051829885598},{x:.14228244608663826,y:.005445492331330834},{x:.15110391889082841,y:.0054805912180688685},{x:.1597490421155394,y:.0072359996595660475},{x:.1678855885234865,y:.010644258293860037},{x:.17520087519924016,y:.015574389653008364},{x:.18141377977831116,y:.02183693155372849},{x:.18628554382196283,y:.029191218022849703},{x:.18962894817011441,y:.03735462795569504},{x:.19131550766866917,y:.04601344608663827},{x:.2018142041879224,y:.1571394809935999},{x:.36570083500909,y:.17855657247605955},{x:.35397849233133083,y:.05447855391336175},{x:.35401359121806886,y:.04565708110917159},{x:.35576899965956604,y:.03701195788446062},{x:.35917725829386,y:.02887541147651351},{x:.3641073896530084,y:.02156012480075985},{x:.3703699315537285,y:.015347220221688843},{x:.37772421802284967,y:.01047545617803717},{x:.38588762795569503,y:.007132051829885598},{x:.39454644608663825,y:.005445492331330834},{x:.4033679188908284,y:.0054805912180688685},{x:.4120130421155394,y:.0072359996595660475},{x:.4201495885234865,y:.010644258293860037},{x:.42746487519924015,y:.015574389653008364},{x:.4336777797783111,y:.02183693155372849},{x:.4385495438219628,y:.029191218022849703},{x:.44189294817011443,y:.03735462795569504},{x:.44357950766866916,y:.04601344608663827},{x:.45723166259435877,y:.19051803692277236},{x:.5748861253053936,y:.20589339962671058},{x:.5834791291630949,y:.20788836806466848},{x:.5915178218262032,y:.2115214156331714},{x:.5986932808438261,y:.21665292635159827},{x:.6047297573499603,y:.22308569914082438},{x:.6093952729377698,y:.23057252615010027},{x:.6125105344596665,y:.2388256928161204},{x:.6139558241624228,y:.24752803457233888},{x:.6136756003732894,y:.25634512530539366},{x:.6116806319353315,y:.2649381291630949},{x:.6080475843668286,y:.2729768218262032},{x:.6029160736484017,y:.2801522808438262},{x:.5964833008591757,y:.2861887573499603},{x:.5889964738498997,y:.29085427293776983},{x:.5807433071838796,y:.29396953445966656},{x:.5720409654276611,y:.2954148241624228},{x:.5632238746946063,y:.2951346003732895},{x:.4659139564059225,y:.28241791072205386},{x:.48521785958998953,y:.48674482074743597},{x:.6064180682130128,y:.5025833921657807},{x:.6150110746232834,y:.5045783496089273},{x:.6230497719348954,y:.5082113868918628},{x:.6302252375183169,y:.5133428884292346},{x:.6362617222552247,y:.5197756534947408},{x:.640927247422479,y:.5272624745344501},{x:.6440425195043586,y:.5355156372144642},{x:.645487820341822,y:.544217977121417},{x:.6452076078342193,y:.5530350682130128},{x:.6432126503910727,y:.5616280746232835},{x:.6395796131081373,y:.5696667719348955},{x:.6344481115707654,y:.576842237518317},{x:.6280153465052593,y:.5828787222552247},{x:.6205285254655499,y:.587544247422479},{x:.6122753627855358,y:.5906595195043587},{x:.603573022878583,y:.592104820341822},{x:.5947559317869872,y:.5918246078342193},{x:.493900150869001,y:.5786446677402959},{x:.5066445076686692,y:.7135404460866382},{x:.5066094087819312,y:.7223619188908285},{x:.5048540003404339,y:.7310070421155394},{x:.50144574170614,y:.7391435885234865},{x:.4965156103469916,y:.7464588751992401},{x:.4902530684462715,y:.7526717797783111},{x:.4828987819771503,y:.7575435438219629},{x:.47473537204430494,y:.7608869481701144},{x:.4660765539133617,y:.7625735076686692},{x:.45725508110917157,y:.7625384087819311},{x:.44860995788446056,y:.760783000340434},{x:.4404734114765135,y:.7573747417061399},{x:.43315812480075977,y:.7524446103469916},{x:.4269452202216888,y:.7461820684462716},{x:.42207345617803715,y:.7388277819771503},{x:.41873005182988554,y:.730664372044305},{x:.4170434923313308,y:.7220055539133617},{x:.40236933467780645,y:.5666833238969633},{x:.23848272425781383,y:.5452664483557571},{x:.25438050766866915,y:.7135404460866382},{x:.2543454087819311,y:.7223619188908285},{x:.25259000034043394,y:.7310070421155394},{x:.24918174170614,y:.7391435885234865},{x:.2442516103469916,y:.7464588751992401},{x:.23798906844627152,y:.7526717797783111},{x:.2306347819771503,y:.7575435438219629},{x:.22247137204430495,y:.7608869481701144},{x:.21381255391336174,y:.7625735076686692},{x:.20499108110917158,y:.7625384087819311},{x:.1963459578844606,y:.760783000340434},{x:.18820941147651346,y:.7573747417061399},{x:.1808941248007598,y:.7524446103469916},{x:.17468122022168883,y:.7461820684462716},{x:.16980945617803714,y:.7388277819771503},{x:.16646605182988555,y:.730664372044305},{x:.16477949233133082,y:.7220055539133617},{x:.14695190806661926,y:.5333051045124245},{x:.02716793178698713,y:.5176516078342193},{x:.01857492537671658,y:.5156566503910727},{x:.01053622806510461,y:.5120236131081373},{x:.0033607624816830023,y:.5068921115707654},{x:-.0026757222552247634,y:.5004593465052593},{x:-.0073412474224789775,y:.4929725254655499},{x:-.010456519504358698,y:.48471936278553585},{x:-.011901820341822023,y:.476017022878583},{x:-.011621607834219276,y:.4671999317869871},{x:-.00962665039107264,y:.45860692537671655},{x:-.005993613108137223,y:.45056822806510455},{x:-.0008621115707654614,y:.44339276248168297},{x:.005570653494740684,y:.4373562777447752},{x:.013057474534450029,y:.432690752577521},{x:.02131063721446411,y:.42957548049564126},{x:.03001297712141698,y:.42813017965817796},{x:.03883006821301287,y:.4284103921657807},{x:.13826961678760774,y:.4414052575195645},{x:.1189656704142173,y:.23707789034616855},{x:-.004366125305393629,y:.2209606003732895},{x:-.012959129163094893,y:.21896563193533158},{x:-.0209978218262032,y:.2153325843668287},{x:-.028173280843826164,y:.2102010736484018},{x:-.034209757349960276,y:.2037683008591757},{x:-.03887527293776982,y:.1962814738498998},{x:-.041990534459666565,y:.18802830718387967},{x:-.04343582416242281,y:.17932596542766122}],[{x:.2104964979994861,y:.24903935479288136},{x:.22980043297880234,y:.4533666013628972},{x:.39368704339879496,y:.4747834769041034},{x:.3743831288206537,y:.27045644627534104},{x:.2104964979994861,y:.24903935479288136}]],$:[[{x:.030517420733400163,y:.165091535964518},{x:.03086584266660257,y:.1562768767808978},{x:.032927224468652025,y:.14769956254897784},{x:.06950822446865203,y:.04228956254897785},{x:.0704003940010533,y:.04035550336969822},{x:.07109145007989037,y:.03834080913001754},{x:.07224350295250744,y:.03635998272422403},{x:.073203348392932,y:.034279214644477654},{x:.0744556913660193,y:.03255637151138059},{x:.07552651634405921,y:.03071520740954014},{x:.07704287290513265,y:.02899719639360223},{x:.07839021289928177,y:.02714366624511229},{x:.07995460247492134,y:.0256982470536212},{x:.08136404514878363,y:.02410136799351792},{x:.08318643266605391,y:.022712194567306505},{x:.08486948969354943,y:.02115713247420773},{x:.0866858072576693,y:.0200446838732511},{x:.08837970353582197,y:.01875345702162473},{x:.17373770353582196,y:-.03394954297837521},{x:.17475219432147746,y:-.03444582628601368},{x:.17568351020275566,y:-.03508468417701866},{x:.17870701554383397,y:-.03638050305696308},{x:.18166188368778688,y:-.037826008286632525},{x:.18275370138776084,y:-.03811483831561822},{x:.18379175728720304,y:-.038559730016208084},{x:.18700996854351615,y:-.03924079346911771},{x:.19019006380536974,y:-.04008205754340442},{x:.19131725047775072,y:-.0401523347177012},{x:.19242215448928965,y:-.04038616328932037},{x:.262121,y:-.048110644533924524},{x:.262121,y:-.08350199999999997},{x:.2629856623818546,y:-.09228106449072573},{x:.26554642103699205,y:-.100722754456429},{x:.26970486744638544,y:-.10850266048588206},{x:.2753011948466053,y:-.1153218051533946},{x:.2821203395141179,y:-.1209181325536145},{x:.28990024554357097,y:-.12507657896300786},{x:.29834193550927424,y:-.12763733761814533},{x:.307121,y:-.12850199999999995},{x:.3159000644907258,y:-.12763733761814533},{x:.32434175445642904,y:-.12507657896300786},{x:.3321216604858821,y:-.1209181325536145},{x:.33894080515339464,y:-.1153218051533946},{x:.3445371325536145,y:-.10850266048588206},{x:.3486955789630079,y:-.100722754456429},{x:.35125633761814534,y:-.09228106449072573},{x:.35212099999999996,y:-.08350199999999997},{x:.35212099999999996,y:-.05796857189257534},{x:.3537665284657676,y:-.05798865052825875},{x:.3565834008023822,y:-.05822276473922817},{x:.35816715833059226,y:-.05804234673933715},{x:.35976104048452195,y:-.05806179518994546},{x:.3625398346041163,y:-.05754422155704884},{x:.36534825494544937,y:-.05722429279787242},{x:.3668663832111493,y:-.05673836571308556},{x:.3684334335709129,y:-.056446489484502926},{x:.37105786033397337,y:-.05539674504422484},{x:.37374990266128777,y:-.05453506799769968},{x:.49568890266128773,y:-.0018330679976996528},{x:.4995437197067623,y:.0003036028478311586},{x:.5033988605511543,y:.0024396894158641644},{x:.5034014762743246,y:.0024419030290919073},{x:.503404473339876,y:.00244356426035406},{x:.5067683773534712,y:.005291217073469004},{x:.510132712931077,y:.008138360005776092},{x:.5101348465393426,y:.008141041387321917},{x:.510137461926978,y:.00814325539697476},{x:.5128811799638975,y:.011592456477016289},{x:.5156254207452635,y:.015041241667436683},{x:.5156269902452553,y:.015044287773311453},{x:.5156291234470946,y:.015046969478205698},{x:.5176472159618929,y:.018965167962033513},{x:.519665902312761,y:.02288306052976895},{x:.5684429023127611,y:.1458620605297689},{x:.5688122064775901,y:.14714915498994666},{x:.5693537919217377,y:.14837377040805427},{x:.5700262192706007,y:.15138021786244946},{x:.5708758841928585,y:.15434145989163614},{x:.5709869926090132,y:.15567587086110493},{x:.5712792610244494,y:.1569826137160382},{x:.5713522390683521,y:.16006247719363653},{x:.5716078682563359,y:.16313258119086366},{x:.5714565110896938,y:.16446302800441426},{x:.5714882307651191,y:.1658016809010868},{x:.5709589549987614,y:.16883660297565092},{x:.5706107247661352,y:.1718975865660398},{x:.570202718587728,y:.17317294089875004},{x:.5699726705538047,y:.1744920601570685},{x:.5455836705538047,y:.26233106015706853},{x:.5448796820390573,y:.26415145628779163},{x:.5443792359109676,y:.2660379863232085},{x:.5432925447356423,y:.2682555269445408},{x:.5424018225194911,y:.2705587850827968},{x:.5413562192793141,y:.27220686146627543},{x:.5404973453311464,y:.27395951015977},{x:.5389989139081434,y:.2759224384285429},{x:.5376759632977357,y:.2780076688235372},{x:.5363289272782685,y:.2794200908086057},{x:.5351446315541886,y:.28097150485378414},{x:.5332920437627642,y:.28260438653745124},{x:.5315877050081386,y:.28439145495451523},{x:.529991002048182,y:.2855139439563835},{x:.528526796368706,y:.2868045033815319},{x:.4553637963687061,y:.3395095033815319},{x:.4552094954443409,y:.33959910378534747},{x:.4550747122553104,y:.3397160246969866},{x:.45139660000367776,y:.341813199213456},{x:.44773515946955245,y:.3439393468807752},{x:.44756634322254935,y:.3439971230209339},{x:.4474113397164003,y:.34408550243429054},{x:.4433947629085852,y:.34542481622689836},{x:.43938888509457313,y:.34679579895012297},{x:.43921204103863115,y:.34681953052195974},{x:.439042773913178,y:.34687597206574233},{x:.35212099999999996,y:.3666493043587998},{x:.35212099999999996,y:.6320956693586206},{x:.3838005126074005,y:.6288356018928482},{x:.4577579663937751,y:.5527249728659002},{x:.46449612147708186,y:.5470313904751531},{x:.47221556762189953,y:.5427617575185425},{x:.48061965084199804,y:.5400801535961528},{x:.48938540693229315,y:.5390896312428609},{x:.49817597280212744,y:.5398282556772123},{x:.5066535319349293,y:.5422676419764202},{x:.5144922964874953,y:.5463140458930298},{x:.5213910271340998,y:.551811966393775},{x:.5270846095248467,y:.5585501214770818},{x:.5313542424814575,y:.5662695676218995},{x:.534035846403847,y:.5746736508419981},{x:.535026368757139,y:.5834394069322931},{x:.5342877443227877,y:.5922299728021274},{x:.5318483580235798,y:.6007075319349293},{x:.5278019541069703,y:.6085462964874953},{x:.5223040336062249,y:.6154450271340998},{x:.4369490336062249,y:.7032850271340998},{x:.435089451582588,y:.7048563301588934},{x:.43337550685970433,y:.706585327551969},{x:.43172842132509603,y:.7076963215886295},{x:.4302108785229181,y:.7089786095248467},{x:.4280804818333404,y:.7101569339468108},{x:.4260621594195314,y:.7115183351118896},{x:.4242299779872524,y:.7122866512623272},{x:.42249143237810044,y:.7132482424814575},{x:.4201720909726226,y:.7139883059538676},{x:.4179269538663623,y:.7149297930076584},{x:.4159800862413552,y:.7153259053130885},{x:.41408734915800194,y:.715929846403847},{x:.4116681940261354,y:.716203208702491},{x:.4092825215873294,y:.7166886008255086},{x:.35212099999999996,y:.7225709645831306},{x:.35212099999999996,y:.7597659999999999},{x:.35125633761814534,y:.7685450644907257},{x:.3486955789630079,y:.776986754456429},{x:.3445371325536145,y:.7847666604858821},{x:.33894080515339464,y:.7915858051533946},{x:.3321216604858821,y:.7971821325536145},{x:.32434175445642904,y:.8013405789630078},{x:.3159000644907258,y:.8039013376181453},{x:.307121,y:.804766},{x:.29834193550927424,y:.8039013376181453},{x:.28990024554357097,y:.8013405789630078},{x:.2821203395141179,y:.7971821325536145},{x:.2753011948466053,y:.7915858051533946},{x:.26970486744638544,y:.7847666604858821},{x:.26554642103699205,y:.776986754456429},{x:.2629856623818546,y:.7685450644907257},{x:.262121,y:.7597659999999999},{x:.262121,y:.7318326623736131},{x:.23856652158732947,y:.7342566008255086},{x:.23743405616423266,y:.7342615520061975},{x:.23631438427367413,y:.7344313675125375},{x:.2330314335362298,y:.7342808004350606},{x:.22974506326706257,y:.734295168567351},{x:.22863339192208898,y:.7340790915684273},{x:.22750210485113245,y:.7340272069677483},{x:.2243116092711877,y:.7332390610779145},{x:.22108558260167874,y:.7326120140964958},{x:.22003742624118275,y:.7321832126358507},{x:.21893799871753236,y:.7319116218242595},{x:.21596256725097532,y:.7305161851266182},{x:.21292085857685591,y:.729271820095334},{x:.21197649726195836,y:.7286467727726252},{x:.21095117966878213,y:.7281659128327016},{x:.2083051564782311,y:.7262168111769735},{x:.20556465695803808,y:.7244029483461277},{x:.204760381964467,y:.7236056753794367},{x:.20384857668186554,y:.7229340254890024},{x:.10629557668186554,y:.6350940254890024},{x:.10393291169686979,y:.6325042238563513},{x:.10146752815288923,y:.6300120075116347},{x:.10096488682836192,y:.6292508655939548},{x:.10035013880638408,y:.6285770182897039},{x:.09853811700104832,y:.6255760458964971},{x:.09660631239978806,y:.6226507443205297},{x:.09626182060918942,y:.6218061670735107},{x:.09579034588565258,y:.6210253361666956},{x:.09459860224176168,y:.6177285186990383},{x:.0932746147506803,y:.6144825495908574},{x:.056695614750680294,y:.49150554959085735},{x:.05654965816703397,y:.490750439567249},{x:.05628361804350595,y:.49002883224693095},{x:.05571374572525952,y:.48642582571377374},{x:.055021470477783566,y:.4828443224653027},{x:.055025633066628665,y:.4820752469521588},{x:.05490548343396577,y:.4813156032607913},{x:.055049472757300266,y:.47767065091379934},{x:.05506921600663437,y:.4740229090450286},{x:.05522333780201598,y:.4732694231830167},{x:.05525369594322076,y:.472500935801646},{x:.05610601347919053,y:.46895411111540136},{x:.056837016503334954,y:.46538031130067065},{x:.05713517469108906,y:.46467137112890816},{x:.05731487395982006,y:.46392357259662753},{x:.08169987395982006,y:.39365157259662753},{x:.08192222202041206,y:.3931695328553223},{x:.08205835369770847,y:.3926564352635495},{x:.08376780756696771,y:.3891683934837906},{x:.08539480756850773,y:.3856411369034641},{x:.08570692456181836,y:.38521173737536313},{x:.08594054088151196,y:.3847350567827023},{x:.08829763126802886,y:.38164753465350854},{x:.09058150254284453,y:.37850546527353984},{x:.0909713939878581,y:.378145207541698},{x:.09129351720579659,y:.37772326251599964},{x:.09420766244788897,y:.3751549117812935},{x:.09706063710369874,y:.372518777565862},{x:.09751331969083687,y:.37224150613287915},{x:.09791157079240381,y:.3718905117848512},{x:.17107757079240382,y:.3191875117848513},{x:.17123114354048857,y:.3190983419119289},{x:.17136528774468962,y:.3189819753030134},{x:.17504412834709762,y:.3168843854977816},{x:.17870637355344754,y:.314757953928811},{x:.1788743916234626,y:.3147004579868701},{x:.17902866028359976,y:.31461249756570947},{x:.183046032465951,y:.31327291855818423},{x:.1870527548771027,y:.3119018143721617},{x:.18722876142884332,y:.31187820189800686},{x:.18739722608682208,y:.3118220279342577},{x:.262121,y:.2948235482063542},{x:.262121,y:.04244038202745839},{x:.212402420161311,y:.04795051974434915},{x:.14928483997433578,y:.08692151049617265},{x:.11795277553134796,y:.17720643745102208},{x:.114257651607068,y:.18521678535552225},{x:.10907078710071823,y:.1923523337548876},{x:.10259151030645056,y:.1983388675257922},{x:.09506881619784838,y:.20294632753270694},{x:.08679179769072982,y:.20599765167145945},{x:.07807853596451803,y:.20737557926659977},{x:.06926387678089782,y:.20702715733339738},{x:.0606865625489779,y:.20496577553134793},{x:.052676214644477706,y:.20127065160706795},{x:.04554066624511235,y:.1960837871007182},{x:.039554132474207776,y:.18960451030645054},{x:.034946672467293015,y:.18208181619784836},{x:.03189534832854049,y:.1738047976907298},{x:.030517420733400163,y:.165091535964518}],[{x:.14709211773983194,y:.4797371545422716},{x:.17592903295677773,y:.5766856037244347},{x:.24922570721126042,y:.6426843927572041},{x:.262121,y:.6413573671491031},{x:.262121,y:.3871228845247169},{x:.21626819752335621,y:.3975536737173561},{x:.16206100150816494,y:.4366002507010456},{x:.14709211773983194,y:.4797371545422716}],[{x:.35212099999999996,y:.034163101195078524},{x:.35212099999999996,y:.2743499680404371},{x:.4101709471377665,y:.26114452085874473},{x:.4630938273127818,y:.2230200535785049},{x:.47920731446793274,y:.1649859973145621},{x:.44287681685863156,y:.07338773859643172},{x:.35212099999999996,y:.034163101195078524}]],"'":[[{x:.25602600000000003,y:.476978},{x:.25689066238185465,y:.4681989355092742},{x:.2594514210369921,y:.459757245543571},{x:.2636098674463855,y:.4519773395141179},{x:.26920619484660535,y:.44515819484660535},{x:.27602533951411795,y:.4395618674463855},{x:.283805245543571,y:.4354034210369921},{x:.2922469355092743,y:.43284266238185465},{x:.301026,y:.43197800000000003},{x:.3098050644907258,y:.43284266238185465},{x:.3182467544564291,y:.4354034210369921},{x:.32602666048588214,y:.4395618674463855},{x:.3328458051533947,y:.44515819484660535},{x:.33844213255361455,y:.4519773395141179},{x:.34260057896300794,y:.459757245543571},{x:.3451613376181454,y:.4681989355092742},{x:.346026,y:.476978},{x:.346026,y:.729004},{x:.3451613376181454,y:.7377830644907257},{x:.34260057896300794,y:.746224754456429},{x:.33844213255361455,y:.7540046604858821},{x:.3328458051533947,y:.7608238051533946},{x:.32602666048588214,y:.7664201325536145},{x:.3182467544564291,y:.7705785789630079},{x:.3098050644907258,y:.7731393376181454},{x:.301026,y:.774004},{x:.2922469355092743,y:.7731393376181454},{x:.283805245543571,y:.7705785789630079},{x:.27602533951411795,y:.7664201325536145},{x:.26920619484660535,y:.7608238051533946},{x:.2636098674463855,y:.7540046604858821},{x:.2594514210369921,y:.746224754456429},{x:.25689066238185465,y:.7377830644907257},{x:.25602600000000003,y:.729004},{x:.25602600000000003,y:.476978}]],"(":[[{x:.14398102142772873,y:.343473372436119},{x:.14438344127795402,y:.34024506484177663},{x:.14461855620935057,y:.33700027938992067},{x:.15480555620935058,y:.27783527938992064},{x:.15553530200183258,y:.27518493680242373},{x:.1560666158259812,y:.2724877993619115},{x:.1764416158259812,y:.20487079936191147},{x:.17757136816824137,y:.2021290142392397},{x:.17852197521392682,y:.19932008699588913},{x:.2090839752139268,y:.13170208699588917},{x:.21040800505224358,y:.12940389577393302},{x:.21154775445201235,y:.12700896170152925},{x:.25229575445201236,y:.05939296170152925},{x:.2531150427152032,y:.05829379345186112},{x:.2537782786760274,y:.05709399256856861},{x:.29452927867602746,y:-.0020700074314313824},{x:.29560111146026063,y:-.0033391000809501682},{x:.29650963843516415,y:-.004729783512322571},{x:.3372576384351641,y:-.05544378351232261},{x:.3386866074193021,y:-.05690267270426387},{x:.3399537097957662,y:-.05850416001284604},{x:.38070370979576623,y:-.10073716001284601},{x:.38742176905533504,y:-.10645444032360908},{x:.3951261287468799,y:-.11075123635207199},{x:.40352071464810957,y:-.11346242463653189},{x:.41228292753057777,y:-.11448381573166892},{x:.42107604046711683,y:-.11377615815049966},{x:.4295621390588101,y:-.11136664677700951},{x:.4374151072958377,y:-.10734787778201216},{x:.444333160012846,y:-.10187429020423372},{x:.4500504403236091,y:-.09515623094466494},{x:.45434723635207197,y:-.08745187125312004},{x:.4570584246365319,y:-.07905728535189037},{x:.45807981573166895,y:-.07029507246942218},{x:.4573721581504997,y:-.06150195953288313},{x:.45496264677700954,y:-.053015860941189874},{x:.45094387778201217,y:-.04516289270416226},{x:.44547029020423373,y:-.03824483998715393},{x:.4061377413616867,y:.0025191240684850026},{x:.3677075745656829,y:.050348403515145926},{x:.3286739379437331,y:.10701906379590062},{x:.2900025757951927,y:.1711891536907596},{x:.2617573982317254,y:.23368121626802973},{x:.24303344075060918,y:.2958190240226623},{x:.23462816944303005,y:.34463593546989096},{x:.24303340667749923,y:.39345182392970596},{x:.26175739639474455,y:.45558881969516635},{x:.2900026404789191,y:.5180819536434618},{x:.328674029726828,y:.5822520885061939},{x:.36770768599197223,y:.6389237351633864},{x:.4061420841180472,y:.6867582808236831},{x:.4454798975405431,y:.7275528000242046},{x:.45095135740921277,y:.7344725356602282},{x:.45496771125722263,y:.7423267393839987},{x:.45737461285859093,y:.7508135785511003},{x:.458079566334583,y:.759606908691815},{x:.4570554807184589,y:.768368807060192},{x:.4543417110461325,y:.7767625588156633},{x:.4500425459642118,y:.7844655967855365},{x:.4443231999757953,y:.791181897540543},{x:.4374034643397718,y:.7966533574092127},{x:.4295492606160011,y:.8006697112572226},{x:.42106242144889966,y:.8030766128585909},{x:.41226909130818484,y:.803781566334583},{x:.403507192939808,y:.8027574807184589},{x:.39511344118433667,y:.8000437110461325},{x:.3874104032144634,y:.7957445459642117},{x:.38069410245945684,y:.7900251999757952},{x:.33994410245945683,y:.7477661999757953},{x:.338681775527778,y:.7461697396410558},{x:.3372576384351641,y:.7447157835123226},{x:.29650963843516415,y:.6940017835123226},{x:.2956010143988682,y:.6926109515089496},{x:.29452907712829884,y:.6913417148135671},{x:.2537780771282988,y:.6321767148135672},{x:.25311493656839296,y:.6309770641401381},{x:.25229575445201236,y:.6298780382984708},{x:.21154775445201235,y:.5622620382984707},{x:.21040795156345282,y:.5598669918310725},{x:.2090838723444427,y:.5575686854051248},{x:.17852187234444272,y:.48994968540512485},{x:.17757135012625538,y:.48714095747585867},{x:.17644166886939822,y:.4843993766680373},{x:.1560666688693982,y:.4167833766680374},{x:.15553533856931018,y:.4140862136984408},{x:.15480557779123924,y:.4114358459543075},{x:.14461857779123924,y:.3522718459543075},{x:.14438345368873493,y:.3490270611669966},{x:.14398102471397584,y:.3457987547100726},{x:.14406527252602844,y:.3446360634540339},{x:.14398102142772873,y:.343473372436119}]],")":[[{x:.14397318426833106,y:-.07029507246942218},{x:.14499457536346808,y:-.07905728535189037},{x:.14770576364792798,y:-.08745187125312004},{x:.1520025596763909,y:-.09515623094466495},{x:.15771983998715397,y:-.10187429020423372},{x:.16463789270416226,y:-.10734787778201214},{x:.1724908609411899,y:-.11136664677700951},{x:.18097695953288315,y:-.11377615815049966},{x:.1897700724694222,y:-.11448381573166892},{x:.19853228535189038,y:-.11346242463653189},{x:.20692687125312006,y:-.11075123635207199},{x:.21463123094466496,y:-.10645444032360907},{x:.22134929020423375,y:-.10073716001284601},{x:.2620992902042337,y:-.05850416001284604},{x:.2633660586938147,y:-.05690309470300352},{x:.26479468609075496,y:-.05544462417080616},{x:.30554468609075497,y:-.004730624170806122},{x:.3064541047100432,y:-.003338648753719708},{x:.307526891803669,y:-.002068307996824087},{x:.348273891803669,y:.05709569200317591},{x:.3489362195699084,y:.058293979727073175},{x:.3497544895549002,y:.059391707275619196},{x:.39050548955490016,y:.12700770727561922},{x:.39164563057902163,y:.12940326331913213},{x:.3929700247860732,y:.13170208699588917},{x:.42353202478607316,y:.19932008699588913},{x:.4244827292530259,y:.20212930210713742},{x:.4256125601984483,y:.2048713835354543},{x:.4459865601984483,y:.27248838353545435},{x:.4465177787005257,y:.27518522990297933},{x:.4472474437906494,y:.27783527938992064},{x:.4574344437906494,y:.33700027938992067},{x:.45766955872204595,y:.3402450648417768},{x:.4580719785722712,y:.34347337243611903},{x:.45798772747397154,y:.3446360634540339},{x:.4580719752860241,y:.3457987547100726},{x:.45766954631126505,y:.34902706116699656},{x:.45743442220876074,y:.3522718459543075},{x:.44724742220876074,y:.4114358459543075},{x:.4465177421348676,y:.414085920594514},{x:.44598650715958776,y:.4167827924880124},{x:.42561250715958776,y:.4843987924880123},{x:.42448274729464536,y:.48714066960378194},{x:.42353212765555726,y:.48994968540512485},{x:.3929701276555573,y:.5575686854051248},{x:.39164568407140216,y:.5598676242877579},{x:.39050548955490016,y:.5622632927243807},{x:.3497544895549002,y:.6298792927243808},{x:.3489363257182038,y:.6309768778726063},{x:.34827409333092635,y:.6321750153799588},{x:.3075270933309263,y:.6913400153799587},{x:.3064542017711834,y:.692610500189881},{x:.30554468609075497,y:.6940026241708062},{x:.26479468609075496,y:.7447166241708062},{x:.26337089070969094,y:.7461701617493295},{x:.2621088975405431,y:.7477661999757953},{x:.2213588975405431,y:.7900251999757952},{x:.21464259678553657,y:.7957445459642117},{x:.20693955881566328,y:.8000437110461325},{x:.19854580706019195,y:.8027574807184589},{x:.1897839086918151,y:.803781566334583},{x:.1809905785511003,y:.8030766128585909},{x:.17250373938399882,y:.8006697112572226},{x:.16464953566022822,y:.7966533574092127},{x:.15772980002420467,y:.791181897540543},{x:.15201045403578817,y:.7844655967855365},{x:.14771128895386743,y:.7767625588156633},{x:.14499751928154103,y:.7683688070601918},{x:.14397343366541698,y:.759606908691815},{x:.14467838714140904,y:.7508135785511002},{x:.14708528874277732,y:.7423267393839987},{x:.1511016425907872,y:.7344725356602282},{x:.15657310245945688,y:.7275528000242046},{x:.19591129092993145,y:.6867578918874246},{x:.23434697314436972,y:.6389240958672278},{x:.27337685298529213,y:.5822523693404118},{x:.3120516621801016,y:.518081284004684},{x:.34029647741491703,y:.4555890988936643},{x:.35901954136421654,y:.39345212569273014},{x:.36742483055696995,y:.344635935469891},{x:.359019507292604,y:.29581872226323463},{x:.3402964755778617,y:.23368093707349602},{x:.3120517268674457,y:.17118982332763816},{x:.27337694476991303,y:.10701878295300266},{x:.23434708457036935,y:.05034804280413771},{x:.1959156338111051,y:.0025195128948044543},{x:.15658270979576625,y:-.03824483998715393},{x:.1511091222179878,y:-.045162892704162266},{x:.14709035322299047,y:-.053015860941189874},{x:.1446808418495003,y:-.06150195953288312},{x:.14397318426833106,y:-.07029507246942218}]],"*":[[{x:.03611444520266741,y:.4654782574484574},{x:.03652686631141767,y:.45666636076295464},{x:.038650478626155074,y:.4481042415682919},{x:.04240367291655979,y:.4401209373034283},{x:.04764221603086716,y:.4330232418741738},{x:.05416479369500318,y:.42708391573544136},{x:.06172074690723879,y:.42253120385992987},{x:.07001970462305517,y:.4195400644118251},{x:.0787427425515426,y:.41822544520266736},{x:.08755463923704532,y:.41863786631141764},{x:.09611675843170807,y:.42076147862615504},{x:.25602600000000003,y:.47756000598755177},{x:.25602600000000003,y:.31805799999999995},{x:.25689066238185465,y:.30927893550927416},{x:.2594514210369921,y:.30083724554357094},{x:.2636098674463855,y:.29305733951411783},{x:.26920619484660535,y:.2862381948466053},{x:.27602533951411795,y:.2806418674463854},{x:.283805245543571,y:.276483421036992},{x:.2922469355092743,y:.2739226623818546},{x:.301026,y:.27305799999999997},{x:.3098050644907258,y:.2739226623818546},{x:.3182467544564291,y:.276483421036992},{x:.32602666048588214,y:.2806418674463854},{x:.3328458051533947,y:.2862381948466053},{x:.33844213255361455,y:.29305733951411783},{x:.34260057896300794,y:.30083724554357094},{x:.3451613376181454,y:.30927893550927416},{x:.346026,y:.31805799999999995},{x:.346026,y:.47756000598755177},{x:.505935241568292,y:.42076147862615504},{x:.5144973607629547,y:.41863786631141764},{x:.5233092574484575,y:.41822544520266736},{x:.5320322953769449,y:.4195400644118251},{x:.5403312530927612,y:.42253120385992987},{x:.5478872063049969,y:.42708391573544136},{x:.5544097839691329,y:.4330232418741738},{x:.5596483270834403,y:.4401209373034283},{x:.5634015213738449,y:.4481042415682919},{x:.5655251336885824,y:.45666636076295464},{x:.5659375547973327,y:.4654782574484574},{x:.5646229355881749,y:.4742012953769448},{x:.5616317961400701,y:.4825002530927612},{x:.5570790842645587,y:.4900562063049968},{x:.5511397581258262,y:.4965787839691328},{x:.5440420626965717,y:.5018173270834402},{x:.5360587584317081,y:.5055705213738448},{x:.37146215609131306,y:.5640339630732496},{x:.47696549129035026,y:.7165911114148321},{x:.48124783600971727,y:.7243035129909579},{x:.48394328176908086,y:.732703166943666},{x:.4849482440995321,y:.7414672792821342},{x:.48422410286230105,y:.7502590500841659},{x:.48179868639903156,y:.758740616528321},{x:.47776520210421775,y:.7665860367726678},{x:.4722786545173053,y:.7734938157169785},{x:.4655498885851679,y:.7791984912903502},{x:.45783748700904214,y:.7834808360097172},{x:.449437833056334,y:.7861762817690807},{x:.4406737207178658,y:.7871812440995319},{x:.431881949915834,y:.786457102862301},{x:.4234003834716789,y:.7840316863990314},{x:.4155549632273321,y:.7799982021042177},{x:.40864718428302144,y:.7745116545173052},{x:.40294250870964976,y:.7677828885851677},{x:.301026,y:.6204122684209616},{x:.19910949129035027,y:.7677828885851677},{x:.19340481571697854,y:.7745116545173052},{x:.18649703677266788,y:.7799982021042177},{x:.17865161652832107,y:.7840316863990314},{x:.17017005008416597,y:.786457102862301},{x:.1613782792821342,y:.7871812440995319},{x:.15261416694366597,y:.7861762817690807},{x:.14421451299095783,y:.7834808360097172},{x:.13650211141483212,y:.7791984912903502},{x:.12977334548269473,y:.7734938157169785},{x:.12428679789578226,y:.7665860367726678},{x:.12025331360096844,y:.758740616528321},{x:.11782789713769894,y:.7502590500841659},{x:.11710375590046794,y:.7414672792821342},{x:.11810871823091917,y:.732703166943666},{x:.12080416399028275,y:.7243035129909579},{x:.1250865087096497,y:.7165911114148321},{x:.23058984390868703,y:.5640339630732496},{x:.06599324156829194,y:.5055705213738448},{x:.058009937303428294,y:.5018173270834402},{x:.05091224187417384,y:.4965787839691328},{x:.04497291573544139,y:.4900562063049968},{x:.04042020385992993,y:.4825002530927612},{x:.03742906441182516,y:.4742012953769448},{x:.03611444520266741,y:.4654782574484574}]],"+":[[{x:-.002030999999999998,y:.33155},{x:-.0011663376181453647,y:.3227709355092742},{x:.0013944210369920967,y:.314329245543571},{x:.005552867446385459,y:.3065493395141179},{x:.011149194846605363,y:.29973019484660535},{x:.017968339514117915,y:.2941338674463855},{x:.025748245543570962,y:.2899754210369921},{x:.03418993550927423,y:.28741466238185465},{x:.042969,y:.28655},{x:.256023,y:.28655},{x:.256023,y:.09133899999999995},{x:.2568876623818546,y:.08255993550927418},{x:.25944842103699206,y:.07411824554357091},{x:.26360686744638545,y:.06633833951411786},{x:.2692031948466054,y:.05951919484660531},{x:.2760223395141179,y:.053922867446385414},{x:.2838022455435709,y:.049764421036992045},{x:.2922439355092742,y:.04720366238185458},{x:.301023,y:.04633899999999995},{x:.3098020644907258,y:.04720366238185458},{x:.31824375445642905,y:.049764421036992045},{x:.3260236604858821,y:.053922867446385414},{x:.3328428051533946,y:.05951919484660531},{x:.3384391325536145,y:.06633833951411786},{x:.3425975789630079,y:.07411824554357091},{x:.34515833761814535,y:.08255993550927418},{x:.34602299999999997,y:.09133899999999995},{x:.34602299999999997,y:.28655},{x:.559083,y:.28655},{x:.5678620644907257,y:.28741466238185465},{x:.576303754456429,y:.2899754210369921},{x:.5840836604858821,y:.2941338674463855},{x:.5909028051533947,y:.29973019484660535},{x:.5964991325536145,y:.3065493395141179},{x:.6006575789630079,y:.314329245543571},{x:.6032183376181454,y:.3227709355092742},{x:.604083,y:.33155},{x:.6032183376181454,y:.3403290644907258},{x:.6006575789630079,y:.348770754456429},{x:.5964991325536145,y:.35655066048588213},{x:.5909028051533947,y:.3633698051533947},{x:.5840836604858821,y:.36896613255361455},{x:.576303754456429,y:.37312457896300794},{x:.5678620644907257,y:.3756853376181454},{x:.559083,y:.37655},{x:.34602299999999997,y:.37655},{x:.34602299999999997,y:.571777},{x:.34515833761814535,y:.5805560644907257},{x:.3425975789630079,y:.588997754456429},{x:.3384391325536145,y:.5967776604858821},{x:.3328428051533946,y:.6035968051533946},{x:.3260236604858821,y:.6091931325536145},{x:.31824375445642905,y:.6133515789630078},{x:.3098020644907258,y:.6159123376181453},{x:.301023,y:.616777},{x:.2922439355092742,y:.6159123376181453},{x:.2838022455435709,y:.6133515789630078},{x:.2760223395141179,y:.6091931325536145},{x:.2692031948466054,y:.6035968051533946},{x:.26360686744638545,y:.5967776604858821},{x:.25944842103699206,y:.588997754456429},{x:.2568876623818546,y:.5805560644907257},{x:.256023,y:.571777},{x:.256023,y:.37655},{x:.042969,y:.37655},{x:.03418993550927421,y:.3756853376181454},{x:.025748245543570934,y:.37312457896300794},{x:.017968339514117904,y:.36896613255361455},{x:.011149194846605356,y:.3633698051533947},{x:.005552867446385459,y:.35655066048588213},{x:.0013944210369920967,y:.348770754456429},{x:-.0011663376181453647,y:.3403290644907258},{x:-.002030999999999998,y:.33155}]],",":[[{x:.1703425796668749,y:-.03158948169003215},{x:.1707557440557006,y:-.035050650253961146},{x:.17102563140319493,y:-.03852592771911176},{x:.17127771326913271,y:-.039423300660751795},{x:.17138819577001116,y:-.0403488367651378},{x:.1724686618106471,y:-.0436628955719719},{x:.1734113563482083,y:-.04701874414557815},{x:.1738336633079298,y:-.04784969558537063},{x:.17412258605517572,y:-.048735893706360625},{x:.1758288320436127,y:-.05177548533469908},{x:.17740810654883146,y:-.054882941638058576},{x:.177984409582707,y:-.05561553857817519},{x:.17844066943717352,y:-.05642834261896521},{x:.18070712529694977,y:-.05907665726715373},{x:.18286228913625774,y:-.06181630349720979},{x:.26855428913625773,y:-.1511263034972098},{x:.27525630293239317,y:-.15686238451505874},{x:.2829485933055849,y:-.16118075031492074},{x:.2913355498506774,y:-.16391544852087458},{x:.3000948665311021,y:-.16496138621450188},{x:.3088899277191117,y:-.1642783685968051},{x:.3173827441455781,y:-.16189264365179173},{x:.3252469416380585,y:-.15789589345116858},{x:.33218030349720973,y:-.1524417108637423},{x:.3379163845150587,y:-.14573969706760687},{x:.3422347503149207,y:-.13804740669441512},{x:.3449694485208745,y:-.12966045014932262},{x:.3460153862145018,y:-.12090113346889794},{x:.34533236859680505,y:-.11210607228088836},{x:.34294664365179167,y:-.10361325585442197},{x:.33894989345116855,y:-.09574905836194152},{x:.33349571086374225,y:-.08881569650279031},{x:.277697993368333,y:-.03066214483501502},{x:.41918956700521515,y:.11679250439324337},{x:.42464400414059766,y:.12372566600271688},{x:.42864104306488354,y:.1315897167531037},{x:.43102707981377775,y:.14008244558427704},{x:.4317104203331251,y:.14887748169003212},{x:.4306648042299889,y:.15763683676513773},{x:.4279304139448243,y:.1660238937063606},{x:.4236123305628265,y:.17371634261896518},{x:.41787649560675666,y:.1804185670052151},{x:.41094333399728317,y:.18587300414059763},{x:.4030792832468963,y:.18987004306488353},{x:.39458655441572293,y:.19225607981377774},{x:.3857915183099679,y:.19293942033312508},{x:.37703216323486227,y:.19189380422998883},{x:.36864510629363945,y:.18915941394482427},{x:.3609526573810348,y:.18484133056282648},{x:.35425043299478487,y:.17910549560675662},{x:.18286343299478489,y:.000495495606756581},{x:.18070816857348473,y:-.0022440714967103576},{x:.1784416154849413,y:-.004892302932393237},{x:.17798532578947307,y:-.005705090221499034},{x:.17740899585940237,y:-.006437666002716908},{x:.1758296072680145,y:-.009545064322455634},{x:.1741232496850793,y:-.012584593305585},{x:.17383429440212667,y:-.013470780818460306},{x:.1734119569351165,y:-.014301716753103766},{x:.1724691391914766,y:-.01765753071433596},{x:.17138855147912546,y:-.02097154985067746},{x:.17127803499816427,y:-.02189708189818214},{x:.17102592018622226,y:-.022794445584277102},{x:.17075590524748027,y:-.02626971313843455},{x:.17034261378549817,y:-.029730866531102167},{x:.17041478319291342,y:-.03066017543569507},{x:.1703425796668749,y:-.03158948169003215}]],"-":[[{x:.12882900000000003,y:.31396500000000005},{x:.12969366238185465,y:.30518593550927425},{x:.13225442103699211,y:.29674424554357104},{x:.13641286744638548,y:.28896433951411793},{x:.14200919484660537,y:.2821451948466054},{x:.14882833951411792,y:.2765488674463855},{x:.15660824554357097,y:.2723904210369921},{x:.16504993550927424,y:.2698296623818547},{x:.173829,y:.26896500000000007},{x:.428224,y:.26896500000000007},{x:.4370030644907258,y:.2698296623818547},{x:.44544475445642906,y:.2723904210369921},{x:.4532246604858821,y:.2765488674463855},{x:.4600438051533946,y:.2821451948466054},{x:.4656401325536145,y:.28896433951411793},{x:.4697985789630079,y:.29674424554357104},{x:.47235933761814536,y:.30518593550927425},{x:.473224,y:.31396500000000005},{x:.47235933761814536,y:.32274406449072585},{x:.4697985789630079,y:.33118575445642906},{x:.4656401325536145,y:.33896566048588217},{x:.4600438051533946,y:.3457848051533947},{x:.4532246604858821,y:.3513811325536146},{x:.44544475445642906,y:.355539578963008},{x:.4370030644907258,y:.3581003376181454},{x:.428224,y:.35896500000000003},{x:.173829,y:.35896500000000003},{x:.16504993550927424,y:.3581003376181454},{x:.15660824554357097,y:.355539578963008},{x:.14882833951411792,y:.3513811325536146},{x:.14200919484660537,y:.3457848051533947},{x:.13641286744638548,y:.33896566048588217},{x:.13225442103699211,y:.33118575445642906},{x:.12969366238185465,y:.32274406449072585},{x:.12882900000000003,y:.31396500000000005}]],".":[[{x:.19450299999999998,y:.148926},{x:.19536766238185463,y:.14014693550927423},{x:.1979284210369921,y:.13170524554357096},{x:.20208686744638546,y:.12392533951411791},{x:.20768319484660536,y:.11710619484660537},{x:.2145023395141179,y:.11150986744638547},{x:.22228224554357093,y:.1073514210369921},{x:.2307239355092742,y:.10479066238185464},{x:.239503,y:.103926},{x:.362549,y:.103926},{x:.3713280644907258,y:.10479066238185464},{x:.3797697544564291,y:.1073514210369921},{x:.38754966048588213,y:.11150986744638547},{x:.3943688051533947,y:.11710619484660537},{x:.39996513255361454,y:.12392533951411791},{x:.40412357896300793,y:.13170524554357096},{x:.4066843376181454,y:.14014693550927423},{x:.407549,y:.148926},{x:.4066843376181454,y:.1577050644907258},{x:.40412357896300793,y:.16614675445642904},{x:.39996513255361454,y:.1739266604858821},{x:.3943688051533947,y:.18074580515339464},{x:.38754966048588213,y:.18634213255361454},{x:.3797697544564291,y:.1905005789630079},{x:.3713280644907258,y:.19306133761814537},{x:.362549,y:.193926},{x:.239503,y:.193926},{x:.2307239355092742,y:.19306133761814537},{x:.22228224554357093,y:.1905005789630079},{x:.2145023395141179,y:.18634213255361454},{x:.20768319484660536,y:.18074580515339464},{x:.20208686744638546,y:.1739266604858821},{x:.1979284210369921,y:.16614675445642904},{x:.19536766238185463,y:.1577050644907258},{x:.19450299999999998,y:.148926}]],"/":[[{x:.017522651058219416,y:-.036644753012328966},{x:.01865919532569161,y:-.04539277458837648},{x:.02148055556003016,y:-.053750976595687026},{x:.02587830846966649,y:-.06139815801845333},{x:.031683450876571484,y:-.06804044196318723},{x:.038672894413609195,y:-.07342256918292836},{x:.04657803868537635,y:-.0773377075469538},{x:.0550950934307649,y:-.07963540048356893},{x:.0638967530123289,y:-.08022734894178067},{x:.07264477458837641,y:-.07909080467430848},{x:.08100297659568695,y:-.07626944443996993},{x:.08865015801845323,y:-.0718716915303336},{x:.09529244196318715,y:-.0660665491234286},{x:.10067456918292828,y:-.059077105586390885},{x:.5777245691829282,y:.7051758944136092},{x:.5816397075469537,y:.7130810386853763},{x:.5839374004835688,y:.7215980934307649},{x:.5845293489417805,y:.7303997530123288},{x:.5833928046743084,y:.7391477745883763},{x:.5805714444399699,y:.747505976595687},{x:.5761736915303335,y:.7551531580184532},{x:.5703685491234285,y:.7617954419631872},{x:.5633791055863908,y:.7671775691829282},{x:.5554739613146237,y:.7710927075469537},{x:.5469569065692351,y:.7733904004835688},{x:.5381552469876711,y:.7739823489417805},{x:.5294072254116237,y:.7728458046743084},{x:.521049023404313,y:.7700244444399699},{x:.5134018419815468,y:.7656266915303335},{x:.5067595580368128,y:.7598215491234285},{x:.5013774308170718,y:.7528321055863908},{x:.024327430817071727,y:-.011420894413609283},{x:.020412292453046287,y:-.019326038685376436},{x:.018114599516431164,y:-.027843093430764996},{x:.017522651058219416,y:-.036644753012328966}]],"<":[[{x:-.002019645490236678,y:.32959917016575135},{x:-.0016099914284145765,y:.3262199732716625},{x:-.0013526191024594778,y:.3228257800560043},{x:-.001080072865731869,y:.3218487260950263},{x:-.0009579981642362373,y:.3208417436418168},{x:.00010303311987996846,y:.3176073966113462},{x:.0010176343561875828,y:.3143286327165328},{x:.0014755574652736251,y:.31342352370653337},{x:.001791739066671412,y:.3124597057316259},{x:.003463372735866293,y:.309494502707312},{x:.00500005526992945,y:.3064571691910689},{x:.005625757523098081,y:.30565878796371126},{x:.0061238953427729045,y:.3047751734513664},{x:.008341891452602095,y:.3021930655225286},{x:.010441601436418424,y:.2995138854085287},{x:.011211037446978121,y:.298852913306643},{x:.011871988327878901,y:.29808345906703315},{x:.014551110531708777,y:.29598367519331337},{x:.017133157288130564,y:.2937656078708368},{x:.01801675806170013,y:.2932674456816211},{x:.018815122032139454,y:.29264172140965955},{x:.021852413166145952,y:.29110495510775264},{x:.024817570086352318,y:.28943323966009543},{x:.5409315700863523,y:.06192123966009548},{x:.5493135321567164,y:.059171271257023414},{x:.5580709293975171,y:.05810938240515066},{x:.5668672199439956,y:.058776380897540545},{x:.5753643672834672,y:.061146634356187606},{x:.583235830808931,y:.06512905526992949},{x:.5901791145914712,y:.07057060143641844},{x:.5959273921291632,y:.07726215728813057},{x:.6002597603399046,y:.08494657008635234},{x:.6030097287429766,y:.09332853215671641},{x:.6040716175948494,y:.10208592939751719},{x:.6034046191024595,y:.11088221994399564},{x:.6010343656438124,y:.11937936728346718},{x:.5970519447300705,y:.12725083080893104},{x:.5916103985635816,y:.13419411459147126},{x:.5849188427118694,y:.1399423921291632},{x:.5772344299136477,y:.14427476033990455},{x:.15453394878652635,y:.33060846154195217},{x:.577233294268374,y:.5169277390666714},{x:.5849178265486336,y:.521259895342773},{x:.5916095409329668,y:.527007988327879},{x:.5970512785903404,y:.5339511220321395},{x:.6010339165943431,y:.5418224757210541},{x:.6034044043999703,y:.5503195576866639},{x:.6040716454902366,y:.5591158298342486},{x:.6030099981642363,y:.5678732563581832},{x:.6002602609333286,y:.5762552942683741},{x:.5959281046572271,y:.5839398265486336},{x:.5901800116721211,y:.5906315409329669},{x:.5832368779678606,y:.5960732785903404},{x:.5753655242789459,y:.6000559165943432},{x:.5668684423133362,y:.6024264043999704},{x:.5580721701657515,y:.6030936454902367},{x:.5493147436418169,y:.6020319981642364},{x:.540932705731626,y:.5992822609333287},{x:.024818705731625975,y:.37178726093332853},{x:.02185350270731245,y:.3701156272641339},{x:.018816169191068974,y:.3685789447300705},{x:.01801778796371134,y:.36795324247690187},{x:.01713417345136639,y:.367455104657227},{x:.01455206552252819,y:.3652371085473975},{x:.011872885408528756,y:.3631373985635815},{x:.011211913306643135,y:.3623679625530219},{x:.010442459067033207,y:.36170701167212105},{x:.008342675193313383,y:.3590278894682912},{x:.006124607870836803,y:.3564458427118694},{x:.005626445681621026,y:.3555622419382997},{x:.005000721409659611,y:.3547638779678605},{x:.0034639551077528313,y:.3517265868338544},{x:.0017922396600954515,y:.3487614299136476},{x:.0014760314771086122,y:.3477976206592673},{x:.0010180834056568513,y:.3468925242789459},{x:.00010339174271701993,y:.34361378560971106},{x:-.0009577287429766018,y:.3403794678432836},{x:-.0010798312165939596,y:.33937248875722786},{x:-.0013524043999703778,y:.33839544231333624},{x:-.001609870336301571,y:.33500125619719334},{x:-.0020196175948493655,y:.3316220706024828},{x:-.001942922029511974,y:.3306106193263084},{x:-.002019645490236678,y:.32959917016575135}]],"=":[[{x:-.002030999999999998,y:.19162999999999997},{x:-.0011663376181453647,y:.1828509355092742},{x:.0013944210369920967,y:.17440924554357093},{x:.005552867446385459,y:.16662933951411787},{x:.011149194846605363,y:.15981019484660533},{x:.017968339514117915,y:.15421386744638543},{x:.025748245543570962,y:.15005542103699207},{x:.03418993550927423,y:.1474946623818546},{x:.042969,y:.14662999999999998},{x:.559083,y:.14662999999999998},{x:.5678620644907257,y:.1474946623818546},{x:.576303754456429,y:.15005542103699207},{x:.5840836604858821,y:.15421386744638543},{x:.5909028051533947,y:.15981019484660533},{x:.5964991325536145,y:.16662933951411787},{x:.6006575789630079,y:.17440924554357093},{x:.6032183376181454,y:.1828509355092742},{x:.604083,y:.19162999999999997},{x:.6032183376181454,y:.20040906449072574},{x:.6006575789630079,y:.208850754456429},{x:.5964991325536145,y:.21663066048588206},{x:.5909028051533947,y:.2234498051533946},{x:.5840836604858821,y:.2290461325536145},{x:.576303754456429,y:.23320457896300786},{x:.5678620644907257,y:.23576533761814533},{x:.559083,y:.23662999999999995},{x:.042969,y:.23662999999999995},{x:.03418993550927421,y:.23576533761814533},{x:.025748245543570934,y:.23320457896300786},{x:.017968339514117904,y:.2290461325536145},{x:.011149194846605356,y:.2234498051533946},{x:.005552867446385459,y:.21663066048588206},{x:.0013944210369920967,y:.208850754456429},{x:-.0011663376181453647,y:.20040906449072574},{x:-.002030999999999998,y:.19162999999999997}],[{x:-.002030999999999998,y:.454102},{x:-.0011663376181453647,y:.4453229355092742},{x:.0013944210369920967,y:.436881245543571},{x:.005552867446385459,y:.4291013395141179},{x:.011149194846605363,y:.42228219484660534},{x:.017968339514117915,y:.41668586744638547},{x:.025748245543570962,y:.4125274210369921},{x:.03418993550927423,y:.40996666238185464},{x:.042969,y:.409102},{x:.559083,y:.409102},{x:.5678620644907257,y:.40996666238185464},{x:.576303754456429,y:.4125274210369921},{x:.5840836604858821,y:.41668586744638547},{x:.5909028051533947,y:.42228219484660534},{x:.5964991325536145,y:.4291013395141179},{x:.6006575789630079,y:.436881245543571},{x:.6032183376181454,y:.4453229355092742},{x:.604083,y:.454102},{x:.6032183376181454,y:.4628810644907258},{x:.6006575789630079,y:.471322754456429},{x:.5964991325536145,y:.4791026604858821},{x:.5909028051533947,y:.48592180515339467},{x:.5840836604858821,y:.49151813255361454},{x:.576303754456429,y:.49567657896300793},{x:.5678620644907257,y:.49823733761814537},{x:.559083,y:.499102},{x:.042969,y:.499102},{x:.03418993550927421,y:.49823733761814537},{x:.025748245543570934,y:.49567657896300793},{x:.017968339514117904,y:.49151813255361454},{x:.011149194846605356,y:.48592180515339467},{x:.005552867446385459,y:.4791026604858821},{x:.0013944210369920967,y:.471322754456429},{x:-.0011663376181453647,y:.4628810644907258},{x:-.002030999999999998,y:.454102}]],">":[[{x:-.002019645490236678,y:.5591158298342487},{x:-.0013524043999703708,y:.5503195576866637},{x:.0010180834056568513,y:.5418224757210541},{x:.005000721409659611,y:.5339511220321396},{x:.01044245906703322,y:.527007988327879},{x:.01713417345136643,y:.521259895342773},{x:.024818705731625975,y:.5169277390666714},{x:.44751805121347366,y:.33060846154195217},{x:.024817570086352318,y:.14427476033990455},{x:.017133157288130554,y:.1399423921291632},{x:.01044160143641841,y:.13419411459147126},{x:.00500005526992945,y:.12725083080893107},{x:.0010176343561875828,y:.11937936728346718},{x:-.0013526191024594778,y:.11088221994399562},{x:-.0020196175948493655,y:.10208592939751718},{x:-.0009577287429766018,y:.0933285321567164},{x:.0017922396600954585,y:.08494657008635234},{x:.00612460787083681,y:.07726215728813059},{x:.011872885408528759,y:.07057060143641844},{x:.018816169191068984,y:.06512905526992947},{x:.02668763271653284,y:.061146634356187606},{x:.03518478005600438,y:.058776380897540545},{x:.04398107060248284,y:.05810938240515066},{x:.052738467843283614,y:.05917127125702342},{x:.06112042991364768,y:.06192123966009548},{x:.5772344299136477,y:.28943323966009543},{x:.5801995868338548,y:.29110495510775297},{x:.5832368779678606,y:.2926417214096596},{x:.5840352419382998,y:.29326744568162105},{x:.5849188427118694,y:.2937656078708368},{x:.5875008894682915,y:.29598367519331353},{x:.5901800116721211,y:.29808345906703315},{x:.5908409625530218,y:.2988529133066429},{x:.5916103985635817,y:.29951388540852875},{x:.5937101085473976,y:.3021930655225282},{x:.5959281046572271,y:.3047751734513664},{x:.5964262424769022,y:.30565878796371176},{x:.5970519447300705,y:.30645716919106897},{x:.5985886272641329,y:.3094945027073105},{x:.6002602609333286,y:.31245970573162596},{x:.6005764425347265,y:.31342352370653376},{x:.6010343656438124,y:.31432863271653283},{x:.6019489668801197,y:.31760739661134507},{x:.6030099981642363,y:.32084174364181683},{x:.6031320728657319,y:.3218487260950267},{x:.6034046191024595,y:.3228257800560044},{x:.6036619914284146,y:.3262199732716634},{x:.6040716454902366,y:.32959917016575135},{x:.603994922029512,y:.330610619326308},{x:.6040716175948494,y:.33162207060248283},{x:.6036618703363014,y:.3350012561971954},{x:.6034044043999703,y:.33839544231333624},{x:.6031318312165941,y:.33937248875722736},{x:.6030097287429766,y:.3403794678432836},{x:.6019486082572825,y:.3436137856097129},{x:.6010339165943431,y:.3468925242789459},{x:.6005759685228916,y:.3477976206592668},{x:.6002597603399046,y:.34876142991364767},{x:.5985880448922466,y:.3517265868338553},{x:.5970512785903404,y:.3547638779678605},{x:.596425554318379,y:.35556224193829966},{x:.5959273921291631,y:.35644584271186947},{x:.5937093248066866,y:.3590278894682911},{x:.5916095409329668,y:.36170701167212105},{x:.5908400866933569,y:.3623679625530219},{x:.5901791145914712,y:.36313739856358157},{x:.5874999344774714,y:.3652371085473978},{x:.5849178265486336,y:.367455104657227},{x:.5840342120362888,y:.36795324247690175},{x:.583235830808931,y:.3685789447300705},{x:.5801984972926872,y:.37011562726413405},{x:.577233294268374,y:.37178726093332853},{x:.06111929426837402,y:.5992822609333287},{x:.05273725635818315,y:.6020319981642364},{x:.04397982983424857,y:.6030936454902367},{x:.035183557686663716,y:.6024264043999704},{x:.02668647572105406,y:.6000559165943432},{x:.018815122032139416,y:.5960732785903404},{x:.011871988327878898,y:.5906315409329669},{x:.006123895342772898,y:.5839398265486336},{x:.001791739066671405,y:.5762552942683741},{x:-.0009579981642362442,y:.5678732563581832},{x:-.002019645490236678,y:.5591158298342487}]],A:[[{x:-.026930267425517032,y:.05053409251215203},{x:-.025968910797820398,y:.041765089843587025},{x:-.02331527881378681,y:.03335213247651147},{x:-.019071349062388714,y:.025618525644501258},{x:-.013400213383949137,y:.018861467521053887},{x:-.006519810342180955,y:.013340628060451547},{x:.0013054500325951415,y:.009268170027042777},{x:.009774847372633092,y:.006800595699190677},{x:.018562907487847988,y:.006032732574482988},{x:.02733191015641301,y:.006994089202179622},{x:.035744867523488544,y:.00964772118621321},{x:.043478474355498745,y:.013891650937611293},{x:.05023553247894613,y:.019562786616050876},{x:.055756371939548466,y:.02644318965781906},{x:.05982882997295724,y:.03426845003259516},{x:.15465984441872488,y:.2705423452957767},{x:.155303,y:.27047899999999997},{x:.433548,y:.27047899999999997},{x:.439584057854266,y:.2710734998088117},{x:.5426964027293978,y:.03313672871631684},{x:.5469805748198717,y:.025425342079263714},{x:.5526868446471364,y:.018697928086846893},{x:.559595923461843,y:.013213017486017727},{x:.5674422992397985,y:.009181392315192764},{x:.5759244401601543,y:.006757985668725375},{x:.5847163823041805,y:.006035927704977205},{x:.5934802562658602,y:.007042966706560308},{x:.6018792712836831,y:.009740402729397836},{x:.6095906579207363,y:.01402457481987169},{x:.6163180719131531,y:.019730844647136342},{x:.6218029825139822,y:.026639923461843008},{x:.6258346076848073,y:.03448629923979854},{x:.6282580143312746,y:.042968440160154345},{x:.6289800722950228,y:.05176038230418057},{x:.6279730332934397,y:.060524256265860256},{x:.6252755972706022,y:.0689232712836832},{x:.3314685972706022,y:.7468972712836831},{x:.3293831787279993,y:.7506509647260751},{x:.32731734906238874,y:.7544154743554987},{x:.32724162770964893,y:.7545056950115825},{x:.32718442518012836,y:.7546086579207363},{x:.324406768107635,y:.7578833802211685},{x:.32164621338394916,y:.7611725324789461},{x:.3215543458189217,y:.761246247067332},{x:.32147815535286367,y:.7613360719131531},{x:.3181150035540548,y:.764005977330098},{x:.314765810342181,y:.7666933719395485},{x:.31466132698386995,y:.7667477476499444},{x:.314569076538157,y:.7668209825139822},{x:.31074967405057474,y:.7687834680795742},{x:.3069405499674049,y:.7707658299729572},{x:.30682746605267575,y:.7707987771773066},{x:.30672270076020147,y:.7708526076848072},{x:.3025938250794972,y:.7720322561793334},{x:.29847115262736695,y:.7732334043008093},{x:.2983538139076442,y:.7732436568565263},{x:.29824055983984565,y:.7732760143312747},{x:.29396088134293,y:.7736274925246428},{x:.289683092512152,y:.774001267425517},{x:.28956600824863027,y:.7739884313326351},{x:.2894486176958195,y:.7739980722950228},{x:.2851826020272766,y:.773507873077374},{x:.280914089843587,y:.7730399107978204},{x:.2808017595188513,y:.7730044793401902},{x:.28068474373413976,y:.7729910332934397},{x:.2765963314836881,y:.7716779947458032},{x:.2725011324765115,y:.7703862788137869},{x:.27239787288194656,y:.7703296136024552},{x:.27228572871631684,y:.7702935972706022},{x:.26853203527393116,y:.7682081787280027},{x:.2647675256445013,y:.7661423490623888},{x:.26467730498841713,y:.7660666277096486},{x:.2645743420792637,y:.7660094251801283},{x:.2612996197788366,y:.7632317681076393},{x:.2580104675210539,y:.7604712133839491},{x:.2579367529326681,y:.7603793458189217},{x:.2578469280868469,y:.7603031553528636},{x:.25517702266989234,y:.7569400035540427},{x:.25248962806045155,y:.7535908103421809},{x:.2524352523500559,y:.7534863269838704},{x:.2523620174860177,y:.753394076538157},{x:.2503995319204231,y:.7495746740505695},{x:.24841717002704278,y:.7457655499674049},{x:-.023694829972957243,y:.06779154996740488},{x:-.026162404300809343,y:.05932215262736691},{x:-.026930267425517032,y:.05053409251215203}],[{x:.19075686729109992,y:.36047899999999994},{x:.2917712201653896,y:.6121588409316518},{x:.4008392655839541,y:.36047899999999994},{x:.19075686729109992,y:.36047899999999994}]],B:[[{x:.018964999999999996,y:.05103000000000002},{x:.018993157630992935,y:.05074411077481729},{x:.01896863696544404,y:.050457886669927884},{x:.019425235762019696,y:.046357147889743},{x:.01982966238185463,y:.04225093550927423},{x:.019913053192865363,y:.04197603284668677},{x:.019944843237820968,y:.04169052471317667},{x:.02119268306568244,y:.037757658485048945},{x:.02239042103699209,y:.03380924554357098},{x:.0225258403659196,y:.03355589379873479},{x:.022612719447780122,y:.03328207355405998},{x:.02460384652213923,y:.029668217721559587},{x:.026548867446385453,y:.026029339514117924},{x:.02673111120436309,y:.02580727485250577},{x:.026869740608734982,y:.025555665255108946},{x:.029527637032761178,y:.022399698271204867},{x:.03214519484660536,y:.019210194846605383},{x:.03236725950821749,y:.019027951088627763},{x:.03255231178483501,y:.01880822135423258},{x:.03577483608951879,y:.016231425260229353},{x:.03896433951411791,y:.013613867446385479},{x:.03921769125895406,y:.013478448117457993},{x:.03944205495260531,y:.013299042336531411},{x:.04310536733612953,y:.011400441961238211},{x:.046744245543570956,y:.009455421036992116},{x:.04701914820615845,y:.009372030225981372},{x:.047274201145921,y:.009239842862072495},{x:.051237522567796415,y:.008092400353164256},{x:.055185935509274225,y:.006894662381854655},{x:.05547182473445692,y:.006866504750861718},{x:.05574776537889109,y:.006786615690234012},{x:.05985878761953148,y:.006434426619834929},{x:.063965,y:.0060300000000000215},{x:.06425088922518268,y:.006058157630992957},{x:.06453711333007213,y:.00603363696544406},{x:.4241221133300721,y:.01060563696544408},{x:.4260098351414485,y:.010815826288282449},{x:.4279092214657345,y:.010813640036582327},{x:.43038314701987823,y:.011302774871886453},{x:.43288947528682337,y:.011581843237821021},{x:.43469991915024053,y:.012156270087817089},{x:.43656323581544765,y:.012524677733968342},{x:.4388942001112364,y:.013487052913568918},{x:.44129792644594007,y:.014249719447780182},{x:.4429615180190356,y:.01516630892323094},{x:.4447171588106798,y:.015891152767997317},{x:.5224141588106799,y:.0573061527679973},{x:.525028554951968,y:.05904868699814221},{x:.5277374225537912,y:.06064039332865708},{x:.5286915199232336,y:.06149010807639827},{x:.529754639763497,y:.06219869339105244},{x:.5319788494519322,y:.06441778869965879},{x:.5343251404217865,y:.06650738469209135},{x:.5350951339540482,y:.06752690757225652},{x:.5359995881074716,y:.06842928201075814},{x:.5377481362120787,y:.07103965980959966},{x:.5396416839038074,y:.07354684346181917},{x:.5707946839038074,y:.12450984346181915},{x:.5718407730360667,y:.12667263757185424},{x:.573076251912317,y:.12873311634664666},{x:.5737567016649755,y:.13063382885667474},{x:.5746357412153917,y:.13245124718509382},{x:.57523978983892,y:.1347765656784282},{x:.576049549867314,y:.13703848290314058},{x:.576346114353134,y:.13903542291661675},{x:.5768537026781452,y:.1409894121704204},{x:.5769924975430949,y:.14338789436140983},{x:.5773454200998597,y:.14576432582559334},{x:.5830324200998597,y:.2611263258255933},{x:.5829003037879823,y:.26382496142481277},{x:.5829742287592172,y:.2665258175697889},{x:.5826851199428378,y:.2682203519457296},{x:.5826010630436497,y:.26993731586400416},{x:.5819450076216034,y:.2725583233230625},{x:.5814906012502021,y:.27522170532098544},{x:.5808764603215925,y:.2768272773619606},{x:.5804590555084463,y:.278494851612457},{x:.5793042728181804,y:.28093750708458076},{x:.5783389976861617,y:.283461062658912},{x:.5774234257367941,y:.284915971131802},{x:.5766887136425759,y:.2864700717712602},{x:.575079581335268,y:.2886405053765124},{x:.5736405324246225,y:.2909272557017569},{x:.5044305324246225,y:.38012925570175693},{x:.5017223718437749,y:.38298983800955333},{x:.499075053174031,y:.3859068173944946},{x:.49869279401231464,y:.38618992769627897},{x:.4983657648506557,y:.38653536283797296},{x:.49515156889241035,y:.38881264393905274},{x:.49198604326106643,y:.39115710813128307},{x:.4915558970220145,y:.39136020348505085},{x:.4911677605809681,y:.39163520096290155},{x:.48757104899345777,y:.3932416662216644},{x:.4840089657752798,y:.3949235187770668},{x:.3737297002329455,y:.43429966367120415},{x:.4408630401939032,y:.4733794631163462},{x:.44336631106573315,y:.475186847643908},{x:.4459719275146733,y:.476843279595192},{x:.4469351296354233,y:.4777635673817196},{x:.4480152047486495,y:.4785433915190981},{x:.45011777274311354,y:.48080441158023823},{x:.45235016915983667,y:.4829373462081214},{x:.4531153243813002,y:.4840278623347861},{x:.4540225100120052,y:.48500341457167107},{x:.4556435746202097,y:.4876311804334344},{x:.4574169612623637,y:.4901586502563309},{x:.45795466509848404,y:.4913774867999537},{x:.45865409861163536,y:.4925112772109775},{x:.4597313632297904,y:.4954048053049642},{x:.460977589843244,y:.49822968107500176},{x:.46126717863714684,y:.4995299988307428},{x:.46173198119508085,y:.5007784564862466},{x:.46222404714804793,y:.5038265501505143},{x:.4628952219429378,y:.5068402734760588},{x:.4768502219429378,y:.6216502734760588},{x:.47694604753136066,y:.6258560133977795},{x:.4770801736029929,y:.6300607061367898},{x:.47704647561686464,y:.6302637547476413},{x:.47705116403527437,y:.6304695272224051},{x:.47632464920624185,y:.6346131496757303},{x:.47563590322258376,y:.6387632171212809},{x:.475563239914934,y:.6389557900590453},{x:.4755276940283349,y:.6391585233384632},{x:.47400675833929046,y:.6430807912362932},{x:.4725216084222428,y:.647016748623825},{x:.4724127722032346,y:.6471914454185},{x:.4723383580201142,y:.6473833485763381},{x:.4700814501766401,y:.6509335313629835},{x:.46785696980463054,y:.6545041220574128},{x:.46771614318912413,y:.6546542292091504},{x:.46760572040480797,y:.6548279275146733},{x:.4646995721096373,y:.6578695936566139},{x:.4618212468158623,y:.6609376018599591},{x:.3721282468158623,y:.739463601859959},{x:.3693406873548985,y:.7414576112446344},{x:.36664335021940475,y:.7435720694617842},{x:.36575927454484214,y:.7440194833243711},{x:.36495338890552403,y:.7445959530105889},{x:.3618303796850022,y:.746007822191186},{x:.35877236079175173,y:.7475554273162446},{x:.35781798626885214,y:.7478217696388809},{x:.3569151218394033,y:.7482299421328396},{x:.35357667835226414,y:.7490054137685334},{x:.3502754956523681,y:.7499266922044516},{x:.21714549565236804,y:.7733246922044517},{x:.2164184100494338,y:.7733799121498203},{x:.21571010443589486,y:.773553134187072},{x:.21202614434596675,y:.7737134914026773},{x:.20834928456346336,y:.7739927377465721},{x:.20762539682958886,y:.7739050492917646},{x:.20689690716677497,y:.7739367593459113},{x:.061505907166774995,y:.7659797593459113},{x:.05835682356136361,y:.7654946428322841},{x:.055185935509274225,y:.7651823376181454},{x:.05400593378019863,y:.7648243880069794},{x:.05278721145616079,y:.7646366437616691},{x:.0497932781460736,y:.7635464928911877},{x:.046744245543570956,y:.7626215789630079},{x:.045656749721751114,y:.7620403003359452},{x:.0444980718907103,y:.7616184026130197},{x:.04177434405403643,y:.7599651112722733},{x:.03896433951411791,y:.7584631325536145},{x:.03801114145411163,y:.7576808631223083},{x:.03695703545532078,y:.7570410252146568},{x:.03460818442533898,y:.7548881284626934},{x:.03214519484660536,y:.7528668051533947},{x:.03136292541529926,y:.7519136070933885},{x:.03045389995114224,y:.7510804176129765},{x:.02857019075568381,y:.7485106500646154},{x:.026548867446385453,y:.7460476604858821},{x:.025967588819322866,y:.7449601646640625},{x:.025238577228599887,y:.7439656426153641},{x:.023892399755650346,y:.7410777589963466},{x:.02239042103699209,y:.738267754456429},{x:.022032471425826126,y:.7370877527273536},{x:.021511489215134356,y:.7359701170349662},{x:.02075457631003429,y:.7328750970932278},{x:.01982966238185463,y:.7298260644907257},{x:.019708797589401895,y:.7285989036590902},{x:.01941586581292807,y:.7274011044358949},{x:.019277305214138767,y:.7242178880520896},{x:.018964999999999996,y:.721047},{x:.018964999999999996,y:.05103000000000002}],[{x:.10896499999999999,y:.09660579683225357},{x:.10896499999999999,y:.37786028838708235},{x:.29722384626437015,y:.36605169579422814},{x:.44137514989764515,y:.3145812530901673},{x:.49232133133007555,y:.24891875813083103},{x:.48801965008125897,y:.1616582425292873},{x:.46925190911582665,y:.130956211173677},{x:.41203782454012283,y:.1004592638951106},{x:.10896499999999999,y:.09660579683225357}],[{x:.10896499999999999,y:.47257215902605326},{x:.10896499999999999,y:.6784424315209651},{x:.20665565807681563,y:.6837888736412973},{x:.32230778354311135,y:.6634626629325134},{x:.3846372425734713,y:.608893375476212},{x:.3762519660226853,y:.5399063743443061},{x:.2981741908903496,y:.4944555775409729},{x:.10896499999999999,y:.47257215902605326}]],C:[[{x:.028007484408327545,y:.4010798543150725},{x:.028340096336253087,y:.39680461654123217},{x:.028649292669517497,y:.39252762152779447},{x:.06572429266951751,y:.1769866215277945},{x:.0657499934516808,y:.17689321918606288},{x:.06575739253020782,y:.1767966283931179},{x:.06691993730130205,y:.17264138379230456},{x:.0680646634579554,y:.1684811950870131},{x:.0681080922997215,y:.16839460141895576},{x:.06813419313592875,y:.16830131007962543},{x:.07008504794245551,y:.16445270857242494},{x:.07201939106115751,y:.16059578172109576},{x:.07207887901649253,y:.16051932447281397},{x:.0721226785698821,y:.1604329177209502},{x:.1274306785698821,y:.07363491772095027},{x:.13009575906138268,y:.07023973030268985},{x:.13274648275581225,y:.06683332229320074},{x:.13281865262016482,y:.06677089175108791},{x:.13287757357360944,y:.06669582922279092},{x:.1361538134974972,y:.06388581079003605},{x:.13941816151489866,y:.0610619864944041},{x:.19692016151489866,y:.020443986494404057},{x:.19808425112310213,y:.019782383965415776},{x:.19914710087537263,y:.01896802966513257},{x:.20191114759162085,y:.01760739299916557},{x:.20458957759683996,y:.01608512525217841},{x:.2058603718000633,y:.015663337846789194},{x:.20706167183504787,y:.015071982836463577},{x:.21003805521400143,y:.014276729186446702},{x:.2129619996426652,y:.013306247159584957},{x:.21429066253234816,y:.013140483931242813},{x:.21558424756339917,y:.01279485365228588},{x:.32760524756339915,y:-.005618146347714133},{x:.32775803960473765,y:-.005628051859015257},{x:.32790622767465843,y:-.005666572281957827},{x:.3321581535063009,y:-.005913311337168391},{x:.3364083102547015,y:-.006188849089881349},{x:.3365600989091985,y:-.006168756021014132},{x:.33671295454862427,y:-.006177626226551311},{x:.34093131721939995,y:-.005590114680318674},{x:.3451535631465426,y:-.005031193603710363},{x:.34529851526132993,y:-.004981874120043047},{x:.3454501643137599,y:-.004960753231150514},{x:.44307616431375996,y:.01857424676884946},{x:.4458503498549469,y:.019539172468847843},{x:.4486819664572553,y:.020319643122350156},{x:.45000735163266253,y:.02098507354168687},{x:.45140809089867484,y:.021472282957461515},{x:.45394072357704407,y:.022959884631265325},{x:.4565656691892177,y:.024277779754777677},{x:.4577357684253341,y:.0251889939358613},{x:.459014543037309,y:.025940112433793877},{x:.4612082951993476,y:.027893222383335445},{x:.4635256946335971,y:.029697896006345384},{x:.5358116946335971,y:.09837789600634546},{x:.5383578959705028,y:.10132350300922108},{x:.5409714489909738,y:.10420951799057969},{x:.5412394420583803,y:.10465705806338507},{x:.5415805729157932,y:.10505169984914184},{x:.5435031902892489,y:.10843744707814906},{x:.545503491029224,y:.11177788699125937},{x:.5456790239480676,y:.11226911056087577},{x:.5459366092786453,y:.11272272074420048},{x:.5471617575812067,y:.11641849583208026},{x:.548471935605029,y:.12008498944441898},{x:.572709935605029,y:.21701898944441894},{x:.5740007070580636,y:.2257455880614603},{x:.5735642017652605,y:.23455632455146336},{x:.571417194380227,y:.24311260725223527},{x:.5676421931927146,y:.25108562301800397},{x:.5623842693813143,y:.2581689733242098},{x:.5558454820094204,y:.2640904489909738},{x:.5482771130087407,y:.26862249102922403},{x:.539970010555581,y:.27159093560502906},{x:.5312434119385397,y:.2728817070580635},{x:.5224326754485367,y:.2724452017652604},{x:.5138763927477648,y:.270298194380227},{x:.5059033769819961,y:.26652319319271456},{x:.49882002667579023,y:.2612652693813142},{x:.49289855100902624,y:.25472648200942033},{x:.488366508970776,y:.24715811300874066},{x:.48539806439497096,y:.23885101055558106},{x:.46433420621000654,y:.15461122058523102},{x:.4102697826671089,y:.10324381045150927},{x:.3332137540403124,y:.08466767669890593},{x:.24039332695070226,y:.09992465997883551},{x:.1985742470214596,y:.12946463056361485},{x:.15288732813236672,y:.2011637190451272},{x:.11884238546013813,y:.39908903228895243},{x:.16184523767713488,y:.5942488915238071},{x:.2166399992296726,y:.6603981208316636},{x:.2708106585112101,y:.6880654725502051},{x:.33167151101531583,y:.6962265900331734},{x:.41875307675349,y:.6679697644015699},{x:.4604926982936834,y:.628705384802963},{x:.487421989657252,y:.5630715564186946},{x:.49155436139101494,y:.5552777692634718},{x:.49712782320648147,y:.5484399232752638},{x:.5039281900917167,y:.5428207930406891},{x:.5116941277610109,y:.5386363185834178},{x:.5201271955849208,y:.5360473069101626},{x:.5289033154962927,y:.5351532522875923},{x:.5376852261286371,y:.5359885127334604},{x:.5461354435813054,y:.5385209896572519},{x:.5539292307365281,y:.5426533613910148},{x:.5607670767247361,y:.5482268232064814},{x:.5663862069593109,y:.5550271900917166},{x:.5705706814165822,y:.5627931277610108},{x:.5731596930898373,y:.5712261955849207},{x:.5740537477124077,y:.5800023154962926},{x:.5732184872665396,y:.588784226128637},{x:.570686010342748,y:.5972344435813053},{x:.540057010342748,y:.6718854435813053},{x:.5396985836895672,y:.6725614478775368},{x:.539454213118803,y:.6732865233897278},{x:.5376352487491008,y:.6764529645154376},{x:.5359246386089851,y:.679679230736528},{x:.5354412171276051,y:.6802723202285732},{x:.5350600868536766,y:.680935789284769},{x:.5326583313554347,y:.6836865257875079},{x:.5303511767935185,y:.686517076724736},{x:.5297613381003629,y:.6870044593160238},{x:.5292580947459566,y:.687580825172473},{x:.47307109474595666,y:.7404358251724731},{x:.4722065860115991,y:.7411021817697292},{x:.4714497622811152,y:.7418887085063782},{x:.4687194058651613,y:.7437900730587934},{x:.46608420409854834,y:.7458212660502541},{x:.46510630693397415,y:.746306161504971},{x:.46421058160492856,y:.7469299263656303},{x:.4611617503991064,y:.748262090618912},{x:.45818091720073817,y:.7497401524453693},{x:.45712721164557074,y:.7500249524971546},{x:.4561270069400303,y:.7504619845480405},{x:.3497190069400303,y:.7849899845480404},{x:.34852117258500637,y:.7852523061157466},{x:.34737251112679673,y:.7856814874310271},{x:.34422084285321763,y:.7861940634064482},{x:.3411016855274714,y:.7868771480384597},{x:.33987569082458696,y:.7869007432807547},{x:.3386653714532072,y:.7870975852636362},{x:.3354742629896646,y:.786985452257037},{x:.33228177619648713,y:.7870468942022847},{x:.3310747354346284,y:.7868308563672394},{x:.32984927004476555,y:.7867877944907101},{x:.25121827004476555,y:.7762437944907102},{x:.24809780050166644,y:.7755083028870222},{x:.24494229970605153,y:.7749416523797719},{x:.24381291428322105,y:.7744983594176508},{x:.24263200473447152,y:.7742200201979198},{x:.2397149814324578,y:.772889887451158},{x:.2367306607297473,y:.771718517308175},{x:.16743766072974728,y:.7363275173081749},{x:.16716950847174827,y:.7361554960544541},{x:.16687461978467572,y:.7360349240533984},{x:.16345937419922074,y:.733775423054901},{x:.16001260855282193,y:.7315643025810339},{x:.15978316844705134,y:.7313432727571054},{x:.15951746839392553,y:.7311674875843215},{x:.15660865257214304,y:.7282851209029094},{x:.15365948376641753,y:.7254440558690711},{x:.15347757306746915,y:.725182511527114},{x:.15325127235232486,y:.7249582685082102},{x:.08558827235232488,y:.6432742685082102},{x:.0845522070982367,y:.6417389136031936},{x:.0833480194008015,y:.6403315480201149},{x:.08209078724421986,y:.6380913122274521},{x:.0806538380596292,y:.6359618836319892},{x:.07993721339171088,y:.6342539038369039},{x:.07903072722802115,y:.632638655023214},{x:.07823470075697891,y:.6301961909068614},{x:.07724079305844417,y:.627827343805619},{x:.07687114846079628,y:.6260123758261444},{x:.07629719958575912,y:.6242513168879111},{x:.02905219958575911,y:.40983931688791114},{x:.028544362954760993,y:.4055813372409792},{x:.028013217832748447,y:.4013262022752188},{x:.028022142274708197,y:.401202753871557},{x:.028007484408327545,y:.4010798543150725}]],D:[[{x:.019456783112310236,y:.0515304721392918},{x:.019516560837245702,y:.0508455251733057},{x:.019462408649259272,y:.05016011050819538},{x:.01989956114396584,y:.04645701928180655},{x:.020223754746627687,y:.042742334175020345},{x:.02041601038349858,y:.04208221032853139},{x:.020496616482350807,y:.04139940114622653},{x:.021647806474261868,y:.03785274800035644},{x:.022690469901424933,y:.03427268656062632},{x:.023007815173924504,y:.033662754022853354},{x:.023220081912440925,y:.03300879029730612},{x:.025041069815762075,y:.029754871123364675},{x:.026762134096652887,y:.026447013104097812},{x:.027192373603928278,y:.025910711240413317},{x:.027528143690388265,y:.025310724430849408},{x:.029948949961216734,y:.02247458551787214},{x:.03228227556070457,y:.019566050047680916},{x:.03280887543977226,y:.01912398863794477},{x:.03325524541805519,y:.01860103590097925},{x:.03618283982900684,y:.01629166847686688},{x:.03903875835284746,y:.013894228942745224},{x:.03964148166567549,y:.013563396159022682},{x:.0401812977878431,y:.013137574275061882},{x:.04350317452751879,y:.011443726034814963},{x:.04677193462845869,y:.0096495146935595},{x:.04742761905614622,y:.009442624254195854},{x:.048040136491355995,y:.009130297319436702},{x:.05162863769958001,y:.008117061901006828},{x:.05518462276008175,y:.0069950292882567724},{x:.05586807071778482,y:.006920031876811272},{x:.05652975076450537,y:.006733202440201605},{x:.060246972352300414,y:.0064395179124900545},{x:.06395352786070822,y:.006032783112310258},{x:.06463847482669428,y:.006092560837245719},{x:.06532388949180462,y:.006038408649259287},{x:.22607288949180462,y:.009146408649259287},{x:.22716730592225892,y:.009275605270020776},{x:.2282688262216939,y:.009242558031150067},{x:.23153975417198444,y:.00979177582685766},{x:.23483359885377353,y:.010180616482350843},{x:.23588178136904675,y:.010520840680108605},{x:.23696858346127098,y:.010703324384590318},{x:.374121583461271,y:.04785532438459028},{x:.3763172878682137,y:.048688585594252994},{x:.37858028056243914,y:.049316523610364836},{x:.3804311803743379,y:.05024979166335608},{x:.3823691959266467,y:.050985260963484026},{x:.38436014929137596,y:.0522308719724549},{x:.38645715458576285,y:.05328823230909956},{x:.47004915458576285,y:.1063032323090996},{x:.47296331256678825,y:.10858070495130694},{x:.47594842000778254,y:.11076435600861785},{x:.476434095048061,y:.11129319075325024},{x:.4769998347544389,y:.11173532762855881},{x:.47941368513584726,y:.11453756329148114},{x:.48191542538645477,y:.11726162167794474},{x:.5445294253864548,y:.20053762167794476},{x:.5457907389554543,y:.20261097926106453},{x:.5472304508598836,y:.2045646816997861},{x:.5480776582474705,y:.2063702359380903},{x:.54911422277829,y:.20807414921008693},{x:.5499468085621922,y:.21035373787896267},{x:.5509777083681839,y:.21255077433219424},{x:.570480708368184,y:.26758877433219413},{x:.5715324066676154,y:.27184261440989077},{x:.5725895850614416,y:.2760950958693092},{x:.5821235850614417,y:.3411630958693092},{x:.5823063349967632,y:.3450227385412275},{x:.5825832689280143,y:.34887676846995497},{x:.5805752689280143,y:.424797768469955},{x:.5800798101377765,y:.42875301375722},{x:.5796594372976747,y:.43271694253692033},{x:.5588164372976746,y:.5335539425369203},{x:.5581925601051908,y:.535556542700639},{x:.5577783377379867,y:.5376127649642906},{x:.5568838034059929,y:.5397575559956548},{x:.5561926080991778,y:.5419762423834013},{x:.555190030621201,y:.5438186507441294},{x:.5543826183570809,y:.5457545524985521},{x:.5020956183570809,y:.6430055524985521},{x:.5018901867095668,y:.6433113858234256},{x:.5017428412228655,y:.6436490624319612},{x:.4994325691935421,y:.6469701275279692},{x:.4971767628200625,y:.6503284258808291},{x:.4969156133622187,y:.650588304977856},{x:.4967052216394318,y:.6508907475465959},{x:.49379143318032753,y:.6536972875938759},{x:.49092379998669317,y:.6565509711937552},{x:.49061696854573045,y:.6567549090549786},{x:.49035161582277553,y:.657010494885618},{x:.39890061582277553,y:.7292364948856179},{x:.3986791836579038,y:.7293785203585265},{x:.39848760231040037,y:.7295587979940886},{x:.39496847203231433,y:.7317585520660096},{x:.39147518928128755,y:.7339991259907827},{x:.39123030407812903,y:.7340952232117042},{x:.391007233490524,y:.7342346611962726},{x:.3871265715837099,y:.7357055993513507},{x:.38326329699273004,y:.7372216156196327},{x:.3830043695523095,y:.737268091626259},{x:.38275838220218455,y:.7373613314362847},{x:.25909638220218456,y:.7708063314362847},{x:.2580664240588666,y:.7709788511982676},{x:.2570738325025125,y:.7713034106651087},{x:.2537238261308602,y:.7717062438265866},{x:.2503960471743838,y:.7722636525302581},{x:.2493522224520667,y:.7722319225075465},{x:.24831538485324267,y:.7723566006488801},{x:.17218438485324267,y:.7739936006488801},{x:.16854768223369815,y:.7737142062783378},{x:.16490357022768087,y:.7735589167265521},{x:.06552457022768086,y:.7594769167265522},{x:.06454980411013514,y:.759239472501363},{x:.06355033417502035,y:.7591522452533723},{x:.06027159361314519,y:.7581973390517399},{x:.056953647958865025,y:.7573891174476861},{x:.056043934769293216,y:.7569660682109414},{x:.05508068656062633,y:.7566855300985751},{x:.05205123903764884,y:.7551093215998242},{x:.04895472299174925,y:.7536693306611393},{x:.04814502249785432,y:.7530769339577588},{x:.0472550131040978,y:.7526138659033472},{x:.04459127858939255,y:.7504769279161366},{x:.04183518952697092,y:.7484605056870383},{x:.041156618064647085,y:.7477215269901124},{x:.040374050047680896,y:.7470937244392954},{x:.03817839436480973,y:.744478178292066},{x:.035868647242901154,y:.7419628147479951},{x:.03534728193289863,y:.7411056525944231},{x:.03470222894274521,y:.7403372416471526},{x:.03305902990826266,y:.7373436013115269},{x:.03128438701344127,y:.73442596046285},{x:.030940263632238257,y:.7334835551134912},{x:.030457514693559486,y:.7326040653715413},{x:.029429919524844063,y:.7293473747667649},{x:.028258579388326675,y:.7261395799150647},{x:.028104922404476318,y:.7251481474789881},{x:.02780302928825676,y:.7241913772399183},{x:.02743052789135989,y:.7207967891595589},{x:.026907504457698045,y:.7174221140620348},{x:.02695021882291786,y:.7164197547317572},{x:.026840783112310238,y:.7154224721392919},{x:.019456783112310236,y:.0515304721392918}],[{x:.1099671672449683,y:.09691838411671685},{x:.1164055200593884,y:.675787686211921},{x:.17390769441284104,y:.6839357418297609},{x:.2408956143230629,y:.6824953400894312},{x:.35035782392371695,y:.652890743688808},{x:.42724604872976657,y:.5921661050862587},{x:.4720072878873445,y:.5089126143655517},{x:.4907125333997566,y:.41841792349882906},{x:.4925121994894803,y:.35037387509349616},{x:.4841787199640398,y:.2934992321564965},{x:.4684498534661817,y:.24911194023683725},{x:.41491413338319044,y:.1779099626338861},{x:.34401115658372555,y:.1329424859013802},{x:.21878934362335548,y:.0990224054430332},{x:.1099671672449683,y:.09691838411671685}]],E:[[{x:.035078,y:.05103000000000002},{x:.03594266238185463,y:.04225093550927423},{x:.03850342103699209,y:.03380924554357098},{x:.042661867446385456,y:.026029339514117924},{x:.04825819484660536,y:.019210194846605383},{x:.05507733951411791,y:.013613867446385479},{x:.06285724554357096,y:.009455421036992116},{x:.07129893550927423,y:.006894662381854655},{x:.080078,y:.0060300000000000215},{x:.521974,y:.0060300000000000215},{x:.5307530644907258,y:.006894662381854655},{x:.5391947544564291,y:.009455421036992116},{x:.5469746604858822,y:.013613867446385479},{x:.5537938051533947,y:.019210194846605383},{x:.5593901325536146,y:.026029339514117924},{x:.5635485789630079,y:.03380924554357098},{x:.5661093376181454,y:.04225093550927425},{x:.5669740000000001,y:.05103000000000002},{x:.5661093376181454,y:.05980906449072579},{x:.5635485789630079,y:.06825075445642906},{x:.5593901325536146,y:.07603066048588211},{x:.5537938051533947,y:.08284980515339466},{x:.5469746604858822,y:.08844613255361455},{x:.5391947544564291,y:.09260457896300792},{x:.5307530644907258,y:.09516533761814538},{x:.521974,y:.09603000000000002},{x:.125078,y:.09603000000000002},{x:.125078,y:.345019},{x:.389405,y:.345019},{x:.3981840644907258,y:.34588366238185464},{x:.40662575445642907,y:.3484444210369921},{x:.4144056604858821,y:.35260286744638547},{x:.42122480515339467,y:.35819919484660534},{x:.42682113255361454,y:.3650183395141179},{x:.4309795789630079,y:.372798245543571},{x:.43354033761814537,y:.3812399355092742},{x:.434405,y:.390019},{x:.43354033761814537,y:.3987980644907258},{x:.4309795789630079,y:.407239754456429},{x:.42682113255361454,y:.4150196604858821},{x:.42122480515339467,y:.42183880515339467},{x:.4144056604858821,y:.42743513255361454},{x:.40662575445642907,y:.43159357896300793},{x:.3981840644907258,y:.43415433761814537},{x:.389405,y:.435019},{x:.125078,y:.435019},{x:.125078,y:.684004},{x:.521974,y:.684004},{x:.5307530644907258,y:.6848686623818546},{x:.5391947544564291,y:.6874294210369921},{x:.5469746604858822,y:.6915878674463855},{x:.5537938051533947,y:.6971841948466053},{x:.5593901325536146,y:.7040033395141179},{x:.5635485789630079,y:.711783245543571},{x:.5661093376181454,y:.7202249355092742},{x:.5669740000000001,y:.729004},{x:.5661093376181454,y:.7377830644907257},{x:.5635485789630079,y:.746224754456429},{x:.5593901325536146,y:.7540046604858821},{x:.5537938051533947,y:.7608238051533946},{x:.5469746604858822,y:.7664201325536145},{x:.5391947544564291,y:.7705785789630079},{x:.5307530644907258,y:.7731393376181454},{x:.521974,y:.774004},{x:.080078,y:.774004},{x:.07129893550927423,y:.7731393376181454},{x:.06285724554357093,y:.7705785789630079},{x:.05507733951411791,y:.7664201325536145},{x:.04825819484660536,y:.7608238051533946},{x:.042661867446385456,y:.7540046604858821},{x:.03850342103699209,y:.746224754456429},{x:.03594266238185463,y:.7377830644907257},{x:.035078,y:.729004},{x:.035078,y:.05103000000000002}]],F:[[{x:.041426000000000004,y:.05103000000000002},{x:.04229066238185464,y:.04225093550927423},{x:.0448514210369921,y:.03380924554357098},{x:.04900986744638546,y:.026029339514117924},{x:.054606194846605366,y:.019210194846605383},{x:.06142533951411792,y:.013613867446385479},{x:.06920524554357096,y:.009455421036992116},{x:.07764693550927423,y:.006894662381854655},{x:.086426,y:.0060300000000000215},{x:.09520506449072577,y:.006894662381854655},{x:.10364675445642904,y:.009455421036992116},{x:.11142666048588211,y:.013613867446385486},{x:.11824580515339464,y:.019210194846605383},{x:.12384213255361454,y:.026029339514117924},{x:.1280005789630079,y:.03380924554357098},{x:.13056133761814537,y:.04225093550927425},{x:.131426,y:.05103000000000002},{x:.131426,y:.347323},{x:.447344,y:.347323},{x:.4561230644907258,y:.3481876623818546},{x:.4645647544564291,y:.35074842103699205},{x:.47234466048588214,y:.35490686744638544},{x:.47916380515339463,y:.3605031948466053},{x:.48476013255361455,y:.36732233951411786},{x:.48891857896300794,y:.37510224554357097},{x:.4914793376181454,y:.3835439355092742},{x:.492344,y:.392323},{x:.4914793376181454,y:.4011020644907258},{x:.48891857896300794,y:.409543754456429},{x:.48476013255361455,y:.4173236604858821},{x:.47916380515339463,y:.42414280515339464},{x:.47234466048588214,y:.4297391325536145},{x:.4645647544564291,y:.4338975789630079},{x:.4561230644907258,y:.43645833761814534},{x:.447344,y:.43732299999999996},{x:.131426,y:.43732299999999996},{x:.131426,y:.679393},{x:.515626,y:.679393},{x:.5244050644907258,y:.6802576623818547},{x:.532846754456429,y:.6828184210369922},{x:.5406266604858821,y:.6869768674463855},{x:.5474458051533947,y:.6925731948466054},{x:.5530421325536146,y:.6993923395141179},{x:.5572005789630079,y:.707172245543571},{x:.5597613376181454,y:.7156139355092743},{x:.5606260000000001,y:.7243930000000001},{x:.5597613376181454,y:.7331720644907258},{x:.5572005789630079,y:.7416137544564291},{x:.5530421325536146,y:.7493936604858822},{x:.5474458051533947,y:.7562128051533947},{x:.5406266604858821,y:.7618091325536146},{x:.532846754456429,y:.7659675789630079},{x:.5244050644907258,y:.7685283376181454},{x:.515626,y:.7693930000000001},{x:.10586481668800227,y:.7693930000000001},{x:.10364675445642904,y:.7705785789630079},{x:.09520506449072577,y:.7731393376181454},{x:.086426,y:.774004},{x:.0776469355092742,y:.7731393376181454},{x:.06920524554357094,y:.7705785789630079},{x:.06142533951411792,y:.7664201325536145},{x:.054606194846605366,y:.7608238051533946},{x:.04900986744638546,y:.7540046604858821},{x:.0448514210369921,y:.746224754456429},{x:.04229066238185464,y:.7377830644907257},{x:.041426000000000004,y:.729004},{x:.041426000000000004,y:.05103000000000002}]],G:[[{x:.011397831509003739,y:.41623356008285023},{x:.011618856500496228,y:.4138403978921803},{x:.011624876992355357,y:.4114370583257866},{x:.031979876992355355,y:.20994505832578658},{x:.0322125865037964,y:.20879027461506633},{x:.03227702681480045,y:.2076140405475535},{x:.033082276634523504,y:.2044745765152392},{x:.033722542929381774,y:.20129735748690203},{x:.034176068118796386,y:.2002101619949014},{x:.03446874211029117,y:.19906910061620064},{x:.03587099832954512,y:.19614705695158466},{x:.03711880677043453,y:.1931557970536144},{x:.03777571891913337,y:.19217797009338475},{x:.03828537929375919,y:.19111593175236494},{x:.08239837929375919,y:.11845093175236496},{x:.08400149586436068,y:.11631468084865614},{x:.08543403702225794,y:.1140604899753128},{x:.08664282877724949,y:.11279494315419919},{x:.08769326713863865,y:.11139516977529508},{x:.08968234215056696,y:.10961271886167734},{x:.09152712825517066,y:.10768131654967852},{x:.15960912825517065,y:.049144316549678456},{x:.16129904644183068,y:.0479582081853546},{x:.16285577619764602,y:.04660201166682107},{x:.1649006360722032,y:.045430348778213794},{x:.16682965744636918,y:.04407642028337947},{x:.16871850259167306,y:.043242789341903884},{x:.17050990103726027,y:.04221635466854622},{x:.25257090103726026,y:.005359354668546305},{x:.2555014876285109,y:.004375276469579791},{x:.2583690572759664,y:.003220377345201267},{x:.25967433471463813,y:.0029740526131209386},{x:.2609335532503684,y:.0025512125194529015},{x:.2639998135747395,y:.0021577721889240492},{x:.26703759331756605,y:.0015844992133087973},{x:.35309859331756605,y:-.006038500786691249},{x:.3541123404679588,y:-.006028536718703998},{x:.3551159915981175,y:-.006171599559831674},{x:.3585153812714738,y:-.005985259459774228},{x:.361919709861342,y:-.005951798491220829},{x:.36291203425126567,y:-.00574425362199294},{x:.3639243106821295,y:-.005688764928569123},{x:.3672220288859873,y:-.004842817275250554},{x:.37055441634545594,y:-.004145847688979236},{x:.3714871835051078,y:-.003748697851442632},{x:.37246918402112983,y:-.003496790022837183},{x:.4525501840211298,y:.02567020997716287},{x:.4548144879103283,y:.026756908839544704},{x:.45716266717941917,y:.02764799841997529},{x:.45878159595452606,y:.02866082810547922},{x:.4605032369247208,y:.02948708879101062},{x:.4625120284186098,y:.03099465081435172},{x:.46464124512829075,y:.032326725408117304},{x:.4660314733714444,y:.03363593119127184},{x:.46755883802994086,y:.034782191000688294},{x:.46923492039795345,y:.03665268142188218},{x:.47106334994415,y:.038374550149380404},{x:.53517534994415,y:.11188255014938031},{x:.5366918789074028,y:.11401106513419482},{x:.5383741006891446,y:.11601120663268963},{x:.5392453250303639,y:.11759493887966013},{x:.5402941837404813,y:.11906705813061697},{x:.5413663203511413,y:.12145053442062861},{x:.5426260104640281,y:.12374042895017842},{x:.5431715236397763,y:.1254636976633839},{x:.5439130326051668,y:.12711215273922669},{x:.5444995752545472,y:.12965899467727895},{x:.5452883245139833,y:.13215064287530112},{x:.5896823245139834,y:.3420786428753011},{x:.5897067631627176,y:.34229945557802055},{x:.5897717252277992,y:.3425119065778641},{x:.5901917436343531,y:.346681442891342},{x:.5906527316031134,y:.3508466486034176},{x:.590633622248786,y:.3510679861958218},{x:.5906558889520306,y:.35128902847947113},{x:.590254400640623,y:.3554603898480228},{x:.5898939395311937,y:.3596354965915505},{x:.5898320165355749,y:.3598488531940917},{x:.589810732180064,y:.3600699922305474},{x:.5886031661213459,y:.3640828755761044},{x:.5874351082520124,y:.3681074363403587},{x:.5873327512810971,y:.3683046127784522},{x:.5872687338126765,y:.3685173503185603},{x:.5853014960930706,y:.3722175427846122},{x:.5833707292727002,y:.37593689595641405},{x:.5832318718474782,y:.3761103148501221},{x:.583127581421558,y:.3763064755095204},{x:.5804762718833937,y:.37955178077467916},{x:.577856994398102,y:.38282299369748307},{x:.5776869727315521,y:.38296599065597503},{x:.5775464171707139,y:.38313803609053093},{x:.5743129241526703,y:.3858037388934479},{x:.5711057933673104,y:.38850110068914456},{x:.5709111412967293,y:.38860818041949885},{x:.5707397220723512,y:.3887494990196469},{x:.5670483068977423,y:.3907331578965531},{x:.5633765710498215,y:.39275301046402805},{x:.5631647689451196,y:.3928200579522583},{x:.5629690736018615,y:.39292521892344706},{x:.5589615952856832,y:.39415060297614785},{x:.5549663571246989,y:.39541532451398326},{x:.5547455444219794,y:.39543976316271745},{x:.5545330934221359,y:.39550472522779906},{x:.5503635571086607,y:.3959247436343527},{x:.5461983513965825,y:.39638573160311336},{x:.5459770138041778,y:.396366622248786},{x:.5457559715205288,y:.3963888889520305},{x:.32969497152052885,y:.39686888895203054},{x:.32091400776945256,y:.3960237321800639},{x:.31246664968143967,y:.39348173381267654},{x:.3046775244904796,y:.389340581421558},{x:.29784596390946905,y:.3837594171707138},{x:.2922345009803531,y:.3769527220723512},{x:.2880587810765529,y:.3691820736018615},{x:.2854792747722009,y:.3607460934221358},{x:.2845951110479695,y:.3519689715205288},{x:.2854402678199361,y:.3431880077694525},{x:.2879822661873235,y:.33474064968143963},{x:.29212341857844204,y:.32695152449047954},{x:.29770458282928614,y:.320119963909469},{x:.3045112779276488,y:.31450850098035305},{x:.31228192639813845,y:.3103327810765529},{x:.3207179065778642,y:.3077532747722009},{x:.3294950284794712,y:.30686911104796943},{x:.49017057214072013,y:.30651215509128404},{x:.45965681956734333,y:.16222033524572274},{x:.4108567628008364,y:.10626833604444391},{x:.35107150330533127,y:.0844934248457151},{x:.2825297162303303,y:.09056463065174497},{x:.21333680545064249,y:.12164203785622632},{x:.15562253329738823,y:.17126485077351794},{x:.1205010051965362,y:.2291186770707186},{x:.10185989085514695,y:.41364510354456796},{x:.13655871914038514,y:.5827099362211221},{x:.190187982415082,y:.6526649281775241},{x:.2569251189377254,y:.6872526727450867},{x:.3715857772516941,y:.6967797369989467},{x:.4883723057362636,y:.6711064406866752},{x:.49713228125159653,y:.6700660353148682},{x:.5059269093127409,y:.6707546074846872},{x:.5144182172953911,y:.6731456957538017},{x:.5222798889957544,y:.6771474119409674},{x:.529209804779262,y:.6826059723372997},{x:.5349416518686954,y:.6893116075279637},{x:.5392551585948644,y:.6970066237131456},{x:.5419845593133248,y:.7053953057362636},{x:.5430249646851317,y:.7141552812515966},{x:.5423363925153128,y:.722949909312741},{x:.5399453042461984,y:.7314412172953911},{x:.5359435880590326,y:.7393028889957545},{x:.5304850276627003,y:.7462328047792621},{x:.5237793924720363,y:.7519646518686954},{x:.5160843762868544,y:.7562781585948645},{x:.5076956942637364,y:.7590075593133249},{x:.38428269426373635,y:.7861375593133247},{x:.3819812519937546,y:.7864108971664274},{x:.3797153389243004,y:.7868977113667894},{x:.37761181025895013,y:.7869298473215656},{x:.37552271874840343,y:.7871779646851318},{x:.3732121724765259,y:.7869970613144796},{x:.370894825552222,y:.7870324638061055},{x:.24049282555222196,y:.7761974638061055},{x:.24043595887820252,y:.7761870527203061},{x:.24037815170992255,y:.776187787986971},{x:.2360978388350013,y:.7753928346522221},{x:.2318155069745089,y:.7746088302209789},{x:.231761764079766,y:.7745875250435272},{x:.2317049242166051,y:.7745769685631748},{x:.227661944055434,y:.7729622424167508},{x:.22361484767780643,y:.7713578609091699},{x:.22356629387164592,y:.7713264803860874},{x:.22351260563766895,y:.7713050378383375},{x:.13987060563766895,y:.7279560378383374},{x:.13900257424615298,y:.727391873258006},{x:.13805978359276902,y:.7269641982011581},{x:.13531067905832161,y:.7249923788161832},{x:.13247402218179744,y:.7231487342752945},{x:.13173273281971745,y:.7224260654354895},{x:.1308914928889356,y:.7218226787027751},{x:.128579894506033,y:.7193524235854973},{x:.12615742040314795,y:.7169907998540069},{x:.12557136040496888,y:.7161373985129647},{x:.12486399957555622,y:.7153814879181388},{x:.05884299957555622,y:.6292624879181389},{x:.05814177883495547,y:.6281337214080167},{x:.057292540659828396,y:.62711165542026},{x:.05581896837632758,y:.6243946553718145},{x:.05418793684040681,y:.6217691571968414},{x:.05372040128165289,y:.6205252782386133},{x:.05308687616260495,y:.6193571728131668},{x:.052171678571706244,y:.6164048994674943},{x:.051084196133809955,y:.613511651036194},{x:.05086831288622884,y:.6122004612006492},{x:.05047484683830003,y:.6109312059739318},{x:.012315846838300032,y:.4250072059739319},{x:.012065742114142504,y:.42261690788694145},{x:.011602778634016861,y:.4202585732767163},{x:.011607833784388823,y:.41824059149262255},{x:.011397831509003739,y:.41623356008285023}]],H:[[{x:.021894999999999998,y:.05103000000000002},{x:.02275966238185463,y:.04225093550927423},{x:.025320421036992093,y:.03380924554357098},{x:.029478867446385455,y:.026029339514117924},{x:.03507519484660536,y:.019210194846605383},{x:.04189433951411791,y:.013613867446385479},{x:.04967424554357096,y:.009455421036992116},{x:.05811593550927423,y:.006894662381854655},{x:.066895,y:.0060300000000000215},{x:.07567406449072576,y:.006894662381854655},{x:.08411575445642903,y:.009455421036992116},{x:.0918956604858821,y:.013613867446385486},{x:.09871480515339463,y:.019210194846605383},{x:.10431113255361453,y:.026029339514117924},{x:.1084695789630079,y:.03380924554357098},{x:.11103033761814536,y:.04225093550927425},{x:.111895,y:.05103000000000002},{x:.111895,y:.359342},{x:.490157,y:.359342},{x:.490157,y:.05103000000000002},{x:.49102166238185463,y:.04225093550927423},{x:.49358242103699207,y:.03380924554357098},{x:.49774086744638546,y:.026029339514117924},{x:.5033371948466053,y:.019210194846605383},{x:.5101563395141179,y:.013613867446385479},{x:.517936245543571,y:.009455421036992116},{x:.5263779355092743,y:.006894662381854655},{x:.535157,y:.0060300000000000215},{x:.5439360644907257,y:.006894662381854655},{x:.552377754456429,y:.009455421036992116},{x:.5601576604858821,y:.013613867446385486},{x:.5669768051533947,y:.019210194846605383},{x:.5725731325536145,y:.026029339514117924},{x:.5767315789630079,y:.03380924554357098},{x:.5792923376181454,y:.04225093550927425},{x:.580157,y:.05103000000000002},{x:.580157,y:.729004},{x:.5792923376181454,y:.7377830644907257},{x:.5767315789630079,y:.746224754456429},{x:.5725731325536145,y:.7540046604858821},{x:.5669768051533947,y:.7608238051533946},{x:.5601576604858821,y:.7664201325536145},{x:.552377754456429,y:.7705785789630079},{x:.5439360644907257,y:.7731393376181454},{x:.535157,y:.774004},{x:.5263779355092743,y:.7731393376181454},{x:.517936245543571,y:.7705785789630079},{x:.5101563395141179,y:.7664201325536145},{x:.5033371948466053,y:.7608238051533946},{x:.49774086744638546,y:.7540046604858821},{x:.49358242103699207,y:.746224754456429},{x:.49102166238185463,y:.7377830644907257},{x:.490157,y:.729004},{x:.490157,y:.44934199999999996},{x:.111895,y:.44934199999999996},{x:.111895,y:.729004},{x:.11103033761814536,y:.7377830644907257},{x:.10846957896300788,y:.746224754456429},{x:.10431113255361453,y:.7540046604858821},{x:.09871480515339463,y:.7608238051533946},{x:.09189566048588207,y:.7664201325536145},{x:.08411575445642903,y:.7705785789630079},{x:.07567406449072576,y:.7731393376181454},{x:.066895,y:.774004},{x:.05811593550927421,y:.7731393376181454},{x:.04967424554357093,y:.7705785789630079},{x:.04189433951411791,y:.7664201325536145},{x:.03507519484660536,y:.7608238051533946},{x:.029478867446385455,y:.7540046604858821},{x:.025320421036992093,y:.746224754456429},{x:.02275966238185463,y:.7377830644907257},{x:.021894999999999998,y:.729004},{x:.021894999999999998,y:.05103000000000002}]],I:[[{x:.25602600000000003,y:.05103000000000002},{x:.25689066238185465,y:.04225093550927423},{x:.2594514210369921,y:.03380924554357098},{x:.2636098674463855,y:.026029339514117924},{x:.26920619484660535,y:.019210194846605383},{x:.27602533951411795,y:.013613867446385479},{x:.283805245543571,y:.009455421036992116},{x:.2922469355092743,y:.006894662381854655},{x:.301026,y:.0060300000000000215},{x:.3098050644907258,y:.006894662381854655},{x:.3182467544564291,y:.009455421036992116},{x:.32602666048588214,y:.013613867446385486},{x:.3328458051533947,y:.019210194846605383},{x:.33844213255361455,y:.026029339514117924},{x:.34260057896300794,y:.03380924554357098},{x:.3451613376181454,y:.04225093550927425},{x:.346026,y:.05103000000000002},{x:.346026,y:.729004},{x:.3451613376181454,y:.7377830644907257},{x:.34260057896300794,y:.746224754456429},{x:.33844213255361455,y:.7540046604858821},{x:.3328458051533947,y:.7608238051533946},{x:.32602666048588214,y:.7664201325536145},{x:.3182467544564291,y:.7705785789630079},{x:.3098050644907258,y:.7731393376181454},{x:.301026,y:.774004},{x:.2922469355092743,y:.7731393376181454},{x:.283805245543571,y:.7705785789630079},{x:.27602533951411795,y:.7664201325536145},{x:.26920619484660535,y:.7608238051533946},{x:.2636098674463855,y:.7540046604858821},{x:.2594514210369921,y:.746224754456429},{x:.25689066238185465,y:.7377830644907257},{x:.25602600000000003,y:.729004},{x:.25602600000000003,y:.05103000000000002}]],J:[[{x:.0492700034030052,y:.22191686675397743},{x:.05066400340300519,y:.18438286675397747},{x:.05116783173382979,y:.18068175768771486},{x:.05155979864248331,y:.17696713613904605},{x:.05874879864248331,y:.14209513613904604},{x:.05880353678004782,y:.1419191061579158},{x:.05882437610196882,y:.14173594355086241},{x:.060112741823836933,y:.13770889095133898},{x:.06136821695472819,y:.13367146342030908},{x:.0614562450600313,y:.133509494686791},{x:.06151241721221637,y:.13333391704789688},{x:.07511841721221638,y:.10184091704789687},{x:.07557207470549994,y:.10102219111224012},{x:.07589401217340325,y:.10014328637013822},{x:.07770640675364808,y:.09717031380613761},{x:.07939396242231754,y:.09412474393402119},{x:.07999862852050488,y:.09341025377409445},{x:.08048584585939292,y:.09261104382444658},{x:.10112984585939291,y:.06520804382444652},{x:.10197173470408774,y:.06429305686105671},{x:.10267645797068833,y:.06326868237508665},{x:.10495244591663212,y:.06105354143298789},{x:.10710291637241387,y:.058716353519649434},{x:.10810713366035453,y:.05798319214000915},{x:.10899816141532707,y:.05711598541156246},{x:.1373061614153271,y:.03451898541156248},{x:.13912164740426522,y:.03334117545586675},{x:.1408101373903697,y:.03198757757075004},{x:.14281300361792376,y:.03094638082514127},{x:.14470672673278473,y:.029717813955661344},{x:.1467171079910441,y:.028916819034200267},{x:.14863722796281134,y:.027918638208003034},{x:.20683022796281134,y:.004592638208003076},{x:.20850921914024034,y:.004104279923540699},{x:.2101185278310492,y:.0034204446176558795},{x:.21273469892125257,y:.0028752394826936905},{x:.21530073387518742,y:.0021288719943945503},{x:.21704273768291169,y:.0019774523068977427},{x:.21875453360851305,y:.0016207172553791283},{x:.2976895336085131,y:-.0068802827446208525},{x:.29850402526559744,y:-.006887701289741747},{x:.2993068957135494,y:-.007024999279811796},{x:.30290822222422875,y:-.006927815554356645},{x:.3065107103471747,y:-.0069606277022222565},{x:.30731099906181086,y:-.006809004262418785},{x:.30812522808832776,y:-.0067870318558802545},{x:.3663632280883278,y:.0005399681441197179},{x:.367446910459264,y:.0007860908462292888},{x:.3685549625674647,y:.000870733572342984},{x:.37174033606180384,y:.0017612008405818037},{x:.37496569353784953,y:.0024937343933679954},{x:.37598053709868623,y:.002946543859479297},{x:.3770507853196353,y:.0032457304419443098},{x:.4423997853196353,y:.028649730441944292},{x:.44339023767510893,y:.0291515261148112},{x:.4444435524779453,y:.029502699422305954},{x:.4473177196266577,y:.03114131738307233},{x:.45026902431580135,y:.03263654520916596},{x:.4511425499275847,y:.03332192668785485},{x:.4521071150681948,y:.03387184382278591},{x:.4818761150681948,y:.0549598438227859},{x:.482276572000261,y:.05530719927286456},{x:.48273081061614365,y:.05558049186877649},{x:.48560514894853896,y:.05819439949693127},{x:.48854004666413575,y:.060740123232255375},{x:.48886504324193186,y:.061158929616590856},{x:.48925723704963914,y:.06151558852974905},{x:.5141262370496392,y:.08904658852974903},{x:.5149956342421861,y:.09022293690705172},{x:.5160117353213701,y:.09127516577002369},{x:.5176116053111659,y:.0937625081737249},{x:.5193693801104602,y:.0961408866071265},{x:.519992577896003,y:.09746424275846524},{x:.5207838752101566,y:.09869448482562238},{x:.5385188752101566,y:.1333154848256224},{x:.5396070973995049,y:.13607819549886616},{x:.5408707323766272,y:.1387652058155645},{x:.5412201620380835,y:.14017334347255597},{x:.5417518824254063,y:.14152324205357814},{x:.5422802166156467,y:.1444451696332536},{x:.5429953614930656,y:.1473270727547606},{x:.5523413614930656,y:.2113020727547606},{x:.5524962602601196,y:.21460328519222147},{x:.5528139181508881,y:.2178928278123641},{x:.5518389181508881,y:.7290898278123641},{x:.5509575131661891,y:.7378672271777721},{x:.5483806584624608,y:.7463040176932935},{x:.5442073811208505,y:.7540759782308231},{x:.5385980578491955,y:.7608844367054697},{x:.5317682517950807,y:.7664677478762799},{x:.5239804285749665,y:.7706113482261165},{x:.5155338698677402,y:.7731560015172932},{x:.5067531721876358,y:.7740039181508881},{x:.4979757728222279,y:.7731225131661891},{x:.4895389823067066,y:.7705456584624607},{x:.48176702176917696,y:.7663723811208505},{x:.4749585632945304,y:.7607630578491954},{x:.46937525212372017,y:.7539332517950806},{x:.4652316517738835,y:.7461454285749665},{x:.46268699848270683,y:.7376988698677401},{x:.461839081849112,y:.7289181721876359},{x:.462807763438783,y:.22103394388498027},{x:.45501827222953295,y:.16771351802238937},{x:.44337725180090903,y:.14498874958374325},{x:.42579959063650114,y:.12552955984883984},{x:.4046143325842134,y:.11052217895574154},{x:.34961801160788414,y:.08914271579513207},{x:.3021031758959219,y:.08316481131246532},{x:.2345584384824393,y:.09043912324952764},{x:.18827433696976265,y:.10899157718530504},{x:.16959144206995366,y:.1239052897771866},{x:.155605251275173,y:.14247066404328695},{x:.14596289111822178,y:.16478926233983734},{x:.14046290234137151,y:.19146830095804884},{x:.13920799659699482,y:.22525713324602253},{x:.1380181031040591,y:.23399805813086086},{x:.13514580323043823,y:.24233889189031887},{x:.13070147784947123,y:.24995910096061402},{x:.12485591989314217,y:.25656584498063745},{x:.11783377087548613,y:.26190523048280423},{x:.10990488804518514,y:.26577206787662816},{x:.10137397392283892,y:.2680177567696118},{x:.09256886675397746,y:.2685559965969948},{x:.08382794186913914,y:.26736610310405906},{x:.07548710810968112,y:.26449380323043825},{x:.06786689903938595,y:.2600494778494712},{x:.06126015501936256,y:.2542039198931421},{x:.055920769517195726,y:.24718177087548612},{x:.052053932123371845,y:.23925288804518513},{x:.04980824323038816,y:.2307219739228389},{x:.0492700034030052,y:.22191686675397743}]],K:[[{x:-.009598999999999996,y:.05103000000000002},{x:-.008734337618145363,y:.04225093550927423},{x:-.006173578963007902,y:.03380924554357098},{x:-.002015132553614539,y:.026029339514117924},{x:.003581194846605365,y:.019210194846605383},{x:.010400339514117916,y:.013613867446385479},{x:.018180245543570964,y:.009455421036992116},{x:.026621935509274233,y:.006894662381854655},{x:.035401,y:.0060300000000000215},{x:.04418006449072578,y:.006894662381854655},{x:.05262175445642904,y:.009455421036992116},{x:.06040166048588211,y:.013613867446385486},{x:.06722080515339464,y:.019210194846605383},{x:.07281713255361454,y:.026029339514117924},{x:.07697557896300791,y:.03380924554357098},{x:.07953633761814537,y:.04225093550927425},{x:.080401,y:.05103000000000002},{x:.080401,y:.29048154892126793},{x:.18934433769134518,y:.3772029724897202},{x:.5349508182082354,y:.03415901207017739},{x:.5417907398770268,y:.02858809778868676},{x:.5495860658299886,y:.024458629583942203},{x:.5580372260624178,y:.02192930060321959},{x:.5668194472260474,y:.021097311540784057},{x:.5755952334866855,y:.021994635269720175},{x:.5840273362998535,y:.024586788142349852},{x:.5917917146832189,y:.028774155177474024},{x:.5985899879298227,y:.03439581820823536},{x:.6041609022113132,y:.04123573987702663},{x:.6082903704160578,y:.04903106582998847},{x:.6108196993967804,y:.05748222606241771},{x:.6116516884592159,y:.06626444722604735},{x:.6107543647302798,y:.07504023348668547},{x:.6081622118576502,y:.08347233629985339},{x:.603974844822526,y:.0912367146832188},{x:.5983531817917647,y:.09803498792982254},{x:.26024203797571366,y:.43363918627462555},{x:.5302838206406747,y:.648598708462355},{x:.5366139141989896,y:.654742773070568},{x:.5416237292416561,y:.6620037211908337},{x:.545120741386121,y:.6701025186588768},{x:.5469705624168195,y:.6787279332298585},{x:.5471021047489336,y:.6875484950590041},{x:.5455103132844098,y:.6962252349018474},{x:.542256359676543,y:.7044247105121999},{x:.537465291537645,y:.7118318206406747},{x:.531321226929432,y:.7181619141989897},{x:.5240602788091663,y:.7231717292416562},{x:.5159614813411232,y:.726668741386121},{x:.5073360667701415,y:.7285185624168196},{x:.498515504940996,y:.7286501047489337},{x:.48983876509815266,y:.7270583132844098},{x:.48163928948780005,y:.723804359676543},{x:.47423217935932527,y:.719013291537645},{x:.080401,y:.4055145384845117},{x:.080401,y:.729004},{x:.07953633761814537,y:.7377830644907257},{x:.07697557896300788,y:.746224754456429},{x:.07281713255361454,y:.7540046604858821},{x:.06722080515339464,y:.7608238051533946},{x:.06040166048588208,y:.7664201325536145},{x:.052621754456429054,y:.7705785789630079},{x:.04418006449072578,y:.7731393376181454},{x:.035401,y:.774004},{x:.026621935509274212,y:.7731393376181454},{x:.018180245543570936,y:.7705785789630079},{x:.010400339514117906,y:.7664201325536145},{x:.003581194846605358,y:.7608238051533946},{x:-.002015132553614539,y:.7540046604858821},{x:-.006173578963007902,y:.746224754456429},{x:-.008734337618145363,y:.7377830644907257},{x:-.009598999999999996,y:.729004},{x:-.009598999999999996,y:.05103000000000002}]],L:[[{x:.030439999999999995,y:.05103000000000002},{x:.03130466238185463,y:.04225093550927423},{x:.03386542103699209,y:.03380924554357098},{x:.03802386744638545,y:.026029339514117924},{x:.043620194846605356,y:.019210194846605383},{x:.05043933951411791,y:.013613867446385479},{x:.058219245543570955,y:.009455421036992116},{x:.06666093550927422,y:.006894662381854655},{x:.07544,y:.0060300000000000215},{x:.526613,y:.0060300000000000215},{x:.5353920644907257,y:.006894662381854655},{x:.543833754456429,y:.009455421036992116},{x:.5516136604858821,y:.013613867446385479},{x:.5584328051533947,y:.019210194846605383},{x:.5640291325536145,y:.026029339514117924},{x:.5681875789630079,y:.03380924554357098},{x:.5707483376181454,y:.04225093550927425},{x:.571613,y:.05103000000000002},{x:.5707483376181454,y:.05980906449072579},{x:.5681875789630079,y:.06825075445642906},{x:.5640291325536145,y:.07603066048588211},{x:.5584328051533947,y:.08284980515339466},{x:.5516136604858821,y:.08844613255361455},{x:.543833754456429,y:.09260457896300792},{x:.5353920644907257,y:.09516533761814538},{x:.526613,y:.09603000000000002},{x:.12043999999999999,y:.09603000000000002},{x:.12043999999999999,y:.729004},{x:.11957533761814536,y:.7377830644907257},{x:.11701457896300788,y:.746224754456429},{x:.11285613255361453,y:.7540046604858821},{x:.10725980515339463,y:.7608238051533946},{x:.10044066048588207,y:.7664201325536145},{x:.09266075445642903,y:.7705785789630079},{x:.08421906449072576,y:.7731393376181454},{x:.07544,y:.774004},{x:.06666093550927422,y:.7731393376181454},{x:.05821924554357093,y:.7705785789630079},{x:.05043933951411791,y:.7664201325536145},{x:.043620194846605356,y:.7608238051533946},{x:.03802386744638545,y:.7540046604858821},{x:.03386542103699209,y:.746224754456429},{x:.03130466238185463,y:.7377830644907257},{x:.030439999999999995,y:.729004},{x:.030439999999999995,y:.05103000000000002}]],M:[[{x:-.0025190000000000004,y:.05103000000000002},{x:-.001654337618145367,y:.04225093550927423},{x:.0009064210369920944,y:.03380924554357098},{x:.005064867446385457,y:.026029339514117924},{x:.010661194846605361,y:.019210194846605383},{x:.017480339514117912,y:.013613867446385479},{x:.02526024554357096,y:.009455421036992116},{x:.03370193550927423,y:.006894662381854655},{x:.042481,y:.0060300000000000215},{x:.051260064490725774,y:.006894662381854655},{x:.05970175445642904,y:.009455421036992116},{x:.06748166048588208,y:.013613867446385486},{x:.07430080515339463,y:.019210194846605383},{x:.07989713255361454,y:.026029339514117924},{x:.0840555789630079,y:.03380924554357098},{x:.08661633761814536,y:.04225093550927425},{x:.087481,y:.05103000000000002},{x:.087481,y:.5631122522964573},{x:.26219554141599577,y:.26476777519375044},{x:.26376288989624813,y:.2626088267569117},{x:.2651577075441738,y:.2603345964826191},{x:.26634817172230724,y:.2590477232579252},{x:.26737807478439135,y:.2576290804774607},{x:.2693364970488442,y:.25581739014918375},{x:.271148193983327,y:.2538589739959976},{x:.27256684023788735,y:.25282907571933333},{x:.27385371747828813,y:.25163861588213104},{x:.27612795245761435,y:.25024380590572387},{x:.27828690618147356,y:.24867646470811877},{x:.2798792167324836,y:.24794311979268302},{x:.28137361418054185,y:.2470265916026687},{x:.2838762642998919,y:.24610226374330602},{x:.28629950743227456,y:.24498622954453103},{x:.28800429067823724,y:.24457762002415934},{x:.28964877947809164,y:.24397024514568044},{x:.29228366929688115,y:.24355192080462856},{x:.2948780779631802,y:.2429300821730634},{x:.29662982004000654,y:.24286191068247276},{x:.29836120340931876,y:.24258703019148947},{x:.3010270755894747,y:.24269078533857608},{x:.3036929481196057,y:.24258703918410057},{x:.30542433056167173,y:.24286192551544342},{x:.30717607240852984,y:.24293010291506947},{x:.3097704789772072,y:.24355195029817853},{x:.3124053673848756,y:.24397028352732772},{x:.31404985413590314,y:.24457766395304856},{x:.3157546360035206,y:.24498627922405064},{x:.3181778753712451,y:.24610232159698525},{x:.32068052237260675,y:.24702665789836697},{x:.32217491672899246,y:.24794319112932822},{x:.32376722480624953,y:.2486765414159958},{x:.3259261732430879,y:.2502438898962479},{x:.3282004035173809,y:.2516387075441738},{x:.329487276742075,y:.2528291717223074},{x:.3309059195225393,y:.2538590747843914},{x:.3327176098508159,y:.2558174970488439},{x:.33467602600400237,y:.257629193983327},{x:.3357059242806667,y:.2590478402378874},{x:.33689638411786893,y:.2603347174782881},{x:.3382911940942761,y:.2626089524576143},{x:.3398585352918812,y:.26476790618147356},{x:.514571,y:.5631111449291359},{x:.514571,y:.05103000000000002},{x:.5154356623818547,y:.04225093550927423},{x:.5179964210369922,y:.03380924554357098},{x:.5221548674463855,y:.026029339514117924},{x:.5277511948466054,y:.019210194846605383},{x:.5345703395141179,y:.013613867446385479},{x:.542350245543571,y:.009455421036992116},{x:.5507919355092743,y:.006894662381854655},{x:.559571,y:.0060300000000000215},{x:.5683500644907258,y:.006894662381854655},{x:.576791754456429,y:.009455421036992116},{x:.5845716604858822,y:.013613867446385486},{x:.5913908051533947,y:.019210194846605383},{x:.5969871325536146,y:.026029339514117924},{x:.6011455789630079,y:.03380924554357098},{x:.6037063376181454,y:.04225093550927425},{x:.6045710000000001,y:.05103000000000002},{x:.6045710000000001,y:.729004},{x:.6044399806971988,y:.7303342613054065},{x:.6044919608158994,y:.7316699481196056},{x:.6040085293496043,y:.7347148603514975},{x:.6037063376181454,y:.7377830644907257},{x:.6033183147080721,y:.7390622046001841},{x:.6031087164726723,y:.7403823673848756},{x:.6020405410986152,y:.7432744596816038},{x:.6011455789630079,y:.746224754456429},{x:.6005154639484909,y:.7474036167328832},{x:.600052342101633,y:.7486575223726067},{x:.5984404722003996,y:.7512856532491108},{x:.5969871325536146,y:.7540046604858821},{x:.596139140401289,y:.7550379419131618},{x:.5954402924558263,y:.7561774035173808},{x:.5933466712837743,y:.758440575377949},{x:.5913908051533947,y:.7608238051533946},{x:.5903575237261146,y:.7616717973057207},{x:.589449806016673,y:.7626530260040023},{x:.5869548902613284,y:.7644642664232344},{x:.5845716604858822,y:.7664201325536145},{x:.5833927982094276,y:.7670502475681318},{x:.5823110938185264,y:.7678355352918812},{x:.579510761693201,y:.7691252393162225},{x:.576791754456429,y:.7705785789630079},{x:.5755126143469705,y:.7709666018730812},{x:.5742984925677255,y:.7715257704554689},{x:.5713003592655512,y:.772244375482538},{x:.5683500644907258,y:.7731393376181454},{x:.5670198031853202,y:.7732703569209465},{x:.5657199220368199,y:.7735819178269366},{x:.5626392041392276,y:.7737018082685412},{x:.559571,y:.774004},{x:.5582407386945936,y:.7738729806971988},{x:.5569050518803944,y:.7739249608158993},{x:.5538601396485026,y:.7734415293496042},{x:.5507919355092743,y:.7731393376181454},{x:.5495127953998159,y:.772751314708072},{x:.5481926326151244,y:.7725417164726722},{x:.5453005403183963,y:.7714735410986151},{x:.542350245543571,y:.7705785789630079},{x:.5411713832671168,y:.7699484639484908},{x:.5399174776273933,y:.769485342101633},{x:.5372893467508892,y:.7678734722003996},{x:.5345703395141179,y:.7664201325536145},{x:.5335370580868383,y:.765572140401289},{x:.5323975964826192,y:.7648732924558262},{x:.5301344246220511,y:.7627796712837742},{x:.5277511948466054,y:.7608238051533946},{x:.5269032026942794,y:.7597905237261146},{x:.5259219739959977,y:.7588828060166729},{x:.5241107335767656,y:.7563878902613284},{x:.5221548674463855,y:.7540046604858821},{x:.5215247524318682,y:.7528257982094275},{x:.5207394647081188,y:.7517440938185264},{x:.30102684980758887,y:.3765575080608823},{x:.08131245858400418,y:.7517442248062496},{x:.0805272117946797,y:.752825865136849},{x:.07989713255361454,y:.7540046604858821},{x:.07794121846393844,y:.7563879486998997},{x:.0761299252156086,y:.7588829195225393},{x:.07514874916275306,y:.7597905823884902},{x:.07430080515339463,y:.7608238051533946},{x:.0719175169393771,y:.7627797192430708},{x:.06965428252171184,y:.764873384117869},{x:.06851488325078628,y:.7655721885442563},{x:.06748166048588208,y:.7664201325536145},{x:.06476258657702469,y:.7678735078373721},{x:.06213438581945812,y:.7694854083973313},{x:.06088054980546198,y:.7699484997219428},{x:.05970175445642904,y:.7705785789630079},{x:.056751387338174995,y:.7714735630437544},{x:.05385922052190834,y:.7725417548543195},{x:.05253913197970031,y:.7727513367372549},{x:.051260064490725774,y:.7731393376181454},{x:.04819178511684276,y:.773441536759571},{x:.0451467965906812,y:.7739249698085104},{x:.04381118578262464,y:.7738729881355436},{x:.042481,y:.774004},{x:.039412720626117295,y:.7737018008585744},{x:.03633192759147018,y:.7735818970849305},{x:.035032121291898165,y:.7732703494826018},{x:.03370193550927423,y:.7731393376181454},{x:.030751568391020223,y:.7722443535373988},{x:.02775336399647938,y:.7715257207759494},{x:.026539313032545114,y:.7709665798438982},{x:.02526024554357096,y:.7705785789630079},{x:.02254117163471342,y:.7691252036792503},{x:.01974077519375046,y:.7678354585840041},{x:.01865913486315115,y:.7670502117946798},{x:.017480339514117912,y:.7664201325536145},{x:.015097051300099952,y:.7644642184639381},{x:.012602080477460715,y:.7626529252156086},{x:.011694417611510011,y:.7616717491627533},{x:.010661194846605361,y:.7608238051533946},{x:.008705280756928618,y:.7584405169393763},{x:.006611615882131057,y:.7561772825217118},{x:.005912811455744052,y:.7550378832507868},{x:.005064867446385457,y:.7540046604858821},{x:.0036114921626275165,y:.7512855865770239},{x:.0019995916026687363,y:.7486573858194581},{x:.0015365002780573323,y:.7474035498054622},{x:.0009064210369920944,y:.746224754456429},{x:11436956245516774e-21,y:.7432743873381747},{x:-.0010567548543195318,y:.7403822205219084},{x:-.0012663367372549837,y:.7390621319797002},{x:-.001654337618145367,y:.7377830644907257},{x:-.0019565367595708303,y:.7347147851168438},{x:-.0024399698085105087,y:.7316697965906812},{x:-.0023879881355436095,y:.730334185782624},{x:-.0025190000000000004,y:.729004},{x:-.0025190000000000004,y:.05103000000000002}]],N:[[{x:.022871000000000002,y:.05103000000000002},{x:.023735662381854636,y:.04225093550927423},{x:.026296421036992097,y:.03380924554357098},{x:.03045486744638546,y:.026029339514117924},{x:.036051194846605364,y:.019210194846605383},{x:.042870339514117915,y:.013613867446385479},{x:.05065024554357096,y:.009455421036992116},{x:.05909193550927423,y:.006894662381854655},{x:.067871,y:.0060300000000000215},{x:.07665006449072577,y:.006894662381854655},{x:.08509175445642904,y:.009455421036992116},{x:.0928716604858821,y:.013613867446385486},{x:.09969080515339464,y:.019210194846605383},{x:.10528713255361455,y:.026029339514117924},{x:.10944557896300791,y:.03380924554357098},{x:.11200633761814537,y:.04225093550927425},{x:.112871,y:.05103000000000002},{x:.112871,y:.5841703094604355},{x:.49710429367778214,y:.025528669675955993},{x:.4971050718109503,y:.02552774709009411},{x:.49710565506134197,y:.025526690456344234},{x:.49994880496714983,y:.022156103119426583},{x:.5027917749380927,y:.01878536401177818},{x:.5027927181072235,y:.018784610959395015},{x:.5027934962896407,y:.018783688415073364},{x:.5062395848358414,y:.016032536999645196},{x:.5096855265142521,y:.01328120162562755},{x:.5096865984738844,y:.013280647046104224},{x:.5096875416832135,y:.013279894044071351},{x:.5136041376200112,y:.011253903755746949},{x:.5175206253992491,y:.009227704391234041},{x:.5175217849545753,y:.009227369596750634},{x:.5175228569438108,y:.00922681507445236},{x:.5217594476858983,y:.008003843583871996},{x:.5259959731369073,y:.006780645934087934},{x:.5259971757268666,y:.006780543790608634},{x:.5259983353000632,y:.006780209058025982},{x:.5303921110410749,y:.006407254473822295},{x:.5347858668666982,y:.00603406533837119},{x:.5347870662764328,y:.00603419977121261},{x:.5347882688718429,y:.006034097691931008},{x:.5391703792739257,y:.006525492449663053},{x:.5435525159020149,y:.007016653277689966},{x:.5435536660388816,y:.007017019120673398},{x:.543554865441438,y:.007017153617542397},{x:.547756908459233,y:.008354013692199154},{x:.5519590228368241,y:.009690649448577907},{x:.5519600795017079,y:.0096912326425627},{x:.551961229619043,y:.009691598546943021},{x:.555821723096155,y:.01182254915564361},{x:.559682330324044,y:.013953293677782128},{x:.5596832529099061,y:.01395407181095043},{x:.5596843095436558,y:.013954655061341997},{x:.5630548968806759,y:.016797804967236304},{x:.5664256359882218,y:.01964077493809272},{x:.5664263890406048,y:.019641718107223288},{x:.5664273115849267,y:.019642496289640633},{x:.5691784630004857,y:.02308858483600535},{x:.5719297983743725,y:.026534526514252196},{x:.5719303529538958,y:.0265355984738845},{x:.5719311059559287,y:.0265365416832135},{x:.5739570962443242,y:.03045313762014873},{x:.575983295608766,y:.03436962539924916},{x:.5759836304032494,y:.03437078495457533},{x:.5759841849255477,y:.0343718569438108},{x:.5772071564160691,y:.03860844768569421},{x:.5784303540659121,y:.04284497313690728},{x:.5784304562093915,y:.04284617572686688},{x:.578430790941974,y:.042847335300063204},{x:.5788037455260991,y:.04724111104014873},{x:.5791769346616289,y:.05163486686669809},{x:.5791768002287875,y:.05163606627643281},{x:.5791769023080691,y:.05163726887184294},{x:.5700269023080691,y:.7296112688718429},{x:.5690438463824576,y:.738377865441438},{x:.566369401453057,y:.746784229619043},{x:.5621063449386581,y:.7545073095436557},{x:.5564185037103594,y:.7612503115849266},{x:.5495244583167865,y:.7667541059559286},{x:.5416891430561892,y:.7708071849255477},{x:.5332136646999368,y:.773253790941974},{x:.5244237311281571,y:.773999902308069},{x:.515657134558562,y:.7730168463824576},{x:.507250770380957,y:.770342401453057},{x:.49952769045634426,y:.766079344938658},{x:.4927846884150734,y:.7603915037103594},{x:.4872808940440714,y:.7534974583167865},{x:.4832278150744524,y:.7456621430561892},{x:.480781209058026,y:.7371866646999369},{x:.48003509769193103,y:.7283967311281571},{x:.48718300813543913,y:.19876859615253395},{x:.10494770632221789,y:.754505330324044},{x:.1022980223560627,y:.75764690179997},{x:.09969080515339464,y:.7608238051533946},{x:.09945603456444842,y:.7610164763964532},{x:.09926022506190729,y:.7612486359882218},{x:.09604856383930557,y:.7638129153509474},{x:.0928716604858821,y:.7664201325536145},{x:.09260381265312083,y:.7665633002029657},{x:.09236647348574781,y:.7667527983743725},{x:.08871625734636118,y:.7686412418060533},{x:.08509175445642904,y:.7705785789630079},{x:.08480112262185491,y:.7706667411661766},{x:.08453137460075086,y:.770806295608766},{x:.08058287930375276,y:.7719463312873718},{x:.07665006449072577,y:.7731393376181454},{x:.07634781747275289,y:.773169106351106},{x:.07605602686309273,y:.7732533540659121},{x:.07196099086840901,y:.7736011710596524},{x:.067871,y:.774004},{x:.06756875298202693,y:.7739742312670393},{x:.06726613313330192,y:.7739999346616289},{x:.06318192637768459,y:.7735421665584931},{x:.05909193550927423,y:.7731393376181454},{x:.05880130367469977,y:.7730511754149765},{x:.05849948409798508,y:.77301734672231},{x:.054583060356599135,y:.7717715852937818},{x:.05065024554357096,y:.7705785789630079},{x:.0503823977108098,y:.7704354113136568},{x:.050092977163175983,y:.7703433505514221},{x:.04649484240404986,y:.768357469710569},{x:.042870339514117915,y:.7664201325536145},{x:.04263556892517204,y:.7662274613105563},{x:.04236966967595597,y:.7660807063222179},{x:.03922809820002561,y:.7634310223560591},{x:.036051194846605364,y:.7608238051533946},{x:.03585852360354703,y:.7605890345644487},{x:.035626364011778155,y:.7603932250619073},{x:.033062084649052234,y:.7571815638393052},{x:.03045486744638546,y:.7540046604858821},{x:.030311699797034096,y:.7537368126531205},{x:.03012220162562753,y:.7534994734857478},{x:.028233758193948882,y:.7498492573463653},{x:.026296421036992097,y:.746224754456429},{x:.026208258833823234,y:.7459341226218545},{x:.026068704391234022,y:.7456643746007509},{x:.02492866871262922,y:.741715879303756},{x:.023735662381854636,y:.7377830644907257},{x:.023705893648893955,y:.7374808174727527},{x:.023621645934087915,y:.7371890268630927},{x:.023273828940347806,y:.7330939908684111},{x:.022871000000000002,y:.729004},{x:.022871000000000002,y:.05103000000000002}]],O:[[{x:.012131736117046842,y:.4355587711738732},{x:.012426138979982786,y:.43287355609157196},{x:.012514983726773468,y:.43017371170811375},{x:.012905745911416293,y:.42849911573111366},{x:.01309315536666239,y:.42678977537085305},{x:.07316415536666239,y:.1412837753708531},{x:.07429915106219231,y:.13768552483470178},{x:.07533122192175289,y:.13405641311271962},{x:.07562440736087628,y:.1334840955199844},{x:.07581784742995093,y:.1328708369543332},{x:.07763301835724021,y:.12956315246900071},{x:.0793532628391043,y:.12620512014747703},{x:.07975246842568721,y:.12570099711853563},{x:.0800618324091279,y:.12513726042963025},{x:.08248742256740031,y:.1222472544549173},{x:.0848297326408542,y:.1192893488327618},{x:.1660597326408542,y:.03517334883276172},{x:.16792084009780786,y:.033590824390739155},{x:.16963596886504836,y:.031851158363102774},{x:.17127304088861567,y:.03074040344046043},{x:.172780173663761,y:.0294588683817891},{x:.1749142556657825,y:.0282698357562587},{x:.17693582072022015,y:.026898201947035502},{x:.17875813439943417,y:.026128166777013812},{x:.18048632312818114,y:.025165283073572443},{x:.1828113681007397,y:.02441543612151622},{x:.18506168183103927,y:.023464545648773483},{x:.2739246818310393,y:-.0041824543512264944},{x:.2748960678404206,y:-.004382857312604547},{x:.27582577451608603,y:-.004728396924478621},{x:.2792086173377598,y:-.005272563034129881},{x:.28256427991205235,y:-.0059648570457577},{x:.28355609768991147,y:-.005971901311054349},{x:.2845353517466465,y:-.006129424701440567},{x:.287959355733624,y:-.0060031749164705245},{x:.2913856000541485,y:-.006027509400590186},{x:.29235973459950004,y:-.005840924262640544},{x:.29335090385307644,y:-.005804377895986514},{x:.3811419038530764,y:.006122622104013507},{x:.38318930529213563,y:.00660893405691686},{x:.3852758334501729,y:.006882342567970358},{x:.387470347489584,y:.0076257947232155985},{x:.38972465411174423,y:.008161252125438313},{x:.3916378405507577,y:.009037647936572414},{x:.39363093730084414,y:.009712864429997858},{x:.3956382440479665,y:.010870159811164118},{x:.3977447722434711,y:.011835121954387393},{x:.39945022100051475,y:.01306792222421872},{x:.4012732927522862,y:.01411899850883961},{x:.4916652927522862,y:.07880999850883955},{x:.49276799959381884,y:.07977586317754862},{x:.49398769122063274,y:.08058901093294302},{x:.4960788615418114,y:.08267585840574071},{x:.4983012083703825,y:.08462241954283417},{x:.4991942961599152,y:.08578485282556958},{x:.5002319144966787,y:.08682032620708877},{x:.5018757798210403,y:.08927504258220473},{x:.5036756696393939,y:.09161775945128844},{x:.5043248175140242,y:.09293208968889465},{x:.5051404874699588,y:.09415009603518716},{x:.5560304874699588,y:.18912209603518723},{x:.5570965448702581,y:.19168827319789875},{x:.5583465570022521,y:.1941700494329812},{x:.5587848767756364,y:.19575236841213633},{x:.559414776433869,y:.19726864147332673},{x:.5599597135111237,y:.1999934877429328},{x:.5607015364856348,y:.20267144261291137},{x:.5892585364856349,y:.36700144261291134},{x:.5895780755292599,y:.371318367211785},{x:.589913428370686,y:.37563409214099147},{x:.5899036127276142,y:.3757163259822715},{x:.58990972616553,y:.3757989176124618},{x:.5893809351459178,y:.38009523269056544},{x:.5888678881103582,y:.38439345626922305},{x:.5314878881103581,y:.6446844562692231},{x:.5303800126922803,y:.6480826863142071},{x:.5293998170293023,y:.651519919480997},{x:.5290148883003433,y:.6522699863013032},{x:.5287535704445262,y:.6530715368858165},{x:.5270040207481954,y:.6561883351212919},{x:.5253720883446767,y:.6593682961290664},{x:.5248482251358019,y:.6600288547560561},{x:.5244355536676654,y:.6607640231862051},{x:.522111563906752,y:.6634796128039058},{x:.5198906090097624,y:.6662800975344761},{x:.4528876090097624,y:.7355630975344761},{x:.4513498405668143,y:.7368687638478525},{x:.44995999895015265,y:.7383308981052339},{x:.44799560298794544,y:.7397167316507253},{x:.4461630292013509,y:.741272707045399},{x:.44440008568631667,y:.7422532816059559},{x:.4427517012434998,y:.743416176715023},{x:.4405546878862334,y:.7443921472166956},{x:.43845377075029196,y:.7455607075703166},{x:.43653340109378364,y:.7461785074476045},{x:.43468982031452474,y:.7469974740014746},{x:.32025082031452473,y:.7849044740014746},{x:.3162756641960007,y:.785800462676764},{x:.3123143949565378,y:.7867559771378485},{x:.3119757732525013,y:.7867696456410259},{x:.3116451697261732,y:.786844162718285},{x:.30757159639863574,y:.7869474207351895},{x:.30350003021295163,y:.7871117699623142},{x:.30316524843732107,y:.7870591140117537},{x:.302826459804451,y:.7870677017158569},{x:.29881101440639224,y:.7863742609266953},{x:.29478561927964103,y:.7857411290712295},{x:.173234619279641,y:.7541621290712296},{x:.17180894449846637,y:.7536379076298808},{x:.17032768986057922,y:.753301394035824},{x:.16767817066393412,y:.7521190197025511},{x:.16495505208167519,y:.7511177274253745},{x:.16365904177145735,y:.7503254433998781},{x:.16227189957151614,y:.7497064173758784},{x:.15990395993272244,y:.7480298664806163},{x:.1574285077432372,y:.7465165596726792},{x:.15631196685338702,y:.745486660093817},{x:.15507224418821702,y:.7446089104628228},{x:.08487024418821705,y:.6837459104628228},{x:.08477922863788438,y:.6836498346778195},{x:.08467166808724909,y:.6835727301071804},{x:.08174665618590948,y:.6804486588585436},{x:.07880340242944883,y:.6773417676286113},{x:.07873287917322891,y:.6772297816598538},{x:.07864242772392874,y:.6771331746094597},{x:.07638309517198695,y:.6734984900001298},{x:.07410251962167697,y:.6698770964908778},{x:.07405519882875666,y:.6697535038963435},{x:.0739853324792622,y:.6696411069209627},{x:.07247850415964274,y:.6656354878421232},{x:.07094824805491862,y:.6616387601752097},{x:.07092594823683183,y:.6615083105489945},{x:.0708793519117729,y:.6613844430013583},{x:.013660351911772894,y:.4476944430013583},{x:.013380528959940628,y:.4459977798389246},{x:.012899536483696877,y:.44434683677239306},{x:.012664423003084308,y:.4416557821956227},{x:.012224847112815455,y:.43899048181468664},{x:.012281403443251489,y:.4372718288093888},{x:.012131736117046842,y:.4355587711738732}],[{x:.10337829031332789,y:.4348001396911351},{x:.15424861715004387,y:.6247803934833692},{x:.2060651876410252,y:.6697037849792326},{x:.3045603004668897,y:.6952928559694175},{x:.3958853477721772,y:.6650421672339206},{x:.4463402797077116,y:.6128703383711886},{x:.499069598507425,y:.373676069990286},{x:.47327322171072966,y:.22523195474705573},{x:.4307624349909165,y:.1458974207255564},{x:.35796896612556683,y:.09380119213930618},{x:.2911281310221294,y:.08472041346861442},{x:.22279798440939425,y:.10597924519162948},{x:.15856873728877424,y:.17249047688925445},{x:.10337829031332789,y:.4348001396911351}]],P:[[{x:.025556999999999996,y:.05103000000000002},{x:.02642166238185463,y:.04225093550927423},{x:.02898242103699209,y:.03380924554357098},{x:.033140867446385454,y:.026029339514117924},{x:.03873719484660536,y:.019210194846605383},{x:.04555633951411791,y:.013613867446385479},{x:.053336245543570956,y:.009455421036992116},{x:.061777935509274226,y:.006894662381854655},{x:.070557,y:.0060300000000000215},{x:.07933606449072576,y:.006894662381854655},{x:.08777775445642903,y:.009455421036992116},{x:.09555766048588209,y:.013613867446385486},{x:.10237680515339463,y:.019210194846605383},{x:.10797313255361454,y:.026029339514117924},{x:.1121315789630079,y:.03380924554357098},{x:.11469233761814536,y:.04225093550927425},{x:.11555699999999999,y:.05103000000000002},{x:.11555699999999999,y:.3249696679740436},{x:.22632413005583354,y:.32573306868659574},{x:.22797244585475993,y:.3259068917113995},{x:.2296296407459454,y:.32587748916779646},{x:.3399906407459454,y:.3347734891677965},{x:.3425199358315593,y:.3352301100895628},{x:.3450781711944775,y:.33547763407671893},{x:.4262801711944775,y:.3514846340767189},{x:.43023360415359113,y:.35267647626036297},{x:.4342017122431381,y:.35381850872164355},{x:.49034871224313803,y:.3761405087216436},{x:.49223471805815816,y:.37711419756221787},{x:.49421014578428074,y:.3778905822551455},{x:.4961445509948513,y:.379132728294546},{x:.49818726580808836,y:.3801873213410173},{x:.49984707528076383,y:.38151024250532195},{x:.5016330805772936,y:.3826570960152846},{x:.5368430805772937,y:.4104950960152846},{x:.538268982488492,y:.41186995272090265},{x:.539835277869678,y:.41308244849417974},{x:.5414366048100854,y:.41492417879038607},{x:.5431934850553138,y:.4166181652891421},{x:.5443237674236908,y:.41824478417169497},{x:.5456234206874699,y:.41973955124896434},{x:.546834674823181,y:.4218582966024136},{x:.5482273167355989,y:.4238624839583804},{x:.5490185434436073,y:.4256783549664296},{x:.5500016096439067,y:.4273979502871872},{x:.5725636096439066,y:.4777629502871872},{x:.5732747072201834,y:.47988746499756846},{x:.5741879174558705,y:.48193325814034926},{x:.5746713208988057,y:.4840600657825243},{x:.5753635933927087,y:.4861283376286891},{x:.5756465551694752,y:.4883507586397718},{x:.5761431038835471,y:.49053540091990977},{x:.5762022992770958,y:.49271564988294925},{x:.5764777701286589,y:.49487923612929946},{x:.5763217220435205,y:.4971141570479765},{x:.5763825271473633,y:.4993536938878067},{x:.5706825271473633,y:.5794656938878067},{x:.5700654182420953,y:.5830779192715516},{x:.5695689975224034,y:.5867086990904052},{x:.5693236589408173,y:.5874197813867033},{x:.5691969863455608,y:.5881612549906394},{x:.5678870248015591,y:.5915836805014664},{x:.5666918126627678,y:.5950478490261242},{x:.5415328126627678,y:.6498468490261241},{x:.5413708296623262,y:.6501242105110185},{x:.5412617638147841,y:.650426323944409},{x:.5391478795722351,y:.653930540410781},{x:.5370840246571379,y:.6574644536133865},{x:.536871043573226,y:.6577048843594048},{x:.5367051339883567,y:.6579799150765678},{x:.5339482287199508,y:.661004400648547},{x:.5312345979336611,y:.6640677725799057},{x:.5309788035098929,y:.664262032968313},{x:.5307624259999995,y:.6644994116930277},{x:.47414742599999943,y:.7155204116930277},{x:.47266946719886654,y:.7166100541651699},{x:.4713261182021025,y:.7178618913781634},{x:.46912758296129603,y:.7192213498885075},{x:.46704701478499566,y:.7207552731949938},{x:.4653848758470294,y:.7215356430341334},{x:.4638231175995642,y:.7225013521577397},{x:.4283261175995643,y:.7398953521577398},{x:.4243082080780145,y:.7413960258251278},{x:.4202985181688539,y:.7429185254841078},{x:.34090751816885384,y:.7644395254841077},{x:.3408415384597873,y:.7644506164558663},{x:.3407789202555512,y:.7644741810938074},{x:.33649241770984384,y:.7651816893280429},{x:.33220802793590354,y:.7659018811363755},{x:.33214115226719376,y:.7658998869955335},{x:.33207514002138977,y:.7659107826399355},{x:.2099811400213898,y:.7739077826399355},{x:.20641155146718015,y:.773790767187745},{x:.20284008504333162,y:.7738075792583221},{x:.0663570850433316,y:.7610135792583221},{x:.06408313636872824,y:.7605723800858132},{x:.061777935509274226,y:.7603453376181454},{x:.05976354040438703,y:.759734277543603},{x:.05769704052657306,y:.7593333282846051},{x:.05555285882676713,y:.7584569812513055},{x:.053336245543570956,y:.7577845789630079},{x:.05147976838249502,y:.7567922712467745},{x:.04953119704042999,y:.7559958719887517},{x:.04759918201567506,y:.7547180546196904},{x:.04555633951411791,y:.7536261325536145},{x:.043929123673028744,y:.7522907110247322},{x:.04217336337061703,y:.7511294669445447},{x:.04052776127482757,y:.7494992850446065},{x:.03873719484660536,y:.7480298051533947},{x:.037401773317722896,y:.7464025893123053},{x:.03590629693874444,y:.7449211263687215},{x:.034610347337597366,y:.7430012269141045},{x:.033140867446385454,y:.7412106604858821},{x:.032148559730151835,y:.7393541833248057},{x:.030970837593177758,y:.7376094333079335},{x:.030074343103068113,y:.7354735969579864},{x:.02898242103699209,y:.733430754456429},{x:.028371360962449563,y:.7314163593515414},{x:.027556652268729623,y:.729475372026062},{x:.027094064670152376,y:.7272056777739226},{x:.02642166238185463,y:.7249890644907258},{x:.02621533264498147,y:.722894163516222},{x:.025794946192721373,y:.7208315299365354},{x:.02578404246766777,y:.7185152008594541},{x:.025556999999999996,y:.71621},{x:.025556999999999996,y:.05103000000000002}],[{x:.11555699999999999,y:.414971805397996},{x:.11555699999999999,y:.6752310456989574},{x:.20767337575712835,y:.6838660911730216},{x:.3217031184787672,y:.6763972896549704},{x:.3925929523867085,y:.6571807523203506},{x:.4185706758911827,y:.6444513238436673},{x:.46361487793542,y:.6038578374443203},{x:.4814895996448674,y:.5649247767123354},{x:.48580725170954087,y:.5042413131675768},{x:.4723746184159119,y:.474255736718963},{x:.45098032059796866,y:.45734081304228297},{x:.40480552914494095,y:.4389833995595593},{x:.3301954695220376,y:.42427584033215343},{x:.22404845814303564,y:.41571952231013837},{x:.11555699999999999,y:.414971805397996}]],Q:[[{x:.012134510452571898,y:.39776120903599943},{x:.012467756958298536,y:.3937322544040442},{x:.012734737801221134,y:.38969836671479857},{x:.012831073490929856,y:.38933975275179394},{x:.012861682585025715,y:.38896968840207613},{x:.0716656825850257,y:.06709568840207614},{x:.07243605319674906,y:.06440524795975149},{x:.07301096718930201,y:.06166637692330789},{x:.07364750148994079,y:.06017438890024393},{x:.07409402290033937,y:.05861495861744442},{x:.07537446994903126,y:.05612650608452361},{x:.07647266436288541,y:.053552421842995857},{x:.07738804025928744,y:.05221328363312273},{x:.0781302116420243,y:.05077092937167972},{x:.07987152826568633,y:.04858009458346291},{x:.08145080010539194,y:.04626971775068952},{x:.16096480010539196,y:-.04855928224931053},{x:.16315500529851779,y:-.05070373085173594},{x:.16521251383898505,y:-.052975804178533654},{x:.1663001767861927,y:-.05378319510572523},{x:.1672680674520078,y:-.05473086511953138},{x:.1698345496348827,y:-.056406820906963286},{x:.172295783242646,y:-.058233836978172464},{x:.17352006120728586,y:-.058813521600477286},{x:.17465423537351554,y:-.059554156299027654},{x:.17749836607515132,y:-.06069721323044178},{x:.18026874092294012,y:-.06200896084304842},{x:.2672567409229401,y:-.09317596084304836},{x:.2695830047845554,y:-.09375972267138269},{x:.2718475349769373,y:-.09454977610873284},{x:.2738508793967248,y:-.09483071995927067},{x:.27581299058749986,y:-.09532309988014809},{x:.2782084422243766,y:-.09544181332278269},{x:.28058359188359605,y:-.09577489818042065},{x:.2826032520283714,y:-.0956596106656824},{x:.28462372036011635,y:-.09575974074040533},{x:.28699630390923414,y:-.09540884370631499},{x:.2893907973658866,y:-.09527215971995788},{x:.3753267973658866,y:-.08182715971995795},{x:.37840631600914065,y:-.08102976437129623},{x:.38152495221950905,y:-.08040256216817918},{x:.38266795913198753,y:-.07992627554804835},{x:.3838666954562622,y:-.07961588068444121},{x:.38673147789694834,y:-.07823302278004476},{x:.38966782930723504,y:-.07700945634885908},{x:.3906959547522998,y:-.07631933185595965},{x:.3918111026603398,y:-.07578103928710583},{x:.3943510569158511,y:-.07386586128072498},{x:.3969922811880835,y:-.07209295159323717},{x:.45217017177581864,y:-.026613783173476364},{x:.5097585536672307,y:-.09873256043298734},{x:.5159122791302333,y:-.10505326271144577},{x:.5231808703268614,y:-.11005198218579294},{x:.5312849993737013,y:-.11353662086994384},{x:.5399132291363312,y:-.11537326605347448},{x:.5487339815837399,y:-.1154913364919842},{x:.5574082801461085,y:-.11388629480473579},{x:.5656027763942881,y:-.11061982184365243},{x:.5730025604329874,y:-.10581744633276943},{x:.5793232627114457,y:-.0996637208697668},{x:.5843219821857929,y:-.09239512967313873},{x:.5878066208699438,y:-.08429100062629874},{x:.5896432660534744,y:-.07566277086366895},{x:.5897613364919841,y:-.06684201841626024},{x:.5881562948047357,y:-.058167719853891554},{x:.5848898218436525,y:-.04997322360571205},{x:.5800874463327694,y:-.042573439567012816},{x:.5106129498444961,y:.04443049374200151},{x:.5474711182959175,y:.12365010382899572},{x:.5481373073434039,y:.1255496832776173},{x:.5490025186311253,y:.12736726941208848},{x:.5495935209593992,y:.1297019482663393},{x:.5503905347901464,y:.13197456307270286},{x:.5506733336355601,y:.13396760967066554},{x:.5511673266667299,y:.13591906574595297},{x:.5791213266667299,y:.32118306574595296},{x:.5792865967797204,y:.3243841932678159},{x:.5796238248970751,y:.32757179562983435},{x:.579513579388425,y:.3287806341158348},{x:.5795761658223595,y:.3299928748079828},{x:.5791137513174164,y:.3331647361616822},{x:.5788226293197903,y:.33635687958013644},{x:.5226546293197903,y:.6297998795801365},{x:.5219105438778229,y:.6323181740447382},{x:.521369234544533,y:.6348876981954499},{x:.5206636104444891,y:.6365383151545928},{x:.5201549436340621,y:.6382598551025291},{x:.5189338607071872,y:.6405845973766512},{x:.5179016631869613,y:.6429991446291672},{x:.5168875780620563,y:.6444803850133782},{x:.5160528293589531,y:.6460696100820955},{x:.5144016744792594,y:.6481114616238732},{x:.5129182555439367,y:.6502782422813739},{x:.4473292555439367,y:.7283852422813738},{x:.4454767413796947,y:.7301964293264013},{x:.4437773055972873,y:.732151966404103},{x:.44233025961343425,y:.7332727172827731},{x:.4410215211764534,y:.7345522595114605},{x:.4388512574885805,y:.735967237520439},{x:.4368029695300015,y:.737553656027496},{x:.4351650804791521,y:.7383705673253327},{x:.43363186277883553,y:.7393702013057781},{x:.431227251583759,y:.7403345934673514},{x:.4289088260065632,y:.7414909282302113},{x:.3168848260065632,y:.7842309282302113},{x:.31544522398579106,y:.7846236280557255},{x:.31406876767085296,y:.7851998529634103},{x:.3111991137964475,y:.7857818972901452},{x:.30837424253549156,y:.7865524758495462},{x:.30688569012846406,y:.7866567776362199},{x:.305423266132861,y:.7869533972381565},{x:.30249520063786056,y:.7869644160479279},{x:.2995742760667897,y:.7871690831124285},{x:.29809397750772,y:.7869809786010931},{x:.2966017859654652,y:.7869865939723252},{x:.2937278327647654,y:.7864261638184524},{x:.2908231043767717,y:.786057054147543},{x:.2894079467091229,y:.7855837720890787},{x:.28794333170435554,y:.785298167434039},{x:.16895933170435556,y:.7496931674340391},{x:.16685145995859063,y:.7488293371508981},{x:.16467103610787698,y:.748169732810473},{x:.1627799564873854,y:.7471607878174731},{x:.16079664289106937,y:.7463480029082842},{x:.1588977982379503,y:.7450895455041626},{x:.15688795304330724,y:.7440172356850165},{x:.15523004539103946,y:.7426587459550258},{x:.15344340707901263,y:.7414746531917952},{x:.15182656105367498,y:.739869930478983},{x:.1500645317387979,y:.7384261234461069},{x:.08134353173879794,y:.6698101234461069},{x:.07898814712174665,y:.6669445493412297},{x:.07654417665723892,y:.6641541443502993},{x:.0761910053095167,y:.6635415309608049},{x:.07574199244846258,y:.6629952594015535},{x:.07399091166125166,y:.6597252337561722},{x:.07213828241215867,y:.6565116506297859},{x:.07191141209628055,y:.6558419081228384},{x:.07157759918584938,y:.6552185349547689},{x:.07049811528111428,y:.6516697230205841},{x:.06930802275051184,y:.6481564579560907},{x:.013298022750511833,y:.4072474579560906},{x:.013249789700227431,y:.40687927578320093},{x:.013136451320225305,y:.40652566731159423},{x:.012677284531251238,y:.4025091147450468},{x:.012152162963867598,y:.3985006516980174},{x:.01217668547678935,y:.39813013424102855},{x:.012134510452571898,y:.39776120903599943}],[{x:.1030741934540208,y:.3959601630333355},{x:.15405220468618464,y:.6152256818322884},{x:.20562817178182732,y:.6667228451191239},{x:.2990925609035841,y:.6946913078929434},{x:.38591644511804135,y:.6615657918309754},{x:.4364618489221904,y:.6013735361946543},{x:.4889800495366121,y:.3269984766785998},{x:.4631403994395801,y:.1557472448128009},{x:.4478929247459949,y:.12297570323093639},{x:.3763894463327694,y:.21252056043298723},{x:.3702357208697667,y:.2188412627114457},{x:.36296712967313866,y:.22383998218579282},{x:.35486300062629866,y:.22732462086994373},{x:.34623477086366883,y:.22916126605347437},{x:.3374140184162602,y:.2292793364919841},{x:.3287397198538915,y:.22767429480473567},{x:.32054522360571197,y:.22440782184365232},{x:.31314543956701274,y:.21960544633276935},{x:.3068247372885543,y:.2134517208697667},{x:.30182601781420715,y:.20618312967313862},{x:.2983413791300562,y:.19807900062629863},{x:.2965047339465256,y:.18945077086366885},{x:.29638666350801585,y:.18063001841626014},{x:.2979917051952643,y:.17195571985389144},{x:.30125817815634764,y:.16376122360571194},{x:.3060605536672306,y:.1563614395670127},{x:.3960043024488616,y:.04372356068896105},{x:.3492507773512258,y:.005187991106938553},{x:.28681342879982186,y:-.004580559340762309},{x:.22209853619564562,y:.018606191220169738},{x:.15806156000107346,y:.09497717514193305},{x:.1030741934540208,y:.3959601630333355}]],R:[[{x:-.010088,y:.05588800000000005},{x:-.009223337618145366,y:.04710893550927426},{x:-.006662578963007905,y:.03866724554357101},{x:-.0025041325536145423,y:.030887339514117953},{x:.0030921948466053617,y:.024068194846605412},{x:.009911339514117913,y:.018471867446385508},{x:.01769124554357096,y:.014313421036992145},{x:.02613293550927423,y:.011752662381854684},{x:.034912,y:.01088800000000005},{x:.043691064490725774,y:.011752662381854684},{x:.05213275445642904,y:.014313421036992145},{x:.059912660485882105,y:.018471867446385515},{x:.06673180515339464,y:.024068194846605412},{x:.07232813255361453,y:.030887339514117953},{x:.0764865789630079,y:.03866724554357101},{x:.07904733761814536,y:.04710893550927428},{x:.079912,y:.05588800000000005},{x:.079912,y:.36648688236049143},{x:.25933152798675563,y:.3728389247505383},{x:.2598033776805002,y:.3702688775066002},{x:.2630584474090824,y:.36206984491555727},{x:.26785052379396923,y:.35466338703825},{x:.5319365237939692,y:.022999387038250052},{x:.5380814500271169,y:.016670129897313986},{x:.5453430800394999,y:.011661303295187019},{x:.5534423534621115,y:.008165393629206541},{x:.5620680197594453,y:.00631674674730745},{x:.5708885994130244,y:.006186405112428031},{x:.5795651224933998,y:.00777937768050025},{x:.5877641550844427,y:.011034447409082423},{x:.59517061296175,y:.015826523793969254},{x:.601499870102686,y:.021971450027116944},{x:.606508696704813,y:.02923308003949996},{x:.6100046063707935,y:.03733235346211146},{x:.6118532532526926,y:.04595801975944533},{x:.6119835948875719,y:.05477859941302443},{x:.6103906223194997,y:.06345512249339977},{x:.6071355525909176,y:.07165415508444274},{x:.6023434762060308,y:.07906061296174999},{x:.36492288462028066,y:.3772356888373974},{x:.45122307475864126,y:.3907421966461853},{x:.4517263325772421,y:.3908725352482557},{x:.4522445282141884,y:.3909141268943158},{x:.4559919550269364,y:.3919772876167318},{x:.459762859565968,y:.3929539131315124},{x:.46023101962685037,y:.3931799280437793},{x:.4607311441523136,y:.39332181547170203},{x:.5072261441523136,y:.41160281547170213},{x:.5099186672764574,y:.4129799887569096},{x:.5126912264123276,y:.4141879634543456},{x:.5138373975854011,y:.41498434320238026},{x:.5150799754049854,y:.4156198976243936},{x:.5174520892726079,y:.41749589411441484},{x:.5199357102894067,y:.4192215573713852},{x:.5536387102894067,y:.4479225573713852},{x:.5544422891842978,y:.4487559165260936},{x:.5553578681885658,y:.44946439490120116},{x:.5574982196806069,y:.4519250983842071},{x:.5597619879819907,y:.4542727608851649},{x:.5603875460278954,y:.4552468777427617},{x:.5611473151639865,y:.4561203635073251},{x:.5627664809673836,y:.45895134712470415},{x:.5645287453623273,y:.46169553923588524},{x:.5649522427143585,y:.46277297903182424},{x:.5655270044804562,y:.4637779046177677},{x:.5843050044804562,y:.5056739046177676},{x:.5856980535944053,y:.5098331481877504},{x:.5870956418010017,y:.5139908687307394},{x:.5870987900445207,y:.5140153439302019},{x:.587106627133701,y:.514038743222053},{x:.5876614810321307,y:.5183898384933372},{x:.5882210839336397,y:.522740325535193},{x:.5899430839336397,y:.580600325535193},{x:.589777587866933,y:.5830153029012521},{x:.5898269599494498,y:.5854354407122341},{x:.5894767504310368,y:.5874052295805413},{x:.5893399666658296,y:.589401226848592},{x:.5887065118476329,y:.5917375144207835},{x:.5882827897945603,y:.5941207819778186},{x:.5699357897945603,y:.6593647819778187},{x:.5695566600666073,y:.6603356321127045},{x:.5693270257483343,y:.6613522723710545},{x:.5679549854437747,y:.6644370937206254},{x:.5667268644118839,y:.6675819841936177},{x:.5661656160899001,y:.668460215174679},{x:.5657420574552864,y:.6694125215424361},{x:.5637945617300048,y:.6721703971299327},{x:.5619765010042908,y:.6750152648867381},{x:.5612547025465381,y:.6757671267898905},{x:.5606534967163777,y:.6766185026674012},{x:.5398464967163776,y:.7006785026674012},{x:.5387925287989109,y:.70167944573824},{x:.5378793324857355,y:.7028102896247742},{x:.535601038014175,y:.7047103734673366},{x:.5334498940671065,y:.7067532939324781},{x:.5322209035416287,y:.707529385222465},{x:.5311046373415733,y:.7084603444980107},{x:.5029396373415734,y:.7276033444980106},{x:.49917038563569516,y:.7296565217962586},{x:.49541206095977475,y:.7317296332429761},{x:.4611910609597748,y:.7464366332429762},{x:.457170688924302,y:.7477143925092122},{x:.45316143447737084,y:.7490266191763204},{x:.37177643447737085,y:.7670666191763205},{x:.36787988134157384,y:.7675363076101905},{x:.36399443936523473,y:.7680904503837813},{x:.2290834393652347,y:.7739614503837813},{x:.2260604581328276,y:.7737959747883908},{x:.2230330269857825,y:.7738173839936113},{x:.030818026985782503,y:.7562573839936113},{x:.028490934977474184,y:.7558115802948838},{x:.02613293550927423,y:.7555793376181453},{x:.024169339379190496,y:.7549836872441402},{x:.022154034015341384,y:.7545976128723226},{x:.01995862841458906,y:.7537063820373993},{x:.01769124554357096,y:.7530185789630078},{x:.01588158498580211,y:.7520512952425895},{x:.013980322522940947,y:.7512794726091756},{x:.012000971535783972,y:.7499770641392344},{x:.009911339514117913,y:.7488601325536145},{x:.008325158769029223,y:.7475583876576994},{x:.006611003657363959,y:.7464304774736483},{x:.004923772632206568,y:.7447669421957904},{x:.0030921948466053617,y:.7432638051533946},{x:.0017904499506900475,y:.7416776244083056},{x:.0003292762098528329,y:.7402369716294513},{x:-.001000995511218774,y:.7382762382714833},{x:-.0025041325536145423,y:.7364446604858821},{x:-.0034714162740331275,y:.7346349999281129},{x:-.004623456556617868,y:.732936968032819},{x:-.005545647377387794,y:.7307543864780955},{x:-.006662578963007905,y:.728664754456429},{x:-.007258229337013042,y:.7267011583263452},{x:-.008056863899357211,y:.7248110017280808},{x:-.008535534543753812,y:.7224904473617442},{x:-.009223337618145366,y:.7202230644907257},{x:-.009424464135908606,y:.7181809926864091},{x:-.009839001899660749,y:.7161713490432334},{x:-.009855757323261527,y:.7138019994682},{x:-.010088,y:.711444},{x:-.010088,y:.05588800000000005}],[{x:.079912,y:.45654326739466394},{x:.079912,y:.6703676283824797},{x:.22820062174801237,y:.6839146886946046},{x:.3561457472749752,y:.6783468266821017},{x:.42954781695254723,y:.662076342723345},{x:.4559144639404158,y:.6507448714849071},{x:.47563211893454127,y:.6373433067928232},{x:.48601322722124407,y:.6253391992627579},{x:.4997779385388953,y:.5763903343143285},{x:.4985264355495565,y:.5343392524542002},{x:.48755361344964526,y:.5098575528750181},{x:.467303195590932,y:.4926125823096997},{x:.43241084881177044,y:.4788935374345549},{x:.3509044963348569,y:.4661372945522357},{x:.079912,y:.45654326739466394}]],S:[[{x:.021897597226735628,y:.20918252956592975},{x:.022856530106274857,y:.20041326151782815},{x:.025507836686771486,y:.19199957102060095},{x:.07532383668677148,y:.0752955710206009},{x:.07606476437254353,y:.07394451179196875},{x:.07662717764446286,y:.07250992955787258},{x:.07818101321859919,y:.07008559601860773},{x:.07956562874320691,y:.06756079148160443},{x:.08055589829123208,y:.06638024029801701},{x:.0813873780598424,y:.06508294454561242},{x:.08338432112997196,y:.06300833217803187},{x:.0852348965856767,y:.0608021661408081},{x:.08643645249257384,y:.05983749092219001},{x:.08750504545666679,y:.05872733599970995},{x:.08986835462050304,y:.05708217099364391},{x:.09211377343035676,y:.05527942517977789},{x:.09348044057646428,y:.05456769785378441},{x:.09474508130770348,y:.05368734639231786},{x:.18347008130770348,y:.00406434639231789},{x:.18531117162778632,y:.0032602675504258996},{x:.18705570252460849,y:.0022638899609980986},{x:.18934358471290644,y:.0014991491478438968},{x:.19155425509545604,y:.0005336596975895336},{x:.19351683738147718,y:.0001042099085839361},{x:.19542223123106015,y:-.0005326814704223887},{x:.1978153459361366,y:-.0008363843304376121},{x:.20017189655491793,y:-.0013520417748285815},{x:.2021805498702545,y:-.0013903589963945293},{x:.20417358345551592,y:-.0016432887864569548},{x:.36640558345551594,y:-.006196288786456984},{x:.3683537351453612,y:-.006059465175549666},{x:.37030515940756886,y:-.006136660097762148},{x:.3727431942064551,y:-.005751182385354602},{x:.3752054496398049,y:-.005578251970786187},{x:.37708947517888647,y:-.005063991846688501},{x:.37901846335331396,y:-.004758999502412188},{x:.3813344490261288,y:-.00390529164215812},{x:.3837156558614866,y:-.003255321831637216},{x:.38546315320491126,y:-.002383387922517842},{x:.38729557535780434,y:-.001707928996501587},{x:.5134735753578044,y:.059451071003498376},{x:.5144073364238021,y:.06002293670994077},{x:.5154151369003129,y:.060451046875811966},{x:.5181619939873726,y:.06232241135953579},{x:.5209964106485654,y:.06405830049148753},{x:.5218006642926897,y:.06480134570578519},{x:.5227055800155168,y:.06541784197435321},{x:.5250345719141375,y:.06778913394790613},{x:.5274758708842278,y:.07004463571609586},{x:.5281197100899656,y:.07093030562736781},{x:.5288869656553633,y:.07171149639276676},{x:.5307085905129939,y:.07449158843544039},{x:.5326629540416582,y:.07718002517181716},{x:.5331216364294024,y:.07817428398206286},{x:.5337217466362741,y:.07909014852127505},{x:.5349660004312154,y:.08217220325496363},{x:.5363583234240663,y:.08519025984344057},{x:.5366142220868877,y:.08625489874416871},{x:.5370241250365293,y:.08727024089657527},{x:.5783351250365293,y:.22800124089657534},{x:.5784689928995229,y:.22870739358153944},{x:.5787167010683089,y:.22938208824013706},{x:.5792894483007394,y:.23303529403132756},{x:.5799781923062021,y:.23666841715613338},{x:.579971724381043,y:.23738711763976203},{x:.5800830465086156,y:.23809717369609615},{x:.5799320834693805,y:.24179192160438975},{x:.5798988062915618,y:.2454896025769029},{x:.5797522511369868,y:.24619323160266243},{x:.5797229091764134,y:.2469113620006918},{x:.5788540372904492,y:.2505056649360105},{x:.5781000177526308,y:.2541258039501414},{x:.5778190074010411,y:.2547873214491718},{x:.5776501289474114,y:.2554859288404322},{x:.5462891289474114,y:.3454679288404322},{x:.5453940585085517,y:.34740151578805634},{x:.5446999978282894,y:.3494160105998292},{x:.5435456407901493,y:.3513945829466735},{x:.5425833616033817,y:.3534733584203385},{x:.5413282655917657,y:.35519517245680393},{x:.5402545326513293,y:.3570355547940282},{x:.5387363559437135,y:.3587509055417339},{x:.537387017705137,y:.36060200657115166},{x:.5358201287566253,y:.36204587934864135},{x:.5344079865107593,y:.36364142435019586},{x:.5325843328131388,y:.3650276335315076},{x:.5308997898345437,y:.36657992334222783},{x:.5290813226127058,y:.36769036763963614},{x:.5273850388959807,y:.368979759405903},{x:.44286903889598056,y:.42100375940590296},{x:.4391930936098881,y:.42279580082266366},{x:.4355432374645799,y:.42464039733796655},{x:.4352309585303121,y:.42472736117212373},{x:.4349395777453148,y:.4248694107387315},{x:.430984654780085,y:.42590987723258605},{x:.42704506666901776,y:.42700697873237736},{x:.18802361397643091,y:.46887992641475673},{x:.1445277950559712,y:.506325930968192},{x:.1345999941059918,y:.5433489412625321},{x:.1668438673565076,y:.6442112383308392},{x:.2418447705661005,y:.6964178007533797},{x:.3847076342900009,y:.6886954406015322},{x:.4475324208368403,y:.608018765726417},{x:.4536085342974724,y:.6016234190133417},{x:.4608155671913789,y:.5965363480257236},{x:.46887655728619765,y:.5929530460487544},{x:.47748172525324006,y:.5910112173678703},{x:.48630037931336645,y:.5907854853702875},{x:.49499362353660437,y:.5922845248100812},{x:.5032273814226823,y:.5954507284422511},{x:.5106852342735829,y:.6001624208368403},{x:.5170805809866582,y:.6062385342974724},{x:.5221676519742764,y:.6134455671913789},{x:.5257509539512455,y:.6215065572861976},{x:.5276927826321296,y:.63011172525324},{x:.5279185146297124,y:.6389303793133664},{x:.5264194751899187,y:.6476236235366044},{x:.5232532715577489,y:.6558573814226824},{x:.5185415791631597,y:.663315234273583},{x:.4431175791631597,y:.760171234273583},{x:.4420344490669973,y:.7613112710002186},{x:.44110391182703096,y:.7625789282836855},{x:.4390031114098716,y:.7645018722698176},{x:.4370414657025276,y:.7665665809866583},{x:.43575673751534005,y:.767473404028016},{x:.4345967726198766,y:.768535164822443},{x:.4321611907321885,y:.7700113141492059},{x:.4298344328086211,y:.7716536519742764},{x:.42839747791415833,y:.7722924126294288},{x:.42705266216361437,y:.7731074740629288},{x:.4243758968514515,y:.7740801011395291},{x:.42177344271380235,y:.7752369539512456},{x:.4202394824828045,y:.7755831050064366},{x:.4187614963922926,y:.7761201447252115},{x:.4159464142454535,y:.7765518720385514},{x:.41316827474676,y:.7771787826321297},{x:.4115962584106506,y:.7772190216964318},{x:.4100419001567639,y:.7774574015652649},{x:.23125890015676387,y:.7871214015652648},{x:.22961427991333744,y:.7870487065186679},{x:.22797320559841586,y:.7871788426312305},{x:.22521775007366066,y:.7868543723294609},{x:.22244596265035355,y:.7867318545526676},{x:.22084712542379714,y:.7863397068281228},{x:.21921219559556868,y:.7861471846952227},{x:.21657298639174055,y:.7852913862936938},{x:.21387836011908076,y:.7846304737606538},{x:.21238674832737245,y:.7839339433752962},{x:.2108207924222569,y:.7834261615145331},{x:.2083992528689725,y:.782071922865878},{x:.2058853407234555,y:.7808980140745921},{x:.20455827617124617,y:.7799238683005129},{x:.20312147299647784,y:.7791203404840283},{x:.10291447299647782,y:.7093683404840284},{x:.10181255131472464,y:.7084283417469311},{x:.10059641238964509,y:.7076416809983432},{x:.09846400643554813,y:.7055718520256913},{x:.09620311784593605,y:.7036431918911783},{x:.09530575393663021,y:.7025062807105057},{x:.09426645267874648,y:.7014974784931097},{x:.09257882390791694,y:.6990514089395268},{x:.09073764058529563,y:.6967187299857058},{x:.09007931964022471,y:.6954285972205445},{x:.08925679581402991,y:.6942364212378118},{x:.08807879885369768,y:.6915081121844703},{x:.08672807644060793,y:.6888610579553555},{x:.08633409736450004,y:.6874672826843552},{x:.08575996009935855,y:.6861375475907227},{x:.04484896009935855,y:.5581635475907226},{x:.04400698871411546,y:.5542371548008082},{x:.04309586967447821,y:.5503262293029391},{x:.04308290316808571,y:.5499278363503387},{x:.04299932697019912,y:.5495380927241992},{x:.04293953506277818,y:.5455228840020936},{x:.042808906634767226,y:.5415093553341928},{x:.04287391188557095,y:.5411160877505585},{x:.04286797679041901,y:.5407175280315513},{x:.04359266213029085,y:.5367678055966908},{x:.04424754429113727,y:.532805911414652},{x:.06119154429113727,y:.4696179114146519},{x:.06126294463056804,y:.4694283141856516},{x:.06129777501412092,y:.46922873472253734},{x:.06281676603792068,y:.46530228011432895},{x:.0643004966052513,y:.46136236601319713},{x:.0644075135916399,y:.46119034135699993},{x:.06448061074086608,y:.46100139182805006},{x:.06673642807197144,y:.45744672339211917},{x:.06896028828319853,y:.453871975109843},{x:.06909880931377366,y:.45372413383751425},{x:.06920736414622189,y:.4535530754671619},{x:.07211331798967527,y:.4505067971180214},{x:.07499184614403663,y:.4474345902263458},{x:.07515654793327702,y:.4473166137950705},{x:.07529638874761438,y:.44717002026055797},{x:.1386943887476144,y:.392590020260558},{x:.14135607757337018,y:.39071931904916735},{x:.1439175788350931,y:.3887136217356019},{x:.14495796828078528,y:.38818782053421796},{x:.14591168674437638,y:.38751752344016943},{x:.1488871876674173,y:.38620203695812855},{x:.15179076253542007,y:.38473460266203335},{x:.15291373991533655,y:.3844218744952798},{x:.15397990142199966,y:.3839505182141148},{x:.15715486761053352,y:.383240799869195},{x:.1602889333309822,y:.3823680212676226},{x:.4030282434963717,y:.3398437611206276},{x:.46657219784598525,y:.30072914754350266},{x:.487912612564808,y:.23949853636308405},{x:.45628203537627,y:.13174508671722343},{x:.35793695341674575,y:.08407681754539842},{x:.21775140382412592,y:.0880110894972649},{x:.15207256592030022,y:.12474460286217379},{x:.10828216331322851,y:.2273324289793991},{x:.10404037125679308,y:.23506720851839558},{x:.09837110341432329,y:.2418258338591919},{x:.09149222656964323,y:.24734857482022213},{x:.08366809210217534,y:.25142319556354265},{x:.07519937711167927,y:.2538931106990613},{x:.06641152956592972,y:.2546634027732644},{x:.05764226151782814,y:.2537044698937252},{x:.04922857102060091,y:.2510531633132285},{x:.04149379148160447,y:.24681137125679312},{x:.034735166140808106,y:.24114210341432332},{x:.029212425179777887,y:.23426322656964324},{x:.025137804436457384,y:.22643909210217536},{x:.022667889300938757,y:.21797037711167933},{x:.021897597226735628,y:.20918252956592975}]],T:[[{x:-.022050999999999998,y:.729004},{x:-.021186337618145364,y:.7202249355092742},{x:-.018625578963007903,y:.711783245543571},{x:-.01446713255361454,y:.7040033395141179},{x:-.008870805153394636,y:.6971841948466053},{x:-.002051660485882085,y:.6915878674463855},{x:.005728245543570962,y:.6874294210369921},{x:.014169935509274232,y:.6848686623818546},{x:.022949,y:.684004},{x:.264284,y:.684004},{x:.264284,y:.05103000000000002},{x:.26514866238185464,y:.04225093550927423},{x:.2677094210369921,y:.03380924554357098},{x:.27186786744638547,y:.026029339514117924},{x:.27746419484660534,y:.019210194846605383},{x:.28428333951411794,y:.013613867446385479},{x:.292063245543571,y:.009455421036992116},{x:.30050493550927426,y:.006894662381854655},{x:.309284,y:.0060300000000000215},{x:.3180630644907258,y:.006894662381854655},{x:.32650475445642907,y:.009455421036992116},{x:.3342846604858821,y:.013613867446385486},{x:.34110380515339467,y:.019210194846605383},{x:.34670013255361454,y:.026029339514117924},{x:.3508585789630079,y:.03380924554357098},{x:.35341933761814537,y:.04225093550927425},{x:.354284,y:.05103000000000002},{x:.354284,y:.684004},{x:.579103,y:.684004},{x:.5878820644907258,y:.6848686623818546},{x:.596323754456429,y:.6874294210369921},{x:.6041036604858822,y:.6915878674463855},{x:.6109228051533947,y:.6971841948466053},{x:.6165191325536146,y:.7040033395141179},{x:.6206775789630079,y:.711783245543571},{x:.6232383376181454,y:.7202249355092742},{x:.6241030000000001,y:.729004},{x:.6232383376181454,y:.7377830644907257},{x:.6206775789630079,y:.746224754456429},{x:.6165191325536146,y:.7540046604858821},{x:.6109228051533947,y:.7608238051533946},{x:.6041036604858822,y:.7664201325536145},{x:.596323754456429,y:.7705785789630079},{x:.5878820644907258,y:.7731393376181454},{x:.579103,y:.774004},{x:.022949,y:.774004},{x:.014169935509274211,y:.7731393376181454},{x:.005728245543570935,y:.7705785789630079},{x:-.0020516604858820953,y:.7664201325536145},{x:-.008870805153394643,y:.7608238051533946},{x:-.01446713255361454,y:.7540046604858821},{x:-.018625578963007903,y:.746224754456429},{x:-.021186337618145364,y:.7377830644907257},{x:-.022050999999999998,y:.729004}]],U:[[{x:.027022176378557076,y:.7288780077818786},{x:.02808017637855708,y:.35099900778187865},{x:.02823473618726791,y:.3494735334648019},{x:.028192796744230073,y:.34794082288884604},{x:.035484796744230065,y:.24514582288884607},{x:.03612518708694976,y:.24139252668431194},{x:.03666424897987138,y:.2376233431565944},{x:.055316248979871384,y:.16148034315659432},{x:.05618736340037885,y:.15900518320818077},{x:.05685851158014249,y:.15646848905542057},{x:.057648252259250334,y:.15485425480263812},{x:.058244846291224776,y:.15315910934454152},{x:.0595821022437829,y:.15090145489330362},{x:.06073523897858293,y:.14854443712190207},{x:.09649723897858292,y:.0906284371219021},{x:.09834293286415725,y:.08820732921922435},{x:.10003759110096133,y:.08567820232322114},{x:.10101147458130413,y:.08470684222595504},{x:.10184538199049184,y:.08361295562088691},{x:.10412794610596264,y:.08159844564215248},{x:.10628345014049506,y:.07944852663140606},{x:.15306845014049508,y:.041154526631406},{x:.15518086878702558,y:.03974701384514513},{x:.15716842451696925,y:.03816808161035298},{x:.15884280372557036,y:.03730705230772802},{x:.16040964618671547,y:.03626305906247794},{x:.1627560674239954,y:.03529470367371844},{x:.16501346722603244,y:.034133863066459845},{x:.23490646722603245,y:.006476863066459913},{x:.23625924682734178,y:.006089880823813601},{x:.23754823013535448,y:.005525708919597472},{x:.24049103862888763,y:.004879315347967098},{x:.24338780663402787,y:.004050652809021178},{x:.24479008944495417,y:.003935020529692536},{x:.24616436977860445,y:.0036331571990539033},{x:.3343553697786044,y:-.006825842800946093},{x:.3363658265006992,y:-.006865793301669296},{x:.3383604992721398,y:-.007120376900508131},{x:.34076517153289726,y:-.0069532142518240045},{x:.3431751712391958,y:-.00700110421331946},{x:.3451547915551648,y:-.0066480664270605625},{x:.3471608040448924,y:-.0065086169201366215},{x:.4090588040448924,y:.003962383079863387},{x:.4119620232343868,y:.004752615784895447},{x:.4149089852784979,y:.005359710588792872},{x:.4162090298953196,y:.005908616535408058},{x:.4175706649775032,y:.0062792425557079215},{x:.42026393287145114,y:.0076206811274584655},{x:.4230358315454356,y:.008791034549085273},{x:.4738028315454356,y:.03637303454908527},{x:.4760785863358737,y:.0379161826666043},{x:.4784624107710392,y:.03928649177082543},{x:.47972093897980134,y:.04038599604431689},{x:.48110410464379305,y:.04132389563682743},{x:.48303507818089647,y:.043281370330868374},{x:.4851057640535682,y:.045090410406577325},{x:.5154867640535682,y:.07740541040657731},{x:.5155903820373309,y:.07753992155387555},{x:.5157174079857786,y:.07765259073212467},{x:.5182811318880063,y:.08103290449336144},{x:.5208701788099869,y:.08439386230433626},{x:.5209455639802052,y:.08454600372347547},{x:.521048168494406,y:.08468128952824439},{x:.5340921684944061,y:.10592328952824437},{x:.5341054861393935,y:.10595068243490303},{x:.5341238592672674,y:.10597497562685786},{x:.5360339092314592,y:.10991723311331511},{x:.5379492688231333,y:.11385691363208547},{x:.5379569864823256,y:.11388637833537296},{x:.5379702672090579,y:.11391378915988949},{x:.557924267209058,y:.16807278915988946},{x:.5580810067186996,y:.16867450001810444},{x:.5583366124011981,y:.1692413235937006},{x:.5591915686944892,y:.17293786157308777},{x:.5601479818122073,y:.1766094575809222},{x:.5601843216510317,y:.17723018509512725},{x:.5603244341481242,y:.17783598350956487},{x:.5696394341481241,y:.2495799835095649},{x:.569721927352796,y:.25224539988339456},{x:.5700114646960025,y:.2548963275892337},{x:.5750284646960026,y:.7275053275892338},{x:.5742570402937379,y:.7362930758081182},{x:.5717860339652341,y:.7447614724740409},{x:.5677104050979391,y:.752585081852262},{x:.5621867778235843,y:.7594632470219072},{x:.5554274220406369,y:.7651316439528263},{x:.5476920960011455,y:.7693724393298378},{x:.5392780639467868,y:.7720226617648687},{x:.5305086724107663,y:.7729804646960026},{x:.5217209241918819,y:.7722090402937379},{x:.5132525275259592,y:.7697380339652341},{x:.505428918147738,y:.7656624050979391},{x:.4985507529780929,y:.7601387778235843},{x:.49288235604717384,y:.753379422040637},{x:.48864156067016223,y:.7456440960011456},{x:.48599133823513135,y:.7372300639467868},{x:.4850335353039975,y:.7284606724107663},{x:.48004487037154997,y:.258520878697574},{x:.4717248917269394,y:.19444051929027983},{x:.4550625667192203,y:.14921575933773623},{x:.4467624246683876,y:.135699076001046},{x:.42448554918380393,y:.11200409455592171},{x:.3866565267646711,y:.09145137140181527},{x:.33852910612300163,y:.08330987698295},{x:.2625775703514966,y:.09231733933890664},{x:.20464797458906397,y:.11524036210229632},{x:.16911733402594603,y:.14432255403825953},{x:.14104265103985364,y:.1897890642955865},{x:.12498883901236212,y:.25532548983758135},{x:.11807553704626646,y:.35278200048003916},{x:.11702182362144292,y:.7291299922181214},{x:.11613258476624799,y:.737906601393955},{x:.11354820087598706,y:.7463410885908555},{x:.10936798837422372,y:.7541093211959605},{x:.10375259048311052,y:.7609127703867312},{x:.09691780379445152,y:.7664899834261845},{x:.0891262853276994,y:.770626631144951},{x:.08067745876799748,y:.7731637444910576},{x:.07189600778187862,y:.7740038236214429},{x:.06311939860604492,y:.773114584766248},{x:.05468491140914452,y:.770530200875987},{x:.04691667880403945,y:.7663499883742237},{x:.04011322961326877,y:.7607345904831105},{x:.03453601657381558,y:.7538998037944515},{x:.030399368855048972,y:.7461082853276993},{x:.027862255508942363,y:.7376594587679974},{x:.027022176378557076,y:.7288780077818786}]],V:[[{x:-.017163400590915968,y:.72836062945125},{x:-.016173311217885875,y:.7195948244454146},{x:-.01349212241321528,y:.7111906087794154},{x:.27875887758678475,y:.033216608779415485},{x:.2789749302503264,y:.03282594254600198},{x:.27911899522766415,y:.032403397706182537},{x:.2811076886540147,y:.028969490703698003},{x:.2830281292409603,y:.025496951748158487},{x:.28331624571443165,y:.0251559418405784},{x:.28353997693249255,y:.024769621764193565},{x:.2861603801951793,y:.021789671162821947},{x:.2887213787977949,y:.018758515442121357},{x:.2890704869266977,y:.018480266679882864},{x:.2893652865202418,y:.018145017430816868},{x:.2925166989914198,y:.015733541060992128},{x:.2956198378696305,y:.013260254189586457},{x:.29601652162435305,y:.013055459516578674},{x:.296371060610326,y:.012784164535463174},{x:.29993237527606087,y:.011033834081706148},{x:.30345840254303674,y:.009213463087028258},{x:.303887417589348,y:.00908999264768462},{x:.3042880712333465,y:.00889307764850001},{x:.3081224287682413,y:.00787115732855266},{x:.3119358411735324,y:.006773658047051503},{x:.31238070070379703,y:.0067362567411129665},{x:.3128120721109714,y:.0066212890568466964},{x:.3167721203052928,y:.006367050695504971},{x:.32072637054875,y:.006034599409084053},{x:.3211699788607,y:.006084704547762943},{x:.3216154906697884,y:.006056102322046737},{x:.325549047092249,y:.006579316156958459},{x:.3294921755545854,y:.0070246887821141385},{x:.32991748502957097,y:.007160374853030322},{x:.330360016471596,y:.007219237253358143},{x:.3341159167548444,y:.008499796470269213},{x:.33789639122058457,y:.00970587758678474},{x:.33828705745399834,y:.009921930250326543},{x:.33870960229381747,y:.01006599522766418},{x:.3421435092963017,y:.012054688654014527},{x:.34561604825184156,y:.013975129240960359},{x:.3459570581594215,y:.014263245714431577},{x:.34634337823580646,y:.014486976932492547},{x:.34932332883717915,y:.01710738019518028},{x:.35235448455787866,y:.01966837879779494},{x:.3526327333201171,y:.020017486926697612},{x:.35296798256918316,y:.020312286520241793},{x:.3553794589390082,y:.023463698991420194},{x:.3578527458104136,y:.026566837869630475},{x:.3580575404834214,y:.026963521624353053},{x:.35832883546453687,y:.02731806061032596},{x:.3600791659182934,y:.03087937527605991},{x:.3618995369129718,y:.03440540254303673},{x:.3620230073523154,y:.034834417589348},{x:.3622199223515,y:.0352350712333465},{x:.6163569223515,y:.7132090712333464},{x:.6186287109431533,y:.7217330721109714},{x:.6191938976779532,y:.7305364906697883},{x:.6180307627466418,y:.7392810164715959},{x:.6151840047723358,y:.7476306022938175},{x:.6107630230675074,y:.7552643782358064},{x:.6049377134797582,y:.7618889825691831},{x:.597931939389674,y:.7672498354645368},{x:.5900149287666535,y:.7711409223515},{x:.5814909278890286,y:.7734127109431533},{x:.5726875093302116,y:.7739778976779532},{x:.5639429835284039,y:.7728147627466418},{x:.5555933977061824,y:.7699680047723358},{x:.5479596217641935,y:.7655470230675074},{x:.5413350174308168,y:.7597217134797583},{x:.5359741645354631,y:.7527159393896741},{x:.5320830776484999,y:.7447989287666535},{x:.3171703309688009,y:.17146543337864517},{x:.06915612241321528,y:.7468173912205845},{x:.06488687075903964,y:.7545370482518415},{x:.059193621202205074,y:.7612754845578786},{x:.05229516213036956,y:.7667737458104136},{x:.04445659745696326,y:.7708205369129717},{x:.0359791588264676,y:.7732603419529485},{x:.027188629451250054,y:.773999400590916},{x:.01842282444541461,y:.7730093112178859},{x:.010018608779415478,y:.7703281224132152},{x:.0022989517481584835,y:.7660588707590397},{x:-.004439484557878664,y:.7603656212022051},{x:-.009937745810413578,y:.7534671621303695},{x:-.013984536912971763,y:.7456285974569633},{x:-.016424341952948517,y:.7371511588264675},{x:-.017163400590915968,y:.72836062945125}]],W:[[{x:-.04486424190193638,y:.7324968210037928},{x:-.04468360364824366,y:.7236771280279449},{x:.03511539635175633,y:.05429612802794491},{x:.03538914303981033,y:.053053468981350556},{x:.035486899606724354,y:.05178477579191172},{x:.03633616861564037,y:.04875449496443272},{x:.037013200434797444,y:.04568114375463893},{x:.03752411791055629,y:.04451576738270255},{x:.03786750587531561,y:.043290523137271594},{x:.039291634880795206,y:.040484152470619886},{x:.040555238800576446,y:.03760193719815913},{x:.041283692791972554,y:.036558628261303676},{x:.041859515947665654,y:.035423918409107566},{x:.04380377647068911,y:.032949305154171604},{x:.045605392901094464,y:.030368987735599786},{x:.046523389329760155,y:.02948784001117424},{x:.047309519115439125,y:.028487270815480248},{x:.049699194314460494,y:.02643951297186818},{x:.05196958814642765,y:.024260253558522238},{x:.05304184892442764,y:.02357512905942291},{x:.054008074813295476,y:.022747151833295932},{x:.056751330810561565,y:.021204943586542027},{x:.059403252082379655,y:.019510489895534},{x:.060588570829346225,y:.019047717572039012},{x:.06169776130235942,y:.01842415101594414},{x:.06468917630833097,y:.01744675856409077},{x:.06762071317273859,y:.01630222750050557},{x:.06887353875396018,y:.016079591433481148},{x:.07008306824328207,y:.01568439886046892},{x:.07320768385688461,y:.015309382847312772},{x:.07630617899620724,y:.014758758098063603},{x:.07757836602719018,y:.014784814066709744},{x:.07884175299285809,y:.014633182505734484},{x:.08197949198836539,y:.014874954586349768},{x:.08512587197205507,y:.014939396351756326},{x:.08636853101864941,y:.015213143039810315},{x:.08763722420808827,y:.015310899606724347},{x:.09066750503556728,y:.016160168615640357},{x:.09374085624536103,y:.01683720043479743},{x:.09490623261729739,y:.017348117910556266},{x:.09613147686272838,y:.017691505875315594},{x:.09893784752938008,y:.01911563488079519},{x:.10182006280184085,y:.020379238800576432},{x:.10286337173869634,y:.02110769279197256},{x:.1039980815908924,y:.02168351594766564},{x:.10647269484582828,y:.023627776470689026},{x:.1090530122644002,y:.025429392901094458},{x:.10993415998882576,y:.026347389329760156},{x:.11093472918451973,y:.02713351911543911},{x:.11298248702813177,y:.02952319431446044},{x:.11516174644147774,y:.03179358814642764},{x:.11584687094057705,y:.032865848924427614},{x:.11667484816670405,y:.03383207481329547},{x:.118217056413458,y:.03657533081056164},{x:.11991151010446596,y:.039227252082379635},{x:.12037428242796094,y:.040412570829346184},{x:.12099784898405583,y:.041521761302359406},{x:.2862381791186236,y:.4176126753554925},{x:.4644074439049092,y:.03214939722735514},{x:.46457066699968924,y:.031871550040082325},{x:.46468087848244366,y:.03156873942729889},{x:.4668033610072479,y:.028070937443703255},{x:.4688757411162635,y:.024543219843286366},{x:.46909003322228215,y:.024302554657928657},{x:.4692572024422568,y:.02402706365982141},{x:.47202128937582516,y:.021010546759784428},{x:.47474207284479647,y:.017954914566682648},{x:.47499919883659564,y:.017760680011347015},{x:.4752169015744166,y:.01752309559247584},{x:.47851637060601154,y:.015103786828781735},{x:.4817809992520572,y:.012637666274559728},{x:.4820710779219699,y:.012497326674279732},{x:.48233094798351184,y:.012306779070622963},{x:.4860390023686124,y:.010577651122297159},{x:.4897220183436901,y:.008795813836836655},{x:.4900339021311097,y:.008714762363747632},{x:.4903259528556443,y:.008578574212853553},{x:.49430009414373083,y:.007606076497244536},{x:.4982599612093785,y:.006576997488159493},{x:.4985816645952609,y:.006558348904918078},{x:.4988946726372282,y:.006481753841050326},{x:.5029821768073245,y:.006303258899985619},{x:.5070667194929276,y:.00606648509648134},{x:.5073858795965667,y:.006110956057683261},{x:.5077078162324508,y:.006096897586191266},{x:.5117516027915979,y:.006719264880154805},{x:.5158038544123874,y:.0072838953667157535},{x:.5161082060899873,y:.007389776878261636},{x:.5164266994754154,y:.007438795258320738},{x:.5202713679739276,y:.008838107561233023},{x:.5241356027726449,y:.01018244390490916},{x:.524413449959918,y:.010345666999689355},{x:.5247162605727012,y:.010455878482443691},{x:.5282140625562944,y:.012578361007246536},{x:.5317417801567137,y:.014650741116263542},{x:.5319824453420714,y:.01486503322228222},{x:.5322579363401786,y:.01503220244225683},{x:.535274453240215,y:.01779628937582467},{x:.5383300854333174,y:.020517072844796484},{x:.5385243199886531,y:.020774198836595797},{x:.5387619044075241,y:.0209919015744166},{x:.5411812131712181,y:.024291370606011366},{x:.5436473337254403,y:.027555999252057217},{x:.5437876733257202,y:.027846077921969747},{x:.5439782209293771,y:.028105947983511865},{x:.5457073488777034,y:.03181400236861376},{x:.5474891861631633,y:.0354970183436901},{x:.5475702376362523,y:.03580890213110964},{x:.5477064257871465,y:.03610095285564429},{x:.548678923502756,y:.040075094143733274},{x:.5497080025118405,y:.04403496120937851},{x:.5497266510950819,y:.04435666459526063},{x:.5498032461589497,y:.04466967263722821},{x:.6466002461589497,y:.7226436726372282},{x:.6469851024138088,y:.7314568162324507},{x:.6456432047416794,y:.7401756994754154},{x:.6426261215175564,y:.7484652605727011},{x:.6380497975577433,y:.7560069363401786},{x:.6320900984255835,y:.7625109044075241},{x:.6249760520164882,y:.7677272209293771},{x:.6169810471443558,y:.7714554257871464},{x:.6084123273627718,y:.7735522461589497},{x:.5995991837675493,y:.7739371024138088},{x:.5908803005245846,y:.7725952047416793},{x:.5825907394272989,y:.7695781215175563},{x:.5750490636598214,y:.7650017975577432},{x:.5685450955924759,y:.7590420984255835},{x:.563328779070623,y:.7519280520164882},{x:.5596005742128536,y:.7439330471443557},{x:.5575037538410503,y:.7353643273627718},{x:.4822251865940539,y:.2081071670095049},{x:.3260455560950909,y:.5459966027726448},{x:.3245096626856286,y:.5486110836728201},{x:.32313748405233433,y:.5513150815908924},{x:.32228015650766817,y:.5524062697730983},{x:.32157725888373645,y:.5536027801567136},{x:.3195608173147473,y:.5558673865996665},{x:.3176874808845609,y:.5582517291845196},{x:.31663374639442166,y:.5591546941850146},{x:.31571092715520355,y:.5601910854333173},{x:.3132914281453504,y:.5620187898634509},{x:.3109889251867045,y:.563991848166704},{x:.30977927817660644,y:.5646718895469083},{x:.3086720007479428,y:.5655083337254402},{x:.3059424242873038,y:.566828898486493},{x:.3032992386976406,y:.5683148489840557},{x:.30198016522380455,y:.5687458331350992},{x:.3007309816563099,y:.5693501861631632},{x:.29779622383750376,y:.570112862691949},{x:.29491393175671793,y:.571054601139531},{x:.29353612307299787,y:.5712199655821879},{x:.29219303879062153,y:.5715690025118404},{x:.28916588071079274,y:.5717444815770724},{x:.2861552470071419,y:.5721058174942654},{x:.2847716515285703,y:.5719992073657418},{x:.2833862805070725,y:.5720795149035186},{x:.28038305415357795,y:.5716610529431293},{x:.27735977579191173,y:.5714281003932755},{x:.27602356431680025,y:.5710536126610233},{x:.27464914558761266,y:.5708621046332842},{x:.27178526326499086,y:.5698657829057354},{x:.26886552313727163,y:.5690474941246844},{x:.26762804552325165,y:.5684195201422382},{x:.26631739722735515,y:.5679635560950907},{x:.26370291632718046,y:.5664276626856288},{x:.2609989184091076,y:.5650554840523343},{x:.25990773022690183,y:.5641981565076682},{x:.2587112198432863,y:.5634952588837364},{x:.25644661340033337,y:.5614788173147471},{x:.2540622708154803,y:.5596054808845607},{x:.2531593058149851,y:.5585517463944213},{x:.2521229145666826,y:.5576289271552034},{x:.2502952101365493,y:.5552094281453507},{x:.24832215183329598,y:.5529069251867045},{x:.2476421104530918,y:.5516972781766065},{x:.24680566627455972,y:.5505900007479427},{x:.245485101513507,y:.5478604242873037},{x:.24399915101594416,y:.5452172386976405},{x:.10495542809967917,y:.22875042455884986},{x:.04468360364824366,y:.734330871972055},{x:.04278579956520255,y:.742945856245361},{x:.03924376119942353,y:.7510250628018409},{x:.034193607098905524,y:.7582580122644001},{x:.02782941185357234,y:.7643667464414777},{x:.020395747917620333,y:.7691165101044659},{x:.012178286827261426,y:.7723247724994944},{x:.003492821003792758,y:.7738682419019364},{x:-.00532687197205508,y:.7736876036482436},{x:-.013941856245361059,y:.7717897995652026},{x:-.022021062801840872,y:.7682477611994235},{x:-.029254012264400202,y:.7631976070989055},{x:-.035362746441477744,y:.7568334118535723},{x:-.04011251010446598,y:.7493997479176203},{x:-.04332077249949441,y:.7411822868272614},{x:-.04486424190193638,y:.7324968210037928}]],X:[[{x:-.03582341524240513,y:.7325834270170574},{x:-.035659804156077404,y:.7237634017461555},{x:-.03377863524060577,y:.7151447697271875},{x:-.030252200762440104,y:.7070587401552579},{x:-.02521601962092907,y:.6998160546121182},{x:.24190189785100796,y:.3863717955888736},{x:-.0190039697420246,y:.08021800391719859},{x:-.024040163260448045,y:.07297532698032597},{x:-.027566611556706647,y:.06488930343468059},{x:-.029447795200430175,y:.056270674630427356},{x:-.029611421359170286,y:.047450649639130975},{x:-.028051201971409197,y:.03876817707487998},{x:-.024827095393237467,y:.030556919489131844},{x:-.02006300223235442,y:.02313243090598055},{x:-.013942003917198569,y:.016780030257975413},{x:-.006699326980325947,y:.011743836739551976},{x:.0013866965653194212,y:.00821738844329338},{x:.010005325369572668,y:.006336204799569846},{x:.018825350360869044,y:.0061725786408297345},{x:.02750782292512003,y:.007732798028590823},{x:.03571908051086817,y:.010956904606762553},{x:.04314356909401947,y:.0157209977676456},{x:.049495969742024595,y:.021841996082801452},{x:.3010259353438819,y:.31699385831754345},{x:.5525549803790709,y:.021842054612118165},{x:.558907370566982,y:.01572104544144637},{x:.5663318510088331,y:.010956939592969957},{x:.5745431030849405,y:.007732818982704524},{x:.5832255729829426,y:.006172584757594898},{x:.5920455982538445,y:.006336195843922615},{x:.6006642302728125,y:.008217364759394247},{x:.6087502598447422,y:.011743799237559922},{x:.6159929453878819,y:.016779980379070948},{x:.6221139545585537,y:.023132370566981995},{x:.6268780604070301,y:.03055685100883309},{x:.6301021810172955,y:.0387681030849405},{x:.6316624152424052,y:.04745057298294264},{x:.6314988041560774,y:.05627059825384449},{x:.6296176352406058,y:.06488923027281246},{x:.6260912007624402,y:.07297525984474214},{x:.6210550196209291,y:.08021794538788188},{x:.36015009139561527,y:.3863716945525663},{x:.6272689697420246,y:.6998159960828014},{x:.632305163260448,y:.7070586730196741},{x:.6358316115567066,y:.7151446965653194},{x:.6377127952004301,y:.7237633253695727},{x:.6378764213591702,y:.7325833503608691},{x:.6363162019714091,y:.74126582292512},{x:.6330920953932374,y:.7494770805108681},{x:.6283280022323544,y:.7569015690940195},{x:.6222070039171985,y:.7632539697420246},{x:.6149643269803259,y:.7682901632604481},{x:.6068783034346805,y:.7718166115567067},{x:.5982596746304273,y:.7736977952004301},{x:.5894396496391309,y:.7738614213591702},{x:.58075717707488,y:.7723012019714092},{x:.5725459194891318,y:.7690770953932374},{x:.5651214309059804,y:.7643130022323544},{x:.5587690302579753,y:.7581920039171985},{x:.30102605390274134,y:.4557496318238965},{x:.04328401962092907,y:.7581919453878818},{x:.03693162943301802,y:.7643129545585536},{x:.029507148991166913,y:.76907706040703},{x:.021295896915059523,y:.7723011810172955},{x:.012613427017057378,y:.7738614152424051},{x:.003793401746155514,y:.7736978041560774},{x:-.004825230272812429,y:.7718166352406057},{x:-.012911259844742107,y:.7682902007624401},{x:-.02015394538788185,y:.7632540196209291},{x:-.02627495455855365,y:.756901629433018},{x:-.031039060407030063,y:.7494771489911669},{x:-.034263181017295495,y:.7412658969150595},{x:-.03582341524240513,y:.7325834270170574}]],Y:[[{x:-.02688005049839745,y:.731186349993587},{x:-.02644216088936969,y:.7223756821949907},{x:-.024293809188388457,y:.7138197369324374},{x:-.020517555346512936,y:.7058473143841377},{x:-.015258518681138845,y:.6987647902776368},{x:.25043465103960333,y:.4059541390643743},{x:.26029423204414154,y:.04978477430584237},{x:.26140149479875585,y:.04103299828270508},{x:.26419486861258723,y:.03266540142918031},{x:.26856700569651215,y:.025003545799746604},{x:.27434988727431814,y:.01834187220942495},{x:.28132128045004745,y:.012936385038381841},{x:.28921327849355916,y:.008994814127168342},{x:.2977225963459245,y:.006668631835443931},{x:.30652222569415766,y:.00604723204414153},{x:.3152740017172949,y:.007154494798755871},{x:.32364159857081976,y:.009947868612587236},{x:.3313034542002534,y:.014320005696512164},{x:.3379651277905751,y:.020102887274318144},{x:.3433706149616182,y:.027074280450047443},{x:.3473121858728317,y:.03496627849355913},{x:.3496383681645561,y:.04347559634592452},{x:.3502597679558585,y:.05227522569415767},{x:.34045421751128274,y:.4064927803087797},{x:.6166036868780955,y:.6970396048261934},{x:.6220250193382449,y:.7039986829780357},{x:.6259845336177533,y:.7118816938899454},{x:.6283300678033804,y:.7203856978734211},{x:.6289714843317633,y:.7291838908244783},{x:.6278841339254269,y:.7379381631220915},{x:.6251098028506934,y:.7463120929913156},{x:.620755107094902,y:.7539838750034306},{x:.6149873951738065,y:.7606586868780956},{x:.6080283170219642,y:.7660800193382449},{x:.6001453061100546,y:.7700395336177532},{x:.5916413021265788,y:.7723850678033803},{x:.5828431091755216,y:.7730264843317632},{x:.5740888368779085,y:.7719391339254268},{x:.5657149070086843,y:.7691648028506933},{x:.5580431249965694,y:.7648101070949019},{x:.5513683131219045,y:.7590423951738065},{x:.29567976193894085,y:.4900232412279098},{x:.051392518681138845,y:.7592432097223631},{x:.04485280102201476,y:.765163657957578},{x:.03728372005126494,y:.7696945108160528},{x:.028976151305805796,y:.7726616501633681},{x:.02024934999358704,y:.7739510504983974},{x:.011438682194990706,y:.7735131608893697},{x:.002882736932437466,y:.7713648091883885},{x:-.0050896856158622154,y:.7675885553465129},{x:-.012172209722363214,y:.7623295186811389},{x:-.01809265795757798,y:.7557898010220148},{x:-.022623510816052815,y:.7482207200512649},{x:-.025590650163368103,y:.7399131513058058},{x:-.02688005049839745,y:.731186349993587}]],Z:[[{x:.008711000000000003,y:.05103000000000002},{x:.00905278632815029,y:.04755978517413498},{x:.009251179439517476,y:.04407842782316871},{x:.009484424544736794,y:.043177288815328604},{x:.009575662381854637,y:.04225093550927423},{x:.01058788670939069,y:.038914079093048184},{x:.01146164687940622,y:.0355383196233794},{x:.011866213744552238,y:.0346999996115786},{x:.012136421036992098,y:.03380924554357098},{x:.013780184150668652,y:.030733981057728944},{x:.015295733266009179,y:.0275935480126292},{x:.015856074613338045,y:.026850263164785913},{x:.01629486744638546,y:.026029339514117927},{x:.01850700045157689,y:.023333847648222647},{x:.020606096809669634,y:.02054942610843994},{x:.02130067903544657,y:.01992974044441782},{x:.021891194846605365,y:.019210194846605383},{x:.024586686712500538,y:.016998061841414044},{x:.027188663217490867,y:.014676655565200585},{x:.02799079391630549,y:.014204383257544266},{x:.028710339514117916,y:.013613867446385479},{x:.03178560399995988,y:.01197010433270896},{x:.03479046815396611,y:.010200923661400137},{x:.035669321892902964,y:.00989421387003954},{x:.036490245543570964,y:.009455421036992116},{x:.03982710195979704,y:.008443196709456058},{x:.04311937851852794,y:.007294230264082269},{x:.04404118144126662,y:.007164869674294513},{x:.04493193550927423,y:.006894662381854655},{x:.048402150335139275,y:.006552876053704368},{x:.05185531895677298,y:.006068277970413476},{x:.052784646693945655,y:.006121237837117864},{x:.053711,y:.0060300000000000215},{x:.548341,y:.0060300000000000215},{x:.5571200644907257,y:.006894662381854655},{x:.565561754456429,y:.009455421036992116},{x:.5733416604858821,y:.013613867446385479},{x:.5801608051533946,y:.019210194846605383},{x:.5857571325536145,y:.026029339514117927},{x:.5899155789630078,y:.03380924554357098},{x:.5924763376181453,y:.04225093550927425},{x:.593341,y:.05103000000000002},{x:.5924763376181453,y:.05980906449072579},{x:.5899155789630078,y:.06825075445642906},{x:.5857571325536145,y:.07603066048588211},{x:.5801608051533946,y:.08284980515339466},{x:.5733416604858821,y:.08844613255361455},{x:.565561754456429,y:.09260457896300792},{x:.5571200644907257,y:.09516533761814538},{x:.548341,y:.09603000000000002},{x:.14224494935878249,y:.09603000000000002},{x:.5846943444347994,y:.7024816632174908},{x:.5851666167424556,y:.7032837939163054},{x:.5857571325536145,y:.7040033395141179},{x:.5874008956672913,y:.7070786039999603},{x:.5891700763385999,y:.7100834681539662},{x:.5894767861299605,y:.7109623218929031},{x:.5899155789630078,y:.711783245543571},{x:.5909278032905438,y:.7151201019597967},{x:.5920767697359177,y:.7184123785185279},{x:.5922061303257055,y:.7193341814412667},{x:.5924763376181453,y:.7202249355092742},{x:.5928181239462956,y:.7236951503351391},{x:.5933027220295866,y:.7271483189567729},{x:.5932497621628822,y:.7280776466939456},{x:.593341,y:.729004},{x:.5929992136718496,y:.7324742148258655},{x:.5928008205604824,y:.7359555721768313},{x:.5925675754552632,y:.7368567111846711},{x:.5924763376181453,y:.7377830644907257},{x:.5914641132906093,y:.7411199209069517},{x:.5905903531205937,y:.7444956803766206},{x:.5901857862554476,y:.7453340003884216},{x:.5899155789630078,y:.746224754456429},{x:.5882718158493319,y:.74930001894227},{x:.5867562667339908,y:.7524404519873709},{x:.5861959253866618,y:.7531837368352144},{x:.5857571325536145,y:.7540046604858821},{x:.5835449995484229,y:.7567001523517777},{x:.5814459031903303,y:.7594845738915601},{x:.5807513209645536,y:.760104259555582},{x:.5801608051533946,y:.7608238051533946},{x:.5774653132874991,y:.7630359381585863},{x:.5748633367825091,y:.7653573444347994},{x:.5740612060836946,y:.7658296167424556},{x:.5733416604858821,y:.7664201325536145},{x:.5702663960000408,y:.7680638956672906},{x:.5672615318460339,y:.7698330763385999},{x:.5663826781070966,y:.7701397861299606},{x:.565561754456429,y:.7705785789630079},{x:.5622248980402041,y:.7715908032905435},{x:.558932621481472,y:.7727397697359177},{x:.5580108185587332,y:.7728691303257055},{x:.5571200644907257,y:.7731393376181454},{x:.553649849664861,y:.7734811239462956},{x:.5501966810432269,y:.7739657220295866},{x:.5492673533060543,y:.7739127621628822},{x:.548341,y:.774004},{x:.053711,y:.774004},{x:.04493193550927421,y:.7731393376181454},{x:.036490245543570936,y:.7705785789630079},{x:.028710339514117906,y:.7664201325536145},{x:.021891194846605358,y:.7608238051533946},{x:.01629486744638546,y:.7540046604858821},{x:.012136421036992098,y:.746224754456429},{x:.009575662381854637,y:.7377830644907257},{x:.008711000000000003,y:.729004},{x:.009575662381854637,y:.7202249355092742},{x:.012136421036992098,y:.711783245543571},{x:.01629486744638546,y:.7040033395141179},{x:.021891194846605365,y:.6971841948466053},{x:.028710339514117916,y:.6915878674463855},{x:.036490245543570964,y:.6874294210369921},{x:.04493193550927423,y:.6848686623818546},{x:.053711,y:.684004},{x:.4598070506412174,y:.684004},{x:.017357655565200567,y:.07755233678250915},{x:.016885383257544267,y:.07675020608369457},{x:.01629486744638546,y:.07603066048588211},{x:.014651104332708876,y:.07295539600004002},{x:.012881923661400112,y:.06995053184603389},{x:.012575213870039523,y:.06907167810709706},{x:.012136421036992098,y:.06825075445642906},{x:.011124196709456038,y:.06491389804020298},{x:.00997523026408225,y:.06162162148147208},{x:.009845869674294495,y:.0606998185587334},{x:.009575662381854637,y:.05980906449072579},{x:.009233876053704348,y:.056338849664860746},{x:.008749277970413458,y:.05288568104322705},{x:.008802237837117845,y:.05195635330605437},{x:.008711000000000003,y:.05103000000000002}]],"[":[[{x:.152511,y:-.06942399999999993},{x:.15337566238185463,y:-.0782030644907257},{x:.1559364210369921,y:-.08664475445642897},{x:.16009486744638546,y:-.09442466048588202},{x:.16569119484660536,y:-.10124380515339457},{x:.1725103395141179,y:-.10684013255361446},{x:.18029024554357093,y:-.11099857896300783},{x:.1887319355092742,y:-.1135593376181453},{x:.197511,y:-.11442399999999993},{x:.404542,y:-.11442399999999993},{x:.4133210644907258,y:-.1135593376181453},{x:.4217627544564291,y:-.11099857896300783},{x:.42954266048588213,y:-.10684013255361446},{x:.4363618051533946,y:-.10124380515339457},{x:.44195813255361455,y:-.09442466048588202},{x:.44611657896300794,y:-.08664475445642897},{x:.4486773376181454,y:-.0782030644907257},{x:.449542,y:-.06942399999999993},{x:.4486773376181454,y:-.06064493550927416},{x:.44611657896300794,y:-.05220324554357089},{x:.44195813255361455,y:-.04442333951411784},{x:.4363618051533946,y:-.03760419484660529},{x:.42954266048588213,y:-.032007867446385396},{x:.4217627544564291,y:-.027849421036992027},{x:.4133210644907258,y:-.025288662381854565},{x:.404542,y:-.024423999999999932},{x:.24251099999999998,y:-.024423999999999932},{x:.24251099999999998,y:.7147659999999999},{x:.404542,y:.7147659999999999},{x:.4133210644907258,y:.7156306623818546},{x:.4217627544564291,y:.7181914210369921},{x:.42954266048588213,y:.7223498674463854},{x:.4363618051533946,y:.7279461948466053},{x:.44195813255361455,y:.7347653395141178},{x:.44611657896300794,y:.7425452455435709},{x:.4486773376181454,y:.7509869355092742},{x:.449542,y:.7597659999999999},{x:.4486773376181454,y:.7685450644907257},{x:.44611657896300794,y:.776986754456429},{x:.44195813255361455,y:.7847666604858821},{x:.4363618051533946,y:.7915858051533946},{x:.42954266048588213,y:.7971821325536145},{x:.4217627544564291,y:.8013405789630078},{x:.4133210644907258,y:.8039013376181453},{x:.404542,y:.804766},{x:.197511,y:.804766},{x:.1887319355092742,y:.8039013376181453},{x:.18029024554357093,y:.8013405789630078},{x:.1725103395141179,y:.7971821325536145},{x:.16569119484660536,y:.7915858051533946},{x:.16009486744638546,y:.7847666604858821},{x:.1559364210369921,y:.776986754456429},{x:.15337566238185463,y:.7685450644907257},{x:.152511,y:.7597659999999999},{x:.152511,y:-.06942399999999993}]],"\\":[[{x:.017522651058219416,y:.7303997530123288},{x:.018114599516431164,y:.7215980934307649},{x:.020412292453046287,y:.7130810386853763},{x:.024327430817071727,y:.7051758944136092},{x:.5013774308170718,y:-.059077105586390885},{x:.5067595580368128,y:-.06606654912342862},{x:.5134018419815468,y:-.0718716915303336},{x:.521049023404313,y:-.07626944443996993},{x:.5294072254116235,y:-.07909080467430848},{x:.5381552469876711,y:-.08022734894178067},{x:.5469569065692351,y:-.07963540048356893},{x:.5554739613146237,y:-.0773377075469538},{x:.5633791055863908,y:-.07342256918292836},{x:.5703685491234285,y:-.06804044196318723},{x:.5761736915303335,y:-.06139815801845332},{x:.5805714444399699,y:-.05375097659568702},{x:.5833928046743084,y:-.04539277458837649},{x:.5845293489417805,y:-.03664475301232898},{x:.5839374004835688,y:-.02784309343076498},{x:.5816397075469537,y:-.01932603868537643},{x:.5777245691829282,y:-.011420894413609283},{x:.10067456918292828,y:.7528321055863908},{x:.09529244196318712,y:.7598215491234285},{x:.0886501580184532,y:.7656266915303336},{x:.08100297659568693,y:.7700244444399699},{x:.07264477458837638,y:.7728458046743084},{x:.06389675301232887,y:.7739823489417805},{x:.055095093430764894,y:.7733904004835688},{x:.04657803868537634,y:.7710927075469537},{x:.03867289441360919,y:.7671775691829282},{x:.03168345087657147,y:.7617954419631872},{x:.025878308469666468,y:.7551531580184532},{x:.021480555560030153,y:.747505976595687},{x:.01865919532569161,y:.7391477745883763},{x:.017522651058219416,y:.7303997530123288}]],"]":[[{x:.15250999999999998,y:-.06942399999999993},{x:.15337466238185463,y:-.0782030644907257},{x:.1559354210369921,y:-.08664475445642897},{x:.16009386744638546,y:-.09442466048588202},{x:.16569019484660535,y:-.10124380515339457},{x:.1725093395141179,y:-.10684013255361446},{x:.18028924554357095,y:-.11099857896300783},{x:.18873093550927422,y:-.1135593376181453},{x:.19751,y:-.11442399999999993},{x:.404542,y:-.11442399999999993},{x:.4133210644907258,y:-.1135593376181453},{x:.4217627544564291,y:-.11099857896300783},{x:.42954266048588213,y:-.10684013255361446},{x:.4363618051533946,y:-.10124380515339457},{x:.44195813255361455,y:-.09442466048588202},{x:.44611657896300794,y:-.08664475445642897},{x:.4486773376181454,y:-.0782030644907257},{x:.449542,y:-.06942399999999993},{x:.449542,y:.7597659999999999},{x:.4486773376181454,y:.7685450644907257},{x:.44611657896300794,y:.776986754456429},{x:.44195813255361455,y:.7847666604858821},{x:.4363618051533946,y:.7915858051533946},{x:.42954266048588213,y:.7971821325536145},{x:.4217627544564291,y:.8013405789630078},{x:.4133210644907258,y:.8039013376181453},{x:.404542,y:.804766},{x:.19751,y:.804766},{x:.18873093550927422,y:.8039013376181453},{x:.18028924554357095,y:.8013405789630078},{x:.1725093395141179,y:.7971821325536145},{x:.16569019484660535,y:.7915858051533946},{x:.16009386744638546,y:.7847666604858821},{x:.1559354210369921,y:.776986754456429},{x:.15337466238185463,y:.7685450644907257},{x:.15250999999999998,y:.7597659999999999},{x:.15337466238185463,y:.7509869355092742},{x:.1559354210369921,y:.7425452455435709},{x:.16009386744638546,y:.7347653395141178},{x:.16569019484660535,y:.7279461948466053},{x:.1725093395141179,y:.7223498674463854},{x:.18028924554357095,y:.7181914210369921},{x:.18873093550927422,y:.7156306623818546},{x:.19751,y:.7147659999999999},{x:.35954200000000003,y:.7147659999999999},{x:.35954200000000003,y:-.024423999999999932},{x:.19751,y:-.024423999999999932},{x:.18873093550927422,y:-.025288662381854565},{x:.18028924554357095,y:-.027849421036992027},{x:.1725093395141179,y:-.03200786744638539},{x:.16569019484660535,y:-.03760419484660529},{x:.16009386744638546,y:-.04442333951411784},{x:.1559354210369921,y:-.052203245543570885},{x:.15337466238185463,y:-.06064493550927414},{x:.15250999999999998,y:-.06942399999999993}]],"^":[[{x:-.009830024293871129,y:.4771904357900641},{x:-.009184411720694952,y:.46839254975009553},{x:-.006834821991481832,y:.4598896653882279},{x:-.002871548521860348,y:.4520085437820153},{x:.002553102311361327,y:.44505205201500053},{x:.009230664218841726,y:.43928752416454453},{x:.016904522241296224,y:.4349364878031557},{x:.02527977431847106,y:.43216615081811305},{x:.034034564209935884,y:.43108297570612886},{x:.04283245024990444,y:.431728588279305},{x:.05133533461177206,y:.4340781780085181},{x:.05921645621798466,y:.4380414514781396},{x:.06617294798499941,y:.4434661023113613},{x:.30102423332324457,y:.6668931783680099},{x:.5358792969655858,y:.44346586927801307},{x:.5428358294884947,y:.4380412707099504},{x:.5507169808710617,y:.43407805645230807},{x:.5592198828854552,y:.4317285306064111},{x:.5680177737757447,y:.431082984132888},{x:.5767725555289304,y:.4321662250206897},{x:.5851477867919753,y:.43493662492998636},{x:.5928216121243246,y:.439287718945922},{x:.5994991307219868,y:.44505229696558585},{x:.6049237292900496,y:.45200882948849475},{x:.6088869435476919,y:.4598899808710617},{x:.6112364693935889,y:.4683928828854553},{x:.6118820158671119,y:.47719077377574476},{x:.6107987749793102,y:.4859455555289303},{x:.6080283750700135,y:.4943207867919753},{x:.6036772810540779,y:.5019946121243246},{x:.5979127030344141,y:.5086721307219868},{x:.33204070303441413,y:.7616071307219868},{x:.3294429315385385,y:.7636328335402047},{x:.3269493357811583,y:.7657854758354554},{x:.3259710287822201,y:.7663401706594313},{x:.32508417051150523,y:.7670317292900496},{x:.3221411194513825,y:.7685117087189752},{x:.3192754777587038,y:.7701365121968442},{x:.31820775306259985,y:.7704896904878621},{x:.3172030191289383,y:.7709949435476919},{x:.31402778830632944,y:.7718723248078522},{x:.310900225681529,y:.7729068491818869},{x:.30978411534954325,y:.7730449384962876},{x:.3087001171145447,y:.7733444693935889},{x:.30541472886927135,y:.7735855352151975},{x:.30214543579006414,y:.7739900242938711},{x:.3010238313163334,y:.7739077179367437},{x:.2999022262242552,y:.773990015867112},{x:.29663293618411596,y:.7735855022258356},{x:.2933475497500956,y:.7733444117206949},{x:.29226355376554153,y:.7730448726791859},{x:.29114744447106966,y:.7729067749793103},{x:.2880198896188706,y:.7718722271075298},{x:.28484466538822795,y:.7709948219914818},{x:.28383993525062523,y:.7704895613829726},{x:.2827722132080247,y:.7701363750700135},{x:.27990658372278143,y:.7685115500622604},{x:.2769635437820154,y:.7670315485218604},{x:.2760766907070934,y:.7663399832281829},{x:.2750983878756754,y:.765785281054078},{x:.27260480829144085,y:.7636326200241867},{x:.2700070520150006,y:.7616068976886387},{x:.004139052015000585,y:.5086718976886386},{x:-.001625475835455463,y:.5019943357811583},{x:-.0059765121968442594,y:.49432047775870375},{x:-.00874684918188691,y:.4859452256815289},{x:-.009830024293871129,y:.4771904357900641}]],_:[[{x:-.045,y:-.160601},{x:-.044135337618145365,y:-.16938006449072576},{x:-.041574578963007904,y:-.17782175445642903},{x:-.03741613255361454,y:-.1856016604858821},{x:-.03181980515339464,y:-.19242080515339463},{x:-.025000660485882086,y:-.19801713255361453},{x:-.017220754456429038,y:-.2021755789630079},{x:-.008779064490725769,y:-.20473633761814536},{x:0,y:-.20560099999999998},{x:.602052,y:-.20560099999999998},{x:.6108310644907258,y:-.20473633761814536},{x:.619272754456429,y:-.2021755789630079},{x:.6270526604858822,y:-.19801713255361453},{x:.6338718051533947,y:-.19242080515339463},{x:.6394681325536146,y:-.1856016604858821},{x:.6436265789630079,y:-.17782175445642903},{x:.6461873376181454,y:-.16938006449072576},{x:.6470520000000001,y:-.160601},{x:.6461873376181454,y:-.15182193550927423},{x:.6436265789630079,y:-.14338024554357096},{x:.6394681325536146,y:-.1356003395141179},{x:.6338718051533947,y:-.12878119484660536},{x:.6270526604858822,y:-.12318486744638546},{x:.619272754456429,y:-.1190264210369921},{x:.6108310644907258,y:-.11646566238185463},{x:.602052,y:-.115601},{x:0,y:-.115601},{x:-.00877906449072579,y:-.11646566238185463},{x:-.017220754456429066,y:-.1190264210369921},{x:-.025000660485882096,y:-.12318486744638546},{x:-.03181980515339464,y:-.12878119484660536},{x:-.03741613255361454,y:-.1356003395141179},{x:-.041574578963007904,y:-.14338024554357096},{x:-.044135337618145365,y:-.15182193550927423},{x:-.045,y:-.160601}]],a:[[{x:.029951000000000005,y:.25490100000000004},{x:.030216131121475042,y:.2522090785486062},{x:.03027571711850824,y:.2495047884160563},{x:.03064747136410999,y:.24782960757010103},{x:.03081566238185464,y:.24612193550927428},{x:.0316008669059687,y:.24353346308961055},{x:.0321868888075612,y:.2408927597850148},{x:.06949088880756119,y:.12701175978501478},{x:.07014919013856018,y:.12551652306247207},{x:.07061771774296957,y:.1239514111231075},{x:.07192248021942128,y:.12148874987750752},{x:.07304546130734973,y:.1189380599695235},{x:.0739828197765546,y:.11759998201998349},{x:.07474768294666384,y:.11615634846888903},{x:.07650781615341086,y:.11399555310027064},{x:.07810683439013419,y:.11171295672570881},{x:.07928722783725009,y:.11058345913436952},{x:.08031903331037206,y:.10931678199931477},{x:.15605303331037207,y:.033026781999314685},{x:.1581401110567553,y:.03130114899494214},{x:.16009013354595797,y:.02942202284781055},{x:.16153164054777758,y:.028496972085311937},{x:.16285166496406625,y:.027405552418137233},{x:.16523529439528092,y:.026120245637685162},{x:.16751444707429886,y:.024657656887915},{x:.24324744707429888,y:-.014037343112084925},{x:.24491821916217926,y:-.014693433733650136},{x:.24650124554357095,y:-.015539578963007873},{x:.24901423193062222,y:-.016301885049470277},{x:.2514585861893129,y:-.017261751399011975},{x:.25322525179064753,y:-.017579283958613606},{x:.2549429355092742,y:-.018100337618145335},{x:.2575563541074305,y:-.01835773688343746},{x:.2601410014196699,y:-.018822289810772906},{x:.26193566856615697,y:-.018789061710219754},{x:.263722,y:-.018964999999999968},{x:.376759,y:-.018964999999999968},{x:.3786816094876915,y:-.018775639493449434},{x:.3806133727303473,y:-.01879962736385296},{x:.3830607170270406,y:-.018344335046447002},{x:.3855380644907258,y:-.018100337618145335},{x:.3873867891740171,y:-.01753953311656589},{x:.3892861139289994,y:-.017186191753697247},{x:.3915976100664607,y:-.016262194563578608},{x:.3939797544564291,y:-.015539578963007873},{x:.3956835488825182,y:-.014628881868892333},{x:.3974774451646465,y:-.013911789983170525},{x:.4720844451646465,y:.0247832100168294},{x:.4742399118062311,y:.026185049737888398},{x:.4765030886255536,y:.02740538646642049},{x:.47792879308654873,y:.028584168427667152},{x:.47947957817165415,y:.02959274452399146},{x:.48132014276352414,y:.0313881589690925},{x:.48210100000000006,y:.032033776942416534},{x:.48210100000000006,y:.02603500000000003},{x:.4829656623818547,y:.01725593550927424},{x:.4855264210369921,y:.008814245543570985},{x:.4896848674463855,y:.0010343395141179344},{x:.4952811948466054,y:-.0057848051533946065},{x:.5021003395141179,y:-.01138113255361451},{x:.509880245543571,y:-.015539578963007873},{x:.5183219355092743,y:-.018100337618145335},{x:.527101,y:-.018964999999999968},{x:.5358800644907258,y:-.018100337618145335},{x:.544321754456429,y:-.015539578963007873},{x:.5521016604858822,y:-.011381132553614504},{x:.5589208051533947,y:-.0057848051533946065},{x:.5645171325536146,y:.0010343395141179344},{x:.5686755789630079,y:.008814245543570992},{x:.5712363376181454,y:.01725593550927426},{x:.5721010000000001,y:.02603500000000003},{x:.5721010000000001,y:.560059},{x:.5712363376181454,y:.5688380644907257},{x:.5686755789630079,y:.577279754456429},{x:.5645171325536146,y:.5850596604858821},{x:.5589208051533947,y:.5918788051533946},{x:.5521016604858822,y:.5974751325536145},{x:.544321754456429,y:.6016335789630078},{x:.5358800644907258,y:.6041943376181453},{x:.527101,y:.605059},{x:.5183219355092743,y:.6041943376181453},{x:.509880245543571,y:.6016335789630078},{x:.5021003395141179,y:.5974751325536145},{x:.4952811948466054,y:.5918788051533946},{x:.4896848674463855,y:.5850596604858821},{x:.4855264210369921,y:.577279754456429},{x:.4829656623818547,y:.5688380644907257},{x:.48210100000000006,y:.560059},{x:.48210100000000006,y:.5551612473179106},{x:.48111784979070266,y:.5559741116228759},{x:.47906658786156825,y:.5579287481398052},{x:.4777260461549398,y:.558778440075324},{x:.476502844006682,y:.5597897782764175},{x:.474008872962507,y:.5611345413953497},{x:.47161569478864906,y:.5626514387693977},{x:.3970086947886491,y:.6002454387693977},{x:.39545173243232984,y:.6008467903430146},{x:.3939797544564291,y:.6016335789630078},{x:.39134652561635536,y:.6024323601988234},{x:.3887796173011618,y:.6034237870938969},{x:.38713525366780027,y:.6037098355781862},{x:.3855380644907258,y:.6041943376181453},{x:.3827995979159321,y:.6044640530341434},{x:.3800885942320307,y:.6049356509696303},{x:.37842002129388747,y:.6048954036817589},{x:.376759,y:.605059},{x:.263722,y:.605059},{x:.26219504701733515,y:.604908608257877},{x:.26066140118579323,y:.6049547986330399},{x:.25781511370268967,y:.6044772224791067},{x:.2549429355092742,y:.6041943376181453},{x:.2534746624734083,y:.6037489418620853},{x:.2519614739213154,y:.6034950452430072},{x:.24926304753974865,y:.6024713624393285},{x:.24650124554357095,y:.6016335789630078},{x:.24514807736385555,y:.6009102955021357},{x:.24371349707866236,y:.6003660689935006},{x:.16798049707866233,y:.5627720689935006},{x:.1654642487594581,y:.5611982224645521},{x:.16285190958182658,y:.5597896123262998},{x:.16173267757498783,y:.5588642237445607},{x:.16050143578237863,y:.5580941146870384},{x:.15834057869520102,y:.5560596134829665},{x:.15605324108782545,y:.5541684273021619},{x:.08031924108782545,y:.47787942730216193},{x:.07924694249287094,y:.47656305714472025},{x:.07802357952480113,y:.4753857561141845},{x:.07646760484406812,y:.47315109973327435},{x:.07474784589903924,y:.4710398973462887},{x:.07395296229881854,y:.46953962579412084},{x:.07298278594430238,y:.4681462799973844},{x:.07189266871370663,y:.46565100631071576},{x:.07061782960809859,y:.46324486175923196},{x:.0701309079335922,y:.4616183434067253},{x:.06945120152585271,y:.46006249834135976},{x:.032147201525852716,y:.3450764983413597},{x:.031582343425880205,y:.34249647318004567},{x:.03081566238185464,y:.3399690644907258},{x:.030641204072877935,y:.33819775955415116},{x:.03026054307811779,y:.33645906634171463},{x:.03020987650767869,y:.3338184172918108},{x:.029951000000000005,y:.33119},{x:.029951000000000005,y:.25490100000000004}],[{x:.119951,y:.2620835578942187},{x:.119951,y:.3240730820964405},{x:.15174843963453788,y:.42208563822492473},{x:.21467365091165175,y:.4854719831046318},{x:.2742766075147511,y:.5150589999999999},{x:.3660620360389177,y:.5150589999999999},{x:.4245839309326211,y:.4855701837142105},{x:.48210100000000006,y:.4276323784447675},{x:.48210100000000006,y:.15956344905445352},{x:.4243936225653894,y:.10143318135145685},{x:.36578354074375496,y:.07103500000000003},{x:.2745522516182332,y:.07103500000000003},{x:.21486246778999646,y:.10153288315838035},{x:.15170083487400915,y:.1651582162341545},{x:.119951,y:.2620835578942187}]],b:[[{x:.03166000000000001,y:.04001500000000002},{x:.03252466238185464,y:.031235935509274233},{x:.0350854210369921,y:.022794245543570978},{x:.039243867446385465,y:.015014339514117927},{x:.04484019484660537,y:.008195194846605386},{x:.05165933951411792,y:.002598867446385482},{x:.05943924554357097,y:-.0015595789630078807},{x:.06788093550927424,y:-.004120337618145342},{x:.07666,y:-.0049849999999999756},{x:.08543906449072577,y:-.004120337618145342},{x:.09388075445642904,y:-.0015595789630078807},{x:.10166066048588211,y:.002598867446385489},{x:.10847980515339464,y:.008195194846605386},{x:.11407613255361454,y:.015014339514117927},{x:.1182345789630079,y:.022794245543570985},{x:.12079533761814537,y:.031235935509274254},{x:.12166,y:.04001500000000002},{x:.12166,y:.041388769861289504},{x:.12338630711141785,y:.04010106584896898},{x:.12512540667363178,y:.03853443023544684},{x:.12691331624345048,y:.03747016444054036},{x:.12858112311649333,y:.036226097502515},{x:.13069431360107225,y:.035219499067818724},{x:.13270563229917137,y:.034022247411931134},{x:.20674863229917137,y:-.0007227525880688923},{x:.20772794171481185,y:-.0010698043626217635},{x:.20864424554357097,y:-.0015595789630078669},{x:.21187816153300185,y:-.0025405766534664824},{x:.21506348921487128,y:-.003669406425619949},{x:.21609168791714548,y:-.0038187359083884913},{x:.21708593550927424,y:-.004120337618145342},{x:.22044909586509742,y:-.004451580001305548},{x:.22379344213248661,y:-.004937293022731791},{x:.22483101702188665,y:-.00488316156543817},{x:.225865,y:-.0049849999999999756},{x:.338045,y:-.0049849999999999756},{x:.33894984805462636,y:-.004895880245274822},{x:.33985755144997865,y:-.004948481373678995},{x:.343332465401001,y:-.004464230112452937},{x:.3468240644907258,y:-.004120337618145342},{x:.3476941397420575,y:-.003856403176165039},{x:.34859466384226984,y:-.0037309094409420443},{x:.351908335561611,y:-.0025780408502315546},{x:.35526575445642905,y:-.0015595789630078807},{x:.35606762040050133,y:-.0011309726863615623},{x:.35692635856942223,y:-.0008322067413783357},{x:.43209235856942224,y:.03391279325862169},{x:.4342218624454842,y:.03516383683568551},{x:.43645162164562873,y:.03622594356254809},{x:.4380158580934015,y:.037392738102356306},{x:.4396984532755396,y:.03838123120587913},{x:.4415429728374372,y:.04002368192832182},{x:.4435226810964235,y:.04150038501262054},{x:.5186856810964235,y:.11000138501262047},{x:.5200684051728882,y:.11153543836568303},{x:.5216038163727121,y:.1129166544997947},{x:.5230144082918019,y:.11480386048953693},{x:.5245918796416693,y:.11655397481445093},{x:.5256487561000858,y:.11832830784782436},{x:.5268852029038621,y:.11998252816661786},{x:.5279005150705119,y:.12210866485417524},{x:.5291062453835067,y:.12413290061668979},{x:.5297966590542814,y:.12607932670695898},{x:.530686625504748,y:.12794298045128052},{x:.567704625504748,y:.2301969804512806},{x:.5685418230641662,y:.23348712941632632},{x:.5695273376181453,y:.23673593550927427},{x:.5696276430094915,y:.2377543532384077},{x:.5698799976366801,y:.23874609563675617},{x:.5700592324586751,y:.24213635445346285},{x:.570392,y:.24551500000000004},{x:.570392,y:.314017},{x:.570065993218988,y:.3173270023951309},{x:.5699006262411136,y:.32064890697528625},{x:.569634437926433,y:.3217086568121163},{x:.5695273376181453,y:.3227960644907258},{x:.5685618455328773,y:.32597886535008125},{x:.5677515846008636,y:.32920467896823863},{x:.5307335846008636,y:.4324506789682387},{x:.5298196963817511,y:.43437967657309706},{x:.5291061063615623,y:.4363913954201699},{x:.5279358002551,y:.43835612690926706},{x:.5269566878799311,y:.4404227969757902},{x:.5256840310027916,y:.4421364386856148},{x:.5245916855370664,y:.44397028841230757},{x:.523060566435399,y:.4456689527415915},{x:.5216970801011935,y:.44750489697372575},{x:.5201145620561008,y:.4489373284986299},{x:.5186854393684929,y:.45052283528838016},{x:.44352243936849295,y:.5190228352883801},{x:.44134657552661755,y:.5206458300432604},{x:.43929971954126384,y:.5224287703137037},{x:.4378191137317927,y:.523276992839783},{x:.43645134158383936,y:.5242972253466508},{x:.43400065578620683,y:.5254645447348341},{x:.43164529517316985,y:.52681390451462},{x:.35647929517316984,y:.56056790451462},{x:.3558506134628383,y:.560778965311121},{x:.35526575445642905,y:.5610915789630079},{x:.351674330744245,y:.5621810254355277},{x:.34811645117964274,y:.5633754754766519},{x:.34745867349333664,y:.563459831081816},{x:.3468240644907258,y:.5636523376181454},{x:.3430891085149791,y:.5640201986736739},{x:.3393665669654169,y:.5644975898222324},{x:.3387049713307353,y:.5644519984974604},{x:.338045,y:.564517},{x:.225865,y:.564517},{x:.22507819619617456,y:.5644395065891945},{x:.22428916125732748,y:.5644893996719887},{x:.22069487882474298,y:.5640077875099223},{x:.21708593550927424,y:.5636523376181454},{x:.21632936813438544,y:.5634228354140474},{x:.21554576062305134,y:.5633178367349442},{x:.2121144991913443,y:.5621442688983362},{x:.20864424554357097,y:.5610915789630079},{x:.20794698905754733,y:.5607188876066144},{x:.20719892257093525,y:.5604630322059678},{x:.13315592257093525,y:.5267090322059678},{x:.13091775246116674,y:.5254099486077729},{x:.12858140317750869,y:.5242970714087468},{x:.1271119341080524,y:.5232009671819817},{x:.12552641140636125,y:.5222806946221156},{x:.12358468574515913,y:.5205699272235509},{x:.12166,y:.5191342684374534},{x:.12166,y:.7597659999999999},{x:.12079533761814537,y:.7685450644907257},{x:.1182345789630079,y:.776986754456429},{x:.11407613255361454,y:.7847666604858821},{x:.10847980515339464,y:.7915858051533946},{x:.10166066048588208,y:.7971821325536145},{x:.09388075445642904,y:.8013405789630078},{x:.08543906449072577,y:.8039013376181453},{x:.07666,y:.804766},{x:.06788093550927421,y:.8039013376181453},{x:.05943924554357094,y:.8013405789630078},{x:.05165933951411792,y:.7971821325536145},{x:.04484019484660537,y:.7915858051533946},{x:.039243867446385465,y:.7847666604858821},{x:.0350854210369921,y:.776986754456429},{x:.03252466238185464,y:.7685450644907257},{x:.03166000000000001,y:.7597659999999999},{x:.03166000000000001,y:.04001500000000002}],[{x:.12166,y:.16313400296117606},{x:.12166,y:.39738980161800674},{x:.17691400696537596,y:.447746357818324},{x:.23563826658076475,y:.474517},{x:.3284048540018634,y:.474517},{x:.3882155063572531,y:.44765846343288423},{x:.44979135555302596,y:.39154114946310603},{x:.480392,y:.30619363915535625},{x:.480392,y:.2534097446111891},{x:.44984564070758065,y:.16903221413717517},{x:.38802932067077023,y:.11269492399652684},{x:.3281476350434013,y:.08501500000000002},{x:.2358983461114888,y:.08501500000000002},{x:.1771018588393058,y:.11260550754658781},{x:.12166,y:.16313400296117606}]],c:[[{x:.0446,y:.25490100000000004},{x:.044822712444716174,y:.2526397626013558},{x:.04482893549381362,y:.2503675925637664},{x:.045254001037800355,y:.24826081602954003},{x:.045464662381854634,y:.24612193550927428},{x:.04612424100165128,y:.2439475961957434},{x:.04657362286091401,y:.24172029932495478},{x:.08145962286091402,y:.1278402993249547},{x:.08196610920465827,y:.1266269431042867},{x:.08230081253195312,y:.125355433994083},{x:.08366176737769918,y:.12256476567779218},{x:.08485778977199918,y:.11969953302126297},{x:.0855912581784792,y:.11860830168404396},{x:.08616758939694805,y:.11742652164475936},{x:.08804682625741464,y:.11495498435675963},{x:.08977884657839008,y:.1123781387363477},{x:.09071111026807865,y:.11145096769089737},{x:.09150692129220603,y:.11040433186669174},{x:.16233292129220603,y:.03411333186669174},{x:.16445877247754231,y:.03223237849112975},{x:.1664474797904295,y:.03020697184383589},{x:.16775479669311927,y:.029316055882572942},{x:.16893962068732413,y:.02826772347496185},{x:.17139158003796548,y:.02683764508339147},{x:.17373721213250964,y:.02523913360696181},{x:.24456521213250962,y:-.013455866393038113},{x:.2467886390083486,y:-.014400746043602006},{x:.24891924554357092,y:-.015539578963007873},{x:.25083834630720225,y:-.016121731815163746},{x:.25268405147305695,y:-.01690609278116076},{x:.2550490927002279,y:-.01739904776899966},{x:.2573609355092742,y:-.018100337618145335},{x:.259356733677244,y:-.018296906580526337},{x:.26131999536931183,y:-.018706117055345653},{x:.26373576373978486,y:-.0187282033967292},{x:.26614,y:-.018964999999999968},{x:.371854,y:-.018964999999999968},{x:.3744001776009888,y:-.018714223394882004},{x:.3769583677219744,y:-.018674567546095353},{x:.3787793796063011,y:-.01828290964379429},{x:.3806330644907258,y:-.018100337618145335},{x:.3830813939144215,y:-.01735764500708899},{x:.3855826926572475,y:-.01681967299983559},{x:.38729230564255435,y:-.01608027889939661},{x:.3890747544564291,y:-.015539578963007873},{x:.391331147776118,y:-.014333511606549179},{x:.393679431632842,y:-.013317897403369645},{x:.463449431632842,y:.02537710259663028},{x:.46566730315778443,y:.026909287408228903},{x:.46799586592077425,y:.028267352155161442},{x:.4692879686356918,y:.029410572352257962},{x:.47070743151062955,y:.03039118797094862},{x:.4725837728278355,y:.03232661755101331},{x:.4746026476214732,y:.03411286752390576},{x:.5454306476214732,y:.11040386752390575},{x:.5507700783887176,y:.11742598212342069},{x:.5546369668925095,y:.12535484002769406},{x:.5568827107762242,y:.13388573967401945},{x:.5574210073618384,y:.14269084337317217},{x:.5562311702134469,y:.15143177592795284},{x:.5533589241053942,y:.15977262820225266},{x:.5489146478448386,y:.16739286592077418},{x:.5430691324760942,y:.17399964762147313},{x:.5360470178765793,y:.17933907838871752},{x:.5281181599723059,y:.18320596689250943},{x:.5195872603259806,y:.1854517107762242},{x:.5107821566268278,y:.1859900073618383},{x:.5020412240720471,y:.18480017021344686},{x:.4937003717977473,y:.18192792410539416},{x:.4860801340792258,y:.17748364784483847},{x:.47947335237852684,y:.17163813247609414},{x:.41352572033101553,y:.10060392571412592},{x:.36021071976053953,y:.07103500000000003},{x:.27763077403847125,y:.07103500000000003},{x:.2233107097601157,y:.10071132697875086},{x:.16448866962379677,y:.16407213041308155},{x:.1346,y:.2616391113440561},{x:.1346,y:.3245158400933278},{x:.1645319520417492,y:.4231721923699009},{x:.2231207776861973,y:.4862793045993598},{x:.27734241586879393,y:.5150589999999999},{x:.3605019191882548,y:.5150589999999999},{x:.41371701660545657,y:.4863852380349392},{x:.47947395272027693,y:.4155592208902026},{x:.48608084903755494,y:.4097138350672089},{x:.4937011738972078,y:.40526970822380387},{x:.5020420824884065,y:.4023976256622846},{x:.5107830383716269,y:.4012079599048077},{x:.5195881315142611,y:.40174642913926084},{x:.5281189871247909,y:.40399234029494097},{x:.5360477692062626,y:.4078593842656568},{x:.5430697791097975,y:.41319895272027696},{x:.5489151649327911,y:.41980584903755497},{x:.5533592917761961,y:.42742617389720783},{x:.5562313743377155,y:.4357670824884066},{x:.5574210400951923,y:.4445080383716269},{x:.5568825708607392,y:.4533131315142611},{x:.5546366597050592,y:.4618439871247909},{x:.5507696157343432,y:.46977276920626265},{x:.5454300472797231,y:.4767947791097975},{x:.4746020472797231,y:.5530827791097974},{x:.47237947035514305,y:.5550491819442839},{x:.4702881116089302,y:.5571546051529963},{x:.469083054274185,y:.5579656532949738},{x:.4679951509624451,y:.5589281649327911},{x:.46543165406806053,y:.5604231806402761},{x:.46296973250196366,y:.5620801448811513},{x:.39319973250196366,y:.5996741448811513},{x:.39109075852725916,y:.6005560023370271},{x:.3890747544564291,y:.6016335789630078},{x:.38703122642603144,y:.6022534764138876},{x:.38506104886577136,y:.6030772968079529},{x:.3828205563795885,y:.6035307692082409},{x:.3806330644907258,y:.6041943376181453},{x:.3785078662851109,y:.6044036513718285},{x:.37641482574826585,y:.6048272797133635},{x:.3741289156203665,y:.604834940368031},{x:.371854,y:.605059},{x:.26614,y:.605059},{x:.26400488750824663,y:.6048487097743618},{x:.26185945318827825,y:.6048549475733314},{x:.2596259398913868,y:.6044174210783497},{x:.2573609355092742,y:.6041943376181453},{x:.2553078741931944,y:.60357154827667},{x:.25320244685788745,y:.6031591127457343},{x:.2510972070775077,y:.6022942563713519},{x:.24891924554357092,y:.6016335789630078},{x:.24702713339817148,y:.6006222239508241},{x:.24504262343928468,y:.5998069647561404},{x:.1742146234392847,y:.5622129647561404},{x:.17162525666515238,y:.5604936738034747},{x:.16894033563687538,y:.5589277936219744},{x:.16795812189104978,y:.5580587651214349},{x:.16686556037036515,y:.5573333247718834},{x:.16466136457832586,y:.5551419091149951},{x:.16233352162359432,y:.5530823147741101},{x:.09150752162359431,y:.47679431477411016},{x:.09067474586023959,y:.4756991081857825},{x:.08970182133886938,y:.4747262717047309},{x:.08801053269383365,y:.4721953272870651},{x:.08616805203977476,y:.4697722296898647},{x:.08556494203519081,y:.46853560069719197},{x:.08480050296804506,y:.467391648838166},{x:.08363547472152838,y:.4645793817614187},{x:.08230111970711389,y:.461843393160995},{x:.08195085264054901,y:.4605128647226562},{x:.08142427599227564,y:.4592417589140625},{x:.046538275992275634,y:.3442567589140625},{x:.04610669192420131,y:.34208755224892967},{x:.045464662381854634,y:.33997106449072584},{x:.04524807462900009,y:.3377720121321243},{x:.04481688692083,y:.3356047976316928},{x:.044816786846426454,y:.33339307378956023},{x:.0446,y:.33119200000000004},{x:.0446,y:.25490100000000004}]],d:[[{x:.03166100000000001,y:.24551500000000004},{x:.03199378652782141,y:.24213616168032864},{x:.032173060891358886,y:.2387457109778176},{x:.032425376075824915,y:.237754159461938},{x:.03252566238185464,y:.23673593550927427},{x:.03351123316568353,y:.23348694405135337},{x:.034348506941927405,y:.23019661460170962},{x:.0713675069419274,y:.12794261460170955},{x:.07225746993456125,y:.1260790095358921},{x:.0729478813145148,y:.12413263082247869},{x:.07415364826248581,y:.12210836405190925},{x:.07516899837159816,y:.11998219518580837},{x:.07640543228727825,y:.1183280219355851},{x:.07746229725612473,y:.11655373492181778},{x:.07903981058640837,y:.11480359733178996},{x:.08045044599662987,y:.11291636718401242},{x:.08198583537337678,y:.11153519469971836},{x:.08336853920306012,y:.1100011842405046},{x:.15853253920306012,y:.04150018424050468},{x:.16051177365736521,y:.04002385498013544},{x:.16235580937568672,y:.038381768082408986},{x:.16403890527939927,y:.03739293492543645},{x:.16560363358955885,y:.03622578962650935},{x:.16783285515961555,y:.03516395710594637},{x:.16996181351033893,y:.03391317596960988},{x:.24512381351033893,y:-.0008318240303901436},{x:.24598297689097734,y:-.0011307574341723537},{x:.24678524554357095,y:-.0015595789630078807},{x:.25014222995258023,y:-.0025779090504023904},{x:.2534554494825366,y:-.0037306956028641883},{x:.25435642329373365,y:-.003856270624521421},{x:.2552269355092742,y:-.004120337618145342},{x:.2587180827488419,y:-.0044641856090968535},{x:.2621925371943035,y:-.004948444626188875},{x:.2631006975177666,y:-.004895835488062085},{x:.264006,y:-.0049849999999999756},{x:.376189,y:-.0049849999999999756},{x:.37722298297811335,y:-.004883161565438171},{x:.3782605578675134,y:-.004937293022731791},{x:.3816049041349026,y:-.004451580001305548},{x:.3849680644907258,y:-.004120337618145342},{x:.3859623120828546,y:-.003818735908388489},{x:.38699051078512875,y:-.003669406425619949},{x:.39017583846699794,y:-.0025405766534665605},{x:.39340975445642906,y:-.0015595789630078807},{x:.39432605828518835,y:-.0010698043626217065},{x:.39530536770082864,y:-.0007227525880688923},{x:.46934836770082866,y:.034022247411931134},{x:.4713599418403825,y:.035219651121148166},{x:.4734733873673339,y:.03622640539423388},{x:.4751409393435705,y:.037470316580519136},{x:.4769285933263682,y:.03853443023544684},{x:.47866791375766776,y:.04010126481479184},{x:.480392,y:.041387347763641016},{x:.480392,y:.04001500000000002},{x:.4812566623818546,y:.031235935509274233},{x:.48381742103699205,y:.022794245543570978},{x:.48797586744638544,y:.015014339514117927},{x:.4935721948466053,y:.008195194846605386},{x:.5003913395141178,y:.002598867446385482},{x:.508171245543571,y:-.0015595789630078807},{x:.5166129355092742,y:-.004120337618145342},{x:.525392,y:-.0049849999999999756},{x:.5341710644907257,y:-.004120337618145342},{x:.542612754456429,y:-.0015595789630078807},{x:.5503926604858821,y:.002598867446385489},{x:.5572118051533946,y:.008195194846605386},{x:.5628081325536145,y:.015014339514117927},{x:.5669665789630078,y:.022794245543570985},{x:.5695273376181453,y:.031235935509274254},{x:.570392,y:.04001500000000002},{x:.570392,y:.7597659999999999},{x:.5695273376181453,y:.7685450644907257},{x:.5669665789630078,y:.776986754456429},{x:.5628081325536145,y:.7847666604858821},{x:.5572118051533946,y:.7915858051533946},{x:.5503926604858821,y:.7971821325536145},{x:.542612754456429,y:.8013405789630078},{x:.5341710644907257,y:.8039013376181453},{x:.525392,y:.804766},{x:.5166129355092742,y:.8039013376181453},{x:.508171245543571,y:.8013405789630078},{x:.5003913395141178,y:.7971821325536145},{x:.4935721948466053,y:.7915858051533946},{x:.48797586744638544,y:.7847666604858821},{x:.48381742103699205,y:.776986754456429},{x:.4812566623818546,y:.7685450644907257},{x:.480392,y:.7597659999999999},{x:.480392,y:.5191356905079497},{x:.47846953719699326,y:.5205697307992189},{x:.47652758859363875,y:.5222806946221157},{x:.47494232329576636,y:.5232008177790934},{x:.47347310730786674,y:.524296763521154},{x:.4711365045177018,y:.5254097994515352},{x:.46889807742906475,y:.5267090322059679},{x:.3948550774290648,y:.5604630322059679},{x:.3941070109424522,y:.5607188876066146},{x:.39340975445642906,y:.5610915789630079},{x:.389939500808656,y:.5621442688983361},{x:.38650823937694867,y:.5633178367349442},{x:.38572463186561456,y:.5634228354140474},{x:.3849680644907258,y:.5636523376181454},{x:.38135912117525683,y:.5640077875099224},{x:.3777648387426725,y:.5644893996719887},{x:.3769758038038255,y:.5644395065891945},{x:.376189,y:.564517},{x:.264006,y:.564517},{x:.26334558239453953,y:.5644519545432365},{x:.2626835384795895,y:.5644975635305632},{x:.2589614482177297,y:.5640201550156564},{x:.2552269355092742,y:.5636523376181454},{x:.25459189738202526,y:.5634597009082802},{x:.2539336765832372,y:.5633752751711479},{x:.2503762430229788,y:.5621808961392286},{x:.24678524554357095,y:.5610915789630079},{x:.24619999105363047,y:.5607787539207695},{x:.24557088842716707,y:.5605675378929096},{x:.17040888842716706,y:.5268135378929095},{x:.16805407047382528,y:.5254644267942322},{x:.16560391365212207,y:.5242973792806265},{x:.16423565717286473,y:.5232767996121171},{x:.1627545512703112,y:.5224282514648534},{x:.16070817900232118,y:.5206456609648356},{x:.15853278093215223,y:.5190230360586235},{x:.08336878093215222,y:.45052303605862365},{x:.08193967718325436,y:.44893757139643337},{x:.08035717944512263,y:.44750518296134467},{x:.07899365114577664,y:.44566921514174185},{x:.07746249136223225,y:.4439705283033309},{x:.07637015625263606,y:.44213672358948825},{x:.0750975108858587,y:.44042312810321155},{x:.07411836195358443,y:.43835642671545355},{x:.07294802033824888,y:.4363916652130956},{x:.07223443169362759,y:.4343799925343442},{x:.07132054574594202,y:.4324510425104215},{x:.034301545745942026,y:.32920504251042143},{x:.033491210284420626,y:.32597904935505284},{x:.03252566238185464,y:.3227960644907258},{x:.03241858101312289,y:.3217088491086539},{x:.03215243067755317,y:.32064928896150824},{x:.031987025628206905,y:.31732719375391183},{x:.03166100000000001,y:.314017},{x:.03166100000000001,y:.24551500000000004}],[{x:.121661,y:.25340994514221},{x:.121661,y:.3061934402169761},{x:.15226243948714763,y:.39154086238640384},{x:.21383969339611897,y:.4476587099299689},{x:.27364661400534074,y:.474517},{x:.3664157334192352,y:.474517},{x:.42513971513426946,y:.4477464845048247},{x:.480392,y:.3973901578243758},{x:.480392,y:.1631336467554691},{x:.4249518651426514,y:.1126053780239199},{x:.3661556538885112,y:.08501500000000002},{x:.2739038430667855,y:.08501500000000002},{x:.21402588591940364,y:.11269467351967463},{x:.15220815290195538,y:.1690325018607451},{x:.121661,y:.25340994514221}]],e:[[{x:.014571,y:.25490100000000004},{x:.014880046743786594,y:.2517631957525991},{x:.01501248842711947,y:.2486129918567585},{x:.015311525398480692,y:.24738231945287367},{x:.015435662381854634,y:.24612193550927428},{x:.016350926120166094,y:.24310471531940006},{x:.01709539726614681,y:.24004087979874045},{x:.05693639726614681,y:.12616087979874036},{x:.057746546207777846,y:.12441615547982068},{x:.05835851556287996,y:.12259245107255745},{x:.05959975008908581,y:.12042512406141898},{x:.06065161969764369,y:.11815983382640528},{x:.06178658068373706,y:.11660668611395116},{x:.06274257829935428,y:.11493741297405176},{x:.06438278737670251,y:.11305388338712186},{x:.06585638180708843,y:.11103732964943176},{x:.06727253892344205,y:.10973544513901749},{x:.06853582634733585,y:.1082847524971091},{x:.14942282634733584,y:.031993752497109104},{x:.15144602889400902,y:.03043003785468449},{x:.15333307828862142,y:.02870446646813117},{x:.1549277151407192,y:.027739074573098352},{x:.15640262843323158,y:.02659912765300345},{x:.15869202130341495,y:.025460166585296706},{x:.1608794538505091,y:.024135896643135493},{x:.2417664538505091,y:-.01455910335686443},{x:.24290092295632487,y:-.014970686687880902},{x:.2439652455435709,y:-.015539578963007873},{x:.24703931387581265,y:-.016472087396775758},{x:.2500591116803148,y:-.017567664555291233},{x:.2512520782049556,y:-.01775001548484057},{x:.2524069355092742,y:-.018100337618145335},{x:.25560385985111694,y:-.01841520718300011},{x:.2587793695882151,y:-.01890059980751419},{x:.2599849884971624,y:-.018846710691637396},{x:.261186,y:-.018964999999999968},{x:.381914,y:-.018964999999999968},{x:.3832466926412995,y:-.01883374123151461},{x:.3845848263549422,y:-.018885671038862982},{x:.3876272824249201,y:-.01840229079619376},{x:.39069306449072577,y:-.018100337618145335},{x:.3919745425012029,y:-.017711605513551366},{x:.39329709535359264,y:-.017501480567117658},{x:.39618678867610163,y:-.016433834605858122},{x:.39913475445642904,y:-.015539578963007873},{x:.4003157713548023,y:-.014908312279081314},{x:.40157191838151796,y:-.014444207562717595},{x:.48125191838151804,y:.02425079243728233},{x:.4833189661071789,y:.02551885102394819},{x:.4854901362659954,y:.026598980192539007},{x:.48706966813422276,y:.027819770278194},{x:.48877129863032925,y:.028863658687316496},{x:.4905512426555404,y:.030510612890229178},{x:.492469971641239,y:.03199356196515255},{x:.573357971641239,y:.10828456196515254},{x:.5791512607417543,y:.11493718669263933},{x:.5835353707163221,y:.12259219773755695},{x:.5863418226772573,y:.13095541731842886},{x:.5874627662495775,y:.13970545159690978},{x:.5868551242004307,y:.1485060416627534},{x:.584542247872996,y:.15701898577515713},{x:.5806130198074609,y:.16491713626599536},{x:.5752184380348474,y:.17189697164123896},{x:.5685658133073607,y:.17769026074175415},{x:.560910802262443,y:.1820743707163221},{x:.5525475826815711,y:.18488082267725728},{x:.5437975484030901,y:.18600176624957743},{x:.5349969583372466,y:.1853941242004306},{x:.5264840142248428,y:.183081247872996},{x:.5185858637340046,y:.17915201980746093},{x:.511606028358761,y:.17375743803484736},{x:.43573388395098006,y:.1021972341849065},{x:.3715652104827451,y:.07103500000000003},{x:.2713955768569904,y:.07103500000000003},{x:.2060606884620834,y:.10229012760321096},{x:.13826613078700495,y:.16623259795801962},{x:.104571,y:.2625454790108076},{x:.104571,y:.28619200000000006},{x:.542482,y:.28619200000000006},{x:.5512610644907258,y:.2870566623818547},{x:.559702754456429,y:.2896174210369921},{x:.5674826604858821,y:.2937758674463855},{x:.5743018051533947,y:.2993721948466054},{x:.5798981325536146,y:.3061913395141179},{x:.5840565789630079,y:.31397124554357103},{x:.5866173376181454,y:.32241293550927425},{x:.5874820000000001,y:.33119200000000004},{x:.5866173376181454,y:.33997106449072584},{x:.5840565789630079,y:.34841275445642905},{x:.5798981325536146,y:.35619266048588216},{x:.5743018051533947,y:.3630118051533947},{x:.5674826604858821,y:.3686081325536146},{x:.5660433240263831,y:.3693774739195968},{x:.5706944449992851,y:.3724210772554575},{x:.5769918122169339,y:.3785986803904119},{x:.5819629867044116,y:.38588613801169297},{x:.5854169290140312,y:.3940033972097681},{x:.5872209060798271,y:.40263851626586683},{x:.5873055920748429,y:.4114596523972937},{x:.5856677325637826,y:.4201278142894682},{x:.5823702695691338,y:.4283098893420352},{x:.5425292695691338,y:.5045998893420351},{x:.54083893518448,y:.5071829952333479},{x:.5393041274419548,y:.5098614335042745},{x:.5384286685906833,y:.5108662746451583},{x:.5376989227445426,y:.5119814449992851},{x:.5355371287009763,y:.5141851493557908},{x:.5335092744740836,y:.5165126960496618},{x:.49246227447408364,y:.5552086960496617},{x:.4903478252727746,y:.5568421196453192},{x:.48836639942178184,y:.5586345815458318},{x:.486865329057947,y:.5595323670561179},{x:.4854811710293013,y:.5606016367187369},{x:.48308868524123094,y:.5617911659624512},{x:.4807956399629947,y:.5631626292028359},{x:.40111563996299465,y:.6007566292028359},{x:.40009264564938235,y:.6011215754533451},{x:.39913475445642904,y:.6016335789630078},{x:.3959457374462889,y:.6026009566970012},{x:.3928069722488333,y:.6037206897930685},{x:.3917324370025758,y:.603879047413643},{x:.39069306449072577,y:.6041943376181453},{x:.38737659751458814,y:.6045209811048129},{x:.38407969371999856,y:.6050068561303112},{x:.38299491132800306,y:.6049525395264004},{x:.381914,y:.605059},{x:.261186,y:.605059},{x:.26023449599616577,y:.6049652850353624},{x:.2592798763752433,y:.6050186117946668},{x:.25585213857488087,y:.6045336605029273},{x:.2524069355092742,y:.6041943376181453},{x:.2514919972706982,y:.6039167941377678},{x:.2505453168634681,y:.6037828591890964},{x:.24727805138745723,y:.6026385076291858},{x:.2439652455435709,y:.6016335789630078},{x:.24312203363365809,y:.6011828728071931},{x:.24221967283726598,y:.6008668231955117},{x:.161332672837266,y:.5632728231955116},{x:.15891596978001063,y:.5618462817840929},{x:.15640337688314435,y:.5605963413854953},{x:.1551260781006526,y:.5596091689500753},{x:.15373589412748892,y:.5587885654418143},{x:.1516439317651508,y:.5569179592459522},{x:.1494234689111216,y:.555201853544281},{x:.06853646891112161,y:.47891385354428107},{x:.06722863655802509,y:.4774120673763562},{x:.06576662511800205,y:.47605991734502884},{x:.06433886916992998,y:.4740937424536807},{x:.06274309028364713,y:.4722613067803989},{x:.06175337150959475,y:.4705332315776763},{x:.06058324359446483,y:.4689218384474283},{x:.05956650326928079,y:.4667149016876259},{x:.05835887729241062,y:.4646063547351938},{x:.05772530643484857,y:.4627183994585984},{x:.05689202940417486,y:.4609096881637455},{x:.017051029404174856,y:.3459246881637455},{x:.016331419439147486,y:.342923979771159},{x:.015435662381854634,y:.33997106449072584},{x:.015304912520774374,y:.33864353887302173},{x:.014993833838408223,y:.33734636893611664},{x:.014873460143664087,y:.33426292937408214},{x:.014571,y:.33119200000000004},{x:.014571,y:.25490100000000004}],[{x:.12278767041868709,y:.376192},{x:.13831799224413532,y:.421014018902617},{x:.20587340146207272,y:.4847284236699839},{x:.27113246747276615,y:.5150589999999999},{x:.37183117966561724,y:.5150589999999999},{x:.4359272756482788,y:.48481767680255794},{x:.4662598881310508,y:.45622238914125884},{x:.5025937304308662,y:.3866481106579649},{x:.5074240772554575,y:.379266555000715},{x:.5104401600015575,y:.376192},{x:.12278767041868709,y:.376192}]],f:[[{x:.044112,y:.5239119999999999},{x:.04497666238185463,y:.5151329355092742},{x:.04753742103699209,y:.5066912455435709},{x:.051695867446385456,y:.4989113395141178},{x:.05729219484660536,y:.49209219484660527},{x:.0641113395141179,y:.4864958674463854},{x:.07189124554357096,y:.482337421036992},{x:.08033293550927423,y:.47977666238185457},{x:.089112,y:.47891199999999995},{x:.20304699999999998,y:.47891199999999995},{x:.20304699999999998,y:.05318299999999998},{x:.20391166238185462,y:.04440393550927419},{x:.2064724210369921,y:.03596224554357094},{x:.21063086744638546,y:.028182339514117884},{x:.21622719484660535,y:.021363194846605343},{x:.2230463395141179,y:.01576686744638544},{x:.23082624554357095,y:.011608421036992077},{x:.23926793550927422,y:.009047662381854615},{x:.248047,y:.008182999999999982},{x:.25682606449072576,y:.009047662381854615},{x:.26526775445642903,y:.011608421036992077},{x:.2730476604858821,y:.015766867446385446},{x:.2798668051533946,y:.021363194846605343},{x:.28546313255361455,y:.028182339514117884},{x:.2896215789630079,y:.03596224554357094},{x:.2921823376181454,y:.04440393550927421},{x:.293047,y:.05318299999999998},{x:.293047,y:.47891199999999995},{x:.459965,y:.47891199999999995},{x:.4687440644907258,y:.47977666238185457},{x:.4771857544564291,y:.482337421036992},{x:.48496566048588213,y:.4864958674463854},{x:.4917848051533946,y:.49209219484660527},{x:.49738113255361455,y:.4989113395141178},{x:.5015395789630079,y:.5066912455435709},{x:.5041003376181454,y:.5151329355092742},{x:.504965,y:.5239119999999999},{x:.5041003376181454,y:.5326910644907257},{x:.5015395789630079,y:.5411327544564289},{x:.49738113255361455,y:.548912660485882},{x:.4917848051533946,y:.5557318051533946},{x:.48496566048588213,y:.5613281325536145},{x:.4771857544564291,y:.5654865789630078},{x:.4687440644907258,y:.5680473376181453},{x:.459965,y:.568912},{x:.293047,y:.568912},{x:.293047,y:.6141229501499061},{x:.3322669208002554,y:.6884371453882767},{x:.4140490730325775,y:.7147659999999999},{x:.512941,y:.7147659999999999},{x:.5217200644907257,y:.7156306623818546},{x:.530161754456429,y:.7181914210369921},{x:.5379416604858821,y:.7223498674463854},{x:.5447608051533946,y:.7279461948466053},{x:.5503571325536145,y:.7347653395141178},{x:.5545155789630078,y:.7425452455435709},{x:.5570763376181453,y:.7509869355092742},{x:.557941,y:.7597659999999999},{x:.5570763376181453,y:.7685450644907257},{x:.5545155789630078,y:.776986754456429},{x:.5503571325536145,y:.7847666604858821},{x:.5447608051533946,y:.7915858051533946},{x:.5379416604858821,y:.7971821325536145},{x:.530161754456429,y:.8013405789630078},{x:.5217200644907257,y:.8039013376181453},{x:.512941,y:.804766},{x:.406984,y:.804766},{x:.40440576588043703,y:.8045120661033809},{x:.40181542834229744,y:.8044681908525655},{x:.400026512750784,y:.8040807473169851},{x:.3982049355092742,y:.8039013376181453},{x:.39572578148103565,y:.8031492944655273},{x:.39319377618916257,y:.8026009124809075},{x:.2872357761891626,y:.7684889124809076},{x:.28342960508890525,y:.7668362808879404},{x:.2796044085190959,y:.7652281761559891},{x:.27938594032962494,y:.7650805300410848},{x:.27914407460343155,y:.764975512444704},{x:.2757334504432472,y:.7626120885587936},{x:.27229547962292316,y:.7602886242777711},{x:.2721100135665551,y:.7601011941121303},{x:.27189328313916555,y:.7599510087370087},{x:.2690092742928275,y:.7569676176126634},{x:.26609064851257996,y:.7540180832118794},{x:.26594531194585036,y:.7537980718316557},{x:.26576204564604555,y:.7536084902175343},{x:.26351548295615396,y:.7501197819025626},{x:.26122836336792754,y:.7466575263349163},{x:.2082493633679275,y:.6462725263349164},{x:.20745880379789322,y:.6443351468057326},{x:.2064724210369921,y:.6424897544564291},{x:.20579637196662365,y:.6402611193438609},{x:.20491647908027386,y:.6381048157198157},{x:.20451907388691828,y:.636050431873947},{x:.20391166238185462,y:.6340480644907258},{x:.20368338854657433,y:.6317303613460921},{x:.20324107652369047,y:.6294438319050109},{x:.20325209776572678,y:.6273513925615422},{x:.20304699999999998,y:.6252690000000001},{x:.20304699999999998,y:.568912},{x:.089112,y:.568912},{x:.0803329355092742,y:.5680473376181453},{x:.07189124554357093,y:.5654865789630078},{x:.0641113395141179,y:.5613281325536145},{x:.05729219484660536,y:.5557318051533946},{x:.051695867446385456,y:.548912660485882},{x:.04753742103699209,y:.5411327544564289},{x:.04497666238185463,y:.5326910644907257},{x:.044112,y:.5239119999999999}]],g:[[{x:.03166100000000001,y:.285331},{x:.03199195389402992,y:.28197076872347165},{x:.03216742697517915,y:.27859884139484714},{x:.032423533978450624,y:.2775888625904497},{x:.03252566238185464,y:.2765519355092742},{x:.03350580569139788,y:.2733208360362635},{x:.034335737494852386,y:.2700479324456657},{x:.07135573749485238,y:.1675239324456658},{x:.07223945098422414,y:.16566943556296815},{x:.07292365731738822,y:.16373243532732273},{x:.07413231799188957,y:.16169720247238553},{x:.07515058411631778,y:.15956034321175439},{x:.07637911169281072,y:.15791388391586245},{x:.07742806119285411,y:.15614758463046624},{x:.07901055202445481,y:.15438725620434748},{x:.0804261330120869,y:.15249010996133996},{x:.08195226304990277,y:.15111496075964967},{x:.08332564517579637,y:.14958724031548856},{x:.1584886451757964,y:.08090524031548854},{x:.16047116284778873,y:.07942238349974136},{x:.16231838489394151,y:.07777404756068641},{x:.16399482319868336,y:.07678680357956279},{x:.16555276842115366,y:.07562151273533077},{x:.16778648358567103,y:.07455391860853194},{x:.1699197861673149,y:.07329763012616651},{x:.2450797861673149,y:.038459630126166475},{x:.2459605302529857,y:.0381521715215269},{x:.24678324554357095,y:.03771242103699209},{x:.2501181687545519,y:.03670078314085588},{x:.253408434365457,y:.03555218561964517},{x:.254332237398671,y:.03542245939316866},{x:.2552249355092742,y:.03515166238185463},{x:.2586931398688001,y:.03481007406735549},{x:.26214426420887293,y:.034325445502994434},{x:.2630756249571383,y:.03437843696081321},{x:.264004,y:.034287},{x:.376189,y:.034287},{x:.37724627227682206,y:.03439113223027483},{x:.37830727432005307,y:.03433688416138392},{x:.3816280756224084,y:.03482270219101675},{x:.3849680644907258,y:.03515166238185463},{x:.38598470638687477,y:.035460057329467706},{x:.38703590484658207,y:.03561384285228289},{x:.39019811948723343,y:.036738182220129235},{x:.39340975445642906,y:.03771242103699209},{x:.39434669699397534,y:.038213227257056566},{x:.39534769490287125,y:.03856913648017993},{x:.4693886949028713,y:.07340713648017996},{x:.47140406041677185,y:.07460963544760885},{x:.47352148667564636,y:.07562166704766733},{x:.4751827197672129,y:.0768642309221422},{x:.47696422705836306,y:.07792719476830276},{x:.47870627197824944,y:.0794997663623443},{x:.480392,y:.08076065187723735},{x:.480392,y:.018480463023952315},{x:.44982106300216956,y:-.06618482166306154},{x:.42509763890365326,y:-.0887666681923909},{x:.3663917896728536,y:-.115601},{x:.27366828971008494,y:-.115601},{x:.21388478385740822,y:-.08868092320279419},{x:.15228882603575622,y:-.032396134475538775},{x:.11903308523020223,y:.0605977685009861},{x:.11526275900748023,y:.06857299605517989},{x:.11000898883421664,y:.07565942769130271},{x:.1034736741518217,y:.08158473581569503},{x:.09590796343849313,y:.08612121416008753},{x:.08760260271404471,y:.08909452840579157},{x:.07887676233341709,y:.09039041575379858},{x:.07006577144893004,y:.08995907598006667},{x:.061508231499013855,y:.08781708523020218},{x:.05353300394482007,y:.08404675900748018},{x:.046446572308697254,y:.07879298883421659},{x:.04052126418430494,y:.07225767415182165},{x:.035984785839912437,y:.06469196343849308},{x:.03301147159420839,y:.05638660271404467},{x:.03171558424620138,y:.04766076233341703},{x:.0321469240199333,y:.038849771448930016},{x:.03428891476979778,y:.030292231499013812},{x:.07130891476979778,y:-.07322776850098624},{x:.07221644299685706,y:-.07514742841768875},{x:.07292365731738822,y:-.07714956467267746},{x:.07409706350042253,y:-.07912543338941479},{x:.07507924099251978,y:-.08120299605518004},{x:.07634383839048098,y:-.08290872027080634},{x:.07742806119285414,y:-.08473441536953392},{x:.07896439356931816,y:-.08644339813281518},{x:.08033301116578337,y:-.08828942769130284},{x:.0819060799658371,y:-.08971566618082738},{x:.08332564517579637,y:-.09129475968451163},{x:.1584886451757964,y:-.15997675968451153},{x:.16066766565506738,y:-.1616065940183929},{x:.16271768036753925,y:-.16339598773796155},{x:.16419165994754753,y:-.1642424237156923},{x:.16555276842115366,y:-.1652604872646693},{x:.16800788453794988,y:-.16643389898185532},{x:.17036760218951646,y:-.1677889719724602},{x:.24552760218951647,y:-.2016329719724602},{x:.24617798725770038,y:-.20185206166908357},{x:.24678324554357095,y:-.2021755789630079},{x:.2503526828238078,y:-.20325835592431216},{x:.25388756161766735,y:-.20444912053505218},{x:.25456819199860076,y:-.20453711665220192},{x:.2552249355092742,y:-.20473633761814536},{x:.25893702635910487,y:-.20510194665533446},{x:.2626362900994872,y:-.20558021041579141},{x:.263321009549333,y:-.20553373131203426},{x:.264004,y:-.20560099999999998},{x:.376189,y:-.20560099999999998},{x:.3769985938815523,y:-.20552126196245651},{x:.37781053527049396,y:-.2055717752142049},{x:.38138177137190815,y:-.20508955666026785},{x:.3849680644907258,y:-.20473633761814536},{x:.3857465461334356,y:-.20450018779358015},{x:.38655274094280934,y:-.2043913285403334},{x:.3899612805709507,y:-.2032216620796743},{x:.39340975445642906,y:-.2021755789630079},{x:.39412720724734457,y:-.20179209245674457},{x:.39489667386274535,y:-.20152804409855607},{x:.4689376738627454,y:-.16768404409855608},{x:.471176129388074,y:-.16638175223486265},{x:.4735129313995788,y:-.16526550692304898},{x:.47497970384913024,y:-.16416890323360386},{x:.4765626813675205,y:-.163247956304222},{x:.47850406105855325,y:-.16153398660426738},{x:.480578193417323,y:-.15998330217620907},{x:.5187211934173229,y:-.125144302176209},{x:.5200982241105119,y:-.12361318710120846},{x:.5216280341275545,y:-.12223470670068204},{x:.5230406381933351,y:-.12034152832018923},{x:.5246201913815024,y:-.1185852292702623},{x:.52567205708302,y:-.11681488878073784},{x:.5269035440443172,y:-.11516444436572898},{x:.5279196645391884,y:-.1130320574948894},{x:.5291262301085498,y:-.11100134969861394},{x:.5298125082093796,y:-.10905981698676002},{x:.5306983467616347,y:-.10720083421055714},{x:.5677173467616347,y:-.0046778342105572215},{x:.5685472301626403,y:-.001405045768812418},{x:.5695273376181453,y:.0018259355092742052},{x:.5696294781899907,y:.002862986138707272},{x:.5698856101392306,y:.003873086692614168},{x:.5700610582123972,y:.007244891642088324},{x:.570392,y:.010604999999999976},{x:.570392,y:.560059},{x:.5695273376181453,y:.5688380644907257},{x:.5669665789630078,y:.577279754456429},{x:.5628081325536145,y:.5850596604858821},{x:.5572118051533946,y:.5918788051533946},{x:.5503926604858821,y:.5974751325536145},{x:.542612754456429,y:.6016335789630078},{x:.5341710644907257,y:.6041943376181453},{x:.525392,y:.605059},{x:.5166129355092742,y:.6041943376181453},{x:.508171245543571,y:.6016335789630078},{x:.5003913395141178,y:.5974751325536145},{x:.4935721948466053,y:.5918788051533946},{x:.48797586744638544,y:.5850596604858821},{x:.48381742103699205,y:.577279754456429},{x:.4812566623818546,y:.5688380644907257},{x:.480392,y:.560059},{x:.480392,y:.5595783858718113},{x:.47850787544975776,y:.5609876460911735},{x:.47656308903374583,y:.5627046621197919},{x:.47498407852937236,y:.5636233247252487},{x:.47352120750708176,y:.5647175018259646},{x:.47118052218859596,y:.5658362200595997},{x:.46893813108831367,y:.5671408350985324},{x:.39489713108831365,y:.6009858350985324},{x:.39412742928685096,y:.6012499737741558},{x:.39340975445642906,y:.6016335789630078},{x:.38996152003118717,y:.6026795894402057},{x:.3865532301567984,y:.60384921275647},{x:.38574678706033977,y:.6039581147092028},{x:.3849680644907258,y:.6041943376181453},{x:.38138202040224084,y:.6045475321329209},{x:.37781103767268465,y:.6050297570960106},{x:.3769988444371686,y:.6049792372848822},{x:.376189,y:.605059},{x:.264004,y:.605059},{x:.2633207613423033,y:.6049917068657756},{x:.2626357925427961,y:.6050381952835313},{x:.25893677979996554,y:.6045599223713788},{x:.2552249355092742,y:.6041943376181453},{x:.25456795333002863,y:.6039950442528821},{x:.2538870765735461,y:.6039070086250592},{x:.2503524457397967,y:.6027162840056636},{x:.24678324554357095,y:.6016335789630078},{x:.24617776729948443,y:.6013099440989677},{x:.24552714829793862,y:.6010907675853725},{x:.17036714829793861,y:.5672457675853725},{x:.16800780172583518,y:.5658908729822889},{x:.16555304759050302,y:.5647176561362495},{x:.1641916021742222,y:.563699355958929},{x:.16271727507130354,y:.5628526987282604},{x:.16066758950642807,y:.5610635523625588},{x:.15848888603577402,y:.5594339797745099},{x:.08332588603577401,y:.49075297977450993},{x:.08190615458499984,y:.48917372437901785},{x:.08033291862515302,y:.48774732555289924},{x:.07896444452212992,y:.48590147772545017},{x:.07742825448734617,y:.4841926782200152},{x:.07634390022195357,y:.48236679190821125},{x:.07507917015624571,y:.48066087782555583},{x:.0740970979464375,y:.4785835213931001},{x:.07292379561819572,y:.47660786018244516},{x:.07221648966449083,y:.47460551074132296},{x:.0713088683600783,y:.4726856387236396},{x:.034288868360078294,y:.36916463872363964},{x:.03348577523186824,y:.3659561323879453},{x:.03252566238185464,y:.3627910644907258},{x:.0324167369020588,y:.3616851255348066},{x:.032146903820267865,y:.36060709221327164},{x:.03198519043554786,y:.35730356073015046},{x:.03166100000000001,y:.354012},{x:.03166100000000001,y:.285331}],[{x:.121661,y:.29320659086815803},{x:.121661,y:.34620780969623244},{x:.15228882172599023,y:.4318540207415116},{x:.21388481974037543,y:.48813802669691503},{x:.2736685500834057,y:.5150589999999999},{x:.3663915263934284,y:.5150589999999999},{x:.4250929420729598,y:.48822590193711934},{x:.480392,y:.4376951204586189},{x:.480392,y:.20264468470162808},{x:.4249051037436742,y:.15194152341431572},{x:.3661311050032371,y:.124287},{x:.2739261218560311,y:.124287},{x:.21407100266628776,y:.15203091487935444},{x:.15223458736534265,y:.208535427414771},{x:.121661,y:.29320659086815803}]],h:[[{x:.047041,y:.05318299999999998},{x:.04790566238185463,y:.04440393550927419},{x:.050466421036992094,y:.03596224554357094},{x:.05462486744638546,y:.028182339514117884},{x:.06022119484660536,y:.021363194846605343},{x:.06704033951411792,y:.01576686744638544},{x:.07482024554357096,y:.011608421036992077},{x:.08326193550927423,y:.009047662381854615},{x:.092041,y:.008182999999999982},{x:.10082006449072577,y:.009047662381854615},{x:.10926175445642904,y:.011608421036992077},{x:.1170416604858821,y:.015766867446385446},{x:.12386080515339463,y:.021363194846605343},{x:.12945713255361452,y:.028182339514117884},{x:.1336155789630079,y:.03596224554357094},{x:.13617633761814535,y:.04440393550927421},{x:.137041,y:.05318299999999998},{x:.137041,y:.3692271498339558},{x:.23047284680205596,y:.45237128863270537},{x:.2915669774325256,y:.478914},{x:.38669764440631527,y:.478914},{x:.43644054132690624,y:.4571557093088599},{x:.465011,y:.38123324165433015},{x:.465011,y:.05318299999999998},{x:.4658756623818546,y:.04440393550927419},{x:.46843642103699207,y:.03596224554357094},{x:.47259486744638546,y:.028182339514117884},{x:.4781911948466053,y:.021363194846605343},{x:.4850103395141179,y:.01576686744638544},{x:.492790245543571,y:.011608421036992077},{x:.5012319355092743,y:.009047662381854615},{x:.510011,y:.008182999999999982},{x:.5187900644907257,y:.009047662381854615},{x:.527231754456429,y:.011608421036992077},{x:.5350116604858821,y:.015766867446385446},{x:.5418308051533947,y:.021363194846605343},{x:.5474271325536145,y:.028182339514117884},{x:.5515855789630079,y:.03596224554357094},{x:.5541463376181454,y:.04440393550927421},{x:.555011,y:.05318299999999998},{x:.555011,y:.38942},{x:.5546506186962206,y:.39307901278178137},{x:.554410350301749,y:.3967478709583736},{x:.5542188683658584,y:.3974626474508545},{x:.5541463376181454,y:.3981990644907258},{x:.5530790429582076,y:.40171746346329923},{x:.5521276325304605,y:.40526895152034226},{x:.5139866325304605,y:.5066239515203422},{x:.5138553396770835,y:.5068902237569821},{x:.5137747554395128,y:.50717595947055},{x:.511905898744729,y:.5108438433478746},{x:.5100853961903059,y:.5145359657635786},{x:.5099046789559015,y:.5147715076888114},{x:.5097698988494882,y:.5150360318659072},{x:.5072213830653152,y:.5182688425286295},{x:.504715563605999,y:.5215348594178236},{x:.5044923668525381,y:.521730619287556},{x:.5043085704011859,y:.5219637664124008},{x:.5011783335599848,y:.5246372687597332},{x:.4980834944323178,y:.5273516689249697},{x:.497826395485866,y:.5275001237971909},{x:.49760064588412606,y:.5276929341565276},{x:.49400898123224624,y:.5297043869925788},{x:.49044405536829966,y:.5317628575577613},{x:.490162934397186,y:.5318583023949868},{x:.48990390707565157,y:.532003366394835},{x:.41414290707565155,y:.5651423663948351},{x:.41372099607879415,y:.5652794559590063},{x:.41332975445642905,y:.5654885789630079},{x:.40952975949805703,y:.5666412948313546},{x:.4057531353317914,y:.5678684156337233},{x:.40531258638921414,y:.5679205603081202},{x:.4048880644907258,y:.5680493376181454},{x:.4009362016599996,y:.5684385621342186},{x:.39699274487562397,y:.5689053213297277},{x:.39655048803612764,y:.5688705172237564},{x:.396109,y:.568914},{x:.282214,y:.568914},{x:.28182836168040026,y:.5688760179407144},{x:.2814421286004882,y:.5689073796745989},{x:.27744221175957573,y:.5684440198796774},{x:.2734349355092742,y:.5680493376181454},{x:.2730641170540284,y:.5679368510695262},{x:.2726791869636831,y:.5678922598605547},{x:.26884652441488044,y:.5666574583296339},{x:.26499324554357095,y:.5654885789630079},{x:.2646514972979566,y:.5653059107200353},{x:.264282662844679,y:.5651870801833616},{x:.18800566284467896,y:.5320480801833616},{x:.1856267698486466,y:.5307235797343987},{x:.1831549202301779,y:.529581917442145},{x:.18178185218619736,y:.5285828381463435},{x:.18029822995654404,y:.527756799180932},{x:.17822344394147954,y:.5259936496360635},{x:.17602181748454487,y:.5243916901265875},{x:.137041,y:.4897030201456747},{x:.137041,y:.7597659999999999},{x:.13617633761814535,y:.7685450644907257},{x:.1336155789630079,y:.776986754456429},{x:.12945713255361452,y:.7847666604858821},{x:.12386080515339463,y:.7915858051533946},{x:.11704166048588208,y:.7971821325536145},{x:.10926175445642904,y:.8013405789630078},{x:.10082006449072577,y:.8039013376181453},{x:.092041,y:.804766},{x:.08326193550927423,y:.8039013376181453},{x:.07482024554357093,y:.8013405789630078},{x:.06704033951411792,y:.7971821325536145},{x:.06022119484660536,y:.7915858051533946},{x:.05462486744638546,y:.7847666604858821},{x:.050466421036992094,y:.776986754456429},{x:.04790566238185463,y:.7685450644907257},{x:.047041,y:.7597659999999999},{x:.047041,y:.05318299999999998}]],i:[[{x:.216026,y:.7597659999999999},{x:.21689066238185462,y:.7509869355092742},{x:.21945142103699208,y:.7425452455435709},{x:.22360986744638545,y:.7347653395141178},{x:.22920619484660534,y:.7279461948466053},{x:.2360253395141179,y:.7223498674463854},{x:.24380524554357094,y:.7181914210369921},{x:.25224693550927424,y:.7156306623818546},{x:.261026,y:.7147659999999999},{x:.341026,y:.7147659999999999},{x:.3498050644907258,y:.7156306623818546},{x:.35824675445642906,y:.7181914210369921},{x:.3660266604858821,y:.7223498674463854},{x:.3728458051533946,y:.7279461948466053},{x:.37844213255361453,y:.7347653395141178},{x:.3826005789630079,y:.7425452455435709},{x:.38516133761814536,y:.7509869355092742},{x:.386026,y:.7597659999999999},{x:.38516133761814536,y:.7685450644907257},{x:.3826005789630079,y:.776986754456429},{x:.37844213255361453,y:.7847666604858821},{x:.3728458051533946,y:.7915858051533946},{x:.3660266604858821,y:.7971821325536145},{x:.35824675445642906,y:.8013405789630078},{x:.3498050644907258,y:.8039013376181453},{x:.341026,y:.804766},{x:.261026,y:.804766},{x:.25224693550927424,y:.8039013376181453},{x:.24380524554357094,y:.8013405789630078},{x:.2360253395141179,y:.7971821325536145},{x:.22920619484660534,y:.7915858051533946},{x:.22360986744638545,y:.7847666604858821},{x:.21945142103699208,y:.776986754456429},{x:.21689066238185462,y:.7685450644907257},{x:.216026,y:.7597659999999999}],[{x:.25597800000000004,y:.05318299999999998},{x:.25684266238185466,y:.04440393550927419},{x:.2594034210369921,y:.03596224554357094},{x:.2635618674463855,y:.028182339514117884},{x:.2691581948466054,y:.021363194846605343},{x:.27597733951411796,y:.01576686744638544},{x:.28375724554357096,y:.011608421036992077},{x:.2921989355092742,y:.009047662381854615},{x:.300978,y:.008182999999999982},{x:.3097570644907258,y:.009047662381854615},{x:.3181987544564291,y:.011608421036992077},{x:.32597866048588214,y:.015766867446385446},{x:.33279780515339463,y:.021363194846605343},{x:.33839413255361456,y:.028182339514117884},{x:.34255257896300795,y:.03596224554357094},{x:.3451133376181454,y:.04440393550927421},{x:.345978,y:.05318299999999998},{x:.345978,y:.523911},{x:.3451133376181454,y:.5326900644907258},{x:.34255257896300795,y:.541131754456429},{x:.33839413255361456,y:.5489116604858821},{x:.33279780515339463,y:.5557308051533947},{x:.32597866048588214,y:.5613271325536145},{x:.3181987544564291,y:.5654855789630079},{x:.3097570644907258,y:.5680463376181454},{x:.300978,y:.5689110000000001},{x:.2921989355092742,y:.5680463376181454},{x:.28375724554357096,y:.5654855789630079},{x:.27597733951411796,y:.5613271325536145},{x:.2691581948466054,y:.5557308051533947},{x:.2635618674463855,y:.5489116604858821},{x:.2594034210369921,y:.541131754456429},{x:.25684266238185466,y:.5326900644907258},{x:.25597800000000004,y:.523911},{x:.25597800000000004,y:.05318299999999998}]],j:[[{x:.11017199870220953,y:-.1121580749666587},{x:.11173080987432929,y:-.12084080046598154},{x:.114953584640513,y:-.12905258085596802},{x:.11971647357384912,y:-.1364778420214504},{x:.12583644152368842,y:-.14283123533997366},{x:.1330783015538362,y:-.147868603469331},{x:.14116375304461573,y:-.15139636317729976},{x:.23896575304461573,y:-.18307436317729964},{x:.2424293887998465,y:-.18383095770413346},{x:.24586120600074532,y:-.1847208108507566},{x:.24673197042105502,y:-.1847708110651418},{x:.2475840766296098,y:-.18495694463669302},{x:.2511287638648936,y:-.18502327959701073},{x:.25466824139749206,y:-.18522652014211538},{x:.25553202888155596,y:-.18510568190524296},{x:.2564040749666586,y:-.1851220012977904},{x:.25989359333942796,y:-.1844955274762681},{x:.2634047110671092,y:-.18400434499968443},{x:.3944597110671092,y:-.15232634499968456},{x:.39510744613291976,y:-.15210060706564532},{x:.39578357398914765,y:-.1519849807175323},{x:.3992672661785621,y:-.15065089524264363},{x:.4027898773796621,y:-.14942325292878383},{x:.40338112711156726,y:-.1490754856432793},{x:.40402170577913904,y:-.1488301750218278},{x:.4071781926350792,y:-.14684208899421944},{x:.4103936167153703,y:-.14495080812962524},{x:.41090565971774945,y:-.14449437599440731},{x:.41148607211771127,y:-.14412880824922783},{x:.41419405162048195,y:-.14156312270000898},{x:.41697872163578864,y:-.1390808841476645},{x:.4173918803832174,y:-.13853332759371953},{x:.41788982159253774,y:-.13806155128824654},{x:.42004522760849955,y:-.13501686407422092},{x:.422292130251795,y:-.13203905886963707},{x:.4225905272853119,y:-.13142142018825975},{x:.42298686170256505,y:-.13086156542133753},{x:.4245068631872901,y:-.12745488216466036},{x:.4261296512500701,y:-.1240959456918764},{x:.4263018193390199,y:-.1234319603912164},{x:.42658131605481786,y:-.12280554206756752},{x:.4588533160548179,y:-.025908542067567514},{x:.4594769463166796,y:-.023162642495487502},{x:.46029433761814537,y:-.02046806449072583},{x:.46045163429328767,y:-.01887100454660151},{x:.46080705178433234,y:-.017306069686551954},{x:.4608830007338393,y:-.01449126757618431},{x:.461159,y:-.01168900000000006},{x:.461159,y:.534292},{x:.46029433761814537,y:.5430710644907257},{x:.4577335789630079,y:.551512754456429},{x:.45357513255361454,y:.5592926604858821},{x:.4479788051533946,y:.5661118051533947},{x:.4411596604858821,y:.5717081325536145},{x:.43337975445642907,y:.5758665789630079},{x:.4249380644907258,y:.5784273376181454},{x:.416159,y:.579292},{x:.4073799355092742,y:.5784273376181454},{x:.39893824554357094,y:.5758665789630079},{x:.39115833951411794,y:.5717081325536145},{x:.3843391948466054,y:.5661118051533947},{x:.37874286744638547,y:.5592926604858821},{x:.3745844210369921,y:.551512754456429},{x:.37202366238185464,y:.5430710644907257},{x:.371159,y:.534292},{x:.371159,y:-.004392296840350002},{x:.3490732119536395,y:-.07070509444595838},{x:.254610065464387,y:-.09353828321774525},{x:.16889624695538427,y:-.06577563682270039},{x:.16027792337039018,y:-.063893055363307},{x:.15145792503334138,y:-.0637279987022096},{x:.14277519953401854,y:-.06528680987432936},{x:.13456341914403205,y:-.06850958464051307},{x:.12713815797854966,y:-.0732724735738492},{x:.12078476466002638,y:-.07939244152368852},{x:.11574739653066908,y:-.08663430155383627},{x:.11221963682270032,y:-.0947197530446158},{x:.11033705536330693,y:-.10333807662960988},{x:.11017199870220953,y:-.1121580749666587}],[{x:.3403,y:.7597659999999999},{x:.3411646623818546,y:.7509869355092742},{x:.34372542103699205,y:.7425452455435709},{x:.34788386744638544,y:.7347653395141178},{x:.3534801948466053,y:.7279461948466053},{x:.3602993395141179,y:.7223498674463854},{x:.36807924554357097,y:.7181914210369921},{x:.37652093550927423,y:.7156306623818546},{x:.3853,y:.7147659999999999},{x:.447023,y:.7147659999999999},{x:.4558020644907258,y:.7156306623818546},{x:.46424375445642907,y:.7181914210369921},{x:.4720236604858821,y:.7223498674463854},{x:.4788428051533946,y:.7279461948466053},{x:.48443913255361454,y:.7347653395141178},{x:.48859757896300793,y:.7425452455435709},{x:.49115833761814537,y:.7509869355092742},{x:.492023,y:.7597659999999999},{x:.49115833761814537,y:.7685450644907257},{x:.48859757896300793,y:.776986754456429},{x:.48443913255361454,y:.7847666604858821},{x:.4788428051533946,y:.7915858051533946},{x:.4720236604858821,y:.7971821325536145},{x:.46424375445642907,y:.8013405789630078},{x:.4558020644907258,y:.8039013376181453},{x:.447023,y:.804766},{x:.3853,y:.804766},{x:.37652093550927423,y:.8039013376181453},{x:.36807924554357097,y:.8013405789630078},{x:.3602993395141179,y:.7971821325536145},{x:.3534801948466053,y:.7915858051533946},{x:.34788386744638544,y:.7847666604858821},{x:.34372542103699205,y:.776986754456429},{x:.3411646623818546,y:.7685450644907257},{x:.3403,y:.7597659999999999}]],k:[[{x:.020185999999999996,y:.05318299999999998},{x:.02105066238185463,y:.04440393550927419},{x:.02361142103699209,y:.03596224554357094},{x:.027769867446385453,y:.028182339514117884},{x:.03336619484660536,y:.021363194846605343},{x:.04018533951411791,y:.01576686744638544},{x:.047965245543570956,y:.011608421036992077},{x:.056406935509274225,y:.009047662381854615},{x:.065186,y:.008182999999999982},{x:.07396506449072576,y:.009047662381854615},{x:.08240675445642903,y:.011608421036992077},{x:.0901866604858821,y:.015766867446385446},{x:.09700580515339463,y:.021363194846605343},{x:.10260213255361453,y:.028182339514117884},{x:.10676057896300789,y:.03596224554357094},{x:.10932133761814536,y:.04440393550927421},{x:.11018599999999999,y:.05318299999999998},{x:.11018599999999999,y:.16578332733911408},{x:.23477705990096162,y:.26351643594805596},{x:.5068321321577423,y:.019673199736523116},{x:.5139466814455551,y:.014457569113271652},{x:.5219420457215526,y:.010730135081525344},{x:.5305109676204599,y:.008634140840755075},{x:.539324148279209,y:.008250134274186548},{x:.5480429021075728,y:.009592872538819623},{x:.5563321722854605,y:.012610754956160736},{x:.5638734068086124,y:.017187805997359452},{x:.5703768002634768,y:.02314813215774228},{x:.5755924308867283,y:.030262681445555134},{x:.5793198649184746,y:.03825804572155257},{x:.5814158591592449,y:.04682696762045996},{x:.5817998657258134,y:.05564014827920904},{x:.5804571274611804,y:.06435890210757275},{x:.5774392450438393,y:.07264817228546054},{x:.5728621940026405,y:.08018940680861247},{x:.5669018678422577,y:.08669280026347684},{x:.3066862956724008,y:.3199242805817128},{x:.5215978711622948,y:.4885076152557163},{x:.5279716470169837,y:.49460635247919954},{x:.533033147947031,y:.5018313661609891},{x:.5365878633102175,y:.5099050030771282},{x:.5384991873886431,y:.5185169978886772},{x:.5386936690698568,y:.5273363964646907},{x:.5371638345319164,y:.5360242742638681},{x:.5339684744581735,y:.5442467610146052},{x:.5292303847442837,y:.5516878711622948},{x:.5231316475208004,y:.5580616470169838},{x:.5159066338390108,y:.5631231479470311},{x:.5078329969228718,y:.5666778633102175},{x:.4992210021113228,y:.5685891873886431},{x:.49040160353530926,y:.5687836690698569},{x:.4817137257361318,y:.5672538345319164},{x:.47349123898539475,y:.5640584744581736},{x:.46605012883770514,y:.5593203847442837},{x:.11018599999999999,y:.28016947631338524},{x:.11018599999999999,y:.7597659999999999},{x:.10932133761814536,y:.7685450644907257},{x:.10676057896300789,y:.776986754456429},{x:.10260213255361453,y:.7847666604858821},{x:.09700580515339463,y:.7915858051533946},{x:.09018666048588207,y:.7971821325536145},{x:.08240675445642903,y:.8013405789630078},{x:.07396506449072576,y:.8039013376181453},{x:.065186,y:.804766},{x:.056406935509274204,y:.8039013376181453},{x:.04796524554357093,y:.8013405789630078},{x:.04018533951411791,y:.7971821325536145},{x:.03336619484660536,y:.7915858051533946},{x:.027769867446385453,y:.7847666604858821},{x:.02361142103699209,y:.776986754456429},{x:.02105066238185463,y:.7685450644907257},{x:.020185999999999996,y:.7597659999999999},{x:.020185999999999996,y:.05318299999999998}]],l:[[{x:.25602600000000003,y:.05355900000000002},{x:.25689066238185465,y:.044779935509274234},{x:.2594514210369921,y:.036338245543570985},{x:.2636098674463855,y:.028558339514117927},{x:.26920619484660535,y:.021739194846605386},{x:.27602533951411795,y:.016142867446385482},{x:.283805245543571,y:.01198442103699212},{x:.2922469355092743,y:.009423662381854658},{x:.301026,y:.008559000000000025},{x:.3098050644907258,y:.009423662381854658},{x:.3182467544564291,y:.01198442103699212},{x:.32602666048588214,y:.01614286744638549},{x:.3328458051533947,y:.021739194846605386},{x:.33844213255361455,y:.028558339514117927},{x:.34260057896300794,y:.036338245543570985},{x:.3451613376181454,y:.044779935509274255},{x:.346026,y:.05355900000000002},{x:.346026,y:.765137},{x:.3451613376181454,y:.7739160644907257},{x:.34260057896300794,y:.782357754456429},{x:.33844213255361455,y:.7901376604858821},{x:.3328458051533947,y:.7969568051533946},{x:.32602666048588214,y:.8025531325536145},{x:.3182467544564291,y:.8067115789630078},{x:.3098050644907258,y:.8092723376181453},{x:.301026,y:.810137},{x:.2922469355092743,y:.8092723376181453},{x:.283805245543571,y:.8067115789630078},{x:.27602533951411795,y:.8025531325536145},{x:.26920619484660535,y:.7969568051533946},{x:.2636098674463855,y:.7901376604858821},{x:.2594514210369921,y:.782357754456429},{x:.25689066238185465,y:.7739160644907257},{x:.25602600000000003,y:.765137},{x:.25602600000000003,y:.05355900000000002}]],m:[[{x:.005538000000000001,y:.03920400000000002},{x:.006402662381854635,y:.030424935509274227},{x:.008963421036992096,y:.02198324554357097},{x:.013121867446385459,y:.01420333951411792},{x:.018718194846605363,y:.00738419484660538},{x:.025537339514117914,y:.0017878674463854757},{x:.03331724554357096,y:-.002370578963007887},{x:.04175893550927423,y:-.004931337618145348},{x:.050538,y:-.005795999999999982},{x:.059317064490725775,y:-.004931337618145348},{x:.06775875445642904,y:-.002370578963007887},{x:.0755386604858821,y:.0017878674463854827},{x:.08235780515339464,y:.00738419484660538},{x:.08795413255361453,y:.01420333951411792},{x:.0921125789630079,y:.02198324554357098},{x:.09467333761814536,y:.030424935509274248},{x:.095538,y:.03920400000000002},{x:.095538,y:.3993271266071161},{x:.14963521853994496,y:.4943223065353007},{x:.1738257653562211,y:.5150589999999999},{x:.22021623464377893,y:.5150589999999999},{x:.2416666625786254,y:.49667119950297894},{x:.27741,y:.4029520066676719},{x:.27741,y:.03920400000000002},{x:.2782746623818546,y:.030424935509274227},{x:.28083542103699205,y:.02198324554357097},{x:.28499386744638544,y:.01420333951411792},{x:.2905901948466053,y:.00738419484660538},{x:.2974093395141179,y:.0017878674463854757},{x:.30518924554357096,y:-.002370578963007887},{x:.31363093550927423,y:-.004931337618145348},{x:.32241,y:-.005795999999999982},{x:.33118906449072577,y:-.004931337618145348},{x:.33963075445642904,y:-.002370578963007887},{x:.3474106604858821,y:.0017878674463854827},{x:.35422980515339464,y:.00738419484660538},{x:.3598261325536145,y:.01420333951411792},{x:.3639845789630079,y:.02198324554357098},{x:.36654533761814534,y:.030424935509274248},{x:.36740999999999996,y:.03920400000000002},{x:.36740999999999996,y:.3993264781598986},{x:.4215891088917321,y:.494459500052724},{x:.445289826307752,y:.5150589999999999},{x:.4920928256254945,y:.5150589999999999},{x:.5065149999999999,y:.5026965582556255},{x:.5065149999999999,y:.03920400000000002},{x:.5073796623818546,y:.030424935509274227},{x:.5099404210369921,y:.02198324554357097},{x:.5140988674463854,y:.01420333951411792},{x:.5196951948466053,y:.00738419484660538},{x:.5265143395141179,y:.0017878674463854757},{x:.534294245543571,y:-.002370578963007887},{x:.5427359355092742,y:-.004931337618145348},{x:.551515,y:-.005795999999999982},{x:.5602940644907257,y:-.004931337618145348},{x:.568735754456429,y:-.002370578963007887},{x:.5765156604858821,y:.0017878674463854827},{x:.5833348051533946,y:.00738419484660538},{x:.5889311325536145,y:.01420333951411792},{x:.5930895789630078,y:.02198324554357098},{x:.5956503376181453,y:.030424935509274248},{x:.596515,y:.03920400000000002},{x:.596515,y:.523393},{x:.5963454778388272,y:.5251141873868636},{x:.5963825315707437,y:.5268433058919912},{x:.5959141404350922,y:.5294936295415332},{x:.5956503376181453,y:.5321720644907257},{x:.5951482857762117,y:.5338271076115645},{x:.59484729324509,y:.5355302304139588},{x:.5938708496195351,y:.5380382502602514},{x:.5930895789630078,y:.540613754456429},{x:.592274291011045,y:.5421390509322689},{x:.5916468191910574,y:.543750727977755},{x:.5901998472565338,y:.5460200622246176},{x:.5889311325536145,y:.5483936604858821},{x:.5878339395503975,y:.5497305940285525},{x:.5869041018316961,y:.5511888894721116},{x:.5850422079081763,y:.5531323288770946},{x:.5833348051533946,y:.5552128051533947},{x:.581997871610724,y:.5563099981566119},{x:.5808014011353795,y:.5575588705221693},{x:.5380264011353795,y:.5942248705221693},{x:.5358211367621821,y:.5957677297988329},{x:.5337406604858821,y:.5974751325536145},{x:.5322153640100423,y:.5982904205055773},{x:.5307982404674333,y:.599281876328501},{x:.5283343527176928,y:.600364864260089},{x:.525960754456429,y:.6016335789630078},{x:.5243057113355902,y:.6021356308049415},{x:.5227223939887274,y:.6028315689939708},{x:.5200945686869033,y:.6034130669616181},{x:.5175190644907257,y:.6041943376181453},{x:.5157978771038628,y:.6043638597793182},{x:.5141092119504517,y:.6047375358201355},{x:.5114184349491921,y:.6047951971830532},{x:.50874,y:.605059},{x:.428467,y:.605059},{x:.42563553135621585,y:.6047801246797119},{x:.42279150043448566,y:.6046996620098968},{x:.4212557149999115,y:.6043487504203328},{x:.4196879355092742,y:.6041943376181453},{x:.41696527861756566,y:.6033684286794448},{x:.4141915924406847,y:.6027346691689239},{x:.4127537761476033,y:.6020908833721776},{x:.4112462455435709,y:.6016335789630078},{x:.40873703058140176,y:.6002923756232341},{x:.4061402803536474,y:.5991296742945802},{x:.40485568767586616,y:.5982177546177817},{x:.4034663395141179,y:.5974751325536145},{x:.4012669942053008,y:.5956701765049598},{x:.3989469715816508,y:.5940232153181825},{x:.3567609715816508,y:.5573572153181825},{x:.3545792701559384,y:.5550484712393128},{x:.3522737143614353,y:.552863400803129},{x:.35155574109793963,y:.5518488790642903},{x:.35070210094674875,y:.5509455305944583},{x:.3490127339279754,y:.5482555195520005},{x:.34717776483660073,y:.5456626430091704},{x:.33048446785976626,y:.5163509060824124},{x:.3216828574856715,y:.5394287684036221},{x:.32062739498214626,y:.5415455848316745},{x:.31976928952310246,y:.5437498007710907},{x:.3186639603788477,y:.5454834136126945},{x:.31774653490223986,y:.5473233854865517},{x:.3162983824161672,y:.5491936173608123},{x:.31502674401548947,y:.5511880718386934},{x:.3136044423732838,y:.5526727347769701},{x:.3123456842645886,y:.5542983712755478},{x:.3105604934838748,y:.5558501466339272},{x:.30892419049215825,y:.5575581938831911},{x:.2661511904921582,y:.594224193883191},{x:.26394553725639397,y:.5957674011217274},{x:.2618646604858821,y:.5974751325536145},{x:.26033982189406285,y:.5982901757614695},{x:.258923146662659,y:.5992813666868191},{x:.25645880963824363,y:.6003646200309664},{x:.25408475445642903,y:.6016335789630078},{x:.25243020816870526,y:.6021354800922637},{x:.25084738219782576,y:.6028312459348294},{x:.24821906447459133,y:.6034129165660671},{x:.24564306449072576,y:.6041943376181453},{x:.24392239379305308,y:.6043638088898747},{x:.2422342441971012,y:.6047374117585159},{x:.2395429505511757,y:.6047951464006902},{x:.236864,y:.605059},{x:.157178,y:.605059},{x:.1544990494488241,y:.6047951464006902},{x:.1518077558028988,y:.6047374117585159},{x:.15011960620694695,y:.6043638088898747},{x:.14839893550927424,y:.6041943376181453},{x:.14582293552540848,y:.6034129165660671},{x:.1431946178021742,y:.6028312459348294},{x:.1416117918312948,y:.6021354800922637},{x:.13995724554357097,y:.6016335789630078},{x:.13758319036175665,y:.6003646200309664},{x:.135118853337341,y:.5992813666868191},{x:.13370217810593676,y:.5982901757614691},{x:.13217733951411792,y:.5974751325536145},{x:.13009646274360603,y:.5957674011217274},{x:.1278908095078418,y:.594224193883191},{x:.09495385911112918,y:.5659898819750746},{x:.09467333761814536,y:.5688380644907257},{x:.0921125789630079,y:.577279754456429},{x:.08795413255361453,y:.5850596604858821},{x:.08235780515339464,y:.5918788051533946},{x:.07553866048588208,y:.5974751325536145},{x:.06775875445642904,y:.6016335789630078},{x:.059317064490725775,y:.6041943376181453},{x:.050538,y:.605059},{x:.04175893550927421,y:.6041943376181453},{x:.033317245543570934,y:.6016335789630078},{x:.025537339514117904,y:.5974751325536145},{x:.018718194846605356,y:.5918788051533946},{x:.013121867446385459,y:.5850596604858821},{x:.008963421036992096,y:.577279754456429},{x:.006402662381854635,y:.5688380644907257},{x:.005538000000000001,y:.560059},{x:.005538000000000001,y:.03920400000000002}]],n:[[{x:.047041,y:.03920400000000002},{x:.04790566238185463,y:.030424935509274227},{x:.050466421036992094,y:.02198324554357097},{x:.05462486744638546,y:.01420333951411792},{x:.06022119484660536,y:.00738419484660538},{x:.06704033951411792,y:.0017878674463854757},{x:.07482024554357096,y:-.002370578963007887},{x:.08326193550927423,y:-.004931337618145348},{x:.092041,y:-.005795999999999982},{x:.10082006449072577,y:-.004931337618145348},{x:.10926175445642904,y:-.002370578963007887},{x:.1170416604858821,y:.0017878674463854827},{x:.12386080515339463,y:.00738419484660538},{x:.12945713255361452,y:.01420333951411792},{x:.1336155789630079,y:.02198324554357098},{x:.13617633761814535,y:.030424935509274248},{x:.137041,y:.03920400000000002},{x:.137041,y:.3923986904044417},{x:.23217657812189968,y:.4860775193429304},{x:.29246969284729285,y:.5150589999999999},{x:.3857956927587408,y:.5150589999999999},{x:.4353266752666751,y:.4910865745843881},{x:.465011,y:.4037995608673687},{x:.465011,y:.03920400000000002},{x:.4658756623818546,y:.030424935509274227},{x:.46843642103699207,y:.02198324554357097},{x:.47259486744638546,y:.01420333951411792},{x:.4781911948466053,y:.00738419484660538},{x:.4850103395141179,y:.0017878674463854757},{x:.492790245543571,y:-.002370578963007887},{x:.5012319355092743,y:-.004931337618145348},{x:.510011,y:-.005795999999999982},{x:.5187900644907257,y:-.004931337618145348},{x:.527231754456429,y:-.002370578963007887},{x:.5350116604858821,y:.0017878674463854827},{x:.5418308051533947,y:.00738419484660538},{x:.5474271325536145,y:.01420333951411792},{x:.5515855789630079,y:.02198324554357098},{x:.5541463376181454,y:.030424935509274248},{x:.555011,y:.03920400000000002},{x:.555011,y:.411242},{x:.5547211401667089,y:.41418499627592825},{x:.5546227314347089,y:.4171405946120584},{x:.5542897326303223,y:.4185651504993601},{x:.5541463376181454,y:.4200210644907258},{x:.5532878972691104,y:.42285096307022063},{x:.5526147708021555,y:.4257305718218671},{x:.5144747708021555,y:.537881571821867},{x:.5144109474804813,y:.5380222238814931},{x:.5143747633675698,y:.5381723808934484},{x:.5125889395552703,y:.5420375142269895},{x:.5108295711501452,y:.5459147613418461},{x:.5107395343200961,y:.546040259499208},{x:.5106747512949527,y:.5461804721160435},{x:.5081691914797779,y:.5496229410537735},{x:.5056872154570532,y:.5530824522038071},{x:.5055744251835149,y:.5531879736350976},{x:.505483532821465,y:.5533128535645805},{x:.5023545242619802,y:.5562003659557777},{x:.4992453215682988,y:.5591091940676126},{x:.49911411231822944,y:.5591906836434047},{x:.49900060356177384,y:.559295431819878},{x:.49536839230215873,y:.5615170221826804},{x:.49175144785337105,y:.5637633826232722},{x:.4916068619246677,y:.563817708744868},{x:.49147509885166074,y:.5638982997546532},{x:.41571709885166075,y:.6005642997546532},{x:.4144883994140345,y:.6010164083750983},{x:.41333375445642906,y:.6016335789630078},{x:.41035728417594536,y:.6025364813514484},{x:.4074382196167836,y:.6036105717354909},{x:.4061449272779714,y:.6038142858466193},{x:.4048920644907258,y:.6041943376181453},{x:.4017966387343604,y:.6044992104448776},{x:.3987241185432898,y:.6049831812385367},{x:.3974159338025849,y:.6049306722213019},{x:.396113,y:.605059},{x:.282216,y:.605059},{x:.28097323419788345,y:.6049365982521052},{x:.2797255990169867,y:.6049900349640848},{x:.2765922846246742,y:.6045051123806029},{x:.2734369355092743,y:.6041943376181453},{x:.2722419284999821,y:.603831836204989},{x:.27100784129389754,y:.6036408445963318},{x:.26802933636200627,y:.6025539603505436},{x:.264995245543571,y:.6016335789630078},{x:.2638939207763026,y:.6010449086106044},{x:.2627208068242762,y:.6006168283817219},{x:.18644080682427616,y:.563950828381722},{x:.18387931815291048,y:.5623935720684188},{x:.18122474955630472,y:.5610008994562176},{x:.18011833133270075,y:.5601070811947741},{x:.17890296169536754,y:.5593681975674947},{x:.17669449694619624,y:.5573411418478543},{x:.17436263208920222,y:.5554573484070612},{x:.137041,y:.5187071981771466},{x:.137041,y:.560059},{x:.13617633761814535,y:.5688380644907257},{x:.1336155789630079,y:.577279754456429},{x:.12945713255361452,y:.5850596604858821},{x:.12386080515339463,y:.5918788051533946},{x:.11704166048588208,y:.5974751325536145},{x:.10926175445642904,y:.6016335789630078},{x:.10082006449072577,y:.6041943376181453},{x:.092041,y:.605059},{x:.08326193550927423,y:.6041943376181453},{x:.07482024554357093,y:.6016335789630078},{x:.06704033951411792,y:.5974751325536145},{x:.06022119484660536,y:.5918788051533946},{x:.05462486744638546,y:.5850596604858821},{x:.050466421036992094,y:.577279754456429},{x:.04790566238185463,y:.5688380644907257},{x:.047041,y:.560059},{x:.047041,y:.03920400000000002}]],o:[[{x:.021894999999999998,y:.25490100000000004},{x:.022142430975592695,y:.2523887911456351},{x:.02217771682540861,y:.24986467341374632},{x:.02257373987793045,y:.24800963837050735},{x:.02275966238185463,y:.24612193550927428},{x:.023492446675001572,y:.24370626943231966},{x:.02401948545822835,y:.2412375358426815},{x:.060310485458228355,y:.12735753584268142},{x:.06080304558444478,y:.12621387418764726},{x:.061129830312657105,y:.12501229639135567},{x:.06254436541764224,y:.12217075210694647},{x:.06379993607002282,y:.11925547753662338},{x:.06450614911208748,y:.11822988473324028},{x:.0650610709625847,y:.11711514745523491},{x:.06700278396163635,y:.114604164756607},{x:.06880297103068717,y:.11198985605258731},{x:.06969569761744246,y:.11112174505713},{x:.07045743125471368,y:.1101366870258529},{x:.14244943125471368,y:.0338456870258529},{x:.144568728324263,y:.03200109409682955},{x:.1465508815997487,y:.0300098604251366},{x:.14788834203377002,y:.029111770054614114},{x:.1491035320893312,y:.02805409342394511},{x:.1515419696884587,y:.026658398178569347},{x:.15387450686277807,y:.025092124424329433},{x:.22587150686277807,y:-.01360287557567049},{x:.22795933917571506,y:-.014473279294209745},{x:.22995424554357097,y:-.015539578963007873},{x:.23202067225559728,y:-.016166422653018674},{x:.2340138134199343,y:-.01699735024728135},{x:.23623133596214702,y:-.01744371352418634},{x:.23839593550927424,y:-.018100337618145335},{x:.2405449475487996,y:-.01831199682974963},{x:.24266189699648397,y:-.01873811583170923},{x:.2449238916202761,y:-.018743285176571887},{x:.247175,y:-.018964999999999968},{x:.354874,y:-.018964999999999968},{x:.35712497901801044,y:-.018743297917588594},{x:.3593868436844028,y:-.018738141970160445},{x:.36150392306047363,y:-.018312009573623896},{x:.3636530644907258,y:-.018100337618145335},{x:.36581753964743763,y:-.017443751257606326},{x:.36803493734305537,y:-.016997426474138877},{x:.370028203326089,y:-.016166460394901543},{x:.3720947544564291,y:-.015539578963007873},{x:.3740895461854217,y:-.014473340569958804},{x:.376177263560353,y:-.01360299896157894},{x:.448175263560353,y:.025092001038420984},{x:.4505076595021602,y:.026658160356610353},{x:.4529459593263057,y:.028053731854915283},{x:.45416130097157975,y:.029111510806286087},{x:.45549891730603415,y:.030009694621828502},{x:.4574809543881169,y:.03200078850323144},{x:.4596001404718476,y:.03384523318438343},{x:.5315941404718476,y:.11013623318438343},{x:.5323560786638525,y:.11112152750713142},{x:.5332490289693128,y:.11198985605258731},{x:.5350490398057314,y:.11460390882403626},{x:.5369905975332091,y:.11711461878219896},{x:.5375456739097991,y:.11822962771804991},{x:.5382520639299772,y:.11925547753662338},{x:.5395075116659538,y:.12217046671076734},{x:.5409219476918898,y:.12501171320336152},{x:.5412488309792026,y:.126213587584214},{x:.5417415145417717,y:.12735753584268142},{x:.5780325145417716,y:.2412375358426815},{x:.5785595533249983,y:.2437062694323195},{x:.5792923376181454,y:.24612193550927428},{x:.5794782601220696,y:.2480096383705079},{x:.5798742831745913,y:.24986467341374632},{x:.5799095690244073,y:.25238879114563434},{x:.580157,y:.25490100000000004},{x:.580157,y:.33119200000000004},{x:.5799156873690254,y:.3336420882589673},{x:.5798881240960263,y:.3361038771468651},{x:.5794843860383102,y:.3380211641581212},{x:.5792923376181454,y:.33997106449072584},{x:.5785776732343003,y:.3423269972319261},{x:.5780703683949873,y:.3447361062088315},{x:.5417793683949873,y:.4597211062088315},{x:.5412650895934552,y:.4609244011905288},{x:.540921633437906,y:.46218711230867804},{x:.5395351283421765,y:.46497211555478546},{x:.5383124760126231,y:.46783284286481475},{x:.5375733277285976,y:.46891268605384906},{x:.5369901282681178,y:.47008412955994733},{x:.5350869372989228,y:.47254512602400234},{x:.5333296776789325,y:.47511235762423976},{x:.5323940649664491,y:.4760272512524403},{x:.5315935342292432,y:.47706240922950055},{x:.45959953422924316,y:.5533504092295005},{x:.4572787448447235,y:.5553702403350376},{x:.45508230823461715,y:.5575246421731296},{x:.45395838697349994,y:.5582600166131206},{x:.4529452394037514,y:.5591417799431011},{x:.45027499383570063,y:.5606700370119551},{x:.44770045819082444,y:.5623545390972755},{x:.3757024581908245,y:.5999485390972755},{x:.37385313535723513,y:.6006937047902838},{x:.3720947544564291,y:.6016335789630078},{x:.36977177563531344,y:.6023382468844833},{x:.3675201821794923,y:.6032455034042244},{x:.36556101895058973,y:.6036155659602718},{x:.3636530644907258,y:.6041943376181453},{x:.36123724716457173,y:.6044322748568528},{x:.35885192047906295,y:.6048828346046191},{x:.35685820639902277,y:.60486357272721},{x:.354874,y:.605059},{x:.247175,y:.605059},{x:.24519066624232813,y:.6048635601834779},{x:.24319682408363533,y:.6048828119349353},{x:.24081162559758007,y:.6044322623250186},{x:.23839593550927424,y:.6041943376181453},{x:.23648785858508298,y:.6036155288111242},{x:.234528571713998,y:.6032454313367869},{x:.23227710201651716,y:.602338209770572},{x:.22995424554357097,y:.6016335789630078},{x:.2281957517789948,y:.6006936444633418},{x:.22634631449119302,y:.5999484204015954},{x:.15434931449119302,y:.5623544204015953},{x:.15177463525955168,y:.5606698034147719},{x:.14910425200363037,y:.5591414183832311},{x:.14809125527340347,y:.55825976164439},{x:.1469674919716301,y:.5575244814106152},{x:.14477093694990967,y:.5553699388664325},{x:.14245003748743465,y:.5533499553954043},{x:.07045803748743465,y:.4770619553954044},{x:.06965771196430402,y:.47602703312304784},{x:.06872232232106745,y:.47511235762423976},{x:.06696488716695402,y:.4725448695811053},{x:.06506154021654398,y:.4700836008922148},{x:.0644784960433022,y:.46891242859710086},{x:.06373952398737684,y:.46783284286481475},{x:.06251674952606694,y:.46497182979435886},{x:.06113014455468816,y:.46218652912371366},{x:.06078678779193787,y:.46092411430034236},{x:.06027263160501272,y:.4597211062088315},{x:.023981631605012717,y:.3447361062088315},{x:.0234743267656997,y:.3423269972319261},{x:.02275966238185463,y:.33997106449072584},{x:.0225676139616898,y:.3380211641581212},{x:.022163875903973694,y:.3361038771468651},{x:.022136312630974576,y:.33364208825896713},{x:.021894999999999998,y:.33119200000000004},{x:.021894999999999998,y:.25490100000000004}],[{x:.111895,y:.2618978965790472},{x:.111895,y:.324259211613835},{x:.14299436878278687,y:.42279496206129447},{x:.20271328316555492,y:.48607750096051383},{x:.25821631520114247,y:.5150589999999999},{x:.3438328207386419,y:.5150589999999999},{x:.3993370917152178,y:.4860772565752743},{x:.4590577300605173,y:.42279464888454726},{x:.490157,y:.324259211613835},{x:.490157,y:.2618978965790472},{x:.4591028039244665,y:.16445082019422033},{x:.39914727445977055,y:.10091681321598435},{x:.3435475642149213,y:.07103500000000003},{x:.2585015743575747,y:.07103500000000003},{x:.20290309936793577,y:.10091656436690524},{x:.14294929572583875,y:.164450507494742},{x:.111895,y:.2618978965790472}]],p:[[{x:.031904,y:-.15424400000000005},{x:.032768662381854635,y:-.16302306449072582},{x:.0353294210369921,y:-.17146475445642909},{x:.03948786744638546,y:-.17924466048588214},{x:.04508419484660536,y:-.18606380515339468},{x:.051903339514117915,y:-.19166013255361458},{x:.05968324554357096,y:-.19581857896300794},{x:.06812493550927423,y:-.1983793376181454},{x:.076904,y:-.19924400000000003},{x:.08568306449072577,y:-.1983793376181454},{x:.09412475445642904,y:-.19581857896300794},{x:.1019046604858821,y:-.19166013255361458},{x:.10872380515339464,y:-.18606380515339468},{x:.11432013255361453,y:-.17924466048588214},{x:.1184785789630079,y:-.17146475445642909},{x:.12103933761814537,y:-.16302306449072582},{x:.121904,y:-.15424400000000005},{x:.121904,y:.08461372659928788},{x:.12362832174470662,y:.08333438131496537},{x:.12536021772829115,y:.08178035235824195},{x:.1271620685101291,y:.08071254912256186},{x:.12884414120453105,y:.07946455014784792},{x:.13094744853162613,y:.07846927732892851},{x:.13294924262910485,y:.07728298474798974},{x:.20690724262910487,y:.04275398474798971},{x:.20784573679964677,y:.04242345923251374},{x:.20872324554357097,y:.041954421036992075},{x:.21199903754957586,y:.040960720395783044},{x:.21522783943974558,y:.03982357810698025},{x:.21621278303720604,y:.03968249467654502},{x:.21716493550927424,y:.0393936623818546},{x:.22057164546850772,y:.03905813073713887},{x:.2239602522910248,y:.038572746319036566},{x:.22495379448531613,y:.03862652673075318},{x:.225944,y:.038528999999999966},{x:.338005,y:.038528999999999966},{x:.33886621477794643,y:.03861382225207184},{x:.3397300481447032,y:.038562076501738984},{x:.34324908380057223,y:.0390454971728409},{x:.3467840644907258,y:.0393936623818546},{x:.3476121832677305,y:.039644869466491955},{x:.3484695134136621,y:.03976264352593092},{x:.35182662109175783,y:.04092330520367998},{x:.35522575445642907,y:.04195442103699206},{x:.3559889530923063,y:.042362359206810904},{x:.35680683330070073,y:.04264512708496585},{x:.4318888333007007,y:.07717412708496588},{x:.43400924312431544,y:.07841428389434572},{x:.43622962614931016,y:.07946501028796468},{x:.4378075563324746,y:.08063579029221077},{x:.43950360927818305,y:.0816277549521855},{x:.44134133343031445,y:.08325775393151234},{x:.4433140658676044,y:.08472146615145025},{x:.5183930658676044,y:.1527974661514503},{x:.519792625068414,y:.15434228537837358},{x:.5213447099268285,y:.1557337827706549},{x:.522746916505161,y:.1576032022519019},{x:.5243158963961404,y:.15933502631539204},{x:.52538718417891,y:.1611232027292085},{x:.5266379784876352,y:.1627907596241023},{x:.5276485364111687,y:.16489781566710873},{x:.5288495066792682,y:.16690245600899573},{x:.5295513540552914,y:.16886527099294393},{x:.530452790490496,y:.17074480411415546},{x:.5674347904904959,y:.2723648041141554},{x:.5682868803844835,y:.2756900562357905},{x:.5692833376181453,y:.27897493550927416},{x:.5693799285821196,y:.2799556400244087},{x:.5696245448495124,y:.2809102467717411},{x:.5698115375679212,y:.2843378395980749},{x:.570148,y:.28775399999999995},{x:.570148,y:.355831},{x:.5698183264321395,y:.3591782319067787},{x:.5696454905753794,y:.362537215959393},{x:.5693867528695432,y:.3635600718226051},{x:.5692833376181453,y:.3646100644907258},{x:.5683069860848939,y:.3678286641524751},{x:.567482165940186,y:.37108938766543825},{x:.530500165940186,y:.47369538766543823},{x:.5295747233109523,y:.4756403735939819},{x:.5288495066792682,y:.4776685439910043},{x:.5276841925618525,y:.47961366765708685},{x:.5267099630491849,y:.4816611880905031},{x:.5254228546094585,y:.48338825675926556},{x:.5243158963961404,y:.48523597368460797},{x:.5227934986603558,y:.48691638083844907},{x:.5214385372739072,y:.48873449599152474},{x:.5198392258792078,y:.49017727712011666},{x:.5183930658676044,y:.4917735338485497},{x:.4433140658676044,y:.5598495338485497},{x:.44114571117720175,y:.5614583923016819},{x:.43910641435493325,y:.5632279843609703},{x:.43761161896162687,y:.5640805897495177},{x:.43622962614931016,y:.5651059897120353},{x:.43378906307257026,y:.5662609093863238},{x:.43144372048223223,y:.5675986521566495},{x:.35636172048223225,y:.6011446521566495},{x:.355773047491519,y:.6013410447411239},{x:.35522575445642907,y:.6016335789630078},{x:.3515938477815883,y:.6027353058079922},{x:.3479935881359665,y:.6039364213810477},{x:.34737791203915763,y:.6040141959337602},{x:.3467840644907258,y:.6041943376181453},{x:.34300700763927916,y:.6045663452480041},{x:.3392415999493003,y:.6050420059085138},{x:.33862258083352115,y:.60499817359702},{x:.338005,y:.605059},{x:.225944,y:.605059},{x:.2251997336627212,y:.6049856961639699},{x:.22445344765540867,y:.6050343071552383},{x:.22081614914993766,y:.6045539507735711},{x:.21716493550927424,y:.6041943376181453},{x:.21644927090994795,y:.6039772431353645},{x:.21570784104506457,y:.6038793269025836},{x:.2122341450916469,y:.6026985986973952},{x:.20872324554357097,y:.6016335789630078},{x:.20806368527139987,y:.6012810366527016},{x:.20735560428285457,y:.6010403560617851},{x:.13339760428285458,y:.5674943560617851},{x:.13116986982932302,y:.566206971138138},{x:.12884414120453105,y:.5651064498521521},{x:.1273598902040749,y:.5640052229355318},{x:.12575970914356202,y:.5630804946901414},{x:.12382593632220404,y:.5613832370749092},{x:.121904,y:.5599572734007121},{x:.121904,y:.560059},{x:.12103933761814537,y:.5688380644907257},{x:.1184785789630079,y:.577279754456429},{x:.11432013255361453,y:.5850596604858821},{x:.10872380515339464,y:.5918788051533946},{x:.10190466048588208,y:.5974751325536145},{x:.09412475445642904,y:.6016335789630078},{x:.08568306449072577,y:.6041943376181453},{x:.076904,y:.605059},{x:.0681249355092742,y:.6041943376181453},{x:.059683245543570934,y:.6016335789630078},{x:.051903339514117915,y:.5974751325536145},{x:.04508419484660536,y:.5918788051533946},{x:.03948786744638546,y:.5850596604858821},{x:.0353294210369921,y:.577279754456429},{x:.032768662381854635,y:.5688380644907257},{x:.031904,y:.560059},{x:.031904,y:-.15424400000000005}],[{x:.121904,y:.20607608160839302},{x:.121904,y:.438494918391607},{x:.17699192809119763,y:.48844251958412144},{x:.23567259519301437,y:.5150589999999999},{x:.3284092961747297,y:.5150589999999999},{x:.38817711429028284,y:.4883552464171925},{x:.4496333594179428,y:.43263133769024387},{x:.48014799999999996,y:.3479689286382035},{x:.48014799999999996,y:.29568777567179994},{x:.44968806913177495,y:.21198926897045803},{x:.3879916447872207,y:.1560475837631447},{x:.32815352882369925,y:.12852899999999995},{x:.2359312215606538,y:.12852899999999995},{x:.17717907548697515,y:.15595879598931894},{x:.121904,y:.20607608160839302}]],q:[[{x:.031905,y:.285813},{x:.03224141038262204,y:.2823973680650777},{x:.0324282929389951,y:.2789703010434802},{x:.03267301908894614,y:.2780151713289937},{x:.032769662381854636,y:.2770339355092742},{x:.03376596546737772,y:.2737495643941025},{x:.03461784473664685,y:.27042480648246636},{x:.07159784473664685,y:.1688028064824664},{x:.0724995244823713,y:.166922651750872},{x:.0732016076706368,y:.1649592141085361},{x:.07440224792307432,y:.1629551516523985},{x:.07541246819615938,y:.16084867156853302},{x:.07666362241043057,y:.15918055247485355},{x:.0777352629490018,y:.15739181137154173},{x:.07930380642556048,y:.15566048970702676},{x:.08070556947724908,y:.15379156924569237},{x:.08225811700526783,y:.15239959067120604},{x:.08365813234923056,y:.15085428642438087},{x:.15873913234923054,y:.08277728642438094},{x:.16071062555900373,y:.0813145118522212},{x:.16254708404197357,y:.07968542770293169},{x:.16424441690754124,y:.07869257021816739},{x:.16582360332185575,y:.07752087268448676},{x:.16804258800473576,y:.07647082416071167},{x:.17016157800418052,y:.07523131768336211},{x:.24523757800418056,y:.0406993176833621},{x:.24605678866737324,y:.04041603175027397},{x:.24682124554357093,y:.04000742103699214},{x:.2502190216384501,y:.03897671692697023},{x:.2535747153580455,y:.03781630621794852},{x:.25443345146196317,y:.037698283616711674},{x:.2552629355092742,y:.03744666238185468},{x:.25879650468596477,y:.037098636194782805},{x:.2623141045905799,y:.03661518582049534},{x:.2631793653883337,y:.03666696209348752},{x:.264042,y:.036582000000000045},{x:.376106,y:.036582000000000045},{x:.3770966034546813,y:.036679565924422064},{x:.37809054588497415,y:.03662578154659327},{x:.38147875036256007,y:.037111169723096304},{x:.3848850644907258,y:.03744666238185468},{x:.3858375996101805,y:.03773561075136079},{x:.38682293652697,y:.03787676837406198},{x:.39005134306992567,y:.03901383585544661},{x:.39332675445642906,y:.04000742103699214},{x:.39420461585020444,y:.04047664772778637},{x:.3951434813083616,y:.04080732274273922},{x:.4691044813083616,y:.07533932274273922},{x:.47110618065167786,y:.07652560719175487},{x:.47320939667814427,y:.07752087268448679},{x:.4748915208069018,y:.0787689461703934},{x:.4766934263594154,y:.07983682509171056},{x:.47842523099597173,y:.08139082758714347},{x:.48014799999999996,y:.08266905805748193},{x:.48014799999999996,y:-.15619500000000008},{x:.4810126623818546,y:-.16497406449072585},{x:.483573421036992,y:-.17341575445642912},{x:.4877318674463854,y:-.18119566048588218},{x:.4933281948466053,y:-.18801480515339472},{x:.5001473395141178,y:-.19361113255361462},{x:.5079272455435709,y:-.19776957896300798},{x:.5163689355092742,y:-.20033033761814545},{x:.525148,y:-.20119500000000007},{x:.5339270644907257,y:-.20033033761814545},{x:.542368754456429,y:-.19776957896300798},{x:.5501486604858821,y:-.19361113255361462},{x:.5569678051533946,y:-.18801480515339472},{x:.5625641325536145,y:-.18119566048588218},{x:.5667225789630078,y:-.17341575445642912},{x:.5692833376181453,y:-.16497406449072585},{x:.570148,y:-.15619500000000008},{x:.570148,y:.5581050000000001},{x:.5692833376181453,y:.5668840644907258},{x:.5667225789630078,y:.5753257544564291},{x:.5625641325536145,y:.5831056604858822},{x:.5569678051533946,y:.5899248051533947},{x:.5501486604858821,y:.5955211325536146},{x:.542368754456429,y:.5996795789630079},{x:.5339270644907257,y:.6022403376181454},{x:.525148,y:.6031050000000001},{x:.5163689355092742,y:.6022403376181454},{x:.5079272455435709,y:.5996795789630079},{x:.5001473395141178,y:.5955211325536146},{x:.4933281948466053,y:.5899248051533947},{x:.4877318674463854,y:.5831056604858822},{x:.483573421036992,y:.5753257544564291},{x:.4810126623818546,y:.5668840644907258},{x:.48014799999999996,y:.5581050000000001},{x:.48014799999999996,y:.558005596763998},{x:.4782247267606458,y:.559432223348863},{x:.47629232280480055,y:.5611281889595863},{x:.4746904859851039,y:.5620538174856352},{x:.4732046002880372,y:.5631560030691136},{x:.4708804506539088,y:.5642554633364756},{x:.4686543108210992,y:.5655418481335316},{x:.3946933108210992,y:.5990868481335316},{x:.3939857884552202,y:.5993273179516839},{x:.39332675445642906,y:.5996795789630079},{x:.3898152875083263,y:.6007447708163117},{x:.38634099890642704,y:.6019255978665906},{x:.3856001580501581,y:.6020234163584227},{x:.3848850644907258,y:.6022403376181454},{x:.38123326077373504,y:.6026000088910167},{x:.3775953617236344,y:.6030803465985108},{x:.3768496724756141,y:.6030317546542387},{x:.376106,y:.6031050000000001},{x:.264042,y:.6031050000000001},{x:.26342400033164626,y:.6030441323453897},{x:.26280456058717394,y:.6030879828235033},{x:.25903957642572706,y:.602612304281983},{x:.2552629355092742,y:.6022403376181454},{x:.254668685221597,y:.6020600737641458},{x:.25405259303422617,y:.6019822349683996},{x:.25045275226756825,y:.6007811844842303},{x:.24682124554357093,y:.5996795789630079},{x:.24627358134186672,y:.5993868463484354},{x:.24568451278884912,y:.5991903095800973},{x:.17060851278884911,y:.5656453095800973},{x:.16826609518471405,y:.5643091772352096},{x:.16582839971196278,y:.5631560030691136},{x:.1644435861855132,y:.5621287897998347},{x:.16294590048199914,y:.5612744987855388},{x:.1609091582647261,y:.559507056844315},{x:.15874327554635076,y:.5579004698017108},{x:.08366227554635075,y:.4898404698017108},{x:.0822135909199537,y:.48824184486316324},{x:.08061175169940471,y:.4867967151276658},{x:.07925889408089541,y:.48498133393711457},{x:.07773859373239328,y:.48330368097737925},{x:.0766296214289207,y:.4814531488185024},{x:.0753404919252871,y:.4797232835162987},{x:.07436779238761855,y:.4776788549378484},{x:.07320399804016177,y:.47573684172476444},{x:.07247735524331753,y:.47370551725863386},{x:.07155047598047157,y:.4717573941431678},{x:.034570475980471575,y:.3691493941431678},{x:.03374586128764337,y:.36588916100716024},{x:.032769662381854636,y:.3626710644907258},{x:.032666195333495754,y:.36162054591923504},{x:.032407352052251925,y:.36059717166956007},{x:.03223462203187315,y:.35723870865311785},{x:.031905,y:.353892},{x:.031905,y:.285813}],[{x:.121905,y:.2937462257558374},{x:.121905,y:.3460304727958324},{x:.1524170009298456,y:.4306917867874386},{x:.21387346155335435,y:.48640130996954867},{x:.2736381428091649,y:.513105},{x:.36637802828147564,y:.513105},{x:.4250638403772601,y:.4864880590885319},{x:.48014799999999996,y:.4365549481293854},{x:.48014799999999996,y:.20413270643748072},{x:.4248733312055972,y:.15401438585682045},{x:.36611835928516706,y:.12658200000000003},{x:.27389496414813935,y:.12658200000000003},{x:.2140623112166411,y:.15410266134357853},{x:.15236330162501277,y:.21004602219345103},{x:.121905,y:.2937462257558374}]],r:[[{x:.062422000000000005,y:.03920400000000002},{x:.06328666238185464,y:.030424935509274227},{x:.0658474210369921,y:.02198324554357097},{x:.07000586744638546,y:.01420333951411792},{x:.07560219484660537,y:.00738419484660538},{x:.08242133951411793,y:.0017878674463854757},{x:.09020124554357097,y:-.002370578963007887},{x:.09864293550927423,y:-.004931337618145348},{x:.107422,y:-.005795999999999982},{x:.11620106449072577,y:-.004931337618145348},{x:.12464275445642904,y:-.002370578963007887},{x:.1324226604858821,y:.0017878674463854827},{x:.13924180515339463,y:.00738419484660538},{x:.14483813255361455,y:.01420333951411792},{x:.14899657896300791,y:.02198324554357098},{x:.15155733761814538,y:.030424935509274248},{x:.152422,y:.03920400000000002},{x:.152422,y:.3275398012121413},{x:.1925108808296549,y:.4204278633799401},{x:.27478075869941443,y:.4836647262821032},{x:.3576648607132649,y:.5150589999999999},{x:.49463,y:.5150589999999999},{x:.5034090644907258,y:.5159236623818546},{x:.511850754456429,y:.5184844210369921},{x:.5196306604858821,y:.5226428674463854},{x:.5264498051533947,y:.5282391948466053},{x:.5320461325536145,y:.5350583395141179},{x:.5362045789630079,y:.542838245543571},{x:.5387653376181454,y:.5512799355092742},{x:.53963,y:.560059},{x:.5387653376181454,y:.5688380644907257},{x:.5362045789630079,y:.577279754456429},{x:.5320461325536145,y:.5850596604858821},{x:.5264498051533947,y:.5918788051533946},{x:.5196306604858821,y:.5974751325536145},{x:.511850754456429,y:.6016335789630078},{x:.5034090644907258,y:.6041943376181453},{x:.49463,y:.605059},{x:.349428,y:.605059},{x:.34572095329292224,y:.6046938877675093},{x:.3420044651532413,y:.6044424555930356},{x:.34133700376168824,y:.6042621064259311},{x:.3406489355092742,y:.6041943376181453},{x:.33708434852821606,y:.6031130319790114},{x:.33348832364990477,y:.6021413801353276},{x:.23668632364990477,y:.5654753801353276},{x:.2347311434313091,y:.5645060813254815},{x:.23268939209293205,y:.5637356779621759},{x:.23078888495220712,y:.562551669954317},{x:.22878273496962892,y:.5615571024090896},{x:.2270542238076375,y:.5602249916656349},{x:.22520200238894322,y:.5590710654608507},{x:.152422,y:.5031286093364514},{x:.152422,y:.560059},{x:.15155733761814538,y:.5688380644907257},{x:.14899657896300791,y:.577279754456429},{x:.14483813255361455,y:.5850596604858821},{x:.13924180515339463,y:.5918788051533946},{x:.1324226604858821,y:.5974751325536145},{x:.12464275445642904,y:.6016335789630078},{x:.11620106449072577,y:.6041943376181453},{x:.107422,y:.605059},{x:.09864293550927423,y:.6041943376181453},{x:.09020124554357094,y:.6016335789630078},{x:.08242133951411793,y:.5974751325536145},{x:.07560219484660537,y:.5918788051533946},{x:.07000586744638546,y:.5850596604858821},{x:.0658474210369921,y:.577279754456429},{x:.06328666238185464,y:.5688380644907257},{x:.062422000000000005,y:.560059},{x:.062422000000000005,y:.03920400000000002}]],s:[[{x:.056563,y:.369888},{x:.056809270227573656,y:.3673875764180495},{x:.05684306423764694,y:.36487528163458033},{x:.05724057756471223,y:.36300843953465567},{x:.057427662381854636,y:.3611089355092742},{x:.05815700903783985,y:.3587046018033244},{x:.05868027810379197,y:.35624717294397146},{x:.05943435615016931,y:.3544937526945111},{x:.0599884210369921,y:.352667245543571},{x:.06117281573842168,y:.3504513989095756},{x:.06216545092350078,y:.34814327358726177},{x:.06324711489275962,y:.3465706581451233},{x:.06414686744638545,y:.3448873395141179},{x:.06574079456909979,y:.3429451336955602},{x:.0671646494598194,y:.3408750118720105},{x:.06853233161222538,y:.3395436359667022},{x:.06974319484660536,y:.33806819484660533},{x:.07168540066516299,y:.33647426772389105},{x:.07348575731657993,y:.3347217030198468},{x:.07508689839402109,y:.33368273068076537},{x:.07656233951411792,y:.33247186744638546},{x:.07877818614811302,y:.331287472744956},{x:.08088585786376518,y:.3299198152391437},{x:.15568385786376518,y:.29122381523914376},{x:.1574569269125657,y:.29051717359061785},{x:.15914024554357095,y:.2896174210369921},{x:.16154457924952065,y:.28888807438100694},{x:.16387856938737105,y:.2879578823843842},{x:.16575542835833412,y:.2876107272686775},{x:.16758193550927422,y:.2870566623818547},{x:.17008235909122482,y:.286810392154281},{x:.17255297371919248,y:.2863534124236203},{x:.17446149597461844,y:.28637908481714247},{x:.176361,y:.28619200000000006},{x:.288347309340128,y:.28619200000000006},{x:.3974525128623667,y:.21942256309828728},{x:.45549,y:.1602321160680505},{x:.45549,y:.13007078589845048},{x:.407404042616179,y:.10590438131127383},{x:.31753214348357883,y:.07103500000000003},{x:.21224543978224936,y:.07103500000000003},{x:.16354378174687056,y:.09622932957230687},{x:.14433666195924297,y:.15500005013212306},{x:.1407876006468136,y:.16307617408904287},{x:.13573115992893667,y:.17030473007440486},{x:.12936165598671553,y:.1764079287355125},{x:.12192386528459082,y:.18115122757053267},{x:.11370361794808405,y:.18435234426530817},{x:.10501681347236942,y:.18588826170046568},{x:.09619728088183255,y:.18569995543032455},{x:.08758394986787689,y:.1837946619592429},{x:.07950782591095708,y:.18024560064681355},{x:.07227926992559508,y:.1751891599289366},{x:.06617607126448745,y:.1688196559867155},{x:.06143277242946728,y:.16138186528459075},{x:.05823165573469179,y:.153161617948084},{x:.05669573829953427,y:.14447481347236937},{x:.0568840445696754,y:.1356552808818325},{x:.05878933804075704,y:.12704194986787684},{x:.08372233804075704,y:.050750949867876836},{x:.08542587043333498,y:.04687444913825993},{x:.08709879890390285,y:.042984643121031924},{x:.08719974017890864,y:.04283789110571456},{x:.0872713993531864,y:.04267482591095703},{x:.0896984666241539,y:.03920515373890898},{x:.0920981137517354,y:.03571646140762123},{x:.09222574536637099,y:.03559222185697407},{x:.09232784007106334,y:.035446269925595034},{x:.09538517138631239,y:.032516763866873036},{x:.0984193200775319,y:.02956325371133576},{x:.09856873722042347,y:.029466301081615798},{x:.09869734401328446,y:.029343071264487396},{x:.10226744784494098,y:.027066310594042624},{x:.10581949746716537,y:.024761484353185106},{x:.18061849746716538,y:-.013933515646814817},{x:.1823912439162618,y:-.014639995851387814},{x:.18407424554357094,y:-.01553957896300786},{x:.18647892276401756,y:-.016269029822976466},{x:.18881326125361947,y:-.017199317363260178},{x:.19068977232738848,y:-.017546377073194466},{x:.1925159355092742,y:-.018100337618145335},{x:.19501671633437545,y:-.018346643031098245},{x:.19748769126025723,y:-.018803648509519946},{x:.19939585369049342,y:-.018777950414796084},{x:.201295,y:-.018964999999999968},{x:.325956,y:-.018964999999999968},{x:.3298421413721484,y:-.018582248482612737},{x:.33373593654739714,y:-.01828737118339306},{x:.334227355251249,y:-.018150342613638803},{x:.3347350644907258,y:-.018100337618145335},{x:.33847186362931597,y:-.016966791992147238},{x:.34223331291484477,y:-.015917938922943478},{x:.44196531291484475,y:.022777061077056446},{x:.44388622686678575,y:.02374867869889352},{x:.4458951331158935,y:.02452214291663178},{x:.5206971331158935,y:.06211514291663188},{x:.5230429253028388,y:.06359852573319036},{x:.5254906604858821,y:.06490686744638552},{x:.526762463529903,y:.06595060923072474},{x:.5281530225051898,y:.06682994172267823},{x:.5301643473216751,y:.06874246310749585},{x:.5323098051533947,y:.07050319484660542},{x:.5333535469377338,y:.07177499789062616},{x:.5345458374532134,y:.07290871885358566},{x:.536145400814505,y:.07517688168239829},{x:.5379061325536145,y:.07732233951411796},{x:.538681702666837,y:.0787733291400739},{x:.5396299056666436,y:.08011787031323085},{x:.5407562372498129,y:.08265451036052812},{x:.5420645789630079,y:.08510224554357101},{x:.5425421726806072,y:.08667666103386074},{x:.5432098492552168,y:.08818035245395842},{x:.5438196647691762,y:.09088798806528645},{x:.5446253376181454,y:.09354393550927428},{x:.5447866012813922,y:.09518127295954937},{x:.5451480929944793,y:.09678632860859225},{x:.545217957571016,y:.09956090686586556},{x:.54549,y:.10232300000000005},{x:.54549,y:.17861300000000002},{x:.5450792542455133,y:.1827833716312913},{x:.5447095428008049,y:.18695758114513777},{x:.5446471218945653,y:.18717088502046353},{x:.5446253376181454,y:.1873920644907258},{x:.5434088850836819,y:.19140217107899518},{x:.5422319296624953,y:.19542404720269643},{x:.5421290946347417,y:.1956210747891699},{x:.5420645789630079,y:.19583375445642906},{x:.5400891672372728,y:.199529489854385},{x:.5381501975764,y:.20324447414399938},{x:.5380109003195782,y:.20341765378196683},{x:.5379061325536145,y:.20361366048588211},{x:.5352476756014034,y:.20685299965477524},{x:.5326212052175259,y:.21011832734743824},{x:.45781920521752584,y:.28640632734743826},{x:.45695946559173245,y:.28712616331644525},{x:.45621413415776596,y:.2879638966272176},{x:.45358375241990234,y:.28995255364350675},{x:.45105542866152953,y:.29206944848930627},{x:.4500717756605794,y:.29260772613156716},{x:.4491773318997613,y:.2932839556822147},{x:.3245133318997613,y:.3695749556822147},{x:.3213472249094816,y:.3711082739568931},{x:.3182447544564291,y:.37276657896300797},{x:.31738368821196916,y:.37302778055263114},{x:.3165738477898179,y:.3734199792757539},{x:.31316944110160955,y:.3743061584374605},{x:.3098030644907258,y:.3753273376181454},{x:.3089075854904768,y:.3754155346015568},{x:.3080367917497669,y:.3756422053074494},{x:.30452491480344407,y:.37584718998797495},{x:.301024,y:.376192},{x:.18731182116617404,y:.376192},{x:.146563,y:.397272996602132},{x:.146563,y:.42779681790574337},{x:.20153437253410483,y:.48386323770148376},{x:.2842918489876165,y:.5150589999999999},{x:.39008456648169626,y:.5150589999999999},{x:.4553477907191711,y:.4822576837794137},{x:.4635801440629335,y:.47908783003036465},{x:.47227272283422006,y:.4775849365970516},{x:.4810914761057044,y:.47780675883128426},{x:.48969750413477736,y:.47974477222900047},{x:.4977600820905977,y:.48332450002217653},{x:.5049693696238691,y:.488408375279255},{x:.5110483178577028,y:.4948010275251766},{x:.5157633162205862,y:.5022567907191711},{x:.5189331699696352,y:.5104891440629334},{x:.5204360634029483,y:.51918172283422},{x:.5202142411687157,y:.5280004761057044},{x:.5182762277709995,y:.5366065041347774},{x:.5146964999778234,y:.5446690820905977},{x:.509612624720745,y:.551878369623869},{x:.5032199724748234,y:.5579573178577029},{x:.49576420928082887,y:.5626723162205862},{x:.42096520928082887,y:.6002663162205862},{x:.41942927464851043,y:.6008577252562829},{x:.41797775445642904,y:.6016335789630078},{x:.4153223812886681,y:.6024390776071881},{x:.41273285593706643,y:.6034361699696352},{x:.41111105567880996,y:.6037165692645292},{x:.40953606449072577,y:.6041943376181453},{x:.40677456858393113,y:.6044663212253706},{x:.4040402771657799,y:.6049390634029483},{x:.4023949361559939,y:.6048976773693867},{x:.400757,y:.605059},{x:.276092,y:.605059},{x:.2724204350331364,y:.6046973824138966},{x:.26873912724910987,y:.6044542166602351},{x:.2680367190736708,y:.6042656240771296},{x:.2673129355092742,y:.6041943376181453},{x:.2637824667250502,y:.6031233816208718},{x:.26021933352302795,y:.6021667007079561},{x:.1604883335230279,y:.5645727007079561},{x:.15963695838633216,y:.5641523105976027},{x:.15873109713512196,y:.563867735718488},{x:.15568848233041307,y:.5622026409240001},{x:.1525785174681621,y:.5606670094317409},{x:.15182551530799093,y:.5600886019499048},{x:.15099257773152036,y:.559632770334096},{x:.14833326979676884,y:.5574060851671644},{x:.1455826488796249,y:.5552932363569977},{x:.14495695714670492,y:.554579039378831},{x:.14422895256892138,y:.5539694683796904},{x:.06943095256892137,y:.47768146837969044},{x:.06680494464711424,y:.4744165369262552},{x:.06414686744638545,y:.4711776604858821},{x:.0640418150384659,y:.470981121254323},{x:.0639021439692389,y:.47080746737336276},{x:.06196355058191934,y:.4670929619312254},{x:.0599884210369921,y:.46339775445642906},{x:.05992373008360734,y:.46318449696300446},{x:.05982062094636722,y:.462986931318802},{x:.05864394115023422,y:.4589655982489849},{x:.057427662381854636,y:.45495606449072584},{x:.05740581892006417,y:.454734284101312},{x:.05734323414113077,y:.4545203990307778},{x:.05697368708086039,y:.4503467759079653},{x:.056563,y:.44617700000000005},{x:.056563,y:.369888}]],t:[[{x:.036055000000000004,y:.484201},{x:.03691966238185464,y:.4754219355092742},{x:.0394804210369921,y:.466980245543571},{x:.04363886744638546,y:.4592003395141179},{x:.049235194846605365,y:.45238119484660533},{x:.05605433951411792,y:.44678486744638546},{x:.06383424554357096,y:.44262642103699207},{x:.07227593550927423,y:.4400656623818546},{x:.081055,y:.439201},{x:.201032,y:.439201},{x:.201032,y:.17345100000000002},{x:.2013458215844704,y:.17026471598156256},{x:.20148726326025637,y:.1670661406603643},{x:.20177732050748418,y:.165883633894134},{x:.20189666238185464,y:.16467193550927425},{x:.20282606714776777,y:.16160809859877695},{x:.20358880215081968,y:.15849857690755997},{x:.20410398165518515,y:.15739537903902878},{x:.2044574210369921,y:.15623024554357098},{x:.20596669248041014,y:.15340659727526443},{x:.20732140933230742,y:.15050562638878262},{x:.2623124093323074,y:.05773162638878261},{x:.2645408071528226,y:.05469603003381387},{x:.2666808493837164,y:.051597510818645845},{x:.2671477670132535,y:.051144744093296994},{x:.26753264280400524,y:.05062045370997057},{x:.2703104380556505,y:.04807792433615628},{x:.27301385108661325,y:.04545644382682572},{x:.2735601274310704,y:.04510346799784869},{x:.2740398919211364,y:.04466433724917905},{x:.27726033549019774,y:.04271258283448707},{x:.28042322867453984,y:.040668883056825214},{x:.28102787064035484,y:.04042926278737637},{x:.28158408674943697,y:.04009216722176761},{x:.28512341879560005,y:.038806192593798694},{x:.288624243922019,y:.03741881178414046},{x:.39861224392201905,y:.005893811784140432},{x:.4004470188387682,y:.005558110934368086},{x:.4022319355092743,y:.0050166623818546086},{x:.4047755505163489,y:.004766138170207483},{x:.4072897364122725,y:.0043061284251197166},{x:.4091547486303562,y:.0043348248023798485},{x:.411011,y:.004151999999999975},{x:.520997,y:.004151999999999975},{x:.5297760644907258,y:.0050166623818546086},{x:.538217754456429,y:.00757742103699207},{x:.5459976604858822,y:.011735867446385433},{x:.5528168051533947,y:.017332194846605337},{x:.5584131325536146,y:.02415133951411788},{x:.5625715789630079,y:.031931245543570935},{x:.5651323376181454,y:.040372935509274205},{x:.5659970000000001,y:.049151999999999973},{x:.5651323376181454,y:.05793106449072574},{x:.5625715789630079,y:.06637275445642901},{x:.5584131325536146,y:.07415266048588207},{x:.5528168051533947,y:.08097180515339461},{x:.5459976604858822,y:.08656813255361451},{x:.538217754456429,y:.09072657896300787},{x:.5297760644907258,y:.09328733761814534},{x:.520997,y:.09415199999999997},{x:.41733272532416527,y:.09415199999999997},{x:.33061421916568134,y:.11900744701827656},{x:.291032,y:.1857856616511605},{x:.291032,y:.439201},{x:.466004,y:.439201},{x:.47478306449072577,y:.4400656623818546},{x:.48322475445642904,y:.44262642103699207},{x:.4910046604858821,y:.44678486744638546},{x:.49782380515339464,y:.45238119484660533},{x:.5034201325536145,y:.4592003395141179},{x:.5075785789630078,y:.466980245543571},{x:.5101393376181453,y:.4754219355092742},{x:.511004,y:.484201},{x:.5101393376181453,y:.4929800644907258},{x:.5075785789630078,y:.501421754456429},{x:.5034201325536145,y:.5092016604858821},{x:.49782380515339464,y:.5160208051533947},{x:.4910046604858821,y:.5216171325536145},{x:.48322475445642904,y:.5257755789630079},{x:.47478306449072577,y:.5283363376181454},{x:.466004,y:.529201},{x:.291032,y:.529201},{x:.291032,y:.702148},{x:.2901673376181454,y:.7109270644907257},{x:.2876065789630079,y:.719368754456429},{x:.28344813255361456,y:.7271486604858821},{x:.27785180515339464,y:.7339678051533947},{x:.2710326604858821,y:.7395641325536145},{x:.26325275445642904,y:.7437225789630079},{x:.25481106449072577,y:.7462833376181454},{x:.246032,y:.747148},{x:.23725293550927423,y:.7462833376181454},{x:.22881124554357096,y:.7437225789630079},{x:.2210313395141179,y:.7395641325536145},{x:.21421219484660536,y:.7339678051533947},{x:.20861586744638547,y:.7271486604858821},{x:.2044574210369921,y:.719368754456429},{x:.20189666238185464,y:.7109270644907257},{x:.201032,y:.702148},{x:.201032,y:.529201},{x:.081055,y:.529201},{x:.07227593550927423,y:.5283363376181454},{x:.06383424554357094,y:.5257755789630079},{x:.05605433951411792,y:.5216171325536145},{x:.049235194846605365,y:.5160208051533947},{x:.04363886744638546,y:.5092016604858821},{x:.0394804210369921,y:.501421754456429},{x:.03691966238185464,y:.4929800644907258},{x:.036055000000000004,y:.484201}]],u:[[{x:.047041,y:.17386599999999997},{x:.04733731084809023,y:.17085750547164297},{x:.04744678100255899,y:.1678364368310572},{x:.0477687404511641,y:.16647712720137547},{x:.04790566238185463,y:.1650869355092742},{x:.048783207866406234,y:.16219405573845885},{x:.04947995583647738,y:.15925239265237093},{x:.08761895583647737,y:.04817539265237096},{x:.08938287590080696,y:.04431825367483454},{x:.09111755940033861,y:.04044787795123246},{x:.0912166047918106,y:.04030846472648272},{x:.0912877277290914,y:.04015294120864865},{x:.09377024504918263,y:.03671403980837168},{x:.09622666993792225,y:.03325645223155292},{x:.09635101037087945,y:.03313904059014135},{x:.09645110783403886,y:.03300038080982997},{x:.09955682066149267,y:.030111872039067004},{x:.10264058790854466,y:.027199945760571206},{x:.10278544504987946,y:.027109047766032002},{x:.10291067034954356,y:.026992580340839414},{x:.10652022788210418,y:.024765467971757132},{x:.11011283004156149,y:.02251110668543916},{x:.1858688300415615,y:-.015231893314560811},{x:.1873332068933575,y:-.0157898639141544},{x:.18871524554357097,y:-.01652857896300789},{x:.19144581156206075,y:-.017356887109087667},{x:.19411224226228255,y:-.018372875537717062},{x:.1956573361874375,y:-.018634439137126358},{x:.19715693550927424,y:-.019089337618145352},{x:.1999966293703256,y:-.019369023051625026},{x:.20281003486202434,y:-.01984529472354478},{x:.2043764687674932,y:-.01980039958033106},{x:.205936,y:-.019953999999999986},{x:.319832,y:-.019953999999999986},{x:.32132997950952447,y:-.01980646189590665},{x:.3228344649392302,y:-.019853723877644197},{x:.3257100002545037,y:-.019375067506000147},{x:.3286110644907258,y:-.019089337618145352},{x:.3300514774877758,y:-.018652393112465325},{x:.33153627500704863,y:-.018405236421526333},{x:.3342631764918695,y:-.017374788187221168},{x:.33705275445642907,y:-.01652857896300789},{x:.3383802466773209,y:-.015819019588053155},{x:.3397882963501792,y:-.015286942317463331},{x:.4160692963501792,y:.02245605768253664},{x:.4183042276197719,y:.02384992521458428},{x:.42064256487504254,y:.025062345668598177},{x:.4220380841989542,y:.02617863282445781},{x:.4235544084161923,y:.027124324140885128},{x:.42547446604244665,y:.028927422360218155},{x:.42753134130624215,y:.03057273346328787},{x:.465011,y:.06712410441560081},{x:.465011,y:.025046000000000013},{x:.4658756623818546,y:.016266935509274223},{x:.46843642103699207,y:.007825245543570968},{x:.47259486744638546,y:45339514117916785e-21},{x:.4781911948466053,y:-.006773805153394624},{x:.4850103395141179,y:-.012370132553614528},{x:.492790245543571,y:-.01652857896300789},{x:.5012319355092743,y:-.019089337618145352},{x:.510011,y:-.019953999999999986},{x:.5187900644907257,y:-.019089337618145352},{x:.527231754456429,y:-.01652857896300789},{x:.5350116604858821,y:-.012370132553614521},{x:.5418308051533947,y:-.006773805153394624},{x:.5474271325536145,y:45339514117916785e-21},{x:.5515855789630079,y:.007825245543570974},{x:.5541463376181454,y:.016266935509274244},{x:.555011,y:.025046000000000013},{x:.555011,y:.545898},{x:.5541463376181454,y:.5546770644907257},{x:.5515855789630079,y:.563118754456429},{x:.5474271325536145,y:.5708986604858821},{x:.5418308051533947,y:.5777178051533947},{x:.5350116604858821,y:.5833141325536145},{x:.527231754456429,y:.5874725789630079},{x:.5187900644907257,y:.5900333376181454},{x:.510011,y:.590898},{x:.5012319355092743,y:.5900333376181454},{x:.492790245543571,y:.5874725789630079},{x:.4850103395141179,y:.5833141325536145},{x:.4781911948466053,y:.5777178051533947},{x:.47259486744638546,y:.5708986604858821},{x:.46843642103699207,y:.563118754456429},{x:.4658756623818546,y:.5546770644907257},{x:.465011,y:.545898},{x:.465011,y:.19283699530520199},{x:.36978450462305706,y:.099969048308901},{x:.30930812362389754,y:.07004600000000001},{x:.2165251763155874,y:.07004600000000001},{x:.16675256431883717,y:.09484360935890679},{x:.137041,y:.18137632992954258},{x:.137041,y:.545898},{x:.13617633761814535,y:.5546770644907257},{x:.1336155789630079,y:.563118754456429},{x:.12945713255361452,y:.5708986604858821},{x:.12386080515339463,y:.5777178051533947},{x:.11704166048588208,y:.5833141325536145},{x:.10926175445642904,y:.5874725789630079},{x:.10082006449072577,y:.5900333376181454},{x:.092041,y:.590898},{x:.08326193550927423,y:.5900333376181454},{x:.07482024554357093,y:.5874725789630079},{x:.06704033951411792,y:.5833141325536145},{x:.06022119484660536,y:.5777178051533947},{x:.05462486744638546,y:.5708986604858821},{x:.050466421036992094,y:.563118754456429},{x:.04790566238185463,y:.5546770644907257},{x:.047041,y:.545898},{x:.047041,y:.17386599999999997}]],v:[[{x:.003930906419490336,y:.5438334563092145},{x:.005386967221411215,y:.5351329102741644},{x:.00851244255100142,y:.5268836061622384},{x:.26071044255100145,y:.018289606162238365},{x:.26144011887972296,y:.017121905714788027},{x:.2620056398700735,y:.01586646241095203},{x:.26377267234206975,y:.013389122267562115},{x:.26538522214413157,y:.010808560104194675},{x:.26632868500311185,y:.009805649483352854},{x:.267128264504625,y:.008684656842684199},{x:.2693446490294707,y:.006599649029470163},{x:.2714296568426842,y:.00438326450462502},{x:.27255064948335267,y:.0035836850031119977},{x:.2735535601041947,y:.0026402221441315446},{x:.27613412226756273,y:.0010276723420693272},{x:.278611462410952,y:-.0007393601299264599},{x:.2798669057147878,y:-.0013048811202769175},{x:.28103460616223835,y:-.0020345574489985807},{x:.28388017640738666,y:-.0031126798553442526},{x:.2866546460885495,y:-.00436245420755494},{x:.28799629407344673,y:-.00467218403223142},{x:.2892839102741644,y:-.005160032778588779},{x:.2922851349323858,y:-.00566229614975999},{x:.29525011283741587,y:-.006346784254711718},{x:.2966264067237199,y:-.006388820170250395},{x:.2979844563092145,y:-.006616093580509658},{x:.301026,y:-.00652319621682493},{x:.30406754369078554,y:-.006616093580509658},{x:.3054255932762801,y:-.006388820170250395},{x:.30680188716258416,y:-.006346784254711718},{x:.30976686506761425,y:-.005662296149759988},{x:.31276808972583564,y:-.005160032778588779},{x:.3140557059265533,y:-.00467218403223142},{x:.3153973539114505,y:-.00436245420755494},{x:.3181718235926135,y:-.0031126798553442175},{x:.3210173938377617,y:-.0020345574489985807},{x:.32218509428521225,y:-.0013048811202769192},{x:.323440537589048,y:-.0007393601299264599},{x:.32591787773243747,y:.0010276723420694187},{x:.32849843989580535,y:.0026402221441315446},{x:.32950135051664736,y:.0035836850031119635},{x:.3306223431573158,y:.00438326450462502},{x:.3327073509705293,y:.006599649029470129},{x:.334923735495375,y:.008684656842684203},{x:.33572331499688823,y:.009805649483352899},{x:.33666677785586846,y:.01080856010419469},{x:.3382793276579303,y:.013389122267562135},{x:.3400463601299265,y:.01586646241095204},{x:.34061188112027707,y:.017121905714788034},{x:.3413415574489986,y:.018289606162238365},{x:.5935395574489987,y:.5268836061622384},{x:.5966650327785888,y:.5351329102741644},{x:.5981210935805097,y:.5438334563092145},{x:.5978517842547117,y:.5526508871625841},{x:.595867454207555,y:.5612463539114505},{x:.5922443601299265,y:.569289537589048},{x:.587121735495375,y:.5764713431573159},{x:.5806964398958053,y:.5825157778558685},{x:.5732153938377617,y:.5871905574489986},{x:.5649660897258356,y:.5903160327785888},{x:.5562655436907855,y:.5917720935805096},{x:.5474481128374159,y:.5915027842547117},{x:.5388526460885495,y:.589518454207555},{x:.5308094624109521,y:.5858953601299265},{x:.5236276568426842,y:.580772735495375},{x:.5175832221441315,y:.5743474398958054},{x:.5129084425510014,y:.5668663938377616},{x:.301026,y:.13957458745236595},{x:.08914355744899859,y:.5668663938377616},{x:.08446877785586845,y:.5743474398958054},{x:.07842434315731579,y:.580772735495375},{x:.07124253758904797,y:.5858953601299265},{x:.06319935391145051,y:.589518454207555},{x:.054603887162584124,y:.5915027842547117},{x:.04578645630921451,y:.5917720935805096},{x:.037085910274164385,y:.5903160327785888},{x:.028836606162238352,y:.5871905574489986},{x:.02135556010419467,y:.5825157778558685},{x:.014930264504625007,y:.5764713431573159},{x:.009807639870073534,y:.569289537589048},{x:.006184545792445054,y:.5612463539114505},{x:.004200215745288276,y:.5526508871625841},{x:.003930906419490336,y:.5438334563092145}]],w:[[{x:-.04481226541001698,y:.5427688011711321},{x:-.0431501306438814,y:.534105261341125},{x:.1073618693561186,y:.025511261341124997},{x:.10747750697825527,y:.02522662926113043},{x:.10753949092041715,y:.02492572151525217},{x:.1091366577408943,y:.021142772088450095},{x:.11068223944402648,y:.01733845540642648},{x:.11085118408582124,y:.017081852232977028},{x:.1109706812129555,y:.01679881881229654},{x:.11327517574267339,y:.0134001494872997},{x:.11553324489331337,y:.009970459715744673},{x:.11574900410692728,y:.009751746564891355},{x:.11592142221145292,y:.009497464285038355},{x:.11884468401801046,y:.006613684018010047},{x:.12172846428503836,y:.0036904222114529234},{x:.12198274656489135,y:.0035180041069272803},{x:.12220145971574467,y:.0033022448933133844},{x:.1256311494872997,y:.001044175742673395},{x:.12902981881229655,y:-.0012603187870445023},{x:.12931285223297703,y:-.0013798159141787526},{x:.12956945540642648,y:-.0015487605559735135},{x:.1333737720884501,y:-.0030943422591057004},{x:.13715672151525218,y:-.004691509079582858},{x:.13745762926113045,y:-.004753493021744735},{x:.137742261341125,y:-.004869130643881392},{x:.14177500717701197,y:-.005642829061426576},{x:.14579686008065018,y:-.006471289947453558},{x:.1461040784358031,y:-.006473378696506754},{x:.14640580117113214,y:-.006531265410016966},{x:.150512,y:-.006503347745684165},{x:.15461819882886788,y:-.006531265410016966},{x:.15491992156419693,y:-.006473378696506754},{x:.15522713991934983,y:-.006471289947453558},{x:.159248992822988,y:-.005642829061426585},{x:.16328173865887502,y:-.004869130643881392},{x:.16356637073886957,y:-.004753493021744732},{x:.16386727848474786,y:-.004691509079582851},{x:.1676502279115502,y:-.0030943422591055763},{x:.17145454459357354,y:-.0015487605559735135},{x:.17171114776702298,y:-.0013798159141787517},{x:.17199418118770346,y:-.0012603187870445023},{x:.17539285051270065,y:.001044175742673613},{x:.17882254028425534,y:.0033022448933133844},{x:.17904125343510863,y:.0035180041069272374},{x:.17929553571496165,y:.0036904222114529095},{x:.18217931598198978,y:.006613684018010279},{x:.1851025777885471,y:.009497464285038375},{x:.18527499589307275,y:.009751746564891386},{x:.18549075510668664,y:.009970459715744683},{x:.1877488242573266,y:.013400149487299715},{x:.1900533187870445,y:.016798818812296553},{x:.19017281591417878,y:.01708185223297707},{x:.19034176055597352,y:.01733845540642648},{x:.19188734225910553,y:.02114277208844964},{x:.19348450907958287,y:.02492572151525217},{x:.19354649302174473,y:.02522662926113043},{x:.1936621306438814,y:.025511261341124997},{x:.30102443002882817,y:.38829842311817664},{x:.4083889386148475,y:.025511027311792445},{x:.40850451632069196,y:.025226547135196155},{x:.40856646677585007,y:.0249257992040805},{x:.410163689741502,y:.021142697708463984},{x:.41170935302882616,y:.01733823938560964},{x:.41187820927072055,y:.017081773507688556},{x:.41199764237598097,y:.016798890297984457},{x:.41430222163921304,y:.013400082779514221},{x:.4165603984391837,y:.009970270005002412},{x:.41677604416644776,y:.009751674265617277},{x:.4169483701745541,y:.009497526820430955},{x:.41987174204670485,y:.006613627545966159},{x:.42275565189129766,y:.0036902661012626486},{x:.42300979995956794,y:.0035179410120882958},{x:.4232283964786704,y:.003302296075210584},{x:.4266582174181369,y:.0010441316765615349},{x:.4300570332693414,y:-.001260435297455717},{x:.43033991691088264,y:-.001379867379883588},{x:.4305963833993421,y:-.0015487226944633017},{x:.43440084731088763,y:-.0030943722258508074},{x:.43818395458161874,y:-.004691581512785238},{x:.43848470273672896,y:-.004753530880516994},{x:.4387691833312223,y:-.0048691075577547704},{x:.44280208680029426,y:-.005642843777199688},{x:.4468241027997286,y:-.0064713155198797695},{x:.44713115788546864,y:-.006473401493455157},{x:.44743272015628793,y:-.006531257986460835},{x:.45153908096424766,y:-.006503346644966049},{x:.45564544187310013,y:-.00653124313893301},{x:.4559470039347234,y:-.006473385555557348},{x:.4562540590129192,y:-.0064712984717510205},{x:.4602760720167908,y:-.005642812186517322},{x:.4643089726882076,y:-.004869061385152536},{x:.46459345286480397,y:-.004753483679308031},{x:.46489420079591953,y:-.0046915332241499325},{x:.46867730229153426,y:-.003094310258498727},{x:.4724817606143904,y:-.0015486469711738574},{x:.4727382264923116,y:-.0013797907292793573},{x:.47302110970201555,y:-.0012603576240190345},{x:.4764199172204845,y:.0010442216392121837},{x:.47984972999499764,y:.0033023984391836667},{x:.4800683257343829,y:.003518044166447842},{x:.48032247317956905,y:.003690370174554085},{x:.483206372454032,y:.0066137420467029156},{x:.48612973389873737,y:.009497651891297622},{x:.4863020589879118,y:.009751799959568049},{x:.48651770392478944,y:.009970396478670394},{x:.4887758683234383,y:.01340021741813658},{x:.49108043529745576,y:.016799033269341422},{x:.49119986737988364,y:.017081916910882677},{x:.4913687226944633,y:.017338383399342037},{x:.4929143722258502,y:.021142847310886045},{x:.4945115815127853,y:.024925954581618698},{x:.4945735308805171,y:.025226702736729056},{x:.4946891075577548,y:.025511183331222268},{x:.6452021075577549,y:.5341051833312223},{x:.6468642579864609,y:.542768720156288},{x:.646804298471751,y:.5515900590129192},{x:.64502453322415,y:.5602302007959196},{x:.641593357624019,y:.5683571097020156},{x:.636642629825446,y:.5756584731795691},{x:.6303626035213297,y:.5818537039247894},{x:.622994616600658,y:.5867047226944633},{x:.6148218166687778,y:.5900251075577548},{x:.6061582798437121,y:.5916872579864608},{x:.5973369409870808,y:.591627298471751},{x:.5886967992040805,y:.58984753322415},{x:.5805698902979844,y:.5864163576240191},{x:.573268526820431,y:.5814656298254459},{x:.5670732960752106,y:.5751856035213296},{x:.5622222773055368,y:.567817616600658},{x:.5589018924422452,y:.5596448166687777},{x:.4515387133151436,y:.1968570925189096},{x:.34417406138515255,y:.5596449726882076},{x:.3440584683142858,y:.559929490683899},{x:.34399650907958285,y:.5602302784847478},{x:.3423992950207163,y:.5640133397974443},{x:.3408536469711739,y:.5678177606143904},{x:.3406847682813525,y:.5680742605871558},{x:.34056531878704455,y:.5683571811877035},{x:.33826075609875456,y:.5717559510329858},{x:.33600260156081635,y:.5751857299949976},{x:.33578692716538155,y:.5754043547947312},{x:.3356145777885471,y:.5756585357149616},{x:.33269122952253233,y:.5785424012737268},{x:.32980734810870244,y:.5814657338987373},{x:.3295531662537196,y:.581638081896991},{x:.3293345402842553,y:.5818537551066867},{x:.3259047490749403,y:.5841118910428063},{x:.32250596673065857,y:.5864164352974557},{x:.322223045482268,y:.5865358832573104},{x:.32196654459357354,y:.5867047605559735},{x:.318162115393689,y:.5882503879717952},{x:.31437904541838135,y:.5898475815127853},{x:.31407825728149374,y:.5899095391161314},{x:.313793738658875,y:.5900251306438814},{x:.30976087354902626,y:.5907988519446131},{x:.3057388972002714,y:.5916273155198798},{x:.3054318012943039,y:.5916294017707667},{x:.3051301988288679,y:.5916872654100169},{x:.30102387855356455,y:.5916593469199811},{x:.29691755812689985,y:.5916872431389331},{x:.2966159559752979,y:.5916293778639092},{x:.2963088600806502,y:.5916272899474536},{x:.29228688822522214,y:.5907988045585649},{x:.28825402731179245,y:.5900250613851525},{x:.2879695093161011,y:.5899094683142858},{x:.2876687215152522,y:.5898475090795828},{x:.2838856602025565,y:.5882502950207166},{x:.28008123938560964,y:.5867046469711739},{x:.27982473941284386,y:.5865357682813523},{x:.27954181881229656,y:.5864163187870445},{x:.276143048967013,y:.5841117560987538},{x:.2727132700050024,y:.5818536015608163},{x:.2724946452052691,y:.5816379271653819},{x:.27224046428503834,y:.5814655777885471},{x:.2693565987262721,y:.5785422295225312},{x:.2664332661012626,y:.5756583481087024},{x:.2662609181030087,y:.5754041662537193},{x:.2660452448933134,y:.5751855402842553},{x:.26378710895719626,y:.5717557490749442},{x:.2614825647025443,y:.5683569667306586},{x:.2613631167426894,y:.5680740454822678},{x:.2611942394440265,y:.5678175445935736},{x:.2596486120282045,y:.5640131153936881},{x:.2580514184872148,y:.5602300454183813},{x:.25798946088386876,y:.5599292572814941},{x:.2578738693561186,y:.559644738658875},{x:.150512,y:.196859029989096},{x:.0431501306438814,y:.559644738658875},{x:.039829760555973516,y:.5678175445935736},{x:.034978755106686646,y:.5751855402842553},{x:.028783535714961644,y:.5814655777885471},{x:.021482181187703456,y:.5864163187870445},{x:.01335527848474783,y:.5898475090795828},{x:.0047151399193498065,y:.5916272899474536},{x:-.004106198828867862,y:.5916872654100169},{x:-.01276973865887501,y:.5900251306438814},{x:-.020942544593573535,y:.5867047605559735},{x:-.028310540284255312,y:.5818537551066867},{x:-.034590577788547086,y:.5756585357149616},{x:-.03954131878704451,y:.5683571811877035},{x:-.04297250907958286,y:.5602302784847478},{x:-.04475228994745356,y:.5515901399193498},{x:-.04481226541001698,y:.5427688011711321}]],x:[[{x:-.007882248997940308,y:.03911618267902263},{x:-.007180671607209664,y:.030322582532795114},{x:-.0047770285451087455,y:.021834819906700376},{x:-.0007636904665355299,y:.013979074758467071},{x:.004705112296856322,y:.007057238968589209},{x:.011419216721809594,y:.001335314804661543},{x:.019120603540586492,y:-.0029668073965882433},{x:.02751331277672888,y:-.0056837994916240225},{x:.036274817320977384,y:-.006711248997940296},{x:.04506841746720488,y:-.006009671607209652},{x:.05355618009329963,y:-.003606028545108733},{x:.061411925241532925,y:.0004073095334644686},{x:.0683337610314108,y:.005876112296856327},{x:.3010265,y:.23008742701759316},{x:.5337192389685892,y:.005876112296856327},{x:.540641074758467,y:.0004073095334644686},{x:.5484968199067003,y:-.003606028545108733},{x:.556984582532795,y:-.006009671607209652},{x:.5657781826790226,y:-.006711248997940296},{x:.5745396872232711,y:-.0056837994916240225},{x:.5829323964594135,y:-.0029668073965882433},{x:.5906337832781904,y:.001335314804661536},{x:.5973478877031436,y:.007057238968589213},{x:.6028166904665355,y:.013979074758467089},{x:.6068300285451087,y:.021834819906700383},{x:.6092336716072096,y:.030322582532795128},{x:.6099352489979403,y:.03911618267902263},{x:.608907799491624,y:.047877687223271126},{x:.6061908073965883,y:.05627039645941352},{x:.6018886851953384,y:.0639717832781904},{x:.5961667610314108,y:.07068588770314368},{x:.36588095484811606,y:.292578},{x:.5961667610314108,y:.5144701122968564},{x:.6018886851953384,y:.5211842167218096},{x:.6061908073965883,y:.5288856035405864},{x:.608907799491624,y:.5372783127767289},{x:.6099352489979403,y:.5460398173209774},{x:.6092336716072096,y:.5548334174672048},{x:.6068300285451087,y:.5633211800932996},{x:.6028166904665355,y:.571176925241533},{x:.5973478877031436,y:.5780987610314108},{x:.5906337832781904,y:.5838206851953385},{x:.5829323964594135,y:.5881228073965883},{x:.5745396872232711,y:.590839799491624},{x:.5657781826790226,y:.5918672489979403},{x:.556984582532795,y:.5911656716072097},{x:.5484968199067003,y:.5887620285451087},{x:.540641074758467,y:.5847486904665355},{x:.5337192389685892,y:.5792798877031436},{x:.3010265,y:.35506857298240685},{x:.0683337610314108,y:.5792798877031436},{x:.06141192524153289,y:.5847486904665355},{x:.05355618009329961,y:.5887620285451087},{x:.0450684174672049,y:.5911656716072097},{x:.03627481732097735,y:.5918672489979403},{x:.02751331277672888,y:.590839799491624},{x:.01912060354058648,y:.5881228073965883},{x:.011419216721809584,y:.5838206851953385},{x:.004705112296856315,y:.5780987610314108},{x:-.0007636904665355368,y:.571176925241533},{x:-.004777028545108752,y:.5633211800932996},{x:-.007180671607209664,y:.5548334174672048},{x:-.007882248997940308,y:.5460398173209774},{x:-.006854799491624035,y:.5372783127767289},{x:-.004137807396588256,y:.5288856035405864},{x:.0001643148046615306,y:.5211842167218096},{x:.005886238968589197,y:.5144701122968564},{x:.23617204515188386,y:.292578},{x:.005886238968589197,y:.07068588770314368},{x:.00016431480466150977,y:.0639717832781904},{x:-.004137807396588256,y:.05627039645941351},{x:-.006854799491624035,y:.047877687223271126},{x:-.007882248997940308,y:.03911618267902263}]],y:[[{x:-7800000000000168e-20,y:-.15516599999999992},{x:.0007866623818546317,y:-.16394506449072568},{x:.003347421036992093,y:-.17238675445642895},{x:.007505867446385456,y:-.180166660485882},{x:.013102194846605353,y:-.18698580515339455},{x:.0199213395141179,y:-.19258213255361445},{x:.02770124554357093,y:-.1967405789630078},{x:.03614293550927421,y:-.19930133761814528},{x:.044922,y:-.2001659999999999},{x:.084618,y:-.2001659999999999},{x:.08470326921416556,y:-.20015760171543356},{x:.08478856964894584,y:-.200165676732115},{x:.08909199801123496,y:-.19972534965725622},{x:.09339706449072577,y:-.19930133761814528},{x:.0934790568568106,y:-.19927646550581232},{x:.09356429362525961,y:-.1992677440740231},{x:.09769912926743524,y:-.1979963205354665},{x:.10183875445642904,y:-.1967405789630078},{x:.1019143190537861,y:-.19670018884423682},{x:.10199621655469396,y:-.19667500612370953},{x:.18074721655469395,y:-.16370500612370958},{x:.18295470197399702,y:-.16251430076809983},{x:.18525522528778574,y:-.16151511930158513},{x:.18682754729843723,y:-.16042530954354395},{x:.18851130436774752,y:-.15951710034658062},{x:.19044407848245243,y:-.15791861501920362},{x:.19250546725178602,y:-.1564898227103016},{x:.27125546725178606,y:-.08958282271030155},{x:.27347158712358693,y:-.0872898341236823},{x:.27580944257935097,y:-.08512109812948883},{x:.27653091968085064,y:-.08412438503144627},{x:.2773860111192193,y:-.08323963374445845},{x:.2791122089873479,y:-.0805583607511536},{x:.2809820438025964,y:-.07797520343727593},{x:.35909504380259644,y:.055837796562724036},{x:.35921507445013207,y:.05609937330868571},{x:.35938084670619436,y:.05633463764830328},{x:.359814044874128,y:.05731131476590327},{x:.3603874218559792,y:.0582128676935936},{x:.5972854218559792,y:.5265638676935935},{x:.6004763520268956,y:.5347880745861305},{x:.6020015061983327,y:.5434767752438966},{x:.6018022735507984,y:.5522960677732933},{x:.5998863104832066,y:.5609070317083322},{x:.5963272463817603,y:.568978752534074},{x:.591261854083932,y:.5762010385458585},{x:.5848847937750224,y:.5822963413425576},{x:.5774411323064065,y:.5870304218559792},{x:.5692169254138695,y:.5902213520268956},{x:.5605282247561034,y:.5917465061983327},{x:.5517089322267067,y:.5915472735507984},{x:.5430979682916678,y:.5896313104832066},{x:.5350262474659261,y:.5860722463817603},{x:.5278039614541415,y:.5810068540839319},{x:.5217086586574424,y:.5746297937750224},{x:.5169745781440208,y:.5671861323064065},{x:.3203411783046204,y:.17843886787959407},{x:.12481771439881506,y:.5670983271806026},{x:.12009991274687032,y:.5745523168465348},{x:.11401856108654926,y:.5809426827476728},{x:.10680736235169674,y:.5860238467061943},{x:.09874343886560628,y:.5896005424407229},{x:.09013668268554793,y:.5915353195400148},{x:.08131784662479694,y:.5917538256051798},{x:.0726258336075076,y:.5902476635706729},{x:.06439467281939737,y:.5870747143988151},{x:.05694068315346515,y:.5823569127468703},{x:.05055031725232718,y:.5762755610865493},{x:.04546915329380567,y:.5690643623516968},{x:.041892457559277035,y:.5610004388656062},{x:.039957680459985136,y:.5523936826855479},{x:.039739174394820276,y:.5435748466247969},{x:.0412453364293271,y:.5348828336075077},{x:.04441828560118493,y:.5266516728193974},{x:.26905653043412125,y:.0801181620528446},{x:.20712852539925722,y:-.025968816269973185},{x:.1395520619925953,y:-.08338263769409424},{x:.07557825049874085,y:-.11016599999999992},{x:.044922,y:-.11016599999999992},{x:.03614293550927422,y:-.11103066238185455},{x:.02770124554357096,y:-.11359142103699202},{x:.01992133951411791,y:-.11774986744638538},{x:.01310219484660536,y:-.12334619484660528},{x:.007505867446385456,y:-.13016533951411782},{x:.003347421036992093,y:-.13794524554357088},{x:.0007866623818546317,y:-.14638693550927412},{x:-7800000000000168e-20,y:-.15516599999999992}]],z:[[{x:.051680000000000004,y:.038348999999999966},{x:.05192127447228559,y:.035899299172703986},{x:.05194879067317478,y:.033437899088824954},{x:.05235257576103353,y:.03152022369965088},{x:.05254466238185464,y:.029569935509274177},{x:.053259213756049764,y:.02721437531096308},{x:.05376639657582897,y:.024805638484003446},{x:.054536542955643516,y:.023003585252525667},{x:.0551054210369921,y:.02112824554357092},{x:.05626578950451143,y:.018957348831652537},{x:.05723314819184797,y:.01669384166703705},{x:.05834005957014514,y:.015076662488338128},{x:.05926386744638546,y:.01334833951411787},{x:.060825460697764414,y:.011445532631778232},{x:.062215820200804926,y:.009414240440453706},{x:.0636169585940798,y:.00804408260344652},{x:.06486019484660537,y:.0065291948466053296},{x:.06676300172894496,y:.004967601595226417},{x:.06852293131171022,y:.0032465857969436324},{x:.07016445175727676,y:.0021761036989109733},{x:.07167933951411792,y:.0009328674463854256},{x:.07385023622603624,y:-.00022750102113387976},{x:.07591210278164046,y:-.0015721027544036703},{x:.07773092256935071,y:-.0023017710867676167},{x:.07945924554357096,y:-.003225578963007937},{x:.08181480574188199,y:-.003940130337203038},{x:.08409937289490133,y:-.004856645714911602},{x:.08602559580031956,y:-.00521745953679684},{x:.08790093550927423,y:-.0057863376181453985},{x:.09035063633657014,y:-.00602761209043098},{x:.09277010945251417,y:-.006480819940600742},{x:.09472971180962335,y:-.006458913379178931},{x:.09668,y:-.006651000000000032},{x:.505373,y:-.006651000000000032},{x:.5141520644907257,y:-.0057863376181453985},{x:.522593754456429,y:-.003225578963007937},{x:.5303736604858821,y:.0009328674463854256},{x:.5371928051533946,y:.0065291948466053296},{x:.5427891325536145,y:.013348339514117874},{x:.5469475789630078,y:.021128245543570928},{x:.5495083376181453,y:.029569935509274198},{x:.550373,y:.038348999999999966},{x:.5495083376181453,y:.047128064490725735},{x:.5469475789630078,y:.055569754456429005},{x:.5427891325536145,y:.06334966048588206},{x:.5371928051533946,y:.0701688051533946},{x:.5303736604858821,y:.0757651325536145},{x:.522593754456429,y:.07992357896300786},{x:.5141520644907257,y:.08248433761814533},{x:.505373,y:.08334899999999996},{x:.190464663126857,y:.08334899999999996},{x:.5404754142030563,y:.5196949313117102},{x:.5415458963010891,y:.5213364517572769},{x:.5427891325536145,y:.5228513395141179},{x:.5439495010211337,y:.525022236226036},{x:.5452941027544036,y:.5270841027816404},{x:.5460237710867677,y:.5289029225693511},{x:.5469475789630078,y:.530631245543571},{x:.5476621303372028,y:.5329868057418816},{x:.5485786457149116,y:.5352713728949013},{x:.5489394595367969,y:.53719759580032},{x:.5495083376181453,y:.5390729355092743},{x:.5497496120904308,y:.5415226363365697},{x:.5502028199406007,y:.5439421094525142},{x:.5501809133791788,y:.5459017118096235},{x:.550373,y:.547852},{x:.5501317255277144,y:.5503017008272966},{x:.5501042093268251,y:.552763100911175},{x:.5497004242389665,y:.5546807763003486},{x:.5495083376181453,y:.5566310644907257},{x:.5487937862439503,y:.5589866246890365},{x:.548286603424171,y:.5613953615159966},{x:.5475164570443563,y:.5631974147474748},{x:.5469475789630078,y:.565072754456429},{x:.5457872104954887,y:.567243651168347},{x:.544819851808152,y:.569507158332963},{x:.5437129404298549,y:.5711243375116617},{x:.5427891325536145,y:.5728526604858821},{x:.5412275393022352,y:.5747554673682221},{x:.539837179799195,y:.5767867595595463},{x:.5384360414059206,y:.578156917396553},{x:.5371928051533946,y:.5796718051533947},{x:.5352899982710546,y:.5812333984047738},{x:.5335300686882897,y:.5829544142030564},{x:.5318885482427235,y:.5840248963010888},{x:.5303736604858821,y:.5852681325536145},{x:.5282027637739638,y:.5864285010211338},{x:.5261408972183595,y:.5877731027544036},{x:.5243220774306487,y:.5885027710867679},{x:.522593754456429,y:.5894265789630079},{x:.5202381942581186,y:.5901411303372028},{x:.5179536271050986,y:.5910576457149116},{x:.5160274041996802,y:.5914184595367968},{x:.5141520644907257,y:.5919873376181454},{x:.5117023636634302,y:.5922286120904309},{x:.5092828905474858,y:.5926818199406008},{x:.5073232881903766,y:.5926599133791789},{x:.505373,y:.592852},{x:.09668,y:.592852},{x:.08790093550927423,y:.5919873376181454},{x:.07945924554357094,y:.5894265789630079},{x:.07167933951411792,y:.5852681325536145},{x:.06486019484660537,y:.5796718051533947},{x:.05926386744638546,y:.5728526604858821},{x:.0551054210369921,y:.565072754456429},{x:.05254466238185464,y:.5566310644907257},{x:.051680000000000004,y:.547852},{x:.05254466238185464,y:.5390729355092743},{x:.0551054210369921,y:.530631245543571},{x:.05926386744638546,y:.5228513395141179},{x:.06486019484660537,y:.5160321948466053},{x:.07167933951411792,y:.5104358674463855},{x:.07945924554357096,y:.5062774210369921},{x:.08790093550927423,y:.5037166623818546},{x:.09668,y:.502852},{x:.41158833687314295,y:.502852},{x:.06157758579694366,y:.06650606868828973},{x:.06050710369891106,y:.06486454824272328},{x:.05926386744638546,y:.06334966048588206},{x:.05810349897886612,y:.06117876377396365},{x:.05675889724559635,y:.059116897218359485},{x:.05602922891323242,y:.05729807743064926},{x:.0551054210369921,y:.055569754456429005},{x:.054390869662797,y:.05321419425811798},{x:.053474354285088434,y:.050929627105098636},{x:.0531135404632032,y:.04900340419968042},{x:.05254466238185464,y:.047128064490725735},{x:.05230338790956906,y:.04467836366342984},{x:.051850180059399294,y:.04225889054748581},{x:.05187208662082111,y:.04029928819037662},{x:.051680000000000004,y:.038348999999999966}]]},vci=Qci;function khe(t){const{ctx:e,points:n,fill:o,stroke:i,strokeWidth:r=1,minStrokePx:s,realToCanvasMat:a,closePath:A=!1}=t;if(n.length<2)return;e.beginPath();const c=n.map(h=>Bn(a,[h.x,h.y])),l=c[0];if(!l)return;const[u,g]=l;e.moveTo(u,g);for(let h=1;h<c.length;h++){const d=c[h];if(!d)continue;const[p,m]=d;e.lineTo(p,m)}if(A&&e.closePath(),o&&(e.fillStyle=o,e.fill()),i){const h=r*Math.abs(a.a),d=s===void 0?h:Math.max(h,s);e.strokeStyle=i,e.lineWidth=d,e.stroke()}}function Bp(t){const{ctx:e,center:n,width:o,height:i,fill:r,realToCanvasMat:s,borderRadius:a=0,ccwRotationDegrees:A=0,stroke:c,strokeWidth:l,isStrokeDashed:u=!1,lineJoin:g}=t,[h,d]=Bn(s,[n.x,n.y]),p=o*Math.abs(s.a),m=i*Math.abs(s.a),_=a*Math.abs(s.a),f=l?l*Math.abs(s.a):void 0;if(e.save(),e.translate(h,d),A!==0&&e.rotate(-A*(Math.PI/180)),e.beginPath(),_>0){const I=-p/2,C=-m/2,y=Math.min(_,p/2,m/2);e.moveTo(I+y,C),e.lineTo(I+p-y,C),e.arcTo(I+p,C,I+p,C+y,y),e.lineTo(I+p,C+m-y),e.arcTo(I+p,C+m,I+p-y,C+m,y),e.lineTo(I+y,C+m),e.arcTo(I,C+m,I,C+m-y,y),e.lineTo(I,C+y),e.arcTo(I,C,I+y,C,y)}else e.rect(-p/2,-m/2,p,m);r&&(e.fillStyle=r,e.fill()),c&&f&&(u?e.setLineDash([f*3,f*2]):e.setLineDash([]),g&&(e.lineJoin=g),e.strokeStyle=c,e.lineWidth=f,e.stroke()),e.restore()}function wci(t){const{ctx:e,board:n,realToCanvasMat:o,colorMap:i,drawBoardMaterial:r,minBoardOutlineStrokePx:s}=t,{width:a,height:A,center:c,outline:l}=n;if(l&&Array.isArray(l)&&l.length>=3){r&&khe({ctx:e,points:l.map(u=>({x:u.x,y:u.y})),fill:i.substrate,realToCanvasMat:o,closePath:!0}),khe({ctx:e,points:l.map(u=>({x:u.x,y:u.y})),stroke:i.boardOutline,strokeWidth:.1,realToCanvasMat:o,closePath:!0,minStrokePx:s});return}if(a!==void 0&&A!==void 0&&c){r&&Bp({ctx:e,center:c,width:a,height:A,fill:i.substrate,realToCanvasMat:o});const u=a/2,g=A/2,h=[{x:c.x-u,y:c.y-g},{x:c.x+u,y:c.y-g},{x:c.x+u,y:c.y+g},{x:c.x-u,y:c.y+g}];khe({ctx:e,points:h,stroke:i.boardOutline,strokeWidth:.1,realToCanvasMat:o,closePath:!0,minStrokePx:s})}}function Pci({startX:t,startY:e,endX:n,endY:o,bulge:i}){if(Math.abs(i)<1e-10)return null;const r=n-t,s=o-e,a=Math.hypot(r,s);if(a<1e-10)return null;const A=Math.abs(i)*(a/2),c=a/2,l=(A*A+c*c)/(2*A),u=l-A,g=(t+n)/2,h=(e+o)/2,d=-s/a,p=r/a,m=i>0?-1:1;return{centerX:g+m*d*u,centerY:h+m*p*u,radius:l}}function $Ke({ctx:t,realStartX:e,realStartY:n,realEndX:o,realEndY:i,bulge:r,realToCanvasMat:s}){if(Math.abs(r)<1e-10){const[C,y]=Bn(s,[o,i]);t.lineTo(C,y);return}const a=Pci({startX:e,startY:n,endX:o,endY:i,bulge:r});if(!a){const[C,y]=Bn(s,[o,i]);t.lineTo(C,y);return}const[A,c]=Bn(s,[e,n]),[l,u]=Bn(s,[o,i]),[g,h]=Bn(s,[a.centerX,a.centerY]),d=Math.hypot(A-g,c-h),p=Math.atan2(c-h,A-g),m=Math.atan2(u-h,l-g),f=s.a*s.d-s.b*s.c<0,I=r>0?!f:f;t.arc(g,h,d,p,m,I)}function hon({ctx:t,ring:e,realToCanvasMat:n}){if(e.vertices.length<2)return;if(e.vertices.length===2){const[s,a]=e.vertices;if(s&&a&&Math.abs((s.bulge??0)-1)<1e-10&&Math.abs((a.bulge??0)-1)<1e-10){const[A,c]=Bn(n,[s.x,s.y]);t.moveTo(A,c),$Ke({ctx:t,realStartX:s.x,realStartY:s.y,realEndX:a.x,realEndY:a.y,bulge:1,realToCanvasMat:n}),$Ke({ctx:t,realStartX:a.x,realStartY:a.y,realEndX:s.x,realEndY:s.y,bulge:1,realToCanvasMat:n});return}}const o=e.vertices[0];if(!o)return;const[i,r]=Bn(n,[o.x,o.y]);t.moveTo(i,r);for(let s=0;s<e.vertices.length;s++){const a=e.vertices[s],A=e.vertices[(s+1)%e.vertices.length];!a||!A||$Ke({ctx:t,realStartX:a.x,realStartY:a.y,realEndX:A.x,realEndY:A.y,bulge:a.bulge??0,realToCanvasMat:n})}}function pon({ctx:t,shape:e,realToCanvasMat:n}){hon({ctx:t,ring:e.outer_ring,realToCanvasMat:n});for(const o of e.inner_rings??[])hon({ctx:t,ring:o,realToCanvasMat:n})}function Mci(t,e){return e.copper[t]??e.copper.top}function qKe(t){const{ctx:e,pour:n,realToCanvasMat:o}=t;if(n.shape==="rect"){const i=n.width/2,r=n.height/2,s=(n.rotation??0)*Math.PI/180,a=Math.cos(s),A=Math.sin(s),c=[{x:-i,y:-r},{x:i,y:-r},{x:i,y:r},{x:-i,y:r}].map(u=>Bn(o,[n.center.x+u.x*a-u.y*A,n.center.y+u.x*A+u.y*a])),l=c[0];if(!l)return;e.moveTo(l[0],l[1]);for(let u=1;u<c.length;u++){const g=c[u];g&&e.lineTo(g[0],g[1])}e.closePath();return}if(n.shape==="polygon"){const i=n.points[0];if(!i)return;const[r,s]=Bn(o,[i.x,i.y]);e.moveTo(r,s);for(let a=1;a<n.points.length;a++){const A=n.points[a];if(!A)continue;const[c,l]=Bn(o,[A.x,A.y]);e.lineTo(c,l)}e.closePath();return}n.shape==="brep"&&pon({ctx:e,shape:n.brep_shape,realToCanvasMat:o})}function Dci(t){const{ctx:e,pour:n,realToCanvasMat:o,colorMap:i}=t,r=Mci(n.layer,i),s=.5;e.save(),e.globalAlpha=s,e.beginPath(),qKe({ctx:e,pour:n,realToCanvasMat:o}),e.fillStyle=r,e.fill(n.shape==="brep"?"evenodd":"nonzero"),e.restore()}function Nci(t,e){if(e.length<3)return;const n=e[0];if(n){t.moveTo(n.x,n.y);for(let o=1;o<e.length;o++){const i=e[o];i&&t.lineTo(i.x,i.y)}t.closePath()}}var Rci=t=>Qho[t]??(t===" "?Gv.spaceWidthRatio:Gv.glyphWidthRatio);function XKe(t,e,n){const o=Rci(t),i=e?Gv.letterSpacingRatio:0,r=e?vho[t]?.[e]??0:0;return n*(o+i+r)}function Tci(t,e){const n=e*Gv.glyphWidthRatio,o=e*Gv.letterSpacingRatio,i=e*Gv.spaceWidthRatio,r=e*Gv.strokeWidthRatio,s=e*Gv.lineHeightRatio,a=t.replace(/\\n/g,`
`).split(`
`),A=a.map(u=>{const g=Array.from(u);return g.reduce((h,d,p)=>h+XKe(d,g[p+1],e),0)}),c=A.reduce((u,g)=>Math.max(u,g),0),l=a.length>1?e+(a.length-1)*s:e;return{width:c,height:l,glyphWidth:n,letterSpacing:o,spaceWidth:i,strokeWidth:r,lineHeight:s,lines:a,lineWidths:A}}function kci(t){const{line:e,fontSize:n,startX:o,startY:i}=t,r=n,s=n,a=Array.from(e),A=[];let c=o+t.layout.strokeWidth/2;return a.forEach((l,u)=>{const g=vci[l];if(g?.length){const h=[];for(const d of g){const p=d.map(m=>({x:c+m.x*s,y:i+(1-m.y)*r}));p.length>=3&&h.push(p)}h.length>0&&A.push(h)}c+=XKe(l,a[u+1],n)}),A}function Fci(t){let e=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const r of t)for(const s of r)e=Math.min(e,s.x),n=Math.min(n,s.y),o=Math.max(o,s.x),i=Math.max(i,s.y);return e===Number.POSITIVE_INFINITY||n===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY||i===Number.NEGATIVE_INFINITY?null:{minX:e,minY:n,maxX:o,maxY:i}}function Lci(t,e,n){const o=Oci(t,e),i=Gci(o,e,n),r=Fci(i.flat()),s=Yci(t,e,r);return{bounds:r?zci(r,s):null,glyphGroups:Vci(i,s),linePlacements:o.map(({line:a,startX:A,startY:c})=>({line:a,startX:A+s.x,startY:c+s.y})),startOffset:s}}function Hci(t,e){const n=e.width+e.strokeWidth,o=e.height+e.strokeWidth;let i=0,r=0;return t==="center"||t==="top_center"||t==="bottom_center"?i=-n/2:t==="top_left"||t==="bottom_left"||t==="center_left"?i=0:t==="top_right"||t==="bottom_right"||t==="center_right"?i=-n:(t==="top_center"||t==="bottom_center")&&(i=-n/2),t==="center"||t==="center_left"||t==="center_right"?r=-o/2:t==="top_left"||t==="top_right"||t==="top_center"?r=0:(t==="bottom_left"||t==="bottom_right"||t==="bottom_center")&&(r=-o),{x:i,y:r}}function Oci(t,e){return e.lines.map((n,o)=>({line:n,startX:Jci({alignment:t,lineWidth:e.lineWidths[o],maxWidth:e.width,strokeWidth:e.strokeWidth}),startY:o*e.lineHeight}))}function Gci(t,e,n){return t.flatMap(({line:o,startX:i,startY:r})=>kci({line:o,fontSize:n,startX:i,startY:r,layout:e}))}function Yci(t,e,n){return n?{x:-Uci(t,n),y:-Kci(t,n)}:Hci(t,e)}function Uci(t,e){return t==="top_left"||t==="bottom_left"||t==="center_left"?e.minX:t==="top_right"||t==="bottom_right"||t==="center_right"?e.maxX:(e.minX+e.maxX)/2}function Kci(t,e){return t==="top_left"||t==="top_right"||t==="top_center"?e.minY:t==="bottom_left"||t==="bottom_right"||t==="bottom_center"?e.maxY:(e.minY+e.maxY)/2}function Vci(t,e){return e.x===0&&e.y===0?t:t.map(n=>n.map(o=>o.map(i=>({x:i.x+e.x,y:i.y+e.y}))))}function zci(t,e){return{minX:t.minX+e.x,minY:t.minY+e.y,maxX:t.maxX+e.x,maxY:t.maxY+e.y}}function Jci(t){const{alignment:e,lineWidth:n,maxWidth:o,strokeWidth:i}=t,r=n+i,s=o+i;return e==="top_left"||e==="bottom_left"||e==="center_left"?0:e==="top_right"||e==="bottom_right"||e==="center_right"?s-r:(s-r)/2}var Wci=t=>Sho[t];function jci(t){const{ctx:e,line:n,fontSize:o,startX:i,startY:r,layout:s}=t,{strokeWidth:a}=s,A=o,c=o,l=r,u=Array.from(n);let g=i+a/2;u.forEach((h,d)=>{const p=Wci(h);if(p?.length){e.beginPath();for(const m of p){const _=g+m.x1*c,f=l+(1-m.y1)*A,I=g+m.x2*c,C=l+(1-m.y2)*A;e.moveTo(_,f),e.lineTo(I,C)}e.stroke()}g+=XKe(h,u[d+1],o)})}var $ci={left:.2,right:.2,top:.2,bottom:.2};function SY(t){const{ctx:e,text:n,x:o,y:i,fontSize:r,color:s,realToCanvasMat:a,anchorAlignment:A,rotation:c=0,mirrorX:l=!1,knockout:u=!1,knockoutPadding:g={}}=t;if(!n)return;const[h,d]=Bn(a,[o,i]),p=Math.abs(a.a),m=r*p,_=Tci(n,m),f=Lci(A,_,m);if(e.save(),e.translate(h,d),c!==0&&e.rotate(-c*(Math.PI/180)),l&&e.scale(-1,1),u){const I={...$ci,...g},C=I.left*p,y=I.right*p,x=I.top*p,E=I.bottom*p,B=f.bounds;if(!B){e.restore();return}const S=B.minX-C,Q=B.minY-x,w=B.maxX-B.minX+C+y,M=B.maxY-B.minY+x+E;e.fillStyle=s,e.beginPath(),e.rect(S,Q,w,M);for(const k of f.glyphGroups)for(const R of k)Nci(e,R);e.fill("evenodd")}else e.strokeStyle=s;e.lineWidth=_.strokeWidth,e.lineCap="round",e.lineJoin="round",u||f.linePlacements.forEach(({line:I,startX:C,startY:y})=>{jci({ctx:e,line:I,fontSize:m,startX:C,startY:y,layout:_})}),e.restore()}function qci(t){return t||"center"}function Xci(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=n.text??"";r&&SY({ctx:e,text:r,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:n.font_size??1,color:i.copper[n.layer]??i.copper.top,realToCanvasMat:o,anchorAlignment:qci(n.anchor_alignment),rotation:n.ccw_rotation??0,mirrorX:n.is_mirrored??n.layer==="bottom",knockout:n.is_knockout,knockoutPadding:n.is_knockout?n.knockout_padding:void 0})}function dm(t){const{ctx:e,center:n,radius:o,fill:i,realToCanvasMat:r,stroke:s,strokeWidth:a,isStrokeDashed:A=!1}=t,[c,l]=Bn(r,[n.x,n.y]),u=o*Math.abs(r.a),g=a?a*Math.abs(r.a):void 0;e.beginPath(),e.arc(c,l,u,0,Math.PI*2),i&&(e.fillStyle=i,e.fill()),s&&g&&(A?e.setLineDash([g*3,g*2]):e.setLineDash([]),e.strokeStyle=s,e.lineWidth=g,e.stroke())}function Zci(t,e){return t==="bottom"?e.courtyard.bottom:e.courtyard.top}function eli(t){const{ctx:e,circle:n,realToCanvasMat:o,colorMap:i}=t;dm({ctx:e,center:n.center,radius:n.radius,stroke:Zci(n.layer,i),strokeWidth:.05,realToCanvasMat:o})}function tli(t,e){return t==="bottom"?e.courtyard.bottom:e.courtyard.top}function nli(t){const{ctx:e,outline:n,realToCanvasMat:o,colorMap:i}=t;if(!n.outline||n.outline.length<2)return;e.beginPath();const r=Bn(o,n.outline[0]);e.moveTo(r.x,r.y);for(let s=1;s<n.outline.length;s++){const a=Bn(o,n.outline[s]);e.lineTo(a.x,a.y)}e.closePath(),e.lineWidth=.05*Math.abs(o.a),e.strokeStyle=tli(n.layer,i),e.lineJoin="round",e.stroke()}function oli(t,e){return t==="bottom"?e.courtyard.bottom:e.courtyard.top}function ili(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t;Bp({ctx:e,center:n.center,width:n.width,height:n.height,stroke:oli(n.layer,i),strokeWidth:.05,realToCanvasMat:o,ccwRotationDegrees:n.ccw_rotation??0,lineJoin:"round"})}function sP(t){const{ctx:e,points:n,fill:o,realToCanvasMat:i}=t;if(n.length<3)return;e.beginPath();const r=n.map(c=>Bn(i,[c.x,c.y])),s=r[0];if(!s)return;const[a,A]=s;e.moveTo(a,A);for(let c=1;c<r.length;c++){const l=r[c];if(!l)continue;const[u,g]=l;e.lineTo(u,g)}e.closePath(),e.fillStyle=o,e.fill()}function rli(t){const{ctx:e,cutout:n,realToCanvasMat:o,colorMap:i}=t;if(n.shape==="rect"){Bp({ctx:e,center:n.center,width:n.width,height:n.height,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:n.rotation??0,borderRadius:n.corner_radius??0});return}if(n.shape==="circle"){dm({ctx:e,center:n.center,radius:n.radius,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="polygon"){n.points&&n.points.length>=3&&sP({ctx:e,points:n.points,fill:i.drill,realToCanvasMat:o});return}}var mon="#ff4d4d",sli={a:1,b:0,c:0,d:1,e:0,f:0};function ali(t){const e=Math.min(t.canvas.width,t.canvas.height),n=Math.max(1,Math.min(2,e*.002)),o=Math.max(10,Math.min(18,e*.02));return{fontSize:o,strokeWidth:n,dashLength:n*4,labelGap:o*.35,pointRadius:n*3}}function ZKe({ctx:t,label:e,x:n,y:o,style:i,align:r="left"}){e&&(t.setLineDash([]),SY({ctx:t,text:e,x:n,y:o,fontSize:i.fontSize,color:mon,realToCanvasMat:sli,anchorAlignment:r==="center"?"bottom_center":"bottom_left"}))}function Ali({ctx:t,debugObject:e,realToCanvasMat:n,labelStackIndex:o=0}){const i=ali(t);if(t.save(),t.strokeStyle=mon,t.lineWidth=i.strokeWidth,t.setLineDash([i.dashLength,i.dashLength]),e.shape==="rect"){const a=Bn(n,[e.center.x-e.size.width/2,e.center.y-e.size.height/2]),A=Bn(n,[e.center.x+e.size.width/2,e.center.y+e.size.height/2]),c=Math.min(a[0],A[0]),l=Math.min(a[1],A[1]),u=Math.abs(A[0]-a[0]),g=Math.abs(A[1]-a[1]);t.beginPath(),t.rect(c,l,u,g),t.stroke(),ZKe({ctx:t,label:e.label,x:c,y:l-i.labelGap-o*(i.fontSize+i.labelGap),style:i}),t.restore();return}if(e.shape==="line"){const[a,A]=Bn(n,[e.start.x,e.start.y]),[c,l]=Bn(n,[e.end.x,e.end.y]);t.beginPath(),t.moveTo(a,A),t.lineTo(c,l),t.stroke(),ZKe({ctx:t,label:e.label,x:(a+c)/2,y:(A+l)/2-i.labelGap,style:i,align:"center"}),t.restore();return}const[r,s]=Bn(n,[e.center.x,e.center.y]);t.beginPath(),t.arc(r,s,i.pointRadius,0,Math.PI*2),t.stroke(),ZKe({ctx:t,label:e.label,x:r+i.pointRadius+i.labelGap,y:s-i.pointRadius,style:i}),t.restore()}var cli=1.5,lli=.6,uli=.3;function eVe(t){const e=Math.hypot(t.x,t.y)||1;return{x:t.x/e,y:t.y/e}}function _on(t){const{ctx:e,from:n,to:o,realToCanvasMat:i,color:r,fontSize:s,arrowSize:a=1,strokeWidth:A,text:c,textRotation:l,offset:u}=t,g=eVe({x:o.x-n.x,y:o.y-n.y}),h={x:-g.y,y:g.x},d=u?.direction&&typeof u.direction.x=="number"&&typeof u.direction.y=="number",p=d?eVe(u.direction):{x:0,y:0},m=u?.distance??0,_={x:p.x*m,y:p.y*m},f={x:n.x+_.x,y:n.y+_.y},I={x:o.x+_.x,y:o.y+_.y},C={x:f.x+g.x*a,y:f.y+g.y*a},y={x:I.x-g.x*a,y:I.y-g.y*a};Math.abs(i.a);const x=A??a/5,E=r||"rgba(255,255,255,0.5)",B=d&&(Math.abs(p.x)>Number.EPSILON||Math.abs(p.y)>Number.EPSILON)?p:h,S=m+.5,Q=[],w=R=>{const F={x:R.x+B.x*S,y:R.y+B.y*S},O=x/2,U={x:-B.y,y:B.x};return[{x:R.x+U.x*O,y:R.y+U.y*O},{x:R.x-U.x*O,y:R.y-U.y*O},{x:F.x-U.x*O,y:F.y-U.y*O},{x:F.x+U.x*O,y:F.y+U.y*O}]};Q.push(f),Q.push({x:C.x+h.x*(a/2),y:C.y+h.y*(a/2)}),Q.push({x:C.x+h.x*(x/2),y:C.y+h.y*(x/2)}),Q.push({x:y.x+h.x*(x/2),y:y.y+h.y*(x/2)}),Q.push({x:y.x+h.x*(a/2),y:y.y+h.y*(a/2)}),Q.push(I),Q.push({x:y.x-h.x*(a/2),y:y.y-h.y*(a/2)}),Q.push({x:y.x-h.x*(x/2),y:y.y-h.y*(x/2)}),Q.push({x:C.x-h.x*(x/2),y:C.y-h.y*(x/2)}),Q.push({x:C.x-h.x*(a/2),y:C.y-h.y*(a/2)}),Q.push(f);const M=Q[0],k=R=>{const F=w(R);Q.push(M),Q.push(F[0]),Q.push(...F),Q.push(F[0]),Q.push(M)};if(k(n),k(o),sP({ctx:e,points:Q,fill:E,realToCanvasMat:i}),c){const R={x:(n.x+o.x)/2+_.x,y:(n.y+o.y)/2+_.y},[F,O]=Bn(i,[f.x,f.y]),[U,Y]=Bn(i,[I.x,I.y]),W=eVe({x:U-F,y:Y-O});let te=Math.atan2(W.y,W.x)*180/Math.PI;(te>90||te<-90)&&(te+=180);const j=typeof l=="number"&&Number.isFinite(l)?te-l:te;let J=0;if(c&&typeof l=="number"&&Number.isFinite(l)){const ne=c.length*s*lli,le=s,ge=l*Math.PI/180,_e=Math.abs(Math.sin(ge)),ue=Math.abs(Math.cos(ge)),fe=ne/2,pe=le/2;J=fe*_e+pe*ue+s*uli}const oe=a*cli+J,ie={x:R.x+h.x*oe,y:R.y+h.y*oe};SY({ctx:e,text:c,x:ie.x,y:ie.y,fontSize:s,color:E,realToCanvasMat:i,anchorAlignment:"center",rotation:-j})}}function gli(t){const{ctx:e,pcbFabricationNoteDimension:n,realToCanvasMat:o,colorMap:i}=t,r=n.color??i.fabricationNote;_on({ctx:e,from:n.from,to:n.to,realToCanvasMat:o,color:r,fontSize:n.font_size??1,arrowSize:n.arrow_size??1,text:n.text,textRotation:n.text_ccw_rotation,offset:n.offset_distance&&n.offset_direction?{distance:n.offset_distance,direction:n.offset_direction}:void 0})}function QY(t){const{ctx:e,start:n,end:o,strokeWidth:i,stroke:r,realToCanvasMat:s,lineCap:a="round"}=t,[A,c]=Bn(s,[n.x,n.y]),[l,u]=Bn(s,[o.x,o.y]),g=i*Math.abs(s.a);e.beginPath(),e.moveTo(A,c),e.lineTo(l,u),e.lineWidth=g,e.strokeStyle=r,e.lineCap=a,e.stroke()}function dli(t){const{ctx:e,path:n,realToCanvasMat:o,colorMap:i}=t,r=i.fabricationNote,s=n.color??r;if(!(!n.route||n.route.length<2))for(let a=0;a<n.route.length-1;a++){const A=n.route[a],c=n.route[a+1];!A||!c||QY({ctx:e,start:{x:A.x,y:A.y},end:{x:c.x,y:c.y},strokeWidth:n.stroke_width??.1,stroke:s,realToCanvasMat:o})}}function hli(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t,r=i.fabricationNote,s=n.color??r,a=n.is_filled??!1,A=n.has_stroke??!0,c=n.is_stroke_dashed??!1;Bp({ctx:e,center:n.center,width:n.width,height:n.height,fill:a?s:void 0,stroke:A?s:void 0,strokeWidth:A?n.stroke_width:void 0,borderRadius:n.corner_radius,realToCanvasMat:o,isStrokeDashed:c})}function pli(t,e){return e.fabricationNote}function mli(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=pli(n.layer,i),s=n.color??r,a=n.font_size;SY({ctx:e,text:n.text,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:a,color:s,realToCanvasMat:o,anchorAlignment:n.anchor_alignment})}function JB(t){const{ctx:e,center:n,radius_x:o,radius_y:i,fill:r,stroke:s,strokeWidth:a=.1,realToCanvasMat:A,rotation:c=0}=t,[l,u]=Bn(A,[n.x,n.y]),g=o*Math.abs(A.a),h=i*Math.abs(A.a),d=a*Math.abs(A.a);e.save(),e.translate(l,u),c!==0&&e.rotate(-c*(Math.PI/180)),e.beginPath(),e.ellipse(0,0,g,h,0,0,Math.PI*2),r&&(e.fillStyle=r,e.fill()),s&&(e.strokeStyle=s,e.lineWidth=d,e.stroke()),e.restore()}function A_(t){const{ctx:e,center:n,width:o,height:i,fill:r,realToCanvasMat:s,rotation:a=0,stroke:A,strokeWidth:c}=t,[l,u]=Bn(s,[n.x,n.y]),g=o*Math.abs(s.a),h=i*Math.abs(s.a),d=c?c*Math.abs(s.a):void 0;if(e.save(),e.translate(l,u),a!==0&&e.rotate(-a*(Math.PI/180)),e.beginPath(),g>h){const p=h/2,m=g-h;e.moveTo(-m/2,-p),e.lineTo(m/2,-p),e.arc(m/2,0,p,-Math.PI/2,Math.PI/2),e.lineTo(-m/2,p),e.arc(-m/2,0,p,Math.PI/2,-Math.PI/2)}else if(h>g){const p=g/2,m=h-g;e.moveTo(p,-m/2),e.lineTo(p,m/2),e.arc(0,m/2,p,0,Math.PI),e.lineTo(-p,-m/2),e.arc(0,-m/2,p,Math.PI,0)}else e.arc(0,0,g/2,0,Math.PI*2);e.closePath(),r&&(e.fillStyle=r,e.fill()),A&&d&&(e.strokeStyle=A,e.lineWidth=d,e.stroke()),e.restore()}function Fhe(t){return"ccw_rotation"in t&&typeof t.ccw_rotation=="number"?t.ccw_rotation:0}function fon(t){const{ctx:e,hole:n,realToCanvasMat:o,colorMap:i,soldermaskMargin:r=0,drawSoldermask:s=!1}=t;if(s&&n.is_covered_with_solder_mask===!0)return;const a=r<0?Math.abs(r):0;if(n.hole_shape==="circle"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2-a,fill:i.drill,realToCanvasMat:o});return}if(n.hole_shape==="square"){const A=Fhe(n);Bp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_diameter-a*2,height:n.hole_diameter-a*2,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:A});return}if(n.hole_shape==="oval"){const A=Fhe(n);JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2-a,radius_y:n.hole_height/2-a,fill:i.drill,realToCanvasMat:o,rotation:A});return}if(n.hole_shape==="rect"){const A=Fhe(n);Bp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width-a*2,height:n.hole_height-a*2,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:A});return}if(n.hole_shape==="pill"||n.hole_shape==="rotated_pill"){const A=Fhe(n);A_({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width-a*2,height:n.hole_height-a*2,fill:i.drill,realToCanvasMat:o,rotation:A});return}}function _li(t){const{ctx:e,cx:n,cy:o,radius:i}=t;e.beginPath(),e.arc(n,o,i,0,Math.PI*2)}function fli(t){const{ctx:e,cx:n,cy:o,width:i,height:r}=t;e.beginPath(),e.rect(n-i/2,o-r/2,i,r)}function aS(t){const{ctx:e,cx:n,cy:o,width:i,height:r,ccwRotationDegrees:s=0}=t,a=s*Math.PI/180,A=Ad(pA(n,o),vQ(-a));if(i>r){const c=r/2,l=(i-r)/2,u=Bn(A,{x:-l,y:0}),g=Bn(A,{x:l,y:0}),h=Bn(A,{x:l,y:-c});e.moveTo(h.x,h.y),e.arc(g.x,g.y,c,-a-Math.PI/2,-a+Math.PI/2),e.arc(u.x,u.y,c,-a+Math.PI/2,-a-Math.PI/2)}else if(r>i){const c=i/2,l=(r-i)/2,u=Bn(A,{x:0,y:-l}),g=Bn(A,{x:0,y:l}),h=Bn(A,{x:c,y:l});e.moveTo(h.x,h.y),e.arc(g.x,g.y,c,-a,-a+Math.PI),e.arc(u.x,u.y,c,-a+Math.PI,-a)}else{const c=i/2;e.moveTo(n+c,o),e.arc(n,o,c,0,Math.PI*2)}e.closePath()}function aP(t){const{ctx:e,points:n}=t;if(n.length<3)return;const o=n[0];if(o){e.moveTo(o.x,o.y);for(let i=1;i<n.length;i++){const r=n[i];r&&e.lineTo(r.x,r.y)}e.closePath()}}function xE(t){const{ctx:e,cx:n,cy:o,width:i,height:r,radius:s,ccwRotationDegrees:a=0}=t,A=a*Math.PI/180,c=Ad(pA(n,o),vQ(-A)),l=i/2,u=r/2,g=Math.min(s,l,u);if(g>0){const h=Bn(c,{x:-l,y:-u}),d=Bn(c,{x:l,y:-u}),p=Bn(c,{x:l,y:u}),m=Bn(c,{x:-l,y:u}),_=Bn(c,{x:-l,y:0});e.moveTo(_.x,_.y),e.arcTo(h.x,h.y,d.x,d.y,g),e.arcTo(d.x,d.y,p.x,p.y,g),e.arcTo(p.x,p.y,m.x,m.y,g),e.arcTo(m.x,m.y,h.x,h.y,g)}else{const h=Bn(c,{x:-l,y:-u}),d=Bn(c,{x:l,y:-u}),p=Bn(c,{x:l,y:u}),m=Bn(c,{x:-l,y:u});e.moveTo(h.x,h.y),e.lineTo(d.x,d.y),e.lineTo(p.x,p.y),e.lineTo(m.x,m.y)}e.closePath()}function Ili(t){const{ctx:e,pad:n,realToCanvasMat:o,color:i,drillCutouts:r}=t;if(e.save(),e.beginPath(),!Ion(e,n,o)){e.restore();return}e.clip(),e.beginPath(),Ion(e,n,o);for(const s of r)yli(e,s,o);e.fillStyle=i,e.fill("evenodd"),e.restore()}function Cli(t){const{pad:e,holes:n=[],platedHoles:o=[],vias:i=[],cutouts:r=[]}=t,s=Eli(e);if(!s)return[];const a=[],A=c=>{c&&Sli(s,Bli(c))&&a.push(c)};for(const c of r)A(bli(c));for(const c of n)A(Qli(c));for(const c of o)bon(c.layers,e.layer)&&A(vli(c));for(const c of i){if(!bon(c.layers,e.layer))continue;const l=c.hole_diameter/2;if(l<=0)continue;const u={shape:"circle",x:c.x,y:c.y,radius:l};A(u)}return a}function Ion(t,e,n){return e.shape==="rect"||e.shape==="rotated_rect"?(yon(t,{x:e.x,y:e.y,width:e.width,height:e.height,radius:wli(e),rotation:e.shape==="rotated_rect"?e.ccw_rotation??0:0,realToCanvasMat:n}),!0):e.shape==="circle"?(Con(t,{x:e.x,y:e.y,radius:e.radius,realToCanvasMat:n}),!0):e.shape==="pill"||e.shape==="rotated_pill"?(xon(t,{x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.shape==="rotated_pill"?e.ccw_rotation??0:0,realToCanvasMat:n}),!0):e.shape==="polygon"&&e.points&&e.points.length>=3?(Eon(t,e.points,n),!0):!1}function yli(t,e,n){if(e.shape==="circle"){Con(t,{x:e.x,y:e.y,radius:e.radius,realToCanvasMat:n});return}if(e.shape==="oval"){xli(t,{x:e.x,y:e.y,radiusX:e.radiusX,radiusY:e.radiusY,rotation:e.rotation,realToCanvasMat:n});return}if(e.shape==="pill"){xon(t,{x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,realToCanvasMat:n});return}if(e.shape==="polygon"){Eon(t,e.points,n);return}yon(t,{x:e.x,y:e.y,width:e.width,height:e.height,radius:e.radius,rotation:e.rotation,realToCanvasMat:n})}function Con(t,e){const{x:n,y:o,radius:i,realToCanvasMat:r}=e,[s,a]=Bn(r,[n,o]),A=i*Math.abs(r.a);t.moveTo(s+A,a),t.arc(s,a,A,0,Math.PI*2),t.closePath()}function xli(t,e){const{x:n,y:o,radiusX:i,radiusY:r,rotation:s=0,realToCanvasMat:a}=e,[A,c]=Bn(a,[n,o]),l=i*Math.abs(a.a),u=r*Math.abs(a.a);t.save(),t.translate(A,c),s!==0&&t.rotate(-s*(Math.PI/180)),t.moveTo(l,0),t.ellipse(0,0,l,u,0,0,Math.PI*2),t.closePath(),t.restore()}function yon(t,e){const{x:n,y:o,width:i,height:r,radius:s=0,rotation:a=0,realToCanvasMat:A}=e,[c,l]=Bn(A,[n,o]),u=i*Math.abs(A.a),g=r*Math.abs(A.a),h=s*Math.abs(A.a);if(t.save(),t.translate(c,l),a!==0&&t.rotate(-a*(Math.PI/180)),h>0){const d=-u/2,p=-g/2,m=Math.min(h,u/2,g/2);t.moveTo(d+m,p),t.lineTo(d+u-m,p),t.arcTo(d+u,p,d+u,p+m,m),t.lineTo(d+u,p+g-m),t.arcTo(d+u,p+g,d+u-m,p+g,m),t.lineTo(d+m,p+g),t.arcTo(d,p+g,d,p+g-m,m),t.lineTo(d,p+m),t.arcTo(d,p,d+m,p,m),t.closePath()}else t.rect(-u/2,-g/2,u,g);t.restore()}function xon(t,e){const{x:n,y:o,width:i,height:r,rotation:s=0,realToCanvasMat:a}=e,[A,c]=Bn(a,[n,o]),l=i*Math.abs(a.a),u=r*Math.abs(a.a);if(t.save(),t.translate(A,c),s!==0&&t.rotate(-s*(Math.PI/180)),l>u){const g=u/2,h=l-u;t.moveTo(-h/2,-g),t.lineTo(h/2,-g),t.arc(h/2,0,g,-Math.PI/2,Math.PI/2),t.lineTo(-h/2,g),t.arc(-h/2,0,g,Math.PI/2,-Math.PI/2)}else if(u>l){const g=l/2,h=u-l;t.moveTo(g,-h/2),t.lineTo(g,h/2),t.arc(0,h/2,g,0,Math.PI),t.lineTo(-g,-h/2),t.arc(0,-h/2,g,Math.PI,0)}else t.moveTo(l/2,0),t.arc(0,0,l/2,0,Math.PI*2);t.closePath(),t.restore()}function Eon(t,e,n){const o=e[0];if(!o)return;const[i,r]=Bn(n,[o.x,o.y]);t.moveTo(i,r);for(let s=1;s<e.length;s++){const a=e[s];if(!a)continue;const[A,c]=Bn(n,[a.x,a.y]);t.lineTo(A,c)}t.closePath()}function Eli(t){if(t.shape==="circle")return AP(t.x,t.y,t.radius,t.radius);if(t.shape==="rect"||t.shape==="rotated_rect"||t.shape==="pill"||t.shape==="rotated_pill"){const e=Math.hypot(t.width/2,t.height/2);return(t.shape==="rotated_rect"||t.shape==="rotated_pill")&&(t.ccw_rotation??0)!==0?AP(t.x,t.y,e,e):AP(t.x,t.y,t.width/2,t.height/2)}if(t.shape==="polygon"&&t.points&&t.points.length>=3)return Bon(t.points)}function Bli(t){if(t.shape==="polygon")return Bon(t.points);if(t.shape==="circle")return AP(t.x,t.y,t.radius,t.radius);if(t.shape==="oval"){if((t.rotation??0)!==0){const o=Math.hypot(t.radiusX,t.radiusY);return AP(t.x,t.y,o,o)}return AP(t.x,t.y,t.radiusX,t.radiusY)}const e=t.width/2,n=t.height/2;if((t.rotation??0)!==0){const o=Math.hypot(e,n);return AP(t.x,t.y,o,o)}return AP(t.x,t.y,e,n)}function bli(t){if(t.shape==="circle")return t.radius<=0?void 0:{shape:"circle",x:t.center.x,y:t.center.y,radius:t.radius};if(t.shape==="rect")return t.width<=0||t.height<=0?void 0:{shape:"rect",x:t.center.x,y:t.center.y,width:t.width,height:t.height,radius:t.corner_radius,rotation:t.rotation};if(t.shape==="polygon"&&t.points.length>=3)return{shape:"polygon",points:t.points}}function Bon(t){let e=1/0,n=-1/0,o=1/0,i=-1/0;for(const r of t)e=Math.min(e,r.x),n=Math.max(n,r.x),o=Math.min(o,r.y),i=Math.max(i,r.y);return{minX:e,maxX:n,minY:o,maxY:i}}function AP(t,e,n,o){return{minX:t-n,maxX:t+n,minY:e-o,maxY:e+o}}function Sli(t,e){return t.minX<=e.maxX&&t.maxX>=e.minX&&t.minY<=e.maxY&&t.maxY>=e.minY}function Qli(t){if(t.hole_shape==="circle"){const e=t.hole_diameter/2;return e<=0?void 0:{shape:"circle",x:t.x,y:t.y,radius:e}}if(t.hole_shape==="square")return t.hole_diameter<=0?void 0:{shape:"rect",x:t.x,y:t.y,width:t.hole_diameter,height:t.hole_diameter,rotation:Lhe(t)};if(t.hole_shape==="oval")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"oval",x:t.x,y:t.y,radiusX:t.hole_width/2,radiusY:t.hole_height/2,rotation:Lhe(t)};if(t.hole_shape==="rect")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"rect",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:Lhe(t)};if(t.hole_shape==="pill"||t.hole_shape==="rotated_pill")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:Lhe(t)}}function vli(t){if(t.shape==="circle"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x,y:t.y,radius:i}}if(t.shape==="oval"){const i=t.hole_width/2,r=t.hole_height/2;return i<=0||r<=0?void 0:{shape:"oval",x:t.x,y:t.y,radiusX:i,radiusY:r,rotation:t.ccw_rotation}}if(t.shape==="pill")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:t.ccw_rotation};if(t.shape==="circular_hole_with_rect_pad"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),radius:i}}if(t.shape==="pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height};if(t.shape==="rotated_pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height,rotation:t.hole_ccw_rotation};if(t.shape!=="hole_with_polygon_pad")return;const e=t.x+(t.hole_offset_x??0),n=t.y+(t.hole_offset_y??0),o=t.hole_shape;if(o==="circle"){const i=(t.hole_diameter??0)/2;return i<=0?void 0:{shape:"circle",x:e,y:n,radius:i}}if(o==="oval"){const i=(t.hole_width??0)/2,r=(t.hole_height??0)/2;return i<=0||r<=0?void 0:{shape:"oval",x:e,y:n,radiusX:i,radiusY:r}}if(o==="pill"||o==="rotated_pill"){const i=t.hole_width??0,r=t.hole_height??0;return i<=0||r<=0?void 0:{shape:"pill",x:e,y:n,width:i,height:r,rotation:o==="rotated_pill"?t.ccw_rotation:0}}}function Lhe(t){return"ccw_rotation"in t&&typeof t.ccw_rotation=="number"?t.ccw_rotation:0}function wli(t){return t.shape==="rect"||t.shape==="rotated_rect"?t.corner_radius??t.rect_border_radius??0:0}function bon(t,e){if(!t||t.length===0)return!0;const n=Son(e);return t.some(o=>Son(o)===n)}function Son(t){if(typeof t=="string")return t;if(t&&typeof t=="object"&&"name"in t&&typeof t.name=="string")return t.name}function Pli(t,e){const n=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),i=parseInt(t.slice(5,7),16);return`rgba(${n}, ${o}, ${i}, ${e})`}function Mli(t,e){return t.layers.includes("bottom")&&!t.layers.includes("top")?e.keepout.bottom:e.keepout.top}function Qon(t){const{ctx:e,strokeColor:n,hatchWidth:o,hatchSpacing:i,diagonal:r,getLineEndpoints:s}=t;e.strokeStyle=n,e.lineWidth=o,e.setLineDash([]);for(let a=-r;a<r*2;a+=i){const{startX:A,startY:c,endX:l,endY:u}=s(a);e.beginPath(),e.moveTo(A,c),e.lineTo(l,u),e.stroke()}}function von(t){const{ctx:e,fillColor:n,drawPath:o,drawHatch:i}=t;o(),e.fillStyle=n,e.fill(),o(),e.clip(),i()}function Dli(t){const{ctx:e,keepout:n,realToCanvasMat:o,colorMap:i}=t,r=Math.abs(o.a),s=Mli(n,i),a=Pli(s,.2),A=1*r,c=.15*r;if(n.shape==="rect"){const[l,u]=Bn(o,[n.center.x,n.center.y]),g=n.width*r,h=n.height*r,d=n.rotation??0,p=Math.sqrt(g*g+h*h),m=g/2,_=h/2;e.save(),e.translate(l,u),d!==0&&e.rotate(-d*(Math.PI/180)),von({ctx:e,fillColor:a,drawPath:()=>fli({ctx:e,cx:0,cy:0,width:g,height:h}),drawHatch:()=>Qon({ctx:e,strokeColor:s,hatchWidth:c,hatchSpacing:A,diagonal:p,getLineEndpoints:f=>({startX:-m+f,startY:-_,endX:-m+f+p,endY:-_+p})})}),e.restore();return}if(n.shape==="circle"){const[l,u]=Bn(o,[n.center.x,n.center.y]),g=n.radius*r,h=g*2;e.save(),e.translate(l,u),von({ctx:e,fillColor:a,drawPath:()=>_li({ctx:e,cx:0,cy:0,radius:g}),drawHatch:()=>Qon({ctx:e,strokeColor:s,hatchWidth:c,hatchSpacing:A,diagonal:h,getLineEndpoints:d=>({startX:d-h,startY:-h,endX:d+h,endY:h})})}),e.restore()}}var Nli="rgba(255,255,255,0.5)";function Rli(t){const{ctx:e,pcbNoteDimension:n,realToCanvasMat:o}=t,i=n.color??Nli;_on({ctx:e,from:n.from,to:n.to,realToCanvasMat:o,color:i,fontSize:n.font_size,arrowSize:n.arrow_size,text:n.text,textRotation:n.text_ccw_rotation,offset:n.offset_distance&&n.offset_direction?{distance:n.offset_distance,direction:n.offset_direction}:void 0})}function Tli(t){const{ctx:e,line:n,realToCanvasMat:o}=t,r=n.color??"rgb(89, 148, 220)",s=n.stroke_width??.1,a=n.is_dashed??!1,[A,c]=Bn(o,[n.x1,n.y1]),[l,u]=Bn(o,[n.x2,n.y2]),g=s*Math.abs(o.a);e.save(),a?e.setLineDash([g*2,g*2]):e.setLineDash([]),e.beginPath(),e.moveTo(A,c),e.lineTo(l,u),e.lineWidth=g,e.strokeStyle=r,e.lineCap="round",e.stroke(),e.restore()}function kli(t){const{ctx:e,path:n,realToCanvasMat:o}=t,r=n.color??"rgb(89, 148, 220)";if(!(!n.route||n.route.length<2))for(let s=0;s<n.route.length-1;s++){const a=n.route[s],A=n.route[s+1];!a||!A||QY({ctx:e,start:{x:a.x,y:a.y},end:{x:A.x,y:A.y},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}}function Fli(t){const{ctx:e,rect:n,realToCanvasMat:o}=t,r=n.color??"rgb(89, 148, 220)",s=n.is_filled??!1,a=n.has_stroke??!0,A=n.is_stroke_dashed??!1;Bp({ctx:e,center:n.center,width:n.width,height:n.height,fill:s?r:void 0,stroke:a?r:void 0,strokeWidth:a?n.stroke_width:void 0,borderRadius:n.corner_radius,realToCanvasMat:o,isStrokeDashed:A})}var Lli="rgb(89, 148, 220)";function Hli(t){const{ctx:e,text:n,realToCanvasMat:o}=t,i=Lli,r=n.color??i,s=n.font_size??1;SY({ctx:e,text:n.text??"",x:n.anchor_position.x,y:n.anchor_position.y,fontSize:s,color:r,realToCanvasMat:o,anchorAlignment:n.anchor_alignment??"center",mirrorX:n.is_mirrored_from_top_view??n.layer==="bottom"})}function Oli(t){const{ctx:e,panel:n,realToCanvasMat:o,colorMap:i}=t,{width:r,height:s,center:a}=n;if(r!==void 0&&s!==void 0&&a){const A=r/2,c=s/2,l=[{x:a.x-A,y:a.y-c},{x:a.x+A,y:a.y-c},{x:a.x+A,y:a.y+c},{x:a.x-A,y:a.y+c}];khe({ctx:e,points:l,stroke:i.boardOutline,strokeWidth:.5,realToCanvasMat:o,closePath:!0})}}function CX(t,e){if(t.length<3||e===0)return t;let n=0,o=0;for(const r of t)n+=r.x,o+=r.y;n/=t.length,o/=t.length;const i=[];for(const r of t){const s=r.x-n,a=r.y-o,A=Math.sqrt(s*s+a*a);if(A>0){const c=s/A,l=a/A;i.push({x:r.x+c*e,y:r.y+l*e})}else i.push({x:r.x+e,y:r.y})}return i}function won(t){const{ctx:e,hole:n,realToCanvasMat:o,colorMap:i,soldermaskMargin:r=0,drawSoldermask:s}=t;if(n.is_covered_with_solder_mask===!0&&s)return;const a=i.copper[t.layer??"top"],A=r<0?Math.abs(r):0;if(n.shape==="circle"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2-A,fill:a,realToCanvasMat:o}),B6(e,()=>{dm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:"#000",realToCanvasMat:o})}),dm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="oval"){JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.outer_width/2-A,radius_y:n.outer_height/2-A,fill:a,realToCanvasMat:o,rotation:n.ccw_rotation}),B6(e,()=>{JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,fill:"#000",realToCanvasMat:o,rotation:n.ccw_rotation})}),JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,fill:i.drill,realToCanvasMat:o,rotation:n.ccw_rotation});return}if(n.shape==="pill"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.outer_width-A*2,height:n.outer_height-A*2,fill:a,realToCanvasMat:o,rotation:n.ccw_rotation}),B6(e,()=>{A_({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,fill:"#000",realToCanvasMat:o,rotation:n.ccw_rotation})}),A_({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o,rotation:n.ccw_rotation});return}if(n.shape==="circular_hole_with_rect_pad"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0,ccwRotationDegrees:n.rect_ccw_rotation});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);B6(e,()=>{dm({ctx:e,center:{x:c,y:l},radius:n.hole_diameter/2,fill:"#000",realToCanvasMat:o})}),dm({ctx:e,center:{x:c,y:l},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="pill_hole_with_rect_pad"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);B6(e,()=>{A_({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:"#000",realToCanvasMat:o})}),A_({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o});return}if(n.shape==="rotated_pill_hole_with_rect_pad"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0,ccwRotationDegrees:n.rect_ccw_rotation});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);B6(e,()=>{A_({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:"#000",realToCanvasMat:o,rotation:n.hole_ccw_rotation})}),A_({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o,rotation:n.hole_ccw_rotation});return}if(n.shape==="hole_with_polygon_pad"){const c=n.pad_outline;if(c&&c.length>=3){const h=c.map(p=>({x:n.x+p.x,y:n.y+p.y})),d=A>0?CX(h,-A):h;d.length>=3&&sP({ctx:e,points:d,fill:a,realToCanvasMat:o})}const l=n.x+(n.hole_offset_x??0),u=n.y+(n.hole_offset_y??0),g=n.hole_shape;g==="circle"?(B6(e,()=>{dm({ctx:e,center:{x:l,y:u},radius:(n.hole_diameter??0)/2,fill:"#000",realToCanvasMat:o})}),dm({ctx:e,center:{x:l,y:u},radius:(n.hole_diameter??0)/2,fill:i.drill,realToCanvasMat:o})):g==="oval"?(B6(e,()=>{JB({ctx:e,center:{x:l,y:u},radius_x:(n.hole_width??0)/2,radius_y:(n.hole_height??0)/2,fill:"#000",realToCanvasMat:o})}),JB({ctx:e,center:{x:l,y:u},radius_x:(n.hole_width??0)/2,radius_y:(n.hole_height??0)/2,fill:i.drill,realToCanvasMat:o})):g==="pill"?(B6(e,()=>{A_({ctx:e,center:{x:l,y:u},width:n.hole_width??0,height:n.hole_height??0,fill:"#000",realToCanvasMat:o})}),A_({ctx:e,center:{x:l,y:u},width:n.hole_width??0,height:n.hole_height??0,fill:i.drill,realToCanvasMat:o})):g==="rotated_pill"&&(B6(e,()=>{A_({ctx:e,center:{x:l,y:u},width:n.hole_width??0,height:n.hole_height??0,fill:"#000",realToCanvasMat:o})}),A_({ctx:e,center:{x:l,y:u},width:n.hole_width??0,height:n.hole_height??0,fill:i.drill,realToCanvasMat:o}));return}}function B6(t,e){t.save(),t.globalCompositeOperation="destination-out",e(),t.restore()}function Gli(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Yli(t){const{ctx:e,circle:n,realToCanvasMat:o,colorMap:i}=t,r=Gli(n.layer,i);dm({ctx:e,center:n.center,radius:n.radius,stroke:r,strokeWidth:n.stroke_width,realToCanvasMat:o})}function Uli(t){const{ctx:e,graphic:n,realToCanvasMat:o,colorMap:i}=t,r=n.layer==="bottom"?i.silkscreen.bottom:i.silkscreen.top;e.beginPath(),pon({ctx:e,shape:n.brep_shape,realToCanvasMat:o}),e.fillStyle=r,e.fill("evenodd")}function Kli(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Vli(t){const{ctx:e,line:n,realToCanvasMat:o,colorMap:i}=t,r=Kli(n.layer,i);QY({ctx:e,start:{x:n.x1,y:n.y1},end:{x:n.x2,y:n.y2},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}function zli(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Jli(t){const{ctx:e,oval:n,realToCanvasMat:o,colorMap:i}=t,r=zli(n.layer,i);JB({ctx:e,center:n.center,radius_x:n.radius_x,radius_y:n.radius_y,stroke:r,strokeWidth:.1,realToCanvasMat:o,rotation:n.ccw_rotation??0})}function Wli(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function jli(t){const{ctx:e,path:n,realToCanvasMat:o,colorMap:i}=t,r=Wli(n.layer,i);if(!(!n.route||n.route.length<2))for(let s=0;s<n.route.length-1;s++){const a=n.route[s],A=n.route[s+1];!a||!A||QY({ctx:e,start:{x:a.x,y:a.y},end:{x:A.x,y:A.y},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}}function $li(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function qli(t){const{ctx:e,pill:n,realToCanvasMat:o,colorMap:i}=t,r=$li(n.layer,i);A_({ctx:e,center:n.center,width:n.width,height:n.height,stroke:r,strokeWidth:.2,realToCanvasMat:o})}function Xli(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function Zli(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t,r=Xli(n.layer,i);Bp({ctx:e,center:n.center,width:n.width,height:n.height,borderRadius:n.corner_radius,fill:n.is_filled?r:"transparent",stroke:r,strokeWidth:n.stroke_width,realToCanvasMat:o})}function e0i(t,e){return t==="bottom"?e.silkscreen.bottom:e.silkscreen.top}function t0i(t){return t||"center"}function n0i(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=n.text??"";if(!r)return;const s=e0i(n.layer,i),a=t0i(n.anchor_alignment),A=n.font_size??1;SY({ctx:e,text:r,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:A,color:s,realToCanvasMat:o,anchorAlignment:a,rotation:n.ccw_rotation??0,mirrorX:n.layer==="bottom",knockout:n.is_knockout,knockoutPadding:n.is_knockout?n.knockout_padding:void 0})}function o0i(t,e){return e.copper[t]??e.copper.top}function Pon(t){return t.shape==="rect"||t.shape==="rotated_rect"?t.corner_radius??t.rect_border_radius??0:0}function i0i(t){const{ctx:e,pad:n,realToCanvasMat:o,colorMap:i}=t,r=o0i(n.layer,i),s=Cli(t);if(s.length>0){Ili({ctx:e,pad:n,realToCanvasMat:o,color:r,drillCutouts:s});return}if(n.shape==="rect"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,borderRadius:Pon(n)});return}if(n.shape==="rotated_rect"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,borderRadius:Pon(n),ccwRotationDegrees:n.ccw_rotation??0});return}if(n.shape==="circle"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.radius,fill:r,realToCanvasMat:o});return}if(n.shape==="pill"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o});return}if(n.shape==="rotated_pill"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,rotation:n.ccw_rotation??0});return}if(n.shape==="polygon"){n.points&&n.points.length>=3&&sP({ctx:e,points:n.points,fill:r,realToCanvasMat:o});return}}var yX="rgb(105, 105, 105)";function Mon(t){const{ctx:e,solderPaste:n,realToCanvasMat:o}=t,i={x:n.x,y:n.y};if(n.shape==="rect"){Bp({ctx:e,center:i,width:n.width,height:n.height,fill:yX,realToCanvasMat:o});return}if(n.shape==="rotated_rect"){Bp({ctx:e,center:i,width:n.width,height:n.height,fill:yX,realToCanvasMat:o,ccwRotationDegrees:n.ccw_rotation});return}if(n.shape==="pill"){A_({ctx:e,center:i,width:n.width,height:n.height,fill:yX,realToCanvasMat:o});return}if(n.shape==="oval"){JB({ctx:e,center:i,radius_x:n.width/2,radius_y:n.height/2,fill:yX,realToCanvasMat:o});return}n.shape==="circle"&&dm({ctx:e,center:i,radius:n.radius,fill:yX,realToCanvasMat:o})}function r0i(t){return typeof t=="function"}function Don(t,e,n){if(e<=0||n<=0)return null;const o=globalThis;let i=null;if("OffscreenCanvas"in o&&typeof o.OffscreenCanvas=="function")i=new o.OffscreenCanvas(e,n);else if("document"in o&&o.document&&typeof o.document.createElement=="function"){const s=o.document.createElement("canvas");s.width=e,s.height=n,i=s}else{const s=t.canvas.constructor;if(r0i(s))try{i=new s(e,n)}catch{return null}}if(!i)return null;const r=i.getContext("2d");return r&&(r.boardOwnerMap=t.boardOwnerMap),r}function s0i(t){return"createPattern"in t&&typeof Reflect.get(t,"createPattern")=="function"}function Non(t,e){if(t===e||e.canvas.width<=0||e.canvas.height<=0||!s0i(t))return!1;let n=null;try{n=t.createPattern(e.canvas,"no-repeat")}catch{return!1}return n?(t.save(),t.globalCompositeOperation="source-over",t.fillStyle=n,t.fillRect(0,0,e.canvas.width,e.canvas.height),t.restore(),!0):!1}function Ron(t){const{ctx:e,board:n,realToCanvasMat:o,soldermaskColor:i}=t,{width:r,height:s,center:a,outline:A}=n;if(A&&Array.isArray(A)&&A.length>=3){const c=A.map(l=>{const[u,g]=Bn(o,[l.x,l.y]);return{x:u,y:g}});e.beginPath(),aP({ctx:e,points:c}),e.fillStyle=i,e.fill()}else if(r!==void 0&&s!==void 0&&a){const[c,l]=Bn(o,[a.x,a.y]),u=r*Math.abs(o.a),g=s*Math.abs(o.a);e.fillStyle=i,e.fillRect(c-u/2,l-g/2,u,g)}}function a0i(t){const{ctx:e,panel:n,realToCanvasMat:o,soldermaskColor:i}=t,{width:r,height:s,center:a}=n;if(r===void 0||s===void 0||!a)return;const[A,c]=Bn(o,[a.x,a.y]),l=r*Math.abs(o.a),u=s*Math.abs(o.a);e.fillStyle=i,e.fillRect(A-l/2,c-u/2,l,u)}function EE(t){t.save(),t.globalCompositeOperation="destination-out",t.fill(),t.restore()}function A0i(t){const{ctx:e,cutout:n,realToCanvasMat:o}=t;if(n.shape==="rect"){const[i,r]=Bn(o,[n.center?.x??0,n.center?.y??0]),s=n.width*Math.abs(o.a),a=n.height*Math.abs(o.a),A=(n.corner_radius??0)*Math.abs(o.a);e.save(),e.translate(i,r),n.rotation&&e.rotate(-n.rotation*Math.PI/180),e.beginPath(),xE({ctx:e,cx:0,cy:0,width:s,height:a,radius:A}),e.restore(),EE(e)}else if(n.shape==="circle"){const[i,r]=Bn(o,[n.center?.x??0,n.center?.y??0]),s=n.radius*Math.abs(o.a);e.beginPath(),e.arc(i,r,s,0,Math.PI*2),e.closePath(),EE(e)}else if(n.shape==="polygon"&&n.points&&n.points.length>=3){const i=n.points.map(r=>{const[s,a]=Bn(o,[r.x,r.y]);return{x:s,y:a}});e.beginPath(),aP({ctx:e,points:i}),EE(e)}}var s1="rgba(255, 255, 255, 1)";function tVe(t){const{ctx:e,elements:n,layer:o,realToCanvasMat:i}=t;e.save(),e.globalCompositeOperation="destination-out";for(const r of n){if(r.type==="pcb_smtpad"){if(r.layer!==o||r.is_covered_with_solder_mask===!0)continue;c0i({ctx:e,pad:r,realToCanvasMat:i});continue}if(r.type==="pcb_plated_hole"){if(r.layers&&!r.layers.includes(o)||r.is_covered_with_solder_mask===!0)continue;l0i({ctx:e,hole:r,realToCanvasMat:i});continue}if(r.type==="pcb_via"){if(r.layers&&!r.layers.includes(o))continue;dm({ctx:e,center:{x:r.x,y:r.y},radius:r.outer_diameter/2,fill:s1,realToCanvasMat:i});continue}if(r.type==="pcb_hole"){if(r.is_covered_with_solder_mask===!0)continue;u0i({ctx:e,hole:r,realToCanvasMat:i})}}e.restore()}function c0i(t){const{ctx:e,pad:n,realToCanvasMat:o}=t;if(n.shape==="rect"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,borderRadius:n.corner_radius??n.rect_border_radius??0,fill:s1,realToCanvasMat:o});return}if(n.shape==="rotated_rect"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,borderRadius:n.corner_radius??n.rect_border_radius??0,ccwRotationDegrees:n.ccw_rotation??0,fill:s1,realToCanvasMat:o});return}if(n.shape==="circle"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.radius,fill:s1,realToCanvasMat:o});return}if(n.shape==="pill"||n.shape==="rotated_pill"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,rotation:n.shape==="rotated_pill"?n.ccw_rotation??0:0,fill:s1,realToCanvasMat:o});return}n.shape==="polygon"&&n.points&&n.points.length>=3&&sP({ctx:e,points:n.points,fill:s1,realToCanvasMat:o})}function l0i(t){const{ctx:e,hole:n,realToCanvasMat:o}=t;if(n.shape==="circle"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2,fill:s1,realToCanvasMat:o});return}if(n.shape==="oval"){JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.outer_width/2,radius_y:n.outer_height/2,rotation:n.ccw_rotation,fill:s1,realToCanvasMat:o});return}if(n.shape==="pill"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.outer_width,height:n.outer_height,rotation:n.ccw_rotation,fill:s1,realToCanvasMat:o});return}if(n.shape==="circular_hole_with_rect_pad"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,ccwRotationDegrees:n.rect_ccw_rotation,fill:s1,realToCanvasMat:o});return}if(n.shape==="pill_hole_with_rect_pad"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,fill:s1,realToCanvasMat:o});return}if(n.shape==="rotated_pill_hole_with_rect_pad"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,ccwRotationDegrees:n.rect_ccw_rotation,fill:s1,realToCanvasMat:o});return}n.shape==="hole_with_polygon_pad"&&n.pad_outline&&n.pad_outline.length>=3&&sP({ctx:e,points:n.pad_outline.map(i=>({x:n.x+i.x,y:n.y+i.y})),fill:s1,realToCanvasMat:o})}function u0i(t){const{ctx:e,hole:n,realToCanvasMat:o}=t,i="ccw_rotation"in n&&typeof n.ccw_rotation=="number"?n.ccw_rotation:0;if(n.hole_shape==="circle"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:s1,realToCanvasMat:o});return}if(n.hole_shape==="square"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_diameter,height:n.hole_diameter,ccwRotationDegrees:i,fill:s1,realToCanvasMat:o});return}if(n.hole_shape==="oval"){JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,rotation:i,fill:s1,realToCanvasMat:o});return}if(n.hole_shape==="rect"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,ccwRotationDegrees:i,fill:s1,realToCanvasMat:o});return}(n.hole_shape==="pill"||n.hole_shape==="rotated_pill")&&A_({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,rotation:i,fill:s1,realToCanvasMat:o})}function g0i(t,e,n,o,i){if(Math.abs(i)<1e-10)return null;const r=n-t,s=o-e,a=Math.hypot(r,s);if(a<1e-10)return null;const A=Math.abs(i)*(a/2),c=a/2,l=(A*A+c*c)/(2*A),u=l-A,g=(t+n)/2,h=(e+o)/2,d=-s/a,p=r/a,m=i>0?-1:1;return{centerX:g+m*d*u,centerY:h+m*p*u,radius:l}}function nVe(t,e,n,o,i,r,s){if(Math.abs(r)<1e-10){const[C,y]=Bn(s,[o,i]);t.lineTo(C,y);return}const a=g0i(e,n,o,i,r);if(!a){const[C,y]=Bn(s,[o,i]);t.lineTo(C,y);return}const[A,c]=Bn(s,[e,n]),[l,u]=Bn(s,[o,i]),[g,h]=Bn(s,[a.centerX,a.centerY]),d=Math.hypot(A-g,c-h),p=Math.atan2(c-h,A-g),m=Math.atan2(u-h,l-g),f=s.a*s.d-s.b*s.c<0,I=r>0?!f:f;t.arc(g,h,d,p,m,I)}function Ton(t,e,n){if(e.vertices.length<2)return;if(e.vertices.length===2){const s=e.vertices[0],a=e.vertices[1];if(s&&a&&Math.abs((s.bulge??0)-1)<1e-10&&Math.abs((a.bulge??0)-1)<1e-10){const[A,c]=Bn(n,[s.x,s.y]);t.moveTo(A,c),nVe(t,s.x,s.y,a.x,a.y,1,n),nVe(t,a.x,a.y,s.x,s.y,1,n);return}}const o=e.vertices[0];if(!o)return;const[i,r]=Bn(n,[o.x,o.y]);t.moveTo(i,r);for(let s=0;s<e.vertices.length;s++){const a=e.vertices[s],A=e.vertices[(s+1)%e.vertices.length];if(!a||!A)continue;const c=a.bulge??0;if(Math.abs(c)<1e-10){const[l,u]=Bn(n,[A.x,A.y]);t.lineTo(l,u)}else nVe(t,a.x,a.y,A.x,A.y,c,n)}}function d0i(t){const{ctx:e,pour:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r,elements:s}=t;if(n.layer===r&&n.covered_with_solder_mask===!0){if(e.save(),e.fillStyle=i,n.shape==="rect"){const[a,A]=Bn(o,[n.center.x,n.center.y]),c=n.width*Math.abs(o.a),l=n.height*Math.abs(o.a);e.translate(a,A),n.rotation&&e.rotate(-n.rotation*(Math.PI/180)),e.beginPath(),e.rect(-c/2,-l/2,c,l),e.fill(),e.restore(),tVe({ctx:e,elements:s,layer:r,realToCanvasMat:o});return}if(n.shape==="polygon"){if(n.points&&n.points.length>=3){const a=n.points.map(c=>Bn(o,[c.x,c.y])),A=a[0];if(A){e.beginPath();const[c,l]=A;e.moveTo(c,l);for(let u=1;u<a.length;u++){const g=a[u];if(!g)continue;const[h,d]=g;e.lineTo(h,d)}e.closePath(),e.fill(),tVe({ctx:e,elements:s,layer:r,realToCanvasMat:o})}}e.restore();return}if(n.shape==="brep"){if(e.beginPath(),Ton(e,n.brep_shape.outer_ring,o),n.brep_shape.inner_rings)for(const a of n.brep_shape.inner_rings)Ton(e,a,o);e.fill("evenodd"),tVe({ctx:e,elements:s,layer:r,realToCanvasMat:o}),e.restore();return}e.restore()}}function h0i(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i}=t,r=n.is_covered_with_solder_mask===!0,s=n.soldermask_margin??0;r?(e.fillStyle=i,Hhe({ctx:e,hole:n,realToCanvasMat:o,margin:0}),e.fill()):s<0?(Hhe({ctx:e,hole:n,realToCanvasMat:o,margin:s}),EE(e),p0i({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:s})):s>0?(Hhe({ctx:e,hole:n,realToCanvasMat:o,margin:s}),EE(e)):(Hhe({ctx:e,hole:n,realToCanvasMat:o,margin:0}),EE(e))}function kon(t){return"ccw_rotation"in t&&typeof t.ccw_rotation=="number"?t.ccw_rotation:0}function Hhe(t){const{ctx:e,hole:n,realToCanvasMat:o,margin:i}=t,r=kon(n);if(n.hole_shape==="circle"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_diameter/2+i)*Math.abs(o.a);e.beginPath(),e.arc(s,a,A,0,Math.PI*2),e.closePath()}else if(n.hole_shape==="square"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_diameter+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),e.rect(-A/2,-A/2,A,A),e.closePath(),e.restore()}else if(n.hole_shape==="oval"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_width/2+i)*Math.abs(o.a),c=(n.hole_height/2+i)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),e.ellipse(0,0,A,c,0,0,Math.PI*2),e.closePath(),e.restore()}else if(n.hole_shape==="rect"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_width+i*2)*Math.abs(o.a),c=(n.hole_height+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),e.rect(-A/2,-c/2,A,c),e.closePath(),e.restore()}else if(n.hole_shape==="pill"||n.hole_shape==="rotated_pill"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_width+i*2)*Math.abs(o.a),c=(n.hole_height+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0&&e.rotate(-r*Math.PI/180),e.beginPath(),aS({ctx:e,cx:0,cy:0,width:A,height:c}),e.restore()}}function p0i(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:r}=t,s=Math.abs(r),a=kon(n);if(e.fillStyle=i,n.hole_shape==="circle"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_diameter/2*Math.abs(o.a),u=s*Math.abs(o.a),g=Math.max(0,l-u);e.save(),e.beginPath(),e.arc(A,c,l,0,Math.PI*2),g>0&&e.arc(A,c,g,0,Math.PI*2,!0),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="square"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_diameter*Math.abs(o.a),u=s*Math.abs(o.a),g=Math.max(0,l-u*2);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),e.rect(-l/2,-l/2,l,l),g>0&&e.rect(-g/2,-g/2,g,g),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="oval"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_width/2*Math.abs(o.a),u=n.hole_height/2*Math.abs(o.a),g=s*Math.abs(o.a),h=Math.max(0,l-g),d=Math.max(0,u-g);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),e.ellipse(0,0,l,u,0,0,Math.PI*2),h>0&&d>0&&(e.moveTo(h,0),e.ellipse(0,0,h,d,0,0,Math.PI*2)),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="rect"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_width*Math.abs(o.a),u=n.hole_height*Math.abs(o.a),g=s*Math.abs(o.a),h=Math.max(0,l-g*2),d=Math.max(0,u-g*2);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),e.rect(-l/2,-u/2,l,u),h>0&&d>0&&e.rect(-h/2,-d/2,h,d),e.fill("evenodd"),e.restore()}else if(n.hole_shape==="pill"||n.hole_shape==="rotated_pill"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_width*Math.abs(o.a),u=n.hole_height*Math.abs(o.a),g=s*Math.abs(o.a);e.save(),e.translate(A,c),a!==0&&e.rotate(-a*Math.PI/180),e.beginPath(),aS({ctx:e,cx:0,cy:0,width:l,height:u});const h=l-g*2,d=u-g*2;h>0&&d>0&&aS({ctx:e,cx:0,cy:0,width:h,height:d}),e.fill("evenodd"),e.restore()}}function m0i(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.layers&&!n.layers.includes(r))return;const s=n.is_covered_with_solder_mask===!0,a=n.soldermask_margin??0;s?(e.fillStyle=i,Ohe({ctx:e,hole:n,realToCanvasMat:o,margin:0}),e.fill()):a<0?(Ohe({ctx:e,hole:n,realToCanvasMat:o,margin:a}),EE(e),_0i({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:a})):a>0?(Ohe({ctx:e,hole:n,realToCanvasMat:o,margin:a}),EE(e)):(Ohe({ctx:e,hole:n,realToCanvasMat:o,margin:0}),EE(e))}function Ohe(t){const{ctx:e,hole:n,realToCanvasMat:o,margin:i}=t;if(n.shape==="circle"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.outer_diameter/2+i)*Math.abs(o.a);e.beginPath(),e.arc(r,s,a,0,Math.PI*2),e.closePath()}else if(n.shape==="oval"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.outer_width/2+i)*Math.abs(o.a),A=(n.outer_height/2+i)*Math.abs(o.a);e.beginPath(),e.ellipse(r,s,a,A,-((n.ccw_rotation??0)*Math.PI)/180,0,Math.PI*2),e.closePath()}else if(n.shape==="pill"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.outer_width+i*2)*Math.abs(o.a),A=(n.outer_height+i*2)*Math.abs(o.a);e.beginPath(),aS({ctx:e,cx:r,cy:s,width:a,height:A,ccwRotationDegrees:n.ccw_rotation})}else if(n.shape==="circular_hole_with_rect_pad"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),xE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c,ccwRotationDegrees:n.rect_ccw_rotation})}else if(n.shape==="pill_hole_with_rect_pad"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),xE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c})}else if(n.shape==="rotated_pill_hole_with_rect_pad"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),xE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c,ccwRotationDegrees:n.rect_ccw_rotation})}else if(n.shape==="hole_with_polygon_pad"&&n.pad_outline&&n.pad_outline.length>=3){const r=n.pad_outline.map(A=>({x:n.x+A.x,y:n.y+A.y})),a=(i!==0?CX(r,i):r).map(A=>{const[c,l]=Bn(o,[A.x,A.y]);return{x:c,y:l}});e.beginPath(),aP({ctx:e,points:a})}}function _0i(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:r}=t,s=Math.abs(r);if(e.fillStyle=i,n.shape==="circle"){const[a,A]=Bn(o,[n.x,n.y]),c=n.outer_diameter/2*Math.abs(o.a),l=s*Math.abs(o.a),u=Math.max(0,c-l);e.beginPath(),e.arc(a,A,c,0,Math.PI*2),u>0&&e.arc(a,A,u,0,Math.PI*2,!0),e.fill("evenodd")}else if(n.shape==="oval"){const[a,A]=Bn(o,[n.x,n.y]),c=n.outer_width/2*Math.abs(o.a),l=n.outer_height/2*Math.abs(o.a),u=s*Math.abs(o.a),g=Math.max(0,c-u),h=Math.max(0,l-u),d=-((n.ccw_rotation??0)*Math.PI)/180;if(e.beginPath(),e.ellipse(a,A,c,l,d,0,Math.PI*2),g>0&&h>0){const p=a+g*Math.cos(d),m=A+g*Math.sin(d);e.moveTo(p,m),e.ellipse(a,A,g,h,d,0,Math.PI*2)}e.fill("evenodd")}else if(n.shape==="pill"){const[a,A]=Bn(o,[n.x,n.y]),c=n.outer_width*Math.abs(o.a),l=n.outer_height*Math.abs(o.a),u=s*Math.abs(o.a);e.beginPath(),aS({ctx:e,cx:a,cy:A,width:c,height:l,ccwRotationDegrees:n.ccw_rotation});const g=c-u*2,h=l-u*2;g>0&&h>0&&aS({ctx:e,cx:a,cy:A,width:g,height:h,ccwRotationDegrees:n.ccw_rotation}),e.fill("evenodd")}else if(n.shape==="circular_hole_with_rect_pad"){const[a,A]=Bn(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),u=s*Math.abs(o.a),g=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),xE({ctx:e,cx:a,cy:A,width:c,height:l,radius:g,ccwRotationDegrees:n.rect_ccw_rotation});const h=c-u*2,d=l-u*2;if(h>0&&d>0){const p=Math.max(0,g-u);xE({ctx:e,cx:a,cy:A,width:h,height:d,radius:p,ccwRotationDegrees:n.rect_ccw_rotation})}e.fill("evenodd")}else if(n.shape==="pill_hole_with_rect_pad"){const[a,A]=Bn(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),u=s*Math.abs(o.a),g=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),xE({ctx:e,cx:a,cy:A,width:c,height:l,radius:g});const h=c-u*2,d=l-u*2;if(h>0&&d>0){const p=Math.max(0,g-u);xE({ctx:e,cx:a,cy:A,width:h,height:d,radius:p})}e.fill("evenodd")}else if(n.shape==="rotated_pill_hole_with_rect_pad"){const[a,A]=Bn(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),u=s*Math.abs(o.a),g=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),xE({ctx:e,cx:a,cy:A,width:c,height:l,radius:g,ccwRotationDegrees:n.rect_ccw_rotation});const h=c-u*2,d=l-u*2;if(h>0&&d>0){const p=Math.max(0,g-u);xE({ctx:e,cx:a,cy:A,width:h,height:d,radius:p,ccwRotationDegrees:n.rect_ccw_rotation})}e.fill("evenodd")}else if(n.shape==="hole_with_polygon_pad"&&n.pad_outline&&n.pad_outline.length>=3){const a=n.pad_outline.map(l=>({x:n.x+l.x,y:n.y+l.y}));e.beginPath();const A=a.map(l=>{const[u,g]=Bn(o,[l.x,l.y]);return{x:u,y:g}});aP({ctx:e,points:A});const c=CX(a,-s);if(c.length>=3){const l=c.map(u=>{const[g,h]=Bn(o,[u.x,u.y]);return{x:g,y:h}});aP({ctx:e,points:l})}e.fill("evenodd")}}function f0i(t){const{ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.layer!==r)return;const s=n.is_covered_with_solder_mask===!0,a=n.soldermask_margin??0;let A=a,c=a,l=a,u=a;(n.shape==="rect"||n.shape==="rotated_rect")&&(A=n.soldermask_margin_left??a,c=n.soldermask_margin_right??a,l=n.soldermask_margin_top??a,u=n.soldermask_margin_bottom??a),s?(e.fillStyle=i,Ghe({ctx:e,pad:n,realToCanvasMat:o,ml:0,mr:0,mt:0,mb:0}),e.fill()):A<0||c<0||l<0||u<0?(Ghe({ctx:e,pad:n,realToCanvasMat:o,ml:A,mr:c,mt:l,mb:u}),EE(e),I0i({ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,ml:A,mr:c,mt:l,mb:u})):A>0||c>0||l>0||u>0?(Ghe({ctx:e,pad:n,realToCanvasMat:o,ml:A,mr:c,mt:l,mb:u}),EE(e)):(Ghe({ctx:e,pad:n,realToCanvasMat:o,ml:0,mr:0,mt:0,mb:0}),EE(e))}function Ghe(t){const{ctx:e,pad:n,realToCanvasMat:o,ml:i,mr:r,mt:s,mb:a}=t,A=n.shape==="rotated_rect"||n.shape==="rotated_pill"?n.ccw_rotation??0:0;if(n.shape==="rect"||n.shape==="rotated_rect"){const c=n.corner_radius??n.rect_border_radius??0,l=A*Math.PI/180,u=(r-i)/2,g=(s-a)/2,h=u*Math.cos(l)-g*Math.sin(l),d=u*Math.sin(l)+g*Math.cos(l),[p,m]=Bn(o,[n.x+h,n.y+d]),_=(n.width+i+r)*Math.abs(o.a),f=(n.height+s+a)*Math.abs(o.a),I=c*Math.abs(o.a);e.save(),e.translate(p,m),A!==0&&e.rotate(-A*Math.PI/180),e.beginPath(),xE({ctx:e,cx:0,cy:0,width:_,height:f,radius:I}),e.restore()}else if(n.shape==="circle"){const c=(i+r+s+a)/4,[l,u]=Bn(o,[n.x,n.y]),g=(n.radius+c)*Math.abs(o.a);e.beginPath(),e.arc(l,u,g,0,Math.PI*2),e.closePath()}else if(n.shape==="pill"||n.shape==="rotated_pill"){const c=(i+r)/2,[l,u]=Bn(o,[n.x,n.y]),g=(n.width+c*2)*Math.abs(o.a),h=(n.height+c*2)*Math.abs(o.a);e.save(),e.translate(l,u),A!==0&&e.rotate(-A*Math.PI/180),e.beginPath(),aS({ctx:e,cx:0,cy:0,width:g,height:h}),e.restore()}else if(n.shape==="polygon"&&n.points&&n.points.length>=3){const c=(i+r+s+a)/4,u=(c!==0?CX(n.points,c):n.points).map(g=>{const[h,d]=Bn(o,[g.x,g.y]);return{x:h,y:d}});e.beginPath(),aP({ctx:e,points:u})}}function I0i(t){const{ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,ml:r,mr:s,mt:a,mb:A}=t,c=n.shape==="rotated_rect"||n.shape==="rotated_pill"?n.ccw_rotation??0:0,l=Math.max(0,-r),u=Math.max(0,-s),g=Math.max(0,-a),h=Math.max(0,-A);if(e.fillStyle=i,n.shape==="rect"||n.shape==="rotated_rect"){const d=n.corner_radius??n.rect_border_radius??0,[p,m]=Bn(o,[n.x,n.y]),_=n.width*Math.abs(o.a),f=n.height*Math.abs(o.a),I=d*Math.abs(o.a),C=l*Math.abs(o.a),y=u*Math.abs(o.a),x=g*Math.abs(o.a),E=h*Math.abs(o.a);e.save(),e.translate(p,m),c!==0&&e.rotate(-c*Math.PI/180),e.beginPath(),xE({ctx:e,cx:0,cy:0,width:_,height:f,radius:I});const B=_-C-y,S=f-x-E,Q=(C-y)/2,w=(x-E)/2,M=Math.max(0,I-(C+y+x+E)/4);B>0&&S>0&&xE({ctx:e,cx:Q,cy:w,width:B,height:S,radius:M}),e.fill("evenodd"),e.restore()}else if(n.shape==="circle"){const d=Math.max(l,u,g,h),[p,m]=Bn(o,[n.x,n.y]),_=n.radius*Math.abs(o.a),f=d*Math.abs(o.a),I=Math.max(0,_-f);e.save(),e.beginPath(),e.arc(p,m,_,0,Math.PI*2),I>0&&e.arc(p,m,I,0,Math.PI*2,!0),e.fill("evenodd"),e.restore()}else if(n.shape==="pill"||n.shape==="rotated_pill"){const d=Math.max(l,u,g,h),[p,m]=Bn(o,[n.x,n.y]),_=n.width*Math.abs(o.a),f=n.height*Math.abs(o.a),I=d*Math.abs(o.a);e.save(),e.translate(p,m),c!==0&&e.rotate(-c*Math.PI/180),e.beginPath(),aS({ctx:e,cx:0,cy:0,width:_,height:f});const C=_-I*2,y=f-I*2;C>0&&y>0&&aS({ctx:e,cx:0,cy:0,width:C,height:y}),e.fill("evenodd"),e.restore()}else if(n.shape==="polygon"&&n.points&&n.points.length>=3){const d=Math.max(l,u,g,h);e.save(),e.beginPath();const p=n.points.map(_=>{const[f,I]=Bn(o,[_.x,_.y]);return{x:f,y:I}});aP({ctx:e,points:p});const m=CX(n.points,-d);if(m.length>=3){const _=m.map(f=>{const[I,C]=Bn(o,[f.x,f.y]);return{x:I,y:C}});aP({ctx:e,points:_})}e.fill("evenodd"),e.restore()}}function vY(t,e){const n=Math.hypot(t,e);return n<=Number.EPSILON?{x:0,y:0}:{x:t/n,y:e/n}}function C0i(t,e){const n=t.length;if(n<2)return{x:1,y:0};if(e<=0){const c=t[1],l=t[0];if(!c||!l)return{x:1,y:0};const u=vY(c.x-l.x,c.y-l.y);return u.x===0&&u.y===0?{x:1,y:0}:u}if(e>=n-1){const c=t[n-2],l=t[n-1];if(!c||!l)return{x:1,y:0};const u=vY(l.x-c.x,l.y-c.y);return u.x===0&&u.y===0?{x:1,y:0}:u}const o=t[e-1],i=t[e],r=t[e+1];if(!o||!i||!r)return{x:1,y:0};const s=vY(i.x-o.x,i.y-o.y),a=vY(r.x-i.x,r.y-i.y),A=vY(s.x+a.x,s.y+a.y);return A.x===0&&A.y===0?s.x!==0||s.y!==0?s:a.x!==0||a.y!==0?a:{x:1,y:0}:A}function Fon(t){const e=[],n=[];for(let o=0;o<t.length;o++){const i=t[o];if(!i)continue;const r=C0i(t,o),s=vY(-r.y,r.x),a=i.width/2;e.push({x:i.x+s.x*a,y:i.y+s.y*a}),n.push({x:i.x-s.x*a,y:i.y-s.y*a})}return e.concat(n.reverse())}function oVe(t){const e=[];let n=[],o=null;for(const i of t??[]){if(!i||i.route_type!=="wire"){n.length>=2&&e.push(n),n=[],o=null;continue}const r=i.layer??o;if(!r)continue;const s=i.x,a=i.y;typeof s!="number"||typeof a!="number"||typeof i.width=="number"&&(i.width,o&&r!==o&&(n.length>=2&&e.push(n),n=[]),o=r,n.push(i))}return n.length>=2&&e.push(n),e}var Lon=1e-6;function Hon(t){const{ctx:e,trace:n,realToCanvasMat:o,vias:i,platedHoles:r,layer:s}=t;if(!n.route||n.route.length<2)return;const a=oVe(n.route);if(a.length===0)return;const A=new Map;for(const c of a){const l=c[0]?.layer,u=c[c.length-1];if(!(!l||!u)&&!(s&&l!==s)){for(const g of i){if(g.layers&&Array.isArray(g.layers)&&!g.layers.includes(l)||!Oon(u.x,u.y,g.x,g.y))continue;const h=g.hole_diameter/2;if(h<=0)continue;const d={shape:"circle",x:g.x,y:g.y,radius:h};A.set(Gon(d),d)}for(const g of r){if(g.layers&&Array.isArray(g.layers)&&!g.layers.includes(l))continue;const h=y0i(g);h&&Oon(u.x,u.y,h.x,h.y)&&A.set(Gon(h),h)}}}if(A.size!==0){e.save(),e.globalCompositeOperation="destination-out";for(const c of A.values()){if(c.shape==="circle"){dm({ctx:e,center:{x:c.x,y:c.y},radius:c.radius,fill:"#000",realToCanvasMat:o});continue}if(c.shape==="oval"){JB({ctx:e,center:{x:c.x,y:c.y},radius_x:c.radiusX,radius_y:c.radiusY,fill:"#000",realToCanvasMat:o,rotation:c.rotation});continue}A_({ctx:e,center:{x:c.x,y:c.y},width:c.width,height:c.height,fill:"#000",realToCanvasMat:o,rotation:c.rotation})}e.restore()}}function y0i(t){if(t.shape==="circle"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x,y:t.y,radius:i}}if(t.shape==="oval"){const i=t.hole_width/2,r=t.hole_height/2;return i<=0||r<=0?void 0:{shape:"oval",x:t.x,y:t.y,radiusX:i,radiusY:r,rotation:t.ccw_rotation}}if(t.shape==="pill")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:t.ccw_rotation};if(t.shape==="circular_hole_with_rect_pad"){const i=t.hole_diameter/2;return i<=0?void 0:{shape:"circle",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),radius:i}}if(t.shape==="pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height};if(t.shape==="rotated_pill_hole_with_rect_pad")return t.hole_width<=0||t.hole_height<=0?void 0:{shape:"pill",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height,rotation:t.hole_ccw_rotation};if(t.shape!=="hole_with_polygon_pad")return;const e=t.x+(t.hole_offset_x??0),n=t.y+(t.hole_offset_y??0),o=t.hole_shape;if(o==="circle"){const i=(t.hole_diameter??0)/2;return i<=0?void 0:{shape:"circle",x:e,y:n,radius:i}}if(o==="oval"){const i=(t.hole_width??0)/2,r=(t.hole_height??0)/2;return i<=0||r<=0?void 0:{shape:"oval",x:e,y:n,radiusX:i,radiusY:r}}if(o==="pill"||o==="rotated_pill"){const i=t.hole_width??0,r=t.hole_height??0;return i<=0||r<=0?void 0:{shape:"pill",x:e,y:n,width:i,height:r,rotation:o==="rotated_pill"?t.ccw_rotation:0}}}function Oon(t,e,n,o){return Math.abs(t-n)<=Lon&&Math.abs(e-o)<=Lon}function Gon(t){return t.shape==="circle"?`circle:${t.x}:${t.y}:${t.radius}`:t.shape==="oval"?`oval:${t.x}:${t.y}:${t.radiusX}:${t.radiusY}:${t.rotation??0}`:`pill:${t.x}:${t.y}:${t.width}:${t.height}:${t.rotation??0}`}function x0i(t){const{ctx:e,trace:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(!n.route||!Array.isArray(n.route)||n.route.length<2)return;const s=oVe(n.route);for(const a of s)if(a[0]?.layer===r){if(n.route_thickness_mode==="interpolated"){sP({ctx:e,points:Fon(a),fill:i,realToCanvasMat:o});continue}for(let c=0;c<a.length-1;c++){const l=a[c],u=a[c+1];!l||!u||QY({ctx:e,start:{x:l.x,y:l.y},end:{x:u.x,y:u.y},strokeWidth:l.width,stroke:i,realToCanvasMat:o,lineCap:"round"})}}Hon({ctx:e,trace:n,realToCanvasMat:o,layer:r,vias:t.vias,platedHoles:t.platedHoles})}function Yon(t){const{ctx:e,via:n,realToCanvasMat:o,layer:i,soldermaskOverCopperColor:r}=t;if(!n.layers.includes(i))return;const s=iVe(n,i,e),[a,A]=Bn(o,[n.x,n.y]),c=n.outer_diameter/2*Math.abs(o.a);e.beginPath(),e.arc(a,A,c,0,Math.PI*2),e.closePath(),s?(e.fillStyle=r,e.fill()):EE(e)}function iVe(t,e,n){let o=n.boardOwnerMap?.get(t.pcb_via_id);!n.boardOwnerMap?.has(t.pcb_via_id)&&t.pcb_trace_id&&(o=n.boardOwnerMap?.get(t.pcb_trace_id));const i=t,r=e==="top"?i.tented_on_top:i.tented_on_bottom,s=e==="top"?o?.default_via_tented_on_top:o?.default_via_tented_on_bottom;return r??i.is_tented??s??!1}function Uon(t){const{ctx:e,realToCanvasMat:n,colorMap:o,layer:i,drawSoldermask:r}=t;let{elements:s}=t;if(!r||e.canvas.width<=0||e.canvas.height<=0)return;const a=s.filter(d=>d.type==="pcb_board"),A=s.find(d=>d.type==="pcb_panel");a.length===0&&!A&&(s=s.filter(d=>d.type==="pcb_via"));const c=o.soldermask[i]??o.soldermask.top,l=o.soldermaskOverCopper[i]??o.soldermaskOverCopper.top,u=s.filter(d=>d.type==="pcb_via"),g=s.filter(d=>d.type==="pcb_plated_hole"),h=Don(e,e.canvas.width,e.canvas.height)??e;if(A&&a0i({ctx:h,panel:A,realToCanvasMat:n,soldermaskColor:c}),A&&a.length>0){h.save(),h.globalCompositeOperation="destination-out";for(const d of a)Ron({ctx:h,board:d,realToCanvasMat:n,soldermaskColor:"#000"});h.restore()}for(const d of a)Ron({ctx:h,board:d,realToCanvasMat:n,soldermaskColor:c});for(const d of s)d.type==="pcb_trace"?x0i({ctx:h,trace:d,realToCanvasMat:n,soldermaskOverCopperColor:l,layer:i,vias:u,platedHoles:g}):d.type==="pcb_copper_pour"&&d0i({ctx:h,pour:d,realToCanvasMat:n,soldermaskOverCopperColor:l,layer:i,elements:s});for(const d of u)iVe(d,i,h)&&Yon({ctx:h,via:d,realToCanvasMat:n,layer:i,soldermaskOverCopperColor:l});for(const d of s)E0i({ctx:h,element:d,realToCanvasMat:n,soldermaskOverCopperColor:l,layer:i});Non(e,h)}function E0i(t){const{ctx:e,element:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.type==="pcb_smtpad")f0i({ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r});else if(n.type==="pcb_plated_hole")m0i({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r});else if(n.type==="pcb_hole")h0i({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i});else if(n.type==="pcb_via"){if(iVe(n,r,e))return;Yon({ctx:e,via:n,realToCanvasMat:o,layer:r,soldermaskOverCopperColor:i})}else if(n.type==="pcb_cutout")A0i({ctx:e,cutout:n,realToCanvasMat:o});else{if(n.type==="pcb_copper_pour")return;if(n.type==="pcb_trace")return}}function B0i(t,e){return e.copper[t]??e.copper.top}function b0i(t){const{ctx:e,trace:n,realToCanvasMat:o,colorMap:i,layer:r}=t;if(!n.route||!Array.isArray(n.route)||n.route.length<2)return;const s=oVe(n.route);for(const a of s){const A=a[0]?.layer;if(!A||r&&A!==r)continue;const c=B0i(A,i);if(n.route_thickness_mode==="interpolated"){sP({ctx:e,points:Fon(a),fill:c,realToCanvasMat:o});continue}for(let l=0;l<a.length-1;l++){const u=a[l],g=a[l+1];!u||!g||u.is_inside_copper_pour&&g
\n\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.`,type:us.EOI_ANCHOR_FOUND,tokenTypes:[We]}))}function Ps(re){const X=mu(re,He=\u003eHe.PATTERN.test(\"\"));return Gi(X,He=\u003e({message:\"Token Type: -\u003e\"+He.name+\"\u003c- static 'PATTERN' must not match an empty string\",type:us.EMPTY_MATCH_PATTERN,tokenTypes:[He]}))}const wh=/[^\\\\[][\\^]|^\\^/;function qg(re){class X extends Nf{constructor(){super(...arguments),this.found=!1}visitStartAnchor(ft){this.found=!0}}const me=mu(re,We=\u003e{const ft=We.PATTERN;try{const wt=fa(ft),zt=new X;return zt.visit(wt),zt.found}catch{return wh.test(ft.source)}});return Gi(me,We=\u003e({message:`Unexpected RegExp Anchor Error:\n\tToken Type: -\u003e`+We.name+`\u003c- static 'PATTERN' cannot contain start of input anchor '^'\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.`,type:us.SOI_ANCHOR_FOUND,tokenTypes:[We]}))}function gl(re){const X=mu(re,He=\u003e{const We=He[jI];return We instanceof RegExp\u0026\u0026(We.multiline||We.global)});return Gi(X,He=\u003e({message:\"Token Type: -\u003e\"+He.name+\"\u003c- static 'PATTERN' may NOT contain global('g') or multiline('m')\",type:us.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[He]}))}function y3(re){const X=[];let me=Gi(re,ft=\u003e_u(re,(wt,zt)=\u003e(ft.PATTERN.source===zt.PATTERN.source\u0026\u0026!A0(X,zt)\u0026\u0026zt.PATTERN!==yu.NA\u0026\u0026(X.push(zt),wt.push(zt)),wt),[]));me=zg(me);const He=mu(me,ft=\u003eft.length\u003e1);return Gi(He,ft=\u003e{const wt=Gi(ft,en=\u003een.name);return{message:`The same RegExp pattern -\u003e${Jc(ft).PATTERN}\u003c-has been used in all of the following Token Types: ${wt.join(\", \")} \u003c-`,type:us.DUPLICATE_PATTERNS_FOUND,tokenTypes:ft}})}function Tf(re){const X=mu(re,He=\u003e{if(!ai(He,\"GROUP\"))return!1;const We=He.GROUP;return We!==yu.SKIPPED\u0026\u0026We!==yu.NA\u0026\u0026!Al(We)});return Gi(X,He=\u003e({message:\"Token Type: -\u003e\"+He.name+\"\u003c- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String\",type:us.INVALID_GROUP_TYPE_FOUND,tokenTypes:[He]}))}function Pa(re,X){const me=mu(re,We=\u003eWe.PUSH_MODE!==void 0\u0026\u0026!A0(X,We.PUSH_MODE));return Gi(me,We=\u003e({message:`Token Type: -\u003e${We.name}\u003c- static 'PUSH_MODE' value cannot refer to a Lexer Mode -\u003e${We.PUSH_MODE}\u003c-which does not exist`,type:us.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[We]}))}function qc(re){const X=[],me=_u(re,(He,We,ft)=\u003e{const wt=We.PATTERN;return wt===yu.NA||(Al(wt)?He.push({str:wt,idx:ft,tokenType:We}):yc(wt)\u0026\u0026xc(wt)\u0026\u0026He.push({str:wt.source,idx:ft,tokenType:We})),He},[]);return zr(re,(He,We)=\u003e{zr(me,({str:ft,idx:wt,tokenType:zt})=\u003e{if(We\u003cwt\u0026\u0026Yu(ft,He.PATTERN)){const en=`Token: -\u003e${zt.name}\u003c- can never be matched.\nBecause it appears AFTER the Token Type -\u003e${He.name}\u003c-in the lexer's definition.\nSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;X.push({message:en,type:us.UNREACHABLE_PATTERN,tokenTypes:[He,zt]})}})}),X}function Yu(re,X){if(yc(X)){const me=X.exec(re);return me!==null\u0026\u0026me.index===0}else{if(ye(X))return X(re,0,[],{});if(ai(X,\"exec\"))return X.exec(re,0,[],{});if(typeof X==\"string\")return X===re;throw Error(\"non exhaustive match\")}}function xc(re){return cp([\".\",\"\\\\\",\"[\",\"]\",\"|\",\"^\",\"$\",\"(\",\")\",\"?\",\"*\",\"+\",\"{\"],me=\u003ere.source.indexOf(me)!==-1)===void 0}function xg(re){const X=re.ignoreCase?\"i\":\"\";return new RegExp(`^(?:${re.source})`,X)}function $I(re){const X=re.ignoreCase?\"iy\":\"y\";return new RegExp(`${re.source}`,X)}function T1(re,X,me){const He=[];return ai(re,vh)||He.push({message:\"A MultiMode Lexer cannot be initialized without a \u003c\"+vh+`\u003e property in its definition\n`,type:us.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),ai(re,R1)||He.push({message:\"A MultiMode Lexer cannot be initialized without a \u003c\"+R1+`\u003e property in its definition\n`,type:us.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),ai(re,R1)\u0026\u0026ai(re,vh)\u0026\u0026!ai(re.modes,re.defaultMode)\u0026\u0026He.push({message:`A MultiMode Lexer cannot be initialized with a ${vh}: \u003c${re.defaultMode}\u003ewhich does not exist\n`,type:us.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),ai(re,R1)\u0026\u0026zr(re.modes,(We,ft)=\u003e{zr(We,(wt,zt)=\u003e{if(cs(wt))He.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:\u003c${ft}\u003e at index: \u003c${zt}\u003e\n`,type:us.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(ai(wt,\"LONGER_ALT\")){const en=B(wt.LONGER_ALT)?wt.LONGER_ALT:[wt.LONGER_ALT];zr(en,In=\u003e{!cs(In)\u0026\u0026!A0(We,In)\u0026\u0026He.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt \u003c${In.name}\u003e on token \u003c${wt.name}\u003e outside of mode \u003c${ft}\u003e\n`,type:us.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),He}function Xg(re,X,me){const He=[];let We=!1;const ft=zg(hu(Wc(re.modes))),wt=Ig(ft,en=\u003een[jI]===yu.NA),zt=gA(me);return X\u0026\u0026zr(wt,en=\u003e{const In=qI(en,zt);if(In!==!1){const wo={message:ls(en,In),type:In.issue,tokenType:en};He.push(wo)}else ai(en,\"LINE_BREAKS\")?en.LINE_BREAKS===!0\u0026\u0026(We=!0):u5(zt,en.PATTERN)\u0026\u0026(We=!0)}),X\u0026\u0026!We\u0026\u0026He.push({message:`Warning: No LINE_BREAKS Found.\n\tThis Lexer has been defined to track line and column information,\n\tBut none of the Token Types can be identified as matching a line terminator.\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n\tfor details.`,type:us.NO_LINE_BREAKS_FLAGS}),He}function U2(re){const X={},me=O0(re);return zr(me,He=\u003e{const We=re[He];if(B(We))X[He]=[];else throw Error(\"non exhaustive match\")}),X}function K2(re){const X=re.PATTERN;if(yc(X))return!1;if(ye(X))return!0;if(ai(X,\"exec\"))return!0;if(Al(X))return!1;throw Error(\"non exhaustive match\")}function ty(re){return Al(re)\u0026\u0026re.length===1?re.charCodeAt(0):!1}const kf={test:function(re){const X=re.length;for(let me=this.lastIndex;me\u003cX;me++){const He=re.charCodeAt(me);if(He===10)return this.lastIndex=me+1,!0;if(He===13)return re.charCodeAt(me+1)===10?this.lastIndex=me+2:this.lastIndex=me+1,!0}return!1},lastIndex:0};function qI(re,X){if(ai(re,\"LINE_BREAKS\"))return!1;if(yc(re.PATTERN)){try{u5(X,re.PATTERN)}catch(me){return{issue:us.IDENTIFY_TERMINATOR,errMsg:me.message}}return!1}else{if(Al(re.PATTERN))return!1;if(K2(re))return{issue:us.CUSTOM_LINE_BREAK};throw Error(\"non exhaustive match\")}}function ls(re,X){if(X.issue===us.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.\n\tThe problem is in the \u003c${re.name}\u003e Token Type\n\t Root cause: ${X.errMsg}.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(X.issue===us.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the \u003cline_breaks\u003e option.\n\tThe problem is in the \u003c${re.name}\u003e Token Type\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error(\"non exhaustive match\")}function gA(re){return Gi(re,me=\u003eAl(me)?me.charCodeAt(0):me)}function Us(re,X,me){re[X]===void 0?re[X]=[me]:re[X].push(me)}const Zr=256;let os=[];function l0(re){return re\u003cZr?re:os[re]}function k1(){if(RA(os)){os=new Array(65536);for(let re=0;re\u003c65536;re++)os[re]=re\u003e255?255+~~(re/255):re}}function Ph(re,X){const me=re.tokenTypeIdx;return me===X.tokenTypeIdx?!0:X.isParent===!0\u0026\u0026X.categoryMatchesMap[me]===!0}function XI(re,X){return re.tokenTypeIdx===X.tokenTypeIdx}let dl=1;const hl={};function Sl(re){const X=Uu(re);zp(X),Jp(X),pl(X),zr(X,me=\u003e{me.isParent=me.categoryMatches.length\u003e0})}function Uu(re){let X=x0(re),me=re,He=!0;for(;He;){me=zg(hu(Gi(me,ft=\u003eft.CATEGORIES)));const We=L2(me,X);X=X.concat(We),RA(We)?He=!1:me=We}return X}function zp(re){zr(re,X=\u003e{Vl(X)||(hl[dl]=X,X.tokenTypeIdx=dl++),Mh(X)\u0026\u0026!B(X.CATEGORIES)\u0026\u0026(X.CATEGORIES=[X.CATEGORIES]),Mh(X)||(X.CATEGORIES=[]),ny(X)||(X.categoryMatches=[]),x3(X)||(X.categoryMatchesMap={})})}function pl(re){zr(re,X=\u003e{X.categoryMatches=[],zr(X.categoryMatchesMap,(me,He)=\u003e{X.categoryMatches.push(hl[He].tokenTypeIdx)})})}function Jp(re){zr(re,X=\u003e{P_([],X)})}function P_(re,X){zr(re,me=\u003e{X.categoryMatchesMap[me.tokenTypeIdx]=!0}),zr(X.CATEGORIES,me=\u003e{const He=re.concat(X);A0(He,me)||P_(He,me)})}function Vl(re){return ai(re,\"tokenTypeIdx\")}function Mh(re){return ai(re,\"CATEGORIES\")}function ny(re){return ai(re,\"categoryMatches\")}function x3(re){return ai(re,\"categoryMatchesMap\")}function F1(re){return ai(re,\"tokenTypeIdx\")}const Wp={buildUnableToPopLexerModeMessage(re){return`Unable to pop Lexer Mode after encountering Token -\u003e${re.image}\u003c- The Mode Stack is empty`},buildUnexpectedCharactersMessage(re,X,me,He,We){return`unexpected character: -\u003e${re.charAt(X)}\u003c- at offset: ${X}, skipped ${me} characters.`}};var us;(function(re){re[re.MISSING_PATTERN=0]=\"MISSING_PATTERN\",re[re.INVALID_PATTERN=1]=\"INVALID_PATTERN\",re[re.EOI_ANCHOR_FOUND=2]=\"EOI_ANCHOR_FOUND\",re[re.UNSUPPORTED_FLAGS_FOUND=3]=\"UNSUPPORTED_FLAGS_FOUND\",re[re.DUPLICATE_PATTERNS_FOUND=4]=\"DUPLICATE_PATTERNS_FOUND\",re[re.INVALID_GROUP_TYPE_FOUND=5]=\"INVALID_GROUP_TYPE_FOUND\",re[re.PUSH_MODE_DOES_NOT_EXIST=6]=\"PUSH_MODE_DOES_NOT_EXIST\",re[re.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]=\"MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE\",re[re.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]=\"MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY\",re[re.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]=\"MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST\",re[re.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]=\"LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED\",re[re.SOI_ANCHOR_FOUND=11]=\"SOI_ANCHOR_FOUND\",re[re.EMPTY_MATCH_PATTERN=12]=\"EMPTY_MATCH_PATTERN\",re[re.NO_LINE_BREAKS_FLAGS=13]=\"NO_LINE_BREAKS_FLAGS\",re[re.UNREACHABLE_PATTERN=14]=\"UNREACHABLE_PATTERN\",re[re.IDENTIFY_TERMINATOR=15]=\"IDENTIFY_TERMINATOR\",re[re.CUSTOM_LINE_BREAK=16]=\"CUSTOM_LINE_BREAK\",re[re.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]=\"MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE\"})(us||(us={}));const Jd={deferDefinitionErrorsHandling:!1,positionTracking:\"full\",lineTerminatorsPattern:/\\n|\\r\\n?/g,lineTerminatorCharacters:[`\n`,\"\\r\"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Wp,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Jd);class yu{constructor(X,me=Jd){if(this.lexerDefinition=X,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(We,ft)=\u003e{if(this.traceInitPerf===!0){this.traceInitIndent++;const wt=new Array(this.traceInitIndent+1).join(\"\t\");this.traceInitIndent\u003cthis.traceInitMaxIdent\u0026\u0026console.log(`${wt}--\u003e \u003c${We}\u003e`);const{time:zt,value:en}=cl(ft),In=zt\u003e10?console.warn:console.log;return this.traceInitIndent\u003cthis.traceInitMaxIdent\u0026\u0026In(`${wt}\u003c-- \u003c${We}\u003e time: ${zt}ms`),this.traceInitIndent--,en}else return ft()},typeof me==\"boolean\")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported`);this.config=tr({},Jd,me);const He=this.config.traceInitPerf;He===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof He==\"number\"\u0026\u0026(this.traceInitMaxIdent=He,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT(\"Lexer Constructor\",()=\u003e{let We,ft=!0;this.TRACE_INIT(\"Lexer Config handling\",()=\u003e{if(this.config.lineTerminatorsPattern===Jd.lineTerminatorsPattern)this.config.lineTerminatorsPattern=kf;else if(this.config.lineTerminatorCharacters===Jd.lineTerminatorCharacters)throw Error(`Error: Missing \u003clineTerminatorCharacters\u003e property on the Lexer config.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(me.safeMode\u0026\u0026me.ensureOptimizations)throw Error('\"safeMode\" and \"ensureOptimizations\" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),B(X)?We={modes:{defaultMode:x0(X)},defaultMode:vh}:(ft=!1,We=x0(X))}),this.config.skipValidations===!1\u0026\u0026(this.TRACE_INIT(\"performRuntimeChecks\",()=\u003e{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(T1(We,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT(\"performWarningRuntimeChecks\",()=\u003e{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Xg(We,this.trackStartLines,this.config.lineTerminatorCharacters))})),We.modes=We.modes?We.modes:{},zr(We.modes,(zt,en)=\u003e{We.modes[en]=Ig(zt,In=\u003ecs(In))});const wt=O0(We.modes);if(zr(We.modes,(zt,en)=\u003e{this.TRACE_INIT(`Mode: \u003c${en}\u003e processing`,()=\u003e{if(this.modes.push(en),this.config.skipValidations===!1\u0026\u0026this.TRACE_INIT(\"validatePatterns\",()=\u003e{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Vp(zt,wt))}),RA(this.lexerDefinitionErrors)){Sl(zt);let In;this.TRACE_INIT(\"analyzeTokenTypes\",()=\u003e{In=N4(zt,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:me.positionTracking,ensureOptimizations:me.ensureOptimizations,safeMode:me.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[en]=In.patternIdxToConfig,this.charCodeToPatternIdxToConfig[en]=In.charCodeToPatternIdxToConfig,this.emptyGroups=tr({},this.emptyGroups,In.emptyGroups),this.hasCustom=In.hasCustom||this.hasCustom,this.canModeBeOptimized[en]=In.canBeOptimized}})}),this.defaultMode=We.defaultMode,!RA(this.lexerDefinitionErrors)\u0026\u0026!this.config.deferDefinitionErrorsHandling){const en=Gi(this.lexerDefinitionErrors,In=\u003eIn.message).join(`-----------------------\n`);throw new Error(`Errors detected in definition of Lexer:\n`+en)}zr(this.lexerDefinitionWarning,zt=\u003e{jc(zt.message)}),this.TRACE_INIT(\"Choosing sub-methods implementations\",()=\u003e{if(Cu?(this.chopInput=ge,this.match=this.matchWithTest):(this.updateLastIndex=Yt,this.match=this.matchWithExec),ft\u0026\u0026(this.handleModes=Yt),this.trackStartLines===!1\u0026\u0026(this.computeNewColumn=ge),this.trackEndLines===!1\u0026\u0026(this.updateTokenEndLineColumnLocation=Yt),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid \u003cpositionTracking\u003e config option: \"${this.config.positionTracking}\"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT(\"Failed Optimization Warnings\",()=\u003e{const zt=_u(this.canModeBeOptimized,(en,In,po)=\u003e(In===!1\u0026\u0026en.push(po),en),[]);if(me.ensureOptimizations\u0026\u0026!RA(zt))throw Error(`Lexer Modes: \u003c ${zt.join(\", \")} \u003e cannot be optimized.\n\t Disable the \"ensureOptimizations\" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\n\t Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT(\"clearRegExpParserCache\",()=\u003e{zs()}),this.TRACE_INIT(\"toFastProperties\",()=\u003e{Ou(this)})})}tokenize(X,me=this.defaultMode){if(!RA(this.lexerDefinitionErrors)){const We=Gi(this.lexerDefinitionErrors,ft=\u003eft.message).join(`-----------------------\n`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:\n`+We)}return this.tokenizeInternal(X,me)}tokenizeInternal(X,me){let He,We,ft,wt,zt,en,In,po,wo,ci,Hi,pr,Wr,Ca,rr;const Wi=X,Mi=Wi.length;let Gr=0,Bc=0;const qp=this.hasCustom?0:Math.floor(X.length/10),T_=new Array(qp),ly=[];let K1=this.trackStartLines?1:void 0,uy=this.trackStartLines?1:void 0;const Lm=U2(this.emptyGroups),gy=this.trackStartLines,rC=this.config.lineTerminatorsPattern;let dy=0,vr=[],sC=[];const D=[],H=[];Object.freeze(H);let z;function se(){return vr}function xe(Pn){const Zn=l0(Pn),Qo=sC[Zn];return Qo===void 0?H:Qo}const Fe=Pn=\u003e{if(D.length===1\u0026\u0026Pn.tokenType.PUSH_MODE===void 0){const Zn=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(Pn);ly.push({offset:Pn.startOffset,line:Pn.startLine,column:Pn.startColumn,length:Pn.image.length,message:Zn})}else{D.pop();const Zn=GI(D);vr=this.patternIdxToConfig[Zn],sC=this.charCodeToPatternIdxToConfig[Zn],dy=vr.length;const Qo=this.canModeBeOptimized[Zn]\u0026\u0026this.config.safeMode===!1;sC\u0026\u0026Qo?z=xe:z=se}};function pt(Pn){D.push(Pn),sC=this.charCodeToPatternIdxToConfig[Pn],vr=this.patternIdxToConfig[Pn],dy=vr.length,dy=vr.length;const Zn=this.canModeBeOptimized[Pn]\u0026\u0026this.config.safeMode===!1;sC\u0026\u0026Zn?z=xe:z=se}pt.call(this,me);let St;const on=this.config.recoveryEnabled;for(;Gr\u003cMi;){en=null;const Pn=Wi.charCodeAt(Gr),Zn=z(Pn),Qo=Zn.length;for(He=0;He\u003cQo;He++){St=Zn[He];const Gn=St.pattern;In=null;const jn=St.short;if(jn!==!1?Pn===jn\u0026\u0026(en=Gn):St.isCustom===!0?(rr=Gn.exec(Wi,Gr,T_,Lm),rr!==null?(en=rr[0],rr.payload!==void 0\u0026\u0026(In=rr.payload)):en=null):(this.updateLastIndex(Gn,Gr),en=this.match(Gn,X,Gr)),en!==null){if(zt=St.longerAlt,zt!==void 0){const wr=zt.length;for(ft=0;ft\u003cwr;ft++){const br=vr[zt[ft]],tA=br.pattern;if(po=null,br.isCustom===!0?(rr=tA.exec(Wi,Gr,T_,Lm),rr!==null?(wt=rr[0],rr.payload!==void 0\u0026\u0026(po=rr.payload)):wt=null):(this.updateLastIndex(tA,Gr),wt=this.match(tA,X,Gr)),wt\u0026\u0026wt.length\u003een.length){en=wt,In=po,St=br;break}}}break}}if(en!==null){if(wo=en.length,ci=St.group,ci!==void 0\u0026\u0026(Hi=St.tokenTypeIdx,pr=this.createTokenInstance(en,Gr,Hi,St.tokenType,K1,uy,wo),this.handlePayload(pr,In),ci===!1?Bc=this.addToken(T_,Bc,pr):Lm[ci].push(pr)),X=this.chopInput(X,wo),Gr=Gr+wo,uy=this.computeNewColumn(uy,wo),gy===!0\u0026\u0026St.canLineTerminator===!0){let Gn=0,jn,wr;rC.lastIndex=0;do jn=rC.test(en),jn===!0\u0026\u0026(wr=rC.lastIndex-1,Gn++);while(jn===!0);Gn!==0\u0026\u0026(K1=K1+Gn,uy=wo-wr,this.updateTokenEndLineColumnLocation(pr,ci,wr,Gn,K1,uy,wo))}this.handleModes(St,Fe,pt,pr)}else{const Gn=Gr,jn=K1,wr=uy;let br=on===!1;for(;br===!1\u0026\u0026Gr\u003cMi;)for(X=this.chopInput(X,1),Gr++,We=0;We\u003cdy;We++){const tA=vr[We],Mn=tA.pattern,Cn=tA.short;if(Cn!==!1?Wi.charCodeAt(Gr)===Cn\u0026\u0026(br=!0):tA.isCustom===!0?br=Mn.exec(Wi,Gr,T_,Lm)!==null:(this.updateLastIndex(Mn,Gr),br=Mn.exec(X)!==null),br===!0)break}if(Wr=Gr-Gn,uy=this.computeNewColumn(uy,Wr),Ca=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(Wi,Gn,Wr,jn,wr),ly.push({offset:Gn,line:jn,column:wr,length:Wr,message:Ca}),on===!1)break}}return this.hasCustom||(T_.length=Bc),{tokens:T_,groups:Lm,errors:ly}}handleModes(X,me,He,We){if(X.pop===!0){const ft=X.push;me(We),ft!==void 0\u0026\u0026He.call(this,ft)}else X.push!==void 0\u0026\u0026He.call(this,X.push)}chopInput(X,me){return X.substring(me)}updateLastIndex(X,me){X.lastIndex=me}updateTokenEndLineColumnLocation(X,me,He,We,ft,wt,zt){let en,In;me!==void 0\u0026\u0026(en=He===zt-1,In=en?-1:0,We===1\u0026\u0026en===!0||(X.endLine=ft+In,X.endColumn=wt-1+-In))}computeNewColumn(X,me){return X+me}createOffsetOnlyToken(X,me,He,We){return{image:X,startOffset:me,tokenTypeIdx:He,tokenType:We}}createStartOnlyToken(X,me,He,We,ft,wt){return{image:X,startOffset:me,startLine:ft,startColumn:wt,tokenTypeIdx:He,tokenType:We}}createFullToken(X,me,He,We,ft,wt,zt){return{image:X,startOffset:me,endOffset:me+zt-1,startLine:ft,endLine:ft,startColumn:wt,endColumn:wt+zt-1,tokenTypeIdx:He,tokenType:We}}addTokenUsingPush(X,me,He){return X.push(He),me}addTokenUsingMemberAccess(X,me,He){return X[me]=He,me++,me}handlePayloadNoCustom(X,me){}handlePayloadWithCustom(X,me){me!==null\u0026\u0026(X.payload=me)}matchWithTest(X,me,He){return X.test(me)===!0?me.substring(He,X.lastIndex):null}matchWithExec(X,me){const He=X.exec(me);return He!==null?He[0]:null}}yu.SKIPPED=\"This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.\",yu.NA=/NOT_APPLICABLE/;function Dh(re){return V2(re)?re.LABEL:re.name}function V2(re){return Al(re.LABEL)\u0026\u0026re.LABEL!==\"\"}const g5=\"parent\",oy=\"categories\",up=\"label\",Ku=\"group\",G=\"push_mode\",V=\"pop_mode\",Ae=\"longer_alt\",Be=\"line_breaks\",Oe=\"start_chars_hint\";function Je(re){return Tt(re)}function Tt(re){const X=re.pattern,me={};if(me.name=re.name,cs(X)||(me.PATTERN=X),ai(re,g5))throw`The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return ai(re,oy)\u0026\u0026(me.CATEGORIES=re[oy]),Sl([me]),ai(re,up)\u0026\u0026(me.LABEL=re[up]),ai(re,Ku)\u0026\u0026(me.GROUP=re[Ku]),ai(re,V)\u0026\u0026(me.POP_MODE=re[V]),ai(re,G)\u0026\u0026(me.PUSH_MODE=re[G]),ai(re,Ae)\u0026\u0026(me.LONGER_ALT=re[Ae]),ai(re,Be)\u0026\u0026(me.LINE_BREAKS=re[Be]),ai(re,Oe)\u0026\u0026(me.START_CHARS_HINT=re[Oe]),me}const ln=Je({name:\"EOF\",pattern:yu.NA});Sl([ln]);function wn(re,X,me,He,We,ft,wt,zt){return{image:X,startOffset:me,endOffset:He,startLine:We,endLine:ft,startColumn:wt,endColumn:zt,tokenTypeIdx:re.tokenTypeIdx,tokenType:re}}function $o(re,X){return Ph(re,X)}const Ai={buildMismatchTokenMessage({expected:re,actual:X,previous:me,ruleName:He}){return`Expecting ${V2(re)?`--\u003e ${Dh(re)} \u003c--`:`token of type --\u003e ${re.name} \u003c--`} but found --\u003e '${X.image}' \u003c--`},buildNotAllInputParsedMessage({firstRedundant:re,ruleName:X}){return\"Redundant input, expecting EOF but found: \"+re.image},buildNoViableAltMessage({expectedPathsPerAlt:re,actual:X,previous:me,customUserDescription:He,ruleName:We}){const ft=\"Expecting: \",zt=`\nbut found: '`+Jc(X).image+\"'\";if(He)return ft+He+zt;{const en=_u(re,(ci,Hi)=\u003eci.concat(Hi),[]),In=Gi(en,ci=\u003e`[${Gi(ci,Hi=\u003eDh(Hi)).join(\", \")}]`),wo=`one of these possible Token sequences:\n${Gi(In,(ci,Hi)=\u003e` ${Hi+1}. ${ci}`).join(`\n`)}`;return ft+wo+zt}},buildEarlyExitMessage({expectedIterationPaths:re,actual:X,customUserDescription:me,ruleName:He}){const We=\"Expecting: \",wt=`\nbut found: '`+Jc(X).image+\"'\";if(me)return We+me+wt;{const en=`expecting at least one iteration which starts with one of these possible Token sequences::\n \u003c${Gi(re,In=\u003e`[${Gi(In,po=\u003eDh(po)).join(\",\")}]`).join(\" ,\")}\u003e`;return We+en+wt}}};Object.freeze(Ai);const Qi={buildRuleNotFoundError(re,X){return\"Invalid grammar, reference to a rule which is not defined: -\u003e\"+X.nonTerminalName+`\u003c-\ninside top level rule: -\u003e`+re.name+\"\u003c-\"}},Ni={buildDuplicateFoundError(re,X){function me(po){return po instanceof $c?po.terminalType.name:po instanceof za?po.nonTerminalName:\"\"}const He=re.name,We=Jc(X),ft=We.idx,wt=b0(We),zt=me(We),en=ft\u003e0;let In=`-\u003e${wt}${en?ft:\"\"}\u003c- ${zt?`with argument: -\u003e${zt}\u003c-`:\"\"}\n appears more than once (${X.length} times) in the top level rule: -\u003e${He}\u003c-. \n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n `;return In=In.replace(/[ \\t]+/g,\" \"),In=In.replace(/\\s\\s+/g,`\n`),In},buildNamespaceConflictError(re){return`Namespace conflict found in grammar.\nThe grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: \u003c${re.name}\u003e.\nTo resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(re){const X=Gi(re.prefixPath,We=\u003eDh(We)).join(\", \"),me=re.alternation.idx===0?\"\":re.alternation.idx;return`Ambiguous alternatives: \u003c${re.ambiguityIndices.join(\" ,\")}\u003e due to common lookahead prefix\nin \u003cOR${me}\u003e inside \u003c${re.topLevelRule.name}\u003e Rule,\n\u003c${X}\u003e may appears as a prefix path in all these alternatives.\nSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\nFor Further details.`},buildAlternationAmbiguityError(re){const X=Gi(re.prefixPath,We=\u003eDh(We)).join(\", \"),me=re.alternation.idx===0?\"\":re.alternation.idx;let He=`Ambiguous Alternatives Detected: \u003c${re.ambiguityIndices.join(\" ,\")}\u003e in \u003cOR${me}\u003e inside \u003c${re.topLevelRule.name}\u003e Rule,\n\u003c${X}\u003e may appears as a prefix path in all these alternatives.\n`;return He=He+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.`,He},buildEmptyRepetitionError(re){let X=b0(re.repetition);return re.repetition.idx!==0\u0026\u0026(X+=re.repetition.idx),`The repetition \u003c${X}\u003e within Rule \u003c${re.topLevelRule.name}\u003e can never consume any tokens.\nThis could lead to an infinite loop.`},buildTokenNameError(re){return\"deprecated\"},buildEmptyAlternationError(re){return`Ambiguous empty alternative: \u003c${re.emptyChoiceIdx+1}\u003e in \u003cOR${re.alternation.idx}\u003e inside \u003c${re.topLevelRule.name}\u003e Rule.\nOnly the last alternative may be an empty alternative.`},buildTooManyAlternativesError(re){return`An Alternation cannot have more than 256 alternatives:\n\u003cOR${re.alternation.idx}\u003e inside \u003c${re.topLevelRule.name}\u003e Rule.\n has ${re.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(re){const X=re.topLevelRule.name,me=Gi(re.leftRecursionPath,ft=\u003eft.name),He=`${X} --\u003e ${me.concat([X]).join(\" --\u003e \")}`;return`Left Recursion found in grammar.\nrule: \u003c${X}\u003e can be invoked from itself (directly or indirectly)\nwithout consuming any Tokens. The grammar path that causes this is: \n ${He}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(re){return\"deprecated\"},buildDuplicateRuleNameError(re){let X;return re.topLevelRule instanceof $g?X=re.topLevelRule.name:X=re.topLevelRule,`Duplicate definition, rule: -\u003e${X}\u003c- is already defined in the grammar: -\u003e${re.grammarName}\u003c-`}};function Xs(re,X){const me=new jp(re,X);return me.resolveRefs(),me.errors}class jp extends VI{constructor(X,me){super(),this.nameToTopRule=X,this.errMsgProvider=me,this.errors=[]}resolveRefs(){zr(Wc(this.nameToTopRule),X=\u003e{this.currTopLevel=X,X.accept(this)})}visitNonTerminal(X){const me=this.nameToTopRule[X.nonTerminalName];if(me)X.referencedRule=me;else{const He=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,X);this.errors.push({message:He,type:pp.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:X.nonTerminalName})}}}class L1 extends Mf{constructor(X,me){super(),this.topProd=X,this.path=me,this.possibleTokTypes=[],this.nextProductionName=\"\",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error(\"The path does not start with the walker's top Rule!\");return this.ruleStack=x0(this.path.ruleStack).reverse(),this.occurrenceStack=x0(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(X,me=[]){this.found||super.walk(X,me)}walkProdRef(X,me,He){if(X.referencedRule.name===this.nextProductionName\u0026\u0026X.idx===this.nextProductionOccurrence){const We=me.concat(He);this.updateExpectedNext(),this.walk(X.referencedRule,We)}}updateExpectedNext(){RA(this.ruleStack)?(this.nextProductionName=\"\",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Eg extends L1{constructor(X,me){super(X,me),this.path=me,this.nextTerminalName=\"\",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(X,me,He){if(this.isAtEndOfPath\u0026\u0026X.terminalType.name===this.nextTerminalName\u0026\u0026X.idx===this.nextTerminalOccurrence\u0026\u0026!this.found){const We=me.concat(He),ft=new Xa({definition:We});this.possibleTokTypes=Cg(ft),this.found=!0}}}class Yn extends Mf{constructor(X,me){super(),this.topRule=X,this.occurrence=me,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class Qn extends Yn{walkMany(X,me,He){if(X.idx===this.occurrence){const We=Jc(me.concat(He));this.result.isEndOfRule=We===void 0,We instanceof $c\u0026\u0026(this.result.token=We.terminalType,this.result.occurrence=We.idx)}else super.walkMany(X,me,He)}}class to extends Yn{walkManySep(X,me,He){if(X.idx===this.occurrence){const We=Jc(me.concat(He));this.result.isEndOfRule=We===void 0,We instanceof $c\u0026\u0026(this.result.token=We.terminalType,this.result.occurrence=We.idx)}else super.walkManySep(X,me,He)}}class zo extends Yn{walkAtLeastOne(X,me,He){if(X.idx===this.occurrence){const We=Jc(me.concat(He));this.result.isEndOfRule=We===void 0,We instanceof $c\u0026\u0026(this.result.token=We.terminalType,this.result.occurrence=We.idx)}else super.walkAtLeastOne(X,me,He)}}class Bi extends Yn{walkAtLeastOneSep(X,me,He){if(X.idx===this.occurrence){const We=Jc(me.concat(He));this.result.isEndOfRule=We===void 0,We instanceof $c\u0026\u0026(this.result.token=We.terminalType,this.result.occurrence=We.idx)}else super.walkAtLeastOneSep(X,me,He)}}function eA(re,X,me=[]){me=x0(me);let He=[],We=0;function ft(zt){return zt.concat(Hu(re,We+1))}function wt(zt){const en=eA(ft(zt),X,me);return He.concat(en)}for(;me.length\u003cX\u0026\u0026We\u003cre.length;){const zt=re[We];if(zt instanceof Xa)return wt(zt.definition);if(zt instanceof za)return wt(zt.definition);if(zt instanceof Za)He=wt(zt.definition);else if(zt instanceof Vs){const en=zt.definition.concat([new Si({definition:zt.definition})]);return wt(en)}else if(zt instanceof fu){const en=[new Xa({definition:zt.definition}),new Si({definition:[new $c({terminalType:zt.separator})].concat(zt.definition)})];return wt(en)}else if(zt instanceof lp){const en=zt.definition.concat([new Si({definition:[new $c({terminalType:zt.separator})].concat(zt.definition)})]);He=wt(en)}else if(zt instanceof Si){const en=zt.definition.concat([new Si({definition:zt.definition})]);He=wt(en)}else{if(zt instanceof c0)return zr(zt.definition,en=\u003e{RA(en.definition)===!1\u0026\u0026(He=wt(en.definition))}),He;if(zt instanceof $c)me.push(zt.terminalType);else throw Error(\"non exhaustive match\")}We++}return He.push({partialPath:me,suffixDef:Hu(re,We)}),He}function Or(re,X,me,He){const We=\"EXIT_NONE_TERMINAL\",ft=[We],wt=\"EXIT_ALTERNATIVE\";let zt=!1;const en=X.length,In=en-He-1,po=[],wo=[];for(wo.push({idx:-1,def:re,ruleStack:[],occurrenceStack:[]});!RA(wo);){const ci=wo.pop();if(ci===wt){zt\u0026\u0026GI(wo).idx\u003c=In\u0026\u0026wo.pop();continue}const Hi=ci.def,pr=ci.idx,Wr=ci.ruleStack,Ca=ci.occurrenceStack;if(RA(Hi))continue;const rr=Hi[0];if(rr===We){const Wi={idx:pr,def:Hu(Hi),ruleStack:wm(Wr),occurrenceStack:wm(Ca)};wo.push(Wi)}else if(rr instanceof $c)if(pr\u003cen-1){const Wi=pr+1,Mi=X[Wi];if(me(Mi,rr.terminalType)){const Gr={idx:Wi,def:Hu(Hi),ruleStack:Wr,occurrenceStack:Ca};wo.push(Gr)}}else if(pr===en-1)po.push({nextTokenType:rr.terminalType,nextTokenOccurrence:rr.idx,ruleStack:Wr,occurrenceStack:Ca}),zt=!0;else throw Error(\"non exhaustive match\");else if(rr instanceof za){const Wi=x0(Wr);Wi.push(rr.nonTerminalName);const Mi=x0(Ca);Mi.push(rr.idx);const Gr={idx:pr,def:rr.definition.concat(ft,Hu(Hi)),ruleStack:Wi,occurrenceStack:Mi};wo.push(Gr)}else if(rr instanceof Za){const Wi={idx:pr,def:Hu(Hi),ruleStack:Wr,occurrenceStack:Ca};wo.push(Wi),wo.push(wt);const Mi={idx:pr,def:rr.definition.concat(Hu(Hi)),ruleStack:Wr,occurrenceStack:Ca};wo.push(Mi)}else if(rr instanceof Vs){const Wi=new Si({definition:rr.definition,idx:rr.idx}),Mi=rr.definition.concat([Wi],Hu(Hi)),Gr={idx:pr,def:Mi,ruleStack:Wr,occurrenceStack:Ca};wo.push(Gr)}else if(rr instanceof fu){const Wi=new $c({terminalType:rr.separator}),Mi=new Si({definition:[Wi].concat(rr.definition),idx:rr.idx}),Gr=rr.definition.concat([Mi],Hu(Hi)),Bc={idx:pr,def:Gr,ruleStack:Wr,occurrenceStack:Ca};wo.push(Bc)}else if(rr instanceof lp){const Wi={idx:pr,def:Hu(Hi),ruleStack:Wr,occurrenceStack:Ca};wo.push(Wi),wo.push(wt);const Mi=new $c({terminalType:rr.separator}),Gr=new Si({definition:[Mi].concat(rr.definition),idx:rr.idx}),Bc=rr.definition.concat([Gr],Hu(Hi)),qp={idx:pr,def:Bc,ruleStack:Wr,occurrenceStack:Ca};wo.push(qp)}else if(rr instanceof Si){const Wi={idx:pr,def:Hu(Hi),ruleStack:Wr,occurrenceStack:Ca};wo.push(Wi),wo.push(wt);const Mi=new Si({definition:rr.definition,idx:rr.idx}),Gr=rr.definition.concat([Mi],Hu(Hi)),Bc={idx:pr,def:Gr,ruleStack:Wr,occurrenceStack:Ca};wo.push(Bc)}else if(rr instanceof c0)for(let Wi=rr.definition.length-1;Wi\u003e=0;Wi--){const Mi=rr.definition[Wi],Gr={idx:pr,def:Mi.definition.concat(Hu(Hi)),ruleStack:Wr,occurrenceStack:Ca};wo.push(Gr),wo.push(wt)}else if(rr instanceof Xa)wo.push({idx:pr,def:rr.definition.concat(Hu(Hi)),ruleStack:Wr,occurrenceStack:Ca});else if(rr instanceof $g)wo.push(Js(rr,pr,Wr,Ca));else throw Error(\"non exhaustive match\")}return po}function Js(re,X,me,He){const We=x0(me);We.push(re.name);const ft=x0(He);return ft.push(1),{idx:X,def:re.definition,ruleStack:We,occurrenceStack:ft}}var Qs;(function(re){re[re.OPTION=0]=\"OPTION\",re[re.REPETITION=1]=\"REPETITION\",re[re.REPETITION_MANDATORY=2]=\"REPETITION_MANDATORY\",re[re.REPETITION_MANDATORY_WITH_SEPARATOR=3]=\"REPETITION_MANDATORY_WITH_SEPARATOR\",re[re.REPETITION_WITH_SEPARATOR=4]=\"REPETITION_WITH_SEPARATOR\",re[re.ALTERNATION=5]=\"ALTERNATION\"})(Qs||(Qs={}));function Wa(re){if(re instanceof Za||re===\"Option\")return Qs.OPTION;if(re instanceof Si||re===\"Repetition\")return Qs.REPETITION;if(re instanceof Vs||re===\"RepetitionMandatory\")return Qs.REPETITION_MANDATORY;if(re instanceof fu||re===\"RepetitionMandatoryWithSeparator\")return Qs.REPETITION_MANDATORY_WITH_SEPARATOR;if(re instanceof lp||re===\"RepetitionWithSeparator\")return Qs.REPETITION_WITH_SEPARATOR;if(re instanceof c0||re===\"Alternation\")return Qs.ALTERNATION;throw Error(\"non exhaustive match\")}function Bg(re,X,me,He,We,ft){const wt=Ff(re,X,me),zt=h5(wt)?XI:Ph;return ft(wt,He,zt,We)}function d5(re,X,me,He,We,ft){const wt=Wd(re,X,We,me),zt=h5(wt)?XI:Ph;return ft(wt[0],zt,He)}function E3(re,X,me,He){const We=re.length,ft=Bh(re,wt=\u003eBh(wt,zt=\u003ezt.length===1));if(X)return function(wt){const zt=Gi(wt,en=\u003een.GATE);for(let en=0;en\u003cWe;en++){const In=re[en],po=In.length,wo=zt[en];if(!(wo!==void 0\u0026\u0026wo.call(this)===!1))e:for(let ci=0;ci\u003cpo;ci++){const Hi=In[ci],pr=Hi.length;for(let Wr=0;Wr\u003cpr;Wr++){const Ca=this.LA(Wr+1);if(me(Ca,Hi[Wr])===!1)continue e}return en}}};if(ft\u0026\u0026!He){const wt=Gi(re,en=\u003ehu(en)),zt=_u(wt,(en,In,po)=\u003e(zr(In,wo=\u003e{ai(en,wo.tokenTypeIdx)||(en[wo.tokenTypeIdx]=po),zr(wo.categoryMatches,ci=\u003e{ai(en,ci)||(en[ci]=po)})}),en),{});return function(){const en=this.LA(1);return zt[en.tokenTypeIdx]}}else return function(){for(let wt=0;wt\u003cWe;wt++){const zt=re[wt],en=zt.length;e:for(let In=0;In\u003cen;In++){const po=zt[In],wo=po.length;for(let ci=0;ci\u003cwo;ci++){const Hi=this.LA(ci+1);if(me(Hi,po[ci])===!1)continue e}return wt}}}}function H1(re,X,me){const He=Bh(re,ft=\u003eft.length===1),We=re.length;if(He\u0026\u0026!me){const ft=hu(re);if(ft.length===1\u0026\u0026RA(ft[0].categoryMatches)){const zt=ft[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===zt}}else{const wt=_u(ft,(zt,en,In)=\u003e(zt[en.tokenTypeIdx]=!0,zr(en.categoryMatches,po=\u003e{zt[po]=!0}),zt),[]);return function(){const zt=this.LA(1);return wt[zt.tokenTypeIdx]===!0}}}else return function(){e:for(let ft=0;ft\u003cWe;ft++){const wt=re[ft],zt=wt.length;for(let en=0;en\u003czt;en++){const In=this.LA(en+1);if(X(In,wt[en])===!1)continue e}return!0}return!1}}class M_ extends Mf{constructor(X,me,He){super(),this.topProd=X,this.targetOccurrence=me,this.targetProdType=He}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(X,me,He,We){return X.idx===this.targetOccurrence\u0026\u0026this.targetProdType===me?(this.restDef=He.concat(We),!0):!1}walkOption(X,me,He){this.checkIsTarget(X,Qs.OPTION,me,He)||super.walkOption(X,me,He)}walkAtLeastOne(X,me,He){this.checkIsTarget(X,Qs.REPETITION_MANDATORY,me,He)||super.walkOption(X,me,He)}walkAtLeastOneSep(X,me,He){this.checkIsTarget(X,Qs.REPETITION_MANDATORY_WITH_SEPARATOR,me,He)||super.walkOption(X,me,He)}walkMany(X,me,He){this.checkIsTarget(X,Qs.REPETITION,me,He)||super.walkOption(X,me,He)}walkManySep(X,me,He){this.checkIsTarget(X,Qs.REPETITION_WITH_SEPARATOR,me,He)||super.walkOption(X,me,He)}}class gp extends VI{constructor(X,me,He){super(),this.targetOccurrence=X,this.targetProdType=me,this.targetRef=He,this.result=[]}checkIsTarget(X,me){X.idx===this.targetOccurrence\u0026\u0026this.targetProdType===me\u0026\u0026(this.targetRef===void 0||X===this.targetRef)\u0026\u0026(this.result=X.definition)}visitOption(X){this.checkIsTarget(X,Qs.OPTION)}visitRepetition(X){this.checkIsTarget(X,Qs.REPETITION)}visitRepetitionMandatory(X){this.checkIsTarget(X,Qs.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(X){this.checkIsTarget(X,Qs.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(X){this.checkIsTarget(X,Qs.REPETITION_WITH_SEPARATOR)}visitAlternation(X){this.checkIsTarget(X,Qs.ALTERNATION)}}function Ma(re){const X=new Array(re);for(let me=0;me\u003cre;me++)X[me]=[];return X}function ja(re){let X=[\"\"];for(let me=0;me\u003cre.length;me++){const He=re[me],We=[];for(let ft=0;ft\u003cX.length;ft++){const wt=X[ft];We.push(wt+\"_\"+He.tokenTypeIdx);for(let zt=0;zt\u003cHe.categoryMatches.length;zt++){const en=\"_\"+He.categoryMatches[zt];We.push(wt+en)}}X=We}return X}function z2(re,X,me){for(let He=0;He\u003cre.length;He++){if(He===me)continue;const We=re[He];for(let ft=0;ft\u003cX.length;ft++){const wt=X[ft];if(We[wt]===!0)return!1}}return!0}function ms(re,X){const me=Gi(re,wt=\u003eeA([wt],1)),He=Ma(me.length),We=Gi(me,wt=\u003e{const zt={};return zr(wt,en=\u003e{const In=ja(en.partialPath);zr(In,po=\u003e{zt[po]=!0})}),zt});let ft=me;for(let wt=1;wt\u003c=X;wt++){const zt=ft;ft=Ma(zt.length);for(let en=0;en\u003czt.length;en++){const In=zt[en];for(let po=0;po\u003cIn.length;po++){const wo=In[po].partialPath,ci=In[po].suffixDef,Hi=ja(wo);if(z2(We,Hi,en)||RA(ci)||wo.length===X){const Wr=He[en];if(ZI(Wr,wo)===!1){Wr.push(wo);for(let Ca=0;Ca\u003cHi.length;Ca++){const rr=Hi[Ca];We[en][rr]=!0}}}else{const Wr=eA(ci,wt+1,wo);ft[en]=ft[en].concat(Wr),zr(Wr,Ca=\u003e{const rr=ja(Ca.partialPath);zr(rr,Wi=\u003e{We[en][Wi]=!0})})}}}}return He}function Ff(re,X,me,He){const We=new gp(re,Qs.ALTERNATION,He);return X.accept(We),ms(We.result,me)}function Wd(re,X,me,He){const We=new gp(re,me);X.accept(We);const ft=We.result,zt=new M_(X,re,me).startWalking(),en=new Xa({definition:ft}),In=new Xa({definition:zt});return ms([en,In],He)}function ZI(re,X){e:for(let me=0;me\u003cre.length;me++){const He=re[me];if(He.length===X.length){for(let We=0;We\u003cHe.length;We++){const ft=X[We],wt=He[We];if((ft===wt||wt.categoryMatchesMap[ft.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function Ia(re,X){return re.length\u003cX.length\u0026\u0026Bh(re,(me,He)=\u003e{const We=X[He];return me===We||We.categoryMatchesMap[me.tokenTypeIdx]})}function h5(re){return Bh(re,X=\u003eBh(X,me=\u003eBh(me,He=\u003eRA(He.categoryMatches))))}function p5(re){const X=re.lookaheadStrategy.validate({rules:re.rules,tokenTypes:re.tokenTypes,grammarName:re.grammarName});return Gi(X,me=\u003eObject.assign({type:pp.CUSTOM_LOOKAHEAD_VALIDATION},me))}function zS(re,X,me,He){const We=pg(re,en=\u003eNh(en,me)),ft=tC(re,X,me),wt=pg(re,en=\u003eWn(en,me)),zt=pg(re,en=\u003eiy(en,re,He,me));return We.concat(ft,wt,zt)}function Nh(re,X){const me=new B3;re.accept(me);const He=me.allProductions,We=Ys(He,yA),ft=fg(We,zt=\u003ezt.length\u003e1);return Gi(Wc(ft),zt=\u003e{const en=Jc(zt),In=X.buildDuplicateFoundError(re,zt),po=b0(en),wo={message:In,type:pp.DUPLICATE_PRODUCTIONS,ruleName:re.name,dslName:po,occurrence:en.idx},ci=Lf(en);return ci\u0026\u0026(wo.parameter=ci),wo})}function yA(re){return`${b0(re)}_#_${re.idx}_#_${Lf(re)}`}function Lf(re){return re instanceof $c?re.terminalType.name:re instanceof za?re.nonTerminalName:\"\"}class B3 extends VI{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(X){this.allProductions.push(X)}visitOption(X){this.allProductions.push(X)}visitRepetitionWithSeparator(X){this.allProductions.push(X)}visitRepetitionMandatory(X){this.allProductions.push(X)}visitRepetitionMandatoryWithSeparator(X){this.allProductions.push(X)}visitRepetition(X){this.allProductions.push(X)}visitAlternation(X){this.allProductions.push(X)}visitTerminal(X){this.allProductions.push(X)}}function iy(re,X,me,He){const We=[];if(_u(X,(wt,zt)=\u003ezt.name===re.name?wt+1:wt,0)\u003e1){const wt=He.buildDuplicateRuleNameError({topLevelRule:re,grammarName:me});We.push({message:wt,type:pp.DUPLICATE_RULE_NAME,ruleName:re.name})}return We}function b3(re,X,me){const He=[];let We;return A0(X,re)||(We=`Invalid rule override, rule: -\u003e${re}\u003c- cannot be overridden in the grammar: -\u003e${me}\u003c-as it is not defined in any of the super grammars `,He.push({message:We,type:pp.INVALID_RULE_OVERRIDE,ruleName:re})),He}function dp(re,X,me,He=[]){const We=[],ft=eC(X.definition);if(RA(ft))return[];{const wt=re.name;A0(ft,re)\u0026\u0026We.push({message:me.buildLeftRecursionError({topLevelRule:re,leftRecursionPath:He}),type:pp.LEFT_RECURSION,ruleName:wt});const en=L2(ft,He.concat([re])),In=pg(en,po=\u003e{const wo=x0(He);return wo.push(po),dp(re,po,me,wo)});return We.concat(In)}}function eC(re){let X=[];if(RA(re))return X;const me=Jc(re);if(me instanceof za)X.push(me.referencedRule);else if(me instanceof Xa||me instanceof Za||me instanceof Vs||me instanceof fu||me instanceof lp||me instanceof Si)X=X.concat(eC(me.definition));else if(me instanceof c0)X=hu(Gi(me.definition,ft=\u003eeC(ft.definition)));else if(!(me instanceof $c))throw Error(\"non exhaustive match\");const He=zI(me),We=re.length\u003e1;if(He\u0026\u0026We){const ft=Hu(re);return X.concat(eC(ft))}else return X}class J2 extends VI{constructor(){super(...arguments),this.alternations=[]}visitAlternation(X){this.alternations.push(X)}}function JS(re,X){const me=new J2;re.accept(me);const He=me.alternations;return pg(He,ft=\u003e{const wt=wm(ft.definition);return pg(wt,(zt,en)=\u003e{const In=Or([zt],[],Ph,1);return RA(In)?[{message:X.buildEmptyAlternationError({topLevelRule:re,alternation:ft,emptyChoiceIdx:en}),type:pp.NONE_LAST_EMPTY_ALT,ruleName:re.name,occurrence:ft.idx,alternative:en+1}]:[]})})}function l8(re,X,me){const He=new J2;re.accept(He);let We=He.alternations;return We=Ig(We,wt=\u003ewt.ignoreAmbiguities===!0),pg(We,wt=\u003e{const zt=wt.idx,en=wt.maxLookahead||X,In=Ff(zt,re,en,wt),po=u8(In,wt,re,me),wo=Rh(In,wt,re,me);return po.concat(wo)})}class ra extends VI{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(X){this.allProductions.push(X)}visitRepetitionMandatory(X){this.allProductions.push(X)}visitRepetitionMandatoryWithSeparator(X){this.allProductions.push(X)}visitRepetition(X){this.allProductions.push(X)}}function Wn(re,X){const me=new J2;re.accept(me);const He=me.alternations;return pg(He,ft=\u003eft.definition.length\u003e255?[{message:X.buildTooManyAlternativesError({topLevelRule:re,alternation:ft}),type:pp.TOO_MANY_ALTS,ruleName:re.name,occurrence:ft.idx}]:[])}function _s(re,X,me){const He=[];return zr(re,We=\u003e{const ft=new ra;We.accept(ft);const wt=ft.allProductions;zr(wt,zt=\u003e{const en=Wa(zt),In=zt.maxLookahead||X,po=zt.idx,ci=Wd(po,We,en,In)[0];if(RA(hu(ci))){const Hi=me.buildEmptyRepetitionError({topLevelRule:We,repetition:zt});He.push({message:Hi,type:pp.NO_NON_EMPTY_LOOKAHEAD,ruleName:We.name})}})}),He}function u8(re,X,me,He){const We=[],ft=_u(re,(zt,en,In)=\u003e(X.definition[In].ignoreAmbiguities===!0||zr(en,po=\u003e{const wo=[In];zr(re,(ci,Hi)=\u003e{In!==Hi\u0026\u0026ZI(ci,po)\u0026\u0026X.definition[Hi].ignoreAmbiguities!==!0\u0026\u0026wo.push(Hi)}),wo.length\u003e1\u0026\u0026!ZI(We,po)\u0026\u0026(We.push(po),zt.push({alts:wo,path:po}))}),zt),[]);return Gi(ft,zt=\u003e{const en=Gi(zt.alts,po=\u003epo+1);return{message:He.buildAlternationAmbiguityError({topLevelRule:me,alternation:X,ambiguityIndices:en,prefixPath:zt.path}),type:pp.AMBIGUOUS_ALTS,ruleName:me.name,occurrence:X.idx,alternatives:zt.alts}})}function Rh(re,X,me,He){const We=_u(re,(wt,zt,en)=\u003e{const In=Gi(zt,po=\u003e({idx:en,path:po}));return wt.concat(In)},[]);return zg(pg(We,wt=\u003e{if(X.definition[wt.idx].ignoreAmbiguities===!0)return[];const en=wt.idx,In=wt.path,po=mu(We,ci=\u003eX.definition[ci.idx].ignoreAmbiguities!==!0\u0026\u0026ci.idx\u003cen\u0026\u0026Ia(ci.path,In));return Gi(po,ci=\u003e{const Hi=[ci.idx+1,en+1],pr=X.idx===0?\"\":X.idx;return{message:He.buildAlternationPrefixAmbiguityError({topLevelRule:me,alternation:X,ambiguityIndices:Hi,prefixPath:ci.path}),type:pp.AMBIGUOUS_PREFIX_ALTS,ruleName:me.name,occurrence:pr,alternatives:Hi}})}))}function tC(re,X,me){const He=[],We=Gi(X,ft=\u003eft.name);return zr(re,ft=\u003e{const wt=ft.name;if(A0(We,wt)){const zt=me.buildNamespaceConflictError(ft);He.push({message:zt,type:pp.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:wt})}}),He}function Tm(re){const X=o5(re,{errMsgProvider:Qi}),me={};return zr(re.rules,He=\u003e{me[He.name]=He}),Xs(me,X.errMsgProvider)}function O1(re){return re=o5(re,{errMsgProvider:Ni}),zS(re.rules,re.tokenTypes,re.errMsgProvider,re.grammarName)}const ry=\"MismatchedTokenException\",$p=\"NoViableAltException\",W2=\"EarlyExitException\",G1=\"NotAllInputParsedException\",S3=[ry,$p,W2,G1];Object.freeze(S3);function R4(re){return A0(S3,re.name)}class sy extends Error{constructor(X,me){super(X),this.token=me,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace\u0026\u0026Error.captureStackTrace(this,this.constructor)}}class g8 extends sy{constructor(X,me,He){super(X,me),this.previousToken=He,this.name=ry}}class D_ extends sy{constructor(X,me,He){super(X,me),this.previousToken=He,this.name=$p}}class ay extends sy{constructor(X,me){super(X,me),this.name=G1}}class Ay extends sy{constructor(X,me,He){super(X,me),this.previousToken=He,this.name=W2}}const Y1={},Q3=\"InRuleRecoveryException\";class m5 extends Error{constructor(X){super(X),this.name=Q3}}class m9{initRecoverable(X){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=ai(X,\"recoveryEnabled\")?X.recoveryEnabled:Fm.recoveryEnabled,this.recoveryEnabled\u0026\u0026(this.attemptInRepetitionRecovery=nC)}getTokenToInsert(X){const me=wn(X,\"\",NaN,NaN,NaN,NaN,NaN,NaN);return me.isInsertedInRecovery=!0,me}canTokenTypeBeInsertedInRecovery(X){return!0}canTokenTypeBeDeletedInRecovery(X){return!0}tryInRepetitionRecovery(X,me,He,We){const ft=this.findReSyncTokenType(),wt=this.exportLexerState(),zt=[];let en=!1;const In=this.LA(1);let po=this.LA(1);const wo=()=\u003e{const ci=this.LA(0),Hi=this.errorMessageProvider.buildMismatchTokenMessage({expected:We,actual:In,previous:ci,ruleName:this.getCurrRuleFullName()}),pr=new g8(Hi,In,this.LA(0));pr.resyncedTokens=wm(zt),this.SAVE_ERROR(pr)};for(;!en;)if(this.tokenMatcher(po,We)){wo();return}else if(He.call(this)){wo(),X.apply(this,me);return}else this.tokenMatcher(po,ft)?en=!0:(po=this.SKIP_TOKEN(),this.addToResyncTokens(po,zt));this.importLexerState(wt)}shouldInRepetitionRecoveryBeTried(X,me,He){return!(He===!1||this.tokenMatcher(this.LA(1),X)||this.isBackTracking()||this.canPerformInRuleRecovery(X,this.getFollowsForInRuleRecovery(X,me)))}getFollowsForInRuleRecovery(X,me){const He=this.getCurrentGrammarPath(X,me);return this.getNextPossibleTokenTypes(He)}tryInRuleRecovery(X,me){if(this.canRecoverWithSingleTokenInsertion(X,me))return this.getTokenToInsert(X);if(this.canRecoverWithSingleTokenDeletion(X)){const He=this.SKIP_TOKEN();return this.consumeToken(),He}throw new m5(\"sad sad panda\")}canPerformInRuleRecovery(X,me){return this.canRecoverWithSingleTokenInsertion(X,me)||this.canRecoverWithSingleTokenDeletion(X)}canRecoverWithSingleTokenInsertion(X,me){if(!this.canTokenTypeBeInsertedInRecovery(X)||RA(me))return!1;const He=this.LA(1);return cp(me,ft=\u003ethis.tokenMatcher(He,ft))!==void 0}canRecoverWithSingleTokenDeletion(X){return this.canTokenTypeBeDeletedInRecovery(X)?this.tokenMatcher(this.LA(2),X):!1}isInCurrentRuleReSyncSet(X){const me=this.getCurrFollowKey(),He=this.getFollowSetFromFollowKey(me);return A0(He,X)}findReSyncTokenType(){const X=this.flattenFollowSet();let me=this.LA(1),He=2;for(;;){const We=cp(X,ft=\u003e$o(me,ft));if(We!==void 0)return We;me=this.LA(He),He++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Y1;const X=this.getLastExplicitRuleShortName(),me=this.getLastExplicitRuleOccurrenceIndex(),He=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(X),idxInCallingRule:me,inRule:this.shortRuleNameToFullName(He)}}buildFullFollowKeyStack(){const X=this.RULE_STACK,me=this.RULE_OCCURRENCE_STACK;return Gi(X,(He,We)=\u003eWe===0?Y1:{ruleName:this.shortRuleNameToFullName(He),idxInCallingRule:me[We],inRule:this.shortRuleNameToFullName(X[We-1])})}flattenFollowSet(){const X=Gi(this.buildFullFollowKeyStack(),me=\u003ethis.getFollowSetFromFollowKey(me));return hu(X)}getFollowSetFromFollowKey(X){if(X===Y1)return[ln];const me=X.ruleName+X.idxInCallingRule+Nm+X.inRule;return this.resyncFollows[me]}addToResyncTokens(X,me){return this.tokenMatcher(X,ln)||me.push(X),me}reSyncTo(X){const me=[];let He=this.LA(1);for(;this.tokenMatcher(He,X)===!1;)He=this.SKIP_TOKEN(),this.addToResyncTokens(He,me);return wm(me)}attemptInRepetitionRecovery(X,me,He,We,ft,wt,zt){}getCurrentGrammarPath(X,me){const He=this.getHumanReadableRuleStack(),We=x0(this.RULE_OCCURRENCE_STACK);return{ruleStack:He,occurrenceStack:We,lastTok:X,lastTokOccurrence:me}}getHumanReadableRuleStack(){return Gi(this.RULE_STACK,X=\u003ethis.shortRuleNameToFullName(X))}}function nC(re,X,me,He,We,ft,wt){const zt=this.getKeyForAutomaticLookahead(He,We);let en=this.firstAfterRepMap[zt];if(en===void 0){const ci=this.getCurrRuleFullName(),Hi=this.getGAstProductions()[ci];en=new ft(Hi,We).startWalking(),this.firstAfterRepMap[zt]=en}let In=en.token,po=en.occurrence;const wo=en.isEndOfRule;this.RULE_STACK.length===1\u0026\u0026wo\u0026\u0026In===void 0\u0026\u0026(In=ln,po=1),!(In===void 0||po===void 0)\u0026\u0026this.shouldInRepetitionRecoveryBeTried(In,po,wt)\u0026\u0026this.tryInRepetitionRecovery(re,X,me,In)}const km=4,jd=8,Vu=1\u003c\u003cjd,Pi=2\u003c\u003cjd,Zg=3\u003c\u003cjd,Ql=4\u003c\u003cjd,q0=5\u003c\u003cjd,cy=6\u003c\u003cjd;function U1(re,X,me){return me|X|re}class v3{constructor(X){var me;this.maxLookahead=(me=X?.maxLookahead)!==null\u0026\u0026me!==void 0?me:Fm.maxLookahead}validate(X){const me=this.validateNoLeftRecursion(X.rules);if(RA(me)){const He=this.validateEmptyOrAlternatives(X.rules),We=this.validateAmbiguousAlternationAlternatives(X.rules,this.maxLookahead),ft=this.validateSomeNonEmptyLookaheadPath(X.rules,this.maxLookahead);return[...me,...He,...We,...ft]}return me}validateNoLeftRecursion(X){return pg(X,me=\u003edp(me,me,Ni))}validateEmptyOrAlternatives(X){return pg(X,me=\u003eJS(me,Ni))}validateAmbiguousAlternationAlternatives(X,me){return pg(X,He=\u003el8(He,me,Ni))}validateSomeNonEmptyLookaheadPath(X,me){return _s(X,me,Ni)}buildLookaheadForAlternation(X){return Bg(X.prodOccurrence,X.rule,X.maxLookahead,X.hasPredicates,X.dynamicTokensEnabled,E3)}buildLookaheadForOptional(X){return d5(X.prodOccurrence,X.rule,X.maxLookahead,X.dynamicTokensEnabled,Wa(X.prodType),H1)}}class T4{initLooksAhead(X){this.dynamicTokensEnabled=ai(X,\"dynamicTokensEnabled\")?X.dynamicTokensEnabled:Fm.dynamicTokensEnabled,this.maxLookahead=ai(X,\"maxLookahead\")?X.maxLookahead:Fm.maxLookahead,this.lookaheadStrategy=ai(X,\"lookaheadStrategy\")?X.lookaheadStrategy:new v3({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(X){zr(X,me=\u003e{this.TRACE_INIT(`${me.name} Rule Lookahead`,()=\u003e{const{alternation:He,repetition:We,option:ft,repetitionMandatory:wt,repetitionMandatoryWithSeparator:zt,repetitionWithSeparator:en}=N_(me);zr(He,In=\u003e{const po=In.idx===0?\"\":In.idx;this.TRACE_INIT(`${b0(In)}${po}`,()=\u003e{const wo=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:In.idx,rule:me,maxLookahead:In.maxLookahead||this.maxLookahead,hasPredicates:In.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),ci=U1(this.fullRuleNameToShort[me.name],Vu,In.idx);this.setLaFuncCache(ci,wo)})}),zr(We,In=\u003e{this.computeLookaheadFunc(me,In.idx,Zg,\"Repetition\",In.maxLookahead,b0(In))}),zr(ft,In=\u003e{this.computeLookaheadFunc(me,In.idx,Pi,\"Option\",In.maxLookahead,b0(In))}),zr(wt,In=\u003e{this.computeLookaheadFunc(me,In.idx,Ql,\"RepetitionMandatory\",In.maxLookahead,b0(In))}),zr(zt,In=\u003e{this.computeLookaheadFunc(me,In.idx,cy,\"RepetitionMandatoryWithSeparator\",In.maxLookahead,b0(In))}),zr(en,In=\u003e{this.computeLookaheadFunc(me,In.idx,q0,\"RepetitionWithSeparator\",In.maxLookahead,b0(In))})})})}computeLookaheadFunc(X,me,He,We,ft,wt){this.TRACE_INIT(`${wt}${me===0?\"\":me}`,()=\u003e{const zt=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:me,rule:X,maxLookahead:ft||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:We}),en=U1(this.fullRuleNameToShort[X.name],He,me);this.setLaFuncCache(en,zt)})}getKeyForAutomaticLookahead(X,me){const He=this.getLastExplicitRuleShortName();return U1(He,X,me)}getLaFuncFromCache(X){return this.lookAheadFuncsCache.get(X)}setLaFuncCache(X,me){this.lookAheadFuncsCache.set(X,me)}}class ed extends VI{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(X){this.dslMethods.option.push(X)}visitRepetitionWithSeparator(X){this.dslMethods.repetitionWithSeparator.push(X)}visitRepetitionMandatory(X){this.dslMethods.repetitionMandatory.push(X)}visitRepetitionMandatoryWithSeparator(X){this.dslMethods.repetitionMandatoryWithSeparator.push(X)}visitRepetition(X){this.dslMethods.repetition.push(X)}visitAlternation(X){this.dslMethods.alternation.push(X)}}const hp=new ed;function N_(re){hp.reset(),re.accept(hp);const X=hp.dslMethods;return hp.reset(),X}function w3(re,X){isNaN(re.startOffset)===!0?(re.startOffset=X.startOffset,re.endOffset=X.endOffset):re.endOffset\u003cX.endOffset\u0026\u0026(re.endOffset=X.endOffset)}function td(re,X){isNaN(re.startOffset)===!0?(re.startOffset=X.startOffset,re.startColumn=X.startColumn,re.startLine=X.startLine,re.endOffset=X.endOffset,re.endColumn=X.endColumn,re.endLine=X.endLine):re.endOffset\u003cX.endOffset\u0026\u0026(re.endOffset=X.endOffset,re.endColumn=X.endColumn,re.endLine=X.endLine)}function zl(re,X,me){re.children[me]===void 0?re.children[me]=[X]:re.children[me].push(X)}function vl(re,X,me){re.children[X]===void 0?re.children[X]=[me]:re.children[X].push(me)}const X0=\"name\";function zu(re,X){Object.defineProperty(re,X0,{enumerable:!1,configurable:!0,writable:!1,value:X})}function Hf(re,X){const me=O0(re),He=me.length;for(let We=0;We\u003cHe;We++){const ft=me[We],wt=re[ft],zt=wt.length;for(let en=0;en\u003czt;en++){const In=wt[en];In.tokenTypeIdx===void 0\u0026\u0026this[In.name](In.children,X)}}}function oC(re,X){const me=function(){};zu(me,re+\"BaseSemantics\");const He={visit:function(We,ft){if(B(We)\u0026\u0026(We=We[0]),!cs(We))return this[We.name](We.children,ft)},validateVisitor:function(){const We=WS(this,X);if(!RA(We)){const ft=Gi(We,wt=\u003ewt.msg);throw Error(`Errors Detected in CST Visitor \u003c${this.constructor.name}\u003e:\n\t${ft.join(`\n\n`).replace(/\\n/g,`\n\t`)}`)}}};return me.prototype=He,me.prototype.constructor=me,me._RULE_NAMES=X,me}function P3(re,X,me){const He=function(){};zu(He,re+\"BaseSemanticsWithDefaults\");const We=Object.create(me.prototype);return zr(X,ft=\u003e{We[ft]=Hf}),He.prototype=We,He.prototype.constructor=He,He}var j2;(function(re){re[re.REDUNDANT_METHOD=0]=\"REDUNDANT_METHOD\",re[re.MISSING_METHOD=1]=\"MISSING_METHOD\"})(j2||(j2={}));function WS(re,X){return Of(re,X)}function Of(re,X){const me=mu(X,We=\u003eye(re[We])===!1),He=Gi(me,We=\u003e({msg:`Missing visitor method: \u003c${We}\u003e on ${re.constructor.name} CST Visitor.`,type:j2.MISSING_METHOD,methodName:We}));return zg(He)}class $2{initTreeBuilder(X){if(this.CST_STACK=[],this.outputCst=X.outputCst,this.nodeLocationTracking=ai(X,\"nodeLocationTracking\")?X.nodeLocationTracking:Fm.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Yt,this.cstFinallyStateUpdate=Yt,this.cstPostTerminal=Yt,this.cstPostNonTerminal=Yt,this.cstPostRule=Yt;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=td,this.setNodeLocationFromNode=td,this.cstPostRule=Yt,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Yt,this.setNodeLocationFromNode=Yt,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=w3,this.setNodeLocationFromNode=w3,this.cstPostRule=Yt,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Yt,this.setNodeLocationFromNode=Yt,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Yt,this.setNodeLocationFromNode=Yt,this.cstPostRule=Yt,this.setInitialNodeLocation=Yt;else throw Error(`Invalid \u003cnodeLocationTracking\u003e config option: \"${X.nodeLocationTracking}\"`)}setInitialNodeLocationOnlyOffsetRecovery(X){X.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(X){X.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(X){X.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(X){const me=this.LA(1);X.location={startOffset:me.startOffset,startLine:me.startLine,startColumn:me.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(X){const me={name:X,children:Object.create(null)};this.setInitialNodeLocation(me),this.CST_STACK.push(me)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(X){const me=this.LA(0),He=X.location;He.startOffset\u003c=me.startOffset?(He.endOffset=me.endOffset,He.endLine=me.endLine,He.endColumn=me.endColumn):(He.startOffset=NaN,He.startLine=NaN,He.startColumn=NaN)}cstPostRuleOnlyOffset(X){const me=this.LA(0),He=X.location;He.startOffset\u003c=me.startOffset?He.endOffset=me.endOffset:He.startOffset=NaN}cstPostTerminal(X,me){const He=this.CST_STACK[this.CST_STACK.length-1];zl(He,me,X),this.setNodeLocationFromToken(He.location,me)}cstPostNonTerminal(X,me){const He=this.CST_STACK[this.CST_STACK.length-1];vl(He,me,X),this.setNodeLocationFromNode(He.location,X.location)}getBaseCstVisitorConstructor(){if(cs(this.baseCstVisitorConstructor)){const X=oC(this.className,O0(this.gastProductionsCache));return this.baseCstVisitorConstructor=X,X}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(cs(this.baseCstVisitorWithDefaultsConstructor)){const X=P3(this.className,O0(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=X,X}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const X=this.RULE_STACK;return X[X.length-1]}getPreviousExplicitRuleShortName(){const X=this.RULE_STACK;return X[X.length-2]}getLastExplicitRuleOccurrenceIndex(){const X=this.RULE_OCCURRENCE_STACK;return X[X.length-1]}}class q2{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(X){if(this.selfAnalysisDone!==!0)throw Error(\"Missing \u003cperformSelfAnalysis\u003e invocation at the end of the Parser's constructor.\");this.reset(),this.tokVector=X,this.tokVectorLength=X.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx\u003c=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):_5}LA(X){const me=this.currIdx+X;return me\u003c0||this.tokVectorLength\u003c=me?_5:this.tokVector[me]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(X){this.currIdx=X}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}class _9{ACTION(X){return X.call(this)}consume(X,me,He){return this.consumeInternal(me,X,He)}subrule(X,me,He){return this.subruleInternal(me,X,He)}option(X,me){return this.optionInternal(me,X)}or(X,me){return this.orInternal(me,X)}many(X,me){return this.manyInternal(X,me)}atLeastOne(X,me){return this.atLeastOneInternal(X,me)}CONSUME(X,me){return this.consumeInternal(X,0,me)}CONSUME1(X,me){return this.consumeInternal(X,1,me)}CONSUME2(X,me){return this.consumeInternal(X,2,me)}CONSUME3(X,me){return this.consumeInternal(X,3,me)}CONSUME4(X,me){return this.consumeInternal(X,4,me)}CONSUME5(X,me){return this.consumeInternal(X,5,me)}CONSUME6(X,me){return this.consumeInternal(X,6,me)}CONSUME7(X,me){return this.consumeInternal(X,7,me)}CONSUME8(X,me){return this.consumeInternal(X,8,me)}CONSUME9(X,me){return this.consumeInternal(X,9,me)}SUBRULE(X,me){return this.subruleInternal(X,0,me)}SUBRULE1(X,me){return this.subruleInternal(X,1,me)}SUBRULE2(X,me){return this.subruleInternal(X,2,me)}SUBRULE3(X,me){return this.subruleInternal(X,3,me)}SUBRULE4(X,me){return this.subruleInternal(X,4,me)}SUBRULE5(X,me){return this.subruleInternal(X,5,me)}SUBRULE6(X,me){return this.subruleInternal(X,6,me)}SUBRULE7(X,me){return this.subruleInternal(X,7,me)}SUBRULE8(X,me){return this.subruleInternal(X,8,me)}SUBRULE9(X,me){return this.subruleInternal(X,9,me)}OPTION(X){return this.optionInternal(X,0)}OPTION1(X){return this.optionInternal(X,1)}OPTION2(X){return this.optionInternal(X,2)}OPTION3(X){return this.optionInternal(X,3)}OPTION4(X){return this.optionInternal(X,4)}OPTION5(X){return this.optionInternal(X,5)}OPTION6(X){return this.optionInternal(X,6)}OPTION7(X){return this.optionInternal(X,7)}OPTION8(X){return this.optionInternal(X,8)}OPTION9(X){return this.optionInternal(X,9)}OR(X){return this.orInternal(X,0)}OR1(X){return this.orInternal(X,1)}OR2(X){return this.orInternal(X,2)}OR3(X){return this.orInternal(X,3)}OR4(X){return this.orInternal(X,4)}OR5(X){return this.orInternal(X,5)}OR6(X){return this.orInternal(X,6)}OR7(X){return this.orInternal(X,7)}OR8(X){return this.orInternal(X,8)}OR9(X){return this.orInternal(X,9)}MANY(X){this.manyInternal(0,X)}MANY1(X){this.manyInternal(1,X)}MANY2(X){this.manyInternal(2,X)}MANY3(X){this.manyInternal(3,X)}MANY4(X){this.manyInternal(4,X)}MANY5(X){this.manyInternal(5,X)}MANY6(X){this.manyInternal(6,X)}MANY7(X){this.manyInternal(7,X)}MANY8(X){this.manyInternal(8,X)}MANY9(X){this.manyInternal(9,X)}MANY_SEP(X){this.manySepFirstInternal(0,X)}MANY_SEP1(X){this.manySepFirstInternal(1,X)}MANY_SEP2(X){this.manySepFirstInternal(2,X)}MANY_SEP3(X){this.manySepFirstInternal(3,X)}MANY_SEP4(X){this.manySepFirstInternal(4,X)}MANY_SEP5(X){this.manySepFirstInternal(5,X)}MANY_SEP6(X){this.manySepFirstInternal(6,X)}MANY_SEP7(X){this.manySepFirstInternal(7,X)}MANY_SEP8(X){this.manySepFirstInternal(8,X)}MANY_SEP9(X){this.manySepFirstInternal(9,X)}AT_LEAST_ONE(X){this.atLeastOneInternal(0,X)}AT_LEAST_ONE1(X){return this.atLeastOneInternal(1,X)}AT_LEAST_ONE2(X){this.atLeastOneInternal(2,X)}AT_LEAST_ONE3(X){this.atLeastOneInternal(3,X)}AT_LEAST_ONE4(X){this.atLeastOneInternal(4,X)}AT_LEAST_ONE5(X){this.atLeastOneInternal(5,X)}AT_LEAST_ONE6(X){this.atLeastOneInternal(6,X)}AT_LEAST_ONE7(X){this.atLeastOneInternal(7,X)}AT_LEAST_ONE8(X){this.atLeastOneInternal(8,X)}AT_LEAST_ONE9(X){this.atLeastOneInternal(9,X)}AT_LEAST_ONE_SEP(X){this.atLeastOneSepFirstInternal(0,X)}AT_LEAST_ONE_SEP1(X){this.atLeastOneSepFirstInternal(1,X)}AT_LEAST_ONE_SEP2(X){this.atLeastOneSepFirstInternal(2,X)}AT_LEAST_ONE_SEP3(X){this.atLeastOneSepFirstInternal(3,X)}AT_LEAST_ONE_SEP4(X){this.atLeastOneSepFirstInternal(4,X)}AT_LEAST_ONE_SEP5(X){this.atLeastOneSepFirstInternal(5,X)}AT_LEAST_ONE_SEP6(X){this.atLeastOneSepFirstInternal(6,X)}AT_LEAST_ONE_SEP7(X){this.atLeastOneSepFirstInternal(7,X)}AT_LEAST_ONE_SEP8(X){this.atLeastOneSepFirstInternal(8,X)}AT_LEAST_ONE_SEP9(X){this.atLeastOneSepFirstInternal(9,X)}RULE(X,me,He=R_){if(A0(this.definedRulesNames,X)){const wt={message:Ni.buildDuplicateRuleNameError({topLevelRule:X,grammarName:this.className}),type:pp.DUPLICATE_RULE_NAME,ruleName:X};this.definitionErrors.push(wt)}this.definedRulesNames.push(X);const We=this.defineRule(X,me,He);return this[X]=We,We}OVERRIDE_RULE(X,me,He=R_){const We=b3(X,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(We);const ft=this.defineRule(X,me,He);return this[X]=ft,ft}BACKTRACK(X,me){return function(){this.isBackTrackingStack.push(1);const He=this.saveRecogState();try{return X.apply(this,me),!0}catch(We){if(R4(We))return!1;throw We}finally{this.reloadRecogState(He),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Qh(Wc(this.gastProductionsCache))}}class k4{initRecognizerEngine(X,me){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=XI,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},ai(me,\"serializedGrammar\"))throw Error(`The Parser's configuration can no longer contain a \u003cserializedGrammar\u003e property.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n\tFor Further details.`);if(B(X)){if(RA(X))throw Error(`A Token Vocabulary cannot be empty.\n\tNote that the first argument for the parser constructor\n\tis no longer a Token vector (since v4.0).`);if(typeof X[0].startOffset==\"number\")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n\tFor Further details.`)}if(B(X))this.tokensMap=_u(X,(ft,wt)=\u003e(ft[wt.name]=wt,ft),{});else if(ai(X,\"modes\")\u0026\u0026Bh(hu(Wc(X.modes)),F1)){const ft=hu(Wc(X.modes)),wt=KI(ft);this.tokensMap=_u(wt,(zt,en)=\u003e(zt[en.name]=en,zt),{})}else if(O(X))this.tokensMap=x0(X);else throw new Error(\"\u003ctokensDictionary\u003e argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition\");this.tokensMap.EOF=ln;const He=ai(X,\"modes\")?hu(Wc(X.modes)):Wc(X),We=Bh(He,ft=\u003eRA(ft.categoryMatches));this.tokenMatcher=We?XI:Ph,Sl(Wc(this.tokensMap))}defineRule(X,me,He){if(this.selfAnalysisDone)throw Error(`Grammar rule \u003c${X}\u003e may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const We=ai(He,\"resyncEnabled\")?He.resyncEnabled:R_.resyncEnabled,ft=ai(He,\"recoveryValueFunc\")?He.recoveryValueFunc:R_.recoveryValueFunc,wt=this.ruleShortNameIdx\u003c\u003ckm+jd;this.ruleShortNameIdx++,this.shortRuleNameToFull[wt]=X,this.fullRuleNameToShort[X]=wt;let zt;return this.outputCst===!0?zt=function(...po){try{this.ruleInvocationStateUpdate(wt,X,this.subruleIdx),me.apply(this,po);const wo=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(wo),wo}catch(wo){return this.invokeRuleCatch(wo,We,ft)}finally{this.ruleFinallyStateUpdate()}}:zt=function(...po){try{return this.ruleInvocationStateUpdate(wt,X,this.subruleIdx),me.apply(this,po)}catch(wo){return this.invokeRuleCatch(wo,We,ft)}finally{this.ruleFinallyStateUpdate()}},Object.assign(zt,{ruleName:X,originalGrammarAction:me})}invokeRuleCatch(X,me,He){const We=this.RULE_STACK.length===1,ft=me\u0026\u0026!this.isBackTracking()\u0026\u0026this.recoveryEnabled;if(R4(X)){const wt=X;if(ft){const zt=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(zt))if(wt.resyncedTokens=this.reSyncTo(zt),this.outputCst){const en=this.CST_STACK[this.CST_STACK.length-1];return en.recoveredNode=!0,en}else return He(X);else{if(this.outputCst){const en=this.CST_STACK[this.CST_STACK.length-1];en.recoveredNode=!0,wt.partialCstResult=en}throw wt}}else{if(We)return this.moveToTerminatedState(),He(X);throw wt}}else throw X}optionInternal(X,me){const He=this.getKeyForAutomaticLookahead(Pi,me);return this.optionInternalLogic(X,me,He)}optionInternalLogic(X,me,He){let We=this.getLaFuncFromCache(He),ft;if(typeof X!=\"function\"){ft=X.DEF;const wt=X.GATE;if(wt!==void 0){const zt=We;We=()=\u003ewt.call(this)\u0026\u0026zt.call(this)}}else ft=X;if(We.call(this)===!0)return ft.call(this)}atLeastOneInternal(X,me){const He=this.getKeyForAutomaticLookahead(Ql,X);return this.atLeastOneInternalLogic(X,me,He)}atLeastOneInternalLogic(X,me,He){let We=this.getLaFuncFromCache(He),ft;if(typeof me!=\"function\"){ft=me.DEF;const wt=me.GATE;if(wt!==void 0){const zt=We;We=()=\u003ewt.call(this)\u0026\u0026zt.call(this)}}else ft=me;if(We.call(this)===!0){let wt=this.doSingleRepetition(ft);for(;We.call(this)===!0\u0026\u0026wt===!0;)wt=this.doSingleRepetition(ft)}else throw this.raiseEarlyExitException(X,Qs.REPETITION_MANDATORY,me.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[X,me],We,Ql,X,zo)}atLeastOneSepFirstInternal(X,me){const He=this.getKeyForAutomaticLookahead(cy,X);this.atLeastOneSepFirstInternalLogic(X,me,He)}atLeastOneSepFirstInternalLogic(X,me,He){const We=me.DEF,ft=me.SEP;if(this.getLaFuncFromCache(He).call(this)===!0){We.call(this);const zt=()=\u003ethis.tokenMatcher(this.LA(1),ft);for(;this.tokenMatcher(this.LA(1),ft)===!0;)this.CONSUME(ft),We.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[X,ft,zt,We,Bi],zt,cy,X,Bi)}else throw this.raiseEarlyExitException(X,Qs.REPETITION_MANDATORY_WITH_SEPARATOR,me.ERR_MSG)}manyInternal(X,me){const He=this.getKeyForAutomaticLookahead(Zg,X);return this.manyInternalLogic(X,me,He)}manyInternalLogic(X,me,He){let We=this.getLaFuncFromCache(He),ft;if(typeof me!=\"function\"){ft=me.DEF;const zt=me.GATE;if(zt!==void 0){const en=We;We=()=\u003ezt.call(this)\u0026\u0026en.call(this)}}else ft=me;let wt=!0;for(;We.call(this)===!0\u0026\u0026wt===!0;)wt=this.doSingleRepetition(ft);this.attemptInRepetitionRecovery(this.manyInternal,[X,me],We,Zg,X,Qn,wt)}manySepFirstInternal(X,me){const He=this.getKeyForAutomaticLookahead(q0,X);this.manySepFirstInternalLogic(X,me,He)}manySepFirstInternalLogic(X,me,He){const We=me.DEF,ft=me.SEP;if(this.getLaFuncFromCache(He).call(this)===!0){We.call(this);const zt=()=\u003ethis.tokenMatcher(this.LA(1),ft);for(;this.tokenMatcher(this.LA(1),ft)===!0;)this.CONSUME(ft),We.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[X,ft,zt,We,to],zt,q0,X,to)}}repetitionSepSecondInternal(X,me,He,We,ft){for(;He();)this.CONSUME(me),We.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[X,me,He,We,ft],He,cy,X,ft)}doSingleRepetition(X){const me=this.getLexerPosition();return X.call(this),this.getLexerPosition()\u003eme}orInternal(X,me){const He=this.getKeyForAutomaticLookahead(Vu,me),We=B(X)?X:X.DEF,wt=this.getLaFuncFromCache(He).call(this,We);if(wt!==void 0)return We[wt].ALT.call(this);this.raiseNoAltException(me,X.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0\u0026\u0026this.isAtEndOfInput()===!1){const X=this.LA(1),me=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:X,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new ay(me,X))}}subruleInternal(X,me,He){let We;try{const ft=He!==void 0?He.ARGS:void 0;return this.subruleIdx=me,We=X.apply(this,ft),this.cstPostNonTerminal(We,He!==void 0\u0026\u0026He.LABEL!==void 0?He.LABEL:X.ruleName),We}catch(ft){throw this.subruleInternalError(ft,He,X.ruleName)}}subruleInternalError(X,me,He){throw R4(X)\u0026\u0026X.partialCstResult!==void 0\u0026\u0026(this.cstPostNonTerminal(X.partialCstResult,me!==void 0\u0026\u0026me.LABEL!==void 0?me.LABEL:He),delete X.partialCstResult),X}consumeInternal(X,me,He){let We;try{const ft=this.LA(1);this.tokenMatcher(ft,X)===!0?(this.consumeToken(),We=ft):this.consumeInternalError(X,ft,He)}catch(ft){We=this.consumeInternalRecovery(X,me,ft)}return this.cstPostTerminal(He!==void 0\u0026\u0026He.LABEL!==void 0?He.LABEL:X.name,We),We}consumeInternalError(X,me,He){let We;const ft=this.LA(0);throw He!==void 0\u0026\u0026He.ERR_MSG?We=He.ERR_MSG:We=this.errorMessageProvider.buildMismatchTokenMessage({expected:X,actual:me,previous:ft,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new g8(We,me,ft))}consumeInternalRecovery(X,me,He){if(this.recoveryEnabled\u0026\u0026He.name===\"MismatchedTokenException\"\u0026\u0026!this.isBackTracking()){const We=this.getFollowsForInRuleRecovery(X,me);try{return this.tryInRuleRecovery(X,We)}catch(ft){throw ft.name===Q3?He:ft}}else throw He}saveRecogState(){const X=this.errors,me=x0(this.RULE_STACK);return{errors:X,lexerState:this.exportLexerState(),RULE_STACK:me,CST_STACK:this.CST_STACK}}reloadRecogState(X){this.errors=X.errors,this.importLexerState(X.lexerState),this.RULE_STACK=X.RULE_STACK}ruleInvocationStateUpdate(X,me,He){this.RULE_OCCURRENCE_STACK.push(He),this.RULE_STACK.push(X),this.cstInvocationStateUpdate(me)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const X=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[X]}shortRuleNameToFullName(X){return this.shortRuleNameToFull[X]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),ln)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class F4{initErrorHandler(X){this._errors=[],this.errorMessageProvider=ai(X,\"errorMessageProvider\")?X.errorMessageProvider:Fm.errorMessageProvider}SAVE_ERROR(X){if(R4(X))return X.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:x0(this.RULE_OCCURRENCE_STACK)},this._errors.push(X),X;throw Error(\"Trying to save an Error which is not a RecognitionException\")}get errors(){return x0(this._errors)}set errors(X){this._errors=X}raiseEarlyExitException(X,me,He){const We=this.getCurrRuleFullName(),ft=this.getGAstProductions()[We],zt=Wd(X,ft,me,this.maxLookahead)[0],en=[];for(let po=1;po\u003c=this.maxLookahead;po++)en.push(this.LA(po));const In=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:zt,actual:en,previous:this.LA(0),customUserDescription:He,ruleName:We});throw this.SAVE_ERROR(new Ay(In,this.LA(1),this.LA(0)))}raiseNoAltException(X,me){const He=this.getCurrRuleFullName(),We=this.getGAstProductions()[He],ft=Ff(X,We,this.maxLookahead),wt=[];for(let In=1;In\u003c=this.maxLookahead;In++)wt.push(this.LA(In));const zt=this.LA(0),en=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:ft,actual:wt,previous:zt,customUserDescription:me,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new D_(en,this.LA(1),zt))}}class Gf{initContentAssist(){}computeContentAssist(X,me){const He=this.gastProductionsCache[X];if(cs(He))throw Error(`Rule -\u003e${X}\u003c- does not exist in this grammar.`);return Or([He],me,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(X){const me=Jc(X.ruleStack),We=this.getGAstProductions()[me];return new Eg(We,X).startWalking()}}const X2={description:\"This Object indicates the Parser is during Recording Phase\"};Object.freeze(X2);const Z2=!0,d8=Math.pow(2,jd)-1,f9=Je({name:\"RECORDING_PHASE_TOKEN\",pattern:yu.NA});Sl([f9]);const ex=wn(f9,`This IToken indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(ex);const jS={name:`This CSTNode indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class tx{initGastRecorder(X){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT(\"Enable Recording\",()=\u003e{for(let X=0;X\u003c10;X++){const me=X\u003e0?X:\"\";this[`CONSUME${me}`]=function(He,We){return this.consumeInternalRecord(He,X,We)},this[`SUBRULE${me}`]=function(He,We){return this.subruleInternalRecord(He,X,We)},this[`OPTION${me}`]=function(He){return this.optionInternalRecord(He,X)},this[`OR${me}`]=function(He){return this.orInternalRecord(He,X)},this[`MANY${me}`]=function(He){this.manyInternalRecord(X,He)},this[`MANY_SEP${me}`]=function(He){this.manySepFirstInternalRecord(X,He)},this[`AT_LEAST_ONE${me}`]=function(He){this.atLeastOneInternalRecord(X,He)},this[`AT_LEAST_ONE_SEP${me}`]=function(He){this.atLeastOneSepFirstInternalRecord(X,He)}}this.consume=function(X,me,He){return this.consumeInternalRecord(me,X,He)},this.subrule=function(X,me,He){return this.subruleInternalRecord(me,X,He)},this.option=function(X,me){return this.optionInternalRecord(me,X)},this.or=function(X,me){return this.orInternalRecord(me,X)},this.many=function(X,me){this.manyInternalRecord(X,me)},this.atLeastOne=function(X,me){this.atLeastOneInternalRecord(X,me)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT(\"Deleting Recording methods\",()=\u003e{const X=this;for(let me=0;me\u003c10;me++){const He=me\u003e0?me:\"\";delete X[`CONSUME${He}`],delete X[`SUBRULE${He}`],delete X[`OPTION${He}`],delete X[`OR${He}`],delete X[`MANY${He}`],delete X[`MANY_SEP${He}`],delete X[`AT_LEAST_ONE${He}`],delete X[`AT_LEAST_ONE_SEP${He}`]}delete X.consume,delete X.subrule,delete X.option,delete X.or,delete X.many,delete X.atLeastOne,delete X.ACTION,delete X.BACKTRACK,delete X.LA})}ACTION_RECORD(X){}BACKTRACK_RECORD(X,me){return()=\u003e!0}LA_RECORD(X){return _5}topLevelRuleRecord(X,me){try{const He=new $g({definition:[],name:X});return He.name=X,this.recordingProdStack.push(He),me.call(this),this.recordingProdStack.pop(),He}catch(He){if(He.KNOWN_RECORDER_ERROR!==!0)try{He.message=He.message+`\n\t This error was thrown during the \"grammar recording phase\" For more info see:\n\thttps://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw He}throw He}}optionInternalRecord(X,me){return fs.call(this,Za,X,me)}atLeastOneInternalRecord(X,me){fs.call(this,Vs,me,X)}atLeastOneSepFirstInternalRecord(X,me){fs.call(this,fu,me,X,Z2)}manyInternalRecord(X,me){fs.call(this,Si,me,X)}manySepFirstInternalRecord(X,me){fs.call(this,lp,me,X,Z2)}orInternalRecord(X,me){return Ec.call(this,X,me)}subruleInternalRecord(X,me,He){if(iC(me),!X||ai(X,\"ruleName\")===!1){const zt=new Error(`\u003cSUBRULE${u0(me)}\u003e argument is invalid expecting a Parser method reference but got: \u003c${JSON.stringify(X)}\u003e\n inside top level rule: \u003c${this.recordingProdStack[0].name}\u003e`);throw zt.KNOWN_RECORDER_ERROR=!0,zt}const We=GI(this.recordingProdStack),ft=X.ruleName,wt=new za({idx:me,nonTerminalName:ft,label:He?.LABEL,referencedRule:void 0});return We.definition.push(wt),this.outputCst?jS:X2}consumeInternalRecord(X,me,He){if(iC(me),!Vl(X)){const wt=new Error(`\u003cCONSUME${u0(me)}\u003e argument is invalid expecting a TokenType reference but got: \u003c${JSON.stringify(X)}\u003e\n inside top level rule: \u003c${this.recordingProdStack[0].name}\u003e`);throw wt.KNOWN_RECORDER_ERROR=!0,wt}const We=GI(this.recordingProdStack),ft=new $c({idx:me,terminalType:X,label:He?.LABEL});return We.definition.push(ft),ex}}function fs(re,X,me,He=!1){iC(me);const We=GI(this.recordingProdStack),ft=ye(X)?X:X.DEF,wt=new re({definition:[],idx:me});return He\u0026\u0026(wt.separator=X.SEP),ai(X,\"MAX_LOOKAHEAD\")\u0026\u0026(wt.maxLookahead=X.MAX_LOOKAHEAD),this.recordingProdStack.push(wt),ft.call(this),We.definition.push(wt),this.recordingProdStack.pop(),X2}function Ec(re,X){iC(X);const me=GI(this.recordingProdStack),He=B(re)===!1,We=He===!1?re:re.DEF,ft=new c0({definition:[],idx:X,ignoreAmbiguities:He\u0026\u0026re.IGNORE_AMBIGUITIES===!0});ai(re,\"MAX_LOOKAHEAD\")\u0026\u0026(ft.maxLookahead=re.MAX_LOOKAHEAD);const wt=f3(We,zt=\u003eye(zt.GATE));return ft.hasPredicates=wt,me.definition.push(ft),zr(We,zt=\u003e{const en=new Xa({definition:[]});ft.definition.push(en),ai(zt,\"IGNORE_AMBIGUITIES\")?en.ignoreAmbiguities=zt.IGNORE_AMBIGUITIES:ai(zt,\"GATE\")\u0026\u0026(en.ignoreAmbiguities=!0),this.recordingProdStack.push(en),zt.ALT.call(this),this.recordingProdStack.pop()}),X2}function u0(re){return re===0?\"\":`${re}`}function iC(re){if(re\u003c0||re\u003ed8){const X=new Error(`Invalid DSL Method idx value: \u003c${re}\u003e\n\tIdx value must be a none negative value smaller than ${d8+1}`);throw X.KNOWN_RECORDER_ERROR=!0,X}}class Th{initPerformanceTracer(X){if(ai(X,\"traceInitPerf\")){const me=X.traceInitPerf,He=typeof me==\"number\";this.traceInitMaxIdent=He?me:1/0,this.traceInitPerf=He?me\u003e0:me}else this.traceInitMaxIdent=0,this.traceInitPerf=Fm.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(X,me){if(this.traceInitPerf===!0){this.traceInitIndent++;const He=new Array(this.traceInitIndent+1).join(\"\t\");this.traceInitIndent\u003cthis.traceInitMaxIdent\u0026\u0026console.log(`${He}--\u003e \u003c${X}\u003e`);const{time:We,value:ft}=cl(me),wt=We\u003e10?console.warn:console.log;return this.traceInitIndent\u003cthis.traceInitMaxIdent\u0026\u0026wt(`${He}\u003c-- \u003c${X}\u003e time: ${We}ms`),this.traceInitIndent--,ft}else return me()}}function nd(re,X){X.forEach(me=\u003e{const He=me.prototype;Object.getOwnPropertyNames(He).forEach(We=\u003e{if(We===\"constructor\")return;const ft=Object.getOwnPropertyDescriptor(He,We);ft\u0026\u0026(ft.get||ft.set)?Object.defineProperty(re.prototype,We,ft):re.prototype[We]=me.prototype[We]})})}const _5=wn(ln,\"\",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(_5);const Fm=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Ai,nodeLocationTracking:\"none\",traceInitPerf:!1,skipValidations:!1}),R_=Object.freeze({recoveryValueFunc:()=\u003e{},resyncEnabled:!0});var pp;(function(re){re[re.INVALID_RULE_NAME=0]=\"INVALID_RULE_NAME\",re[re.DUPLICATE_RULE_NAME=1]=\"DUPLICATE_RULE_NAME\",re[re.INVALID_RULE_OVERRIDE=2]=\"INVALID_RULE_OVERRIDE\",re[re.DUPLICATE_PRODUCTIONS=3]=\"DUPLICATE_PRODUCTIONS\",re[re.UNRESOLVED_SUBRULE_REF=4]=\"UNRESOLVED_SUBRULE_REF\",re[re.LEFT_RECURSION=5]=\"LEFT_RECURSION\",re[re.NONE_LAST_EMPTY_ALT=6]=\"NONE_LAST_EMPTY_ALT\",re[re.AMBIGUOUS_ALTS=7]=\"AMBIGUOUS_ALTS\",re[re.CONFLICT_TOKENS_RULES_NAMESPACE=8]=\"CONFLICT_TOKENS_RULES_NAMESPACE\",re[re.INVALID_TOKEN_NAME=9]=\"INVALID_TOKEN_NAME\",re[re.NO_NON_EMPTY_LOOKAHEAD=10]=\"NO_NON_EMPTY_LOOKAHEAD\",re[re.AMBIGUOUS_PREFIX_ALTS=11]=\"AMBIGUOUS_PREFIX_ALTS\",re[re.TOO_MANY_ALTS=12]=\"TOO_MANY_ALTS\",re[re.CUSTOM_LOOKAHEAD_VALIDATION=13]=\"CUSTOM_LOOKAHEAD_VALIDATION\"})(pp||(pp={}));class f5{static performSelfAnalysis(X){throw Error(\"The **static** `performSelfAnalysis` method has been deprecated.\t\\nUse the **instance** method with the same name instead.\")}performSelfAnalysis(){this.TRACE_INIT(\"performSelfAnalysis\",()=\u003e{let X;this.selfAnalysisDone=!0;const me=this.className;this.TRACE_INIT(\"toFastProps\",()=\u003e{Ou(this)}),this.TRACE_INIT(\"Grammar Recording\",()=\u003e{try{this.enableRecording(),zr(this.definedRulesNames,We=\u003e{const wt=this[We].originalGrammarAction;let zt;this.TRACE_INIT(`${We} Rule`,()=\u003e{zt=this.topLevelRuleRecord(We,wt)}),this.gastProductionsCache[We]=zt})}finally{this.disableRecording()}});let He=[];if(this.TRACE_INIT(\"Grammar Resolving\",()=\u003e{He=Tm({rules:Wc(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(He)}),this.TRACE_INIT(\"Grammar Validations\",()=\u003e{if(RA(He)\u0026\u0026this.skipValidations===!1){const We=O1({rules:Wc(this.gastProductionsCache),tokenTypes:Wc(this.tokensMap),errMsgProvider:Ni,grammarName:me}),ft=p5({lookaheadStrategy:this.lookaheadStrategy,rules:Wc(this.gastProductionsCache),tokenTypes:Wc(this.tokensMap),grammarName:me});this.definitionErrors=this.definitionErrors.concat(We,ft)}}),RA(this.definitionErrors)\u0026\u0026(this.recoveryEnabled\u0026\u0026this.TRACE_INIT(\"computeAllProdsFollows\",()=\u003e{const We=WI(Wc(this.gastProductionsCache));this.resyncFollows=We}),this.TRACE_INIT(\"ComputeLookaheadFunctions\",()=\u003e{var We,ft;(ft=(We=this.lookaheadStrategy).initialize)===null||ft===void 0||ft.call(We,{rules:Wc(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Wc(this.gastProductionsCache))})),!f5.DEFER_DEFINITION_ERRORS_HANDLING\u0026\u0026!RA(this.definitionErrors))throw X=Gi(this.definitionErrors,We=\u003eWe.message),new Error(`Parser Definition Errors detected:\n ${X.join(`\n-------------------------------\n`)}`)})}constructor(X,me){this.definitionErrors=[],this.selfAnalysisDone=!1;const He=this;if(He.initErrorHandler(me),He.initLexerAdapter(),He.initLooksAhead(me),He.initRecognizerEngine(X,me),He.initRecoverable(me),He.initTreeBuilder(me),He.initContentAssist(),He.initGastRecorder(me),He.initPerformanceTracer(me),ai(me,\"ignoredIssues\"))throw new Error(`The \u003cignoredIssues\u003e IParserConfig property has been deprecated.\n\tPlease use the \u003cIGNORE_AMBIGUITIES\u003e flag on the relevant DSL method instead.\n\tSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n\tFor further details.`);this.skipValidations=ai(me,\"skipValidations\")?me.skipValidations:Fm.skipValidations}}f5.DEFER_DEFINITION_ERRORS_HANDLING=!1,nd(f5,[m9,T4,$2,q2,k4,_9,F4,Gf,tx,Th]);class co extends f5{constructor(X,me=Fm){const He=x0(me);He.outputCst=!0,super(X,He)}}return{CstParser:co,Lexer:yu,createToken:Je}})();class _oi extends x6{constructor(e){super(e)}load(e,n,o,i){const r=this,s=r.path===\"\"?jR.extractUrlBase(e):r.path,a=new fY(r.manager);a.setPath(r.path),a.setRequestHeader(r.requestHeader),a.setWithCredentials(r.withCredentials),a.load(e,function(A){try{n(r.parse(A,s))}catch(c){i?i(c):console.error(c),r.manager.itemError(e)}},o,i)}parse(e,n){const o={};function i(ke){const Ce=r(),Le=new foi(Ce.tokens),Ye=new Ioi(Ce.tokenVocabulary),tt=s(Ye.getBaseCstVisitorConstructor()),At=Le.lex(ke);Ye.input=At.tokens;const at=Ye.vrml();if(Ye.errors.length\u003e0)throw console.error(Ye.errors),Error(\"THREE.VRMLLoader: Parsing errors detected.\");return tt.visit(at)}function r(){const ke=a_({name:\"RouteIdentifier\",pattern:/[^\\x30-\\x39\\0-\\x20\\x22\\x27\\x23\\x2b\\x2c\\x2d\\x2e\\x5b\\x5d\\x5c\\x7b\\x7d][^\\0-\\x20\\x22\\x27\\x23\\x2b\\x2c\\x2d\\x2e\\x5b\\x5d\\x5c\\x7b\\x7d]*[\\.][^\\x30-\\x39\\0-\\x20\\x22\\x27\\x23\\x2b\\x2c\\x2d\\x2e\\x5b\\x5d\\x5c\\x7b\\x7d][^\\0-\\x20\\x22\\x27\\x23\\x2b\\x2c\\x2d\\x2e\\x5b\\x5d\\x5c\\x7b\\x7d]*/}),Ce=a_({name:\"Identifier\",pattern:/[^\\x30-\\x39\\0-\\x20\\x22\\x27\\x23\\x2b\\x2c\\x2d\\x2e\\x5b\\x5d\\x5c\\x7b\\x7d][^\\0-\\x20\\x22\\x27\\x23\\x2b\\x2c\\x2d\\x2e\\x5b\\x5d\\x5c\\x7b\\x7d]*/,longer_alt:ke}),Le=[\"Anchor\",\"Billboard\",\"Collision\",\"Group\",\"Transform\",\"Inline\",\"LOD\",\"Switch\",\"AudioClip\",\"DirectionalLight\",\"PointLight\",\"Script\",\"Shape\",\"Sound\",\"SpotLight\",\"WorldInfo\",\"CylinderSensor\",\"PlaneSensor\",\"ProximitySensor\",\"SphereSensor\",\"TimeSensor\",\"TouchSensor\",\"VisibilitySensor\",\"Box\",\"Cone\",\"Cylinder\",\"ElevationGrid\",\"Extrusion\",\"IndexedFaceSet\",\"IndexedLineSet\",\"PointSet\",\"Sphere\",\"Color\",\"Coordinate\",\"Normal\",\"TextureCoordinate\",\"Appearance\",\"FontStyle\",\"ImageTexture\",\"Material\",\"MovieTexture\",\"PixelTexture\",\"TextureTransform\",\"ColorInterpolator\",\"CoordinateInterpolator\",\"NormalInterpolator\",\"OrientationInterpolator\",\"PositionInterpolator\",\"ScalarInterpolator\",\"Background\",\"Fog\",\"NavigationInfo\",\"Viewpoint\",\"Text\"],Ye=a_({name:\"Version\",pattern:/#VRML.*/,longer_alt:Ce}),tt=a_({name:\"NodeName\",pattern:new RegExp(Le.join(\"|\")),longer_alt:Ce}),At=a_({name:\"DEF\",pattern:/DEF/,longer_alt:Ce}),at=a_({name:\"USE\",pattern:/USE/,longer_alt:Ce}),nt=a_({name:\"ROUTE\",pattern:/ROUTE/,longer_alt:Ce}),gt=a_({name:\"TO\",pattern:/TO/,longer_alt:Ce}),bt=a_({name:\"StringLiteral\",pattern:/\"(?:[^\\\\\"\\n\\r]|\\\\[bfnrtv\"\\\\/]|\\\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])*\"/}),Ct=a_({name:\"HexLiteral\",pattern:/0[xX][0-9a-fA-F]+/}),Dt=a_({name:\"NumberLiteral\",pattern:/[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?/}),kt=a_({name:\"TrueLiteral\",pattern:/TRUE/}),it=a_({name:\"FalseLiteral\",pattern:/FALSE/}),Yt=a_({name:\"NullLiteral\",pattern:/NULL/}),pn=a_({name:\"LSquare\",pattern:/\\[/}),be=a_({name:\"RSquare\",pattern:/]/}),et=a_({name:\"LCurly\",pattern:/{/}),It=a_({name:\"RCurly\",pattern:/}/}),Bt=a_({name:\"Comment\",pattern:/#.*/,group:Eke.SKIPPED}),st=[a_({name:\"WhiteSpace\",pattern:/[ ,\\s]/,group:Eke.SKIPPED}),tt,At,at,nt,gt,kt,it,Yt,Ye,Ce,ke,bt,Ct,Dt,pn,be,et,It,Bt],xt={};for(let Xe=0,Ze=st.length;Xe\u003cZe;Xe++){const dt=st[Xe];xt[dt.name]=dt}return{tokens:st,tokenVocabulary:xt}}function s(ke){function Ce(){ke.call(this),this.validateVisitor()}Ce.prototype=Object.assign(Object.create(ke.prototype),{constructor:Ce,vrml:function(Ye){const tt={version:this.visit(Ye.version),nodes:[],routes:[]};for(let At=0,at=Ye.node.length;At\u003cat;At++){const nt=Ye.node[At];tt.nodes.push(this.visit(nt))}if(Ye.route)for(let At=0,at=Ye.route.length;At\u003cat;At++){const nt=Ye.route[At];tt.routes.push(this.visit(nt))}return tt},version:function(Ye){return Ye.Version[0].image},node:function(Ye){const tt={name:Ye.NodeName[0].image,fields:[]};if(Ye.field)for(let At=0,at=Ye.field.length;At\u003cat;At++){const nt=Ye.field[At];tt.fields.push(this.visit(nt))}return Ye.def\u0026\u0026(tt.DEF=this.visit(Ye.def[0])),tt},field:function(Ye){const tt={name:Ye.Identifier[0].image,type:null,values:null};let At;return Ye.singleFieldValue\u0026\u0026(At=this.visit(Ye.singleFieldValue[0])),Ye.multiFieldValue\u0026\u0026(At=this.visit(Ye.multiFieldValue[0])),tt.type=At.type,tt.values=At.values,tt},def:function(Ye){return(Ye.Identifier||Ye.NodeName)[0].image},use:function(Ye){return{USE:(Ye.Identifier||Ye.NodeName)[0].image}},singleFieldValue:function(Ye){return Le(this,Ye)},multiFieldValue:function(Ye){return Le(this,Ye)},route:function(Ye){return{FROM:Ye.RouteIdentifier[0].image,TO:Ye.RouteIdentifier[1].image}}});function Le(Ye,tt){const At={type:null,values:[]};if(tt.node){At.type=\"node\";for(let at=0,nt=tt.node.length;at\u003cnt;at++){const gt=tt.node[at];At.values.push(Ye.visit(gt))}}if(tt.use){At.type=\"use\";for(let at=0,nt=tt.use.length;at\u003cnt;at++){const gt=tt.use[at];At.values.push(Ye.visit(gt))}}if(tt.StringLiteral){At.type=\"string\";for(let at=0,nt=tt.StringLiteral.length;at\u003cnt;at++){const gt=tt.StringLiteral[at];At.values.push(gt.image.replace(/'|\"/g,\"\"))}}if(tt.NumberLiteral){At.type=\"number\";for(let at=0,nt=tt.NumberLiteral.length;at\u003cnt;at++){const gt=tt.NumberLiteral[at];At.values.push(parseFloat(gt.image))}}if(tt.HexLiteral){At.type=\"hex\";for(let at=0,nt=tt.HexLiteral.length;at\u003cnt;at++){const gt=tt.HexLiteral[at];At.values.push(gt.image)}}if(tt.TrueLiteral){At.type=\"boolean\";for(let at=0,nt=tt.TrueLiteral.length;at\u003cnt;at++)tt.TrueLiteral[at].image===\"TRUE\"\u0026\u0026At.values.push(!0)}if(tt.FalseLiteral){At.type=\"boolean\";for(let at=0,nt=tt.FalseLiteral.length;at\u003cnt;at++)tt.FalseLiteral[at].image===\"FALSE\"\u0026\u0026At.values.push(!1)}return tt.NullLiteral\u0026\u0026(At.type=\"null\",tt.NullLiteral.forEach(function(){At.values.push(null)})),At}return new Ce}function a(ke){const Ce=ke.nodes,Le=new KR;for(let Ye=0,tt=Ce.length;Ye\u003ctt;Ye++){const At=Ce[Ye];A(At)}for(let Ye=0,tt=Ce.length;Ye\u003ctt;Ye++){const At=Ce[Ye],at=c(At);at instanceof T0\u0026\u0026Le.add(at),At.name===\"WorldInfo\"\u0026\u0026(Le.userData.worldInfo=at)}return Le}function A(ke){ke.DEF\u0026\u0026(o[ke.DEF]=ke);const Ce=ke.fields;for(let Le=0,Ye=Ce.length;Le\u003cYe;Le++){const tt=Ce[Le];if(tt.type===\"node\"){const At=tt.values;for(let at=0,nt=At.length;at\u003cnt;at++)A(At[at])}}}function c(ke){return ke.USE?O(ke.USE):(ke.build!==void 0||(ke.build=l(ke)),ke.build)}function l(ke){const Ce=ke.name;let Le;switch(Ce){case\"Group\":case\"Transform\":case\"Collision\":Le=u(ke);break;case\"Background\":Le=g(ke);break;case\"Shape\":Le=h(ke);break;case\"Appearance\":Le=d(ke);break;case\"Material\":Le=p(ke);break;case\"ImageTexture\":Le=I(ke);break;case\"PixelTexture\":Le=f(ke);break;case\"TextureTransform\":Le=C(ke);break;case\"IndexedFaceSet\":Le=E(ke);break;case\"IndexedLineSet\":Le=B(ke);break;case\"PointSet\":Le=S(ke);break;case\"Box\":Le=Q(ke);break;case\"Cone\":Le=w(ke);break;case\"Cylinder\":Le=M(ke);break;case\"Sphere\":Le=k(ke);break;case\"ElevationGrid\":Le=R(ke);break;case\"Extrusion\":Le=F(ke);break;case\"Color\":case\"Coordinate\":case\"Normal\":case\"TextureCoordinate\":Le=y(ke);break;case\"WorldInfo\":Le=x(ke);break;case\"Anchor\":case\"Billboard\":case\"Inline\":case\"LOD\":case\"Switch\":case\"AudioClip\":case\"DirectionalLight\":case\"PointLight\":case\"Script\":case\"Sound\":case\"SpotLight\":case\"CylinderSensor\":case\"PlaneSensor\":case\"ProximitySensor\":case\"SphereSensor\":case\"TimeSensor\":case\"TouchSensor\":case\"VisibilitySensor\":case\"Text\":case\"FontStyle\":case\"MovieTexture\":case\"ColorInterpolator\":case\"CoordinateInterpolator\":case\"NormalInterpolator\":case\"OrientationInterpolator\":case\"PositionInterpolator\":case\"ScalarInterpolator\":case\"Fog\":case\"NavigationInfo\":case\"Viewpoint\":break;default:console.warn(\"THREE.VRMLLoader: Unknown node:\",Ce);break}return Le!==void 0\u0026\u0026ke.DEF!==void 0\u0026\u0026Le.hasOwnProperty(\"name\")===!0\u0026\u0026(Le.name=ke.DEF),Le}function u(ke){const Ce=new lh,Le=ke.fields;for(let Ye=0,tt=Le.length;Ye\u003ctt;Ye++){const At=Le[Ye],at=At.name,nt=At.values;switch(at){case\"bboxCenter\":break;case\"bboxSize\":break;case\"center\":break;case\"children\":U(nt,Ce);break;case\"collide\":break;case\"rotation\":const gt=new jt(nt[0],nt[1],nt[2]).normalize(),bt=nt[3];Ce.quaternion.setFromAxisAngle(gt,bt);break;case\"scale\":Ce.scale.set(nt[0],nt[1],nt[2]);break;case\"scaleOrientation\":break;case\"translation\":Ce.position.set(nt[0],nt[1],nt[2]);break;case\"proxy\":break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",at);break}}return Ce}function g(ke){const Ce=new lh;let Le,Ye,tt,At;const at=ke.fields;for(let gt=0,bt=at.length;gt\u003cbt;gt++){const Ct=at[gt],Dt=Ct.name,kt=Ct.values;switch(Dt){case\"groundAngle\":Le=kt;break;case\"groundColor\":Ye=kt;break;case\"backUrl\":break;case\"bottomUrl\":break;case\"frontUrl\":break;case\"leftUrl\":break;case\"rightUrl\":break;case\"topUrl\":break;case\"skyAngle\":tt=kt;break;case\"skyColor\":At=kt;break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",Dt);break}}const nt=1e4;if(At){const gt=new WR(nt,32,16),bt=new fE({fog:!1,side:uI,depthWrite:!1,depthTest:!1});At.length\u003e3?(we(gt,nt,tt,Pe(At),!0),bt.vertexColors=!0):bt.color.setRGB(At[0],At[1],At[2]);const Ct=new Er(gt,bt);Ce.add(Ct)}if(Ye\u0026\u0026Ye.length\u003e0){const gt=new WR(nt,32,16,0,2*Math.PI,.5*Math.PI,1.5*Math.PI),bt=new fE({fog:!1,side:uI,vertexColors:!0,depthWrite:!1,depthTest:!1});we(gt,nt,Le,Pe(Ye),!1);const Ct=new Er(gt,bt);Ce.add(Ct)}return Ce.renderOrder=-1/0,Ce}function h(ke){const Ce=ke.fields;let Le=new fE({color:0}),Ye;for(let At=0,at=Ce.length;At\u003cat;At++){const nt=Ce[At],gt=nt.name,bt=nt.values;switch(gt){case\"appearance\":bt[0]!==null\u0026\u0026(Le=c(bt[0]));break;case\"geometry\":bt[0]!==null\u0026\u0026(Ye=c(bt[0]));break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",gt);break}}let tt;if(Ye\u0026\u0026Ye.attributes.position){const At=Ye._type;if(At===\"points\"){const at=new zR({color:16777215});Ye.attributes.color!==void 0?at.vertexColors=!0:Le.isMeshPhongMaterial\u0026\u0026at.color.copy(Le.emissive),tt=new Wq(Ye,at)}else if(At===\"line\"){const at=new VR({color:16777215});Ye.attributes.color!==void 0?at.vertexColors=!0:Le.isMeshPhongMaterial\u0026\u0026at.color.copy(Le.emissive),tt=new Jq(Ye,at)}else Ye._solid!==void 0\u0026\u0026(Le.side=Ye._solid?mE:r_),Ye.attributes.color!==void 0\u0026\u0026(Le.vertexColors=!0),tt=new Er(Ye,Le)}else tt=new T0,tt.visible=!1;return tt}function d(ke){let Ce=new ike,Le;const Ye=ke.fields;for(let tt=0,At=Ye.length;tt\u003cAt;tt++){const at=Ye[tt],nt=at.name,gt=at.values;switch(nt){case\"material\":if(gt[0]!==null){const Ct=c(gt[0]);Ct.diffuseColor\u0026\u0026Ce.color.copy(Ct.diffuseColor),Ct.emissiveColor\u0026\u0026Ce.emissive.copy(Ct.emissiveColor),Ct.shininess\u0026\u0026(Ce.shininess=Ct.shininess),Ct.specularColor\u0026\u0026Ce.specular.copy(Ct.specularColor),Ct.transparency\u0026\u0026(Ce.opacity=1-Ct.transparency),Ct.transparency\u003e0\u0026\u0026(Ce.transparent=!0)}else Ce=new fE({color:0});break;case\"texture\":const bt=gt[0];bt!==null\u0026\u0026(bt.name===\"ImageTexture\"||bt.name===\"PixelTexture\")\u0026\u0026(Ce.map=c(bt));break;case\"textureTransform\":gt[0]!==null\u0026\u0026(Le=c(gt[0]));break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",nt);break}}if(Ce.map){if(Ce.map.__type){switch(Ce.map.__type){case zB.INTENSITY_ALPHA:Ce.opacity=1;break;case zB.RGB:Ce.color.set(16777215);break;case zB.RGBA:Ce.color.set(16777215),Ce.opacity=1;break}delete Ce.map.__type}Le\u0026\u0026(Ce.map.center.copy(Le.center),Ce.map.rotation=Le.rotation,Ce.map.repeat.copy(Le.scale),Ce.map.offset.copy(Le.translation))}return Ce}function p(ke){const Ce={},Le=ke.fields;for(let Ye=0,tt=Le.length;Ye\u003ctt;Ye++){const At=Le[Ye],at=At.name,nt=At.values;switch(at){case\"ambientIntensity\":break;case\"diffuseColor\":Ce.diffuseColor=new Vi(nt[0],nt[1],nt[2]);break;case\"emissiveColor\":Ce.emissiveColor=new Vi(nt[0],nt[1],nt[2]);break;case\"shininess\":Ce.shininess=nt[0];break;case\"specularColor\":Ce.emissiveColor=new Vi(nt[0],nt[1],nt[2]);break;case\"transparency\":Ce.transparency=nt[0];break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",at);break}}return Ce}function m(ke,Ce,Le){let Ye;switch(Ce){case zB.INTENSITY:Ye=parseInt(ke),Le.r=Ye,Le.g=Ye,Le.b=Ye,Le.a=1;break;case zB.INTENSITY_ALPHA:Ye=parseInt(\"0x\"+ke.substring(2,4)),Le.r=Ye,Le.g=Ye,Le.b=Ye,Le.a=parseInt(\"0x\"+ke.substring(4,6));break;case zB.RGB:Le.r=parseInt(\"0x\"+ke.substring(2,4)),Le.g=parseInt(\"0x\"+ke.substring(4,6)),Le.b=parseInt(\"0x\"+ke.substring(6,8)),Le.a=1;break;case zB.RGBA:Le.r=parseInt(\"0x\"+ke.substring(2,4)),Le.g=parseInt(\"0x\"+ke.substring(4,6)),Le.b=parseInt(\"0x\"+ke.substring(6,8)),Le.a=parseInt(\"0x\"+ke.substring(8,10));break}}function _(ke){let Ce;switch(ke){case 1:Ce=zB.INTENSITY;break;case 2:Ce=zB.INTENSITY_ALPHA;break;case 3:Ce=zB.RGB;break;case 4:Ce=zB.RGBA;break}return Ce}function f(ke){let Ce,Le=c4,Ye=c4;const tt=ke.fields;for(let At=0,at=tt.length;At\u003cat;At++){const nt=tt[At],gt=nt.name,bt=nt.values;switch(gt){case\"image\":const Ct=bt[0],Dt=bt[1],kt=bt[2],it=_(kt),Yt=new Uint8Array(4*Ct*Dt),pn={r:0,g:0,b:0,a:0};for(let be=3,et=0,It=bt.length;be\u003cIt;be++,et++){m(bt[be],it,pn);const Bt=et*4;Yt[Bt+0]=pn.r,Yt[Bt+1]=pn.g,Yt[Bt+2]=pn.b,Yt[Bt+3]=pn.a}Ce=new OTe(Yt,Ct,Dt),Ce.needsUpdate=!0,Ce.__type=it;break;case\"repeatS\":bt[0]===!1\u0026\u0026(Le=Xy);break;case\"repeatT\":bt[0]===!1\u0026\u0026(Ye=Xy);break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",gt);break}}return Ce\u0026\u0026(Ce.wrapS=Le,Ce.wrapT=Ye),Ce}function I(ke){let Ce,Le=c4,Ye=c4;const tt=ke.fields;for(let At=0,at=tt.length;At\u003cat;At++){const nt=tt[At],gt=nt.name,bt=nt.values;switch(gt){case\"url\":const Ct=bt[0];Ct\u0026\u0026(Ce=Te.load(Ct));break;case\"repeatS\":bt[0]===!1\u0026\u0026(Le=Xy);break;case\"repeatT\":bt[0]===!1\u0026\u0026(Ye=Xy);break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",gt);break}}return Ce\u0026\u0026(Ce.wrapS=Le,Ce.wrapT=Ye),Ce}function C(ke){const Ce={center:new ni,rotation:new ni,scale:new ni,translation:new ni},Le=ke.fields;for(let Ye=0,tt=Le.length;Ye\u003ctt;Ye++){const At=Le[Ye],at=At.name,nt=At.values;switch(at){case\"center\":Ce.center.set(nt[0],nt[1]);break;case\"rotation\":Ce.rotation=nt[0];break;case\"scale\":Ce.scale.set(nt[0],nt[1]);break;case\"translation\":Ce.translation.set(nt[0],nt[1]);break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",at);break}}return Ce}function y(ke){return ke.fields[0].values}function x(ke){const Ce={},Le=ke.fields;for(let Ye=0,tt=Le.length;Ye\u003ctt;Ye++){const At=Le[Ye],at=At.name,nt=At.values;switch(at){case\"title\":Ce.title=nt[0];break;case\"info\":Ce.info=nt;break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",at);break}}return Ce}function E(ke){let Ce,Le,Ye,tt,At=!0,at=!0,nt=0,gt,bt,Ct,Dt,kt=!0,it=!0;const Yt=ke.fields;for(let st=0,xt=Yt.length;st\u003cxt;st++){const Xe=Yt[st],Ze=Xe.name,dt=Xe.values;switch(Ze){case\"color\":const Ut=dt[0];Ut!==null\u0026\u0026(Ce=c(Ut));break;case\"coord\":const Wt=dt[0];Wt!==null\u0026\u0026(Le=c(Wt));break;case\"normal\":const Xt=dt[0];Xt!==null\u0026\u0026(Ye=c(Xt));break;case\"texCoord\":const Jt=dt[0];Jt!==null\u0026\u0026(tt=c(Jt));break;case\"ccw\":At=dt[0];break;case\"colorIndex\":gt=dt;break;case\"colorPerVertex\":kt=dt[0];break;case\"convex\":break;case\"coordIndex\":bt=dt;break;case\"creaseAngle\":nt=dt[0];break;case\"normalIndex\":Ct=dt;break;case\"normalPerVertex\":it=dt[0];break;case\"solid\":at=dt[0];break;case\"texCoordIndex\":Dt=dt;break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",Ze);break}}if(bt===void 0)return console.warn(\"THREE.VRMLLoader: Missing coordIndex.\"),new Zl;const pn=Y(bt,At);let be,et,It;if(Ce)if(kt===!0)if(gt\u0026\u0026gt.length\u003e0){const st=Y(gt,At);be=ue(pn,st,Ce,3)}else be=ye(pn,new Bs(Ce,3));else if(gt\u0026\u0026gt.length\u003e0){const st=te(Ce,gt),xt=W(st,bt);be=fe(pn,xt)}else{const st=W(Ce,bt);be=fe(pn,st)}if(Ye)if(it===!0)if(Ct\u0026\u0026Ct.length\u003e0){const st=Y(Ct,At);et=ue(pn,st,Ye,3)}else et=ye(pn,new Bs(Ye,3));else if(Ct\u0026\u0026Ct.length\u003e0){const st=te(Ye,Ct),xt=W(st,bt);et=fe(pn,xt)}else{const st=W(Ye,bt);et=fe(pn,st)}else et=he(pn,Le,nt);if(tt)if(Dt\u0026\u0026Dt.length\u003e0){const st=Y(Dt,At);It=ue(pn,st,tt,2)}else It=ye(pn,new Bs(tt,2));const Bt=new Zl,mt=ye(pn,new Bs(Le,3));return Bt.setAttribute(\"position\",mt),Bt.setAttribute(\"normal\",et),be\u0026\u0026Bt.setAttribute(\"color\",be),It\u0026\u0026Bt.setAttribute(\"uv\",It),Bt._solid=at,Bt._type=\"mesh\",Bt}function B(ke){let Ce,Le,Ye,tt,At=!0;const at=ke.fields;for(let Dt=0,kt=at.length;Dt\u003ckt;Dt++){const it=at[Dt],Yt=it.name,pn=it.values;switch(Yt){case\"color\":const be=pn[0];be!==null\u0026\u0026(Ce=c(be));break;case\"coord\":const et=pn[0];et!==null\u0026\u0026(Le=c(et));break;case\"colorIndex\":Ye=pn;break;case\"colorPerVertex\":At=pn[0];break;case\"coordIndex\":tt=pn;break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",Yt);break}}let nt;const gt=j(tt);if(Ce)if(At===!0)if(Ye.length\u003e0){const Dt=j(Ye);nt=ue(gt,Dt,Ce,3)}else nt=ye(gt,new Bs(Ce,3));else if(Ye.length\u003e0){const Dt=te(Ce,Ye),kt=J(Dt,tt);nt=pe(gt,kt)}else{const Dt=J(Ce,tt);nt=pe(gt,Dt)}const bt=new Zl,Ct=ye(gt,new Bs(Le,3));return bt.setAttribute(\"position\",Ct),nt\u0026\u0026bt.setAttribute(\"color\",nt),bt._type=\"line\",bt}function S(ke){let Ce,Le;const Ye=ke.fields;for(let At=0,at=Ye.length;At\u003cat;At++){const nt=Ye[At],gt=nt.name,bt=nt.values;switch(gt){case\"color\":const Ct=bt[0];Ct!==null\u0026\u0026(Ce=c(Ct));break;case\"coord\":const Dt=bt[0];Dt!==null\u0026\u0026(Le=c(Dt));break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",gt);break}}const tt=new Zl;return tt.setAttribute(\"position\",new Bs(Le,3)),Ce\u0026\u0026tt.setAttribute(\"color\",new Bs(Ce,3)),tt._type=\"points\",tt}function Q(ke){const Ce=new jt(2,2,2),Le=ke.fields;for(let tt=0,At=Le.length;tt\u003cAt;tt++){const at=Le[tt],nt=at.name,gt=at.values;nt===\"size\"?(Ce.x=gt[0],Ce.y=gt[1],Ce.z=gt[2]):console.warn(\"THREE.VRMLLoader: Unknown field:\",nt)}return new Yx(Ce.x,Ce.y,Ce.z)}function w(ke){let Ce=1,Le=2,Ye=!1;const tt=ke.fields;for(let at=0,nt=tt.length;at\u003cnt;at++){const gt=tt[at],bt=gt.name,Ct=gt.values;switch(bt){case\"bottom\":Ye=!Ct[0];break;case\"bottomRadius\":Ce=Ct[0];break;case\"height\":Le=Ct[0];break;case\"side\":break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",bt);break}}return new ZTe(Ce,Le,16,1,Ye)}function M(ke){let Ce=1,Le=2;const Ye=ke.fields;for(let At=0,at=Ye.length;At\u003cat;At++){const nt=Ye[At],gt=nt.name,bt=nt.values;switch(gt){case\"bottom\":break;case\"radius\":Ce=bt[0];break;case\"height\":Le=bt[0];break;case\"side\":break;case\"top\":break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",gt);break}}return new lY(Ce,Ce,Le,16,1)}function k(ke){let Ce=1;const Le=ke.fields;for(let tt=0,At=Le.length;tt\u003cAt;tt++){const at=Le[tt],nt=at.name,gt=at.values;nt===\"radius\"?Ce=gt[0]:console.warn(\"THREE.VRMLLoader: Unknown field:\",nt)}return new WR(Ce,16,16)}function R(ke){let Ce,Le,Ye,tt,At=!0,at=!0,nt=!0,gt=!0,bt=0,Ct=2,Dt=2,kt=1,it=1;const Yt=ke.fields;for(let dt=0,Ut=Yt.length;dt\u003cUt;dt++){const Wt=Yt[dt],Xt=Wt.name,Jt=Wt.values;switch(Xt){case\"color\":const yn=Jt[0];yn!==null\u0026\u0026(Ce=c(yn));break;case\"normal\":const An=Jt[0];An!==null\u0026\u0026(Le=c(An));break;case\"texCoord\":const kn=Jt[0];kn!==null\u0026\u0026(Ye=c(kn));break;case\"height\":tt=Jt;break;case\"ccw\":gt=Jt[0];break;case\"colorPerVertex\":At=Jt[0];break;case\"creaseAngle\":bt=Jt[0];break;case\"normalPerVertex\":at=Jt[0];break;case\"solid\":nt=Jt[0];break;case\"xDimension\":Ct=Jt[0];break;case\"xSpacing\":kt=Jt[0];break;case\"zDimension\":Dt=Jt[0];break;case\"zSpacing\":it=Jt[0];break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",Xt);break}}const pn=[],be=[],et=[],It=[];for(let dt=0;dt\u003cDt;dt++)for(let Ut=0;Ut\u003cCt;Ut++){const Wt=dt*Ct+Ut,Xt=kt*dt,Jt=tt[Wt],yn=it*Ut;if(pn.push(Xt,Jt,yn),Ce\u0026\u0026At===!0){const An=Ce[Wt*3+0],kn=Ce[Wt*3+1],$n=Ce[Wt*3+2];et.push(An,kn,$n)}if(Le\u0026\u0026at===!0){const An=Le[Wt*3+0],kn=Le[Wt*3+1],$n=Le[Wt*3+2];be.push(An,kn,$n)}if(Ye){const An=Ye[Wt*2+0],kn=Ye[Wt*2+1];It.push(An,kn)}else It.push(dt/(Ct-1),Ut/(Dt-1))}const Bt=[];for(let dt=0;dt\u003cCt-1;dt++)for(let Ut=0;Ut\u003cDt-1;Ut++){const Wt=dt+Ut*Ct,Xt=dt+(Ut+1)*Ct,Jt=dt+1+(Ut+1)*Ct,yn=dt+1+Ut*Ct;gt===!0?(Bt.push(Wt,Jt,Xt),Bt.push(Jt,Wt,yn)):(Bt.push(Wt,Xt,Jt),Bt.push(Jt,yn,Wt))}const mt=ye(Bt,new Bs(pn,3)),st=ye(Bt,new Bs(It,2));let xt,Xe;if(Ce)if(At===!1){for(let dt=0;dt\u003cCt-1;dt++)for(let Ut=0;Ut\u003cDt-1;Ut++){const Wt=dt+Ut*(Ct-1),Xt=Ce[Wt*3+0],Jt=Ce[Wt*3+1],yn=Ce[Wt*3+2];et.push(Xt,Jt,yn),et.push(Xt,Jt,yn),et.push(Xt,Jt,yn),et.push(Xt,Jt,yn),et.push(Xt,Jt,yn),et.push(Xt,Jt,yn)}xt=new Bs(et,3)}else xt=ye(Bt,new Bs(et,3));if(Le)if(at===!1){for(let dt=0;dt\u003cCt-1;dt++)for(let Ut=0;Ut\u003cDt-1;Ut++){const Wt=dt+Ut*(Ct-1),Xt=Le[Wt*3+0],Jt=Le[Wt*3+1],yn=Le[Wt*3+2];be.push(Xt,Jt,yn),be.push(Xt,Jt,yn),be.push(Xt,Jt,yn),be.push(Xt,Jt,yn),be.push(Xt,Jt,yn),be.push(Xt,Jt,yn)}Xe=new Bs(be,3)}else Xe=ye(Bt,new Bs(be,3));else Xe=he(Bt,pn,bt);const Ze=new Zl;return Ze.setAttribute(\"position\",mt),Ze.setAttribute(\"normal\",Xe),Ze.setAttribute(\"uv\",st),xt\u0026\u0026Ze.setAttribute(\"color\",xt),Ze._solid=nt,Ze._type=\"mesh\",Ze}function F(ke){let Ce=[1,1,1,-1,-1,-1,-1,1,1,1],Le=[0,0,0,0,1,0],Ye,tt,At=!0,at=!0,nt=0,gt=!0,bt=!0;const Ct=ke.fields;for(let Ze=0,dt=Ct.length;Ze\u003cdt;Ze++){const Ut=Ct[Ze],Wt=Ut.name,Xt=Ut.values;switch(Wt){case\"beginCap\":At=Xt[0];break;case\"ccw\":at=Xt[0];break;case\"convex\":break;case\"creaseAngle\":nt=Xt[0];break;case\"crossSection\":Ce=Xt;break;case\"endCap\":gt=Xt[0];break;case\"orientation\":tt=Xt;break;case\"scale\":Ye=Xt;break;case\"solid\":bt=Xt[0];break;case\"spine\":Le=Xt;break;default:console.warn(\"THREE.VRMLLoader: Unknown field:\",Wt);break}}const Dt=Ce[0]===Ce[Ce.length-2]\u0026\u0026Ce[1]===Ce[Ce.length-1],kt=[],it=new jt,Yt=new jt,pn=new jt,be=new jt,et=new Zy;for(let Ze=0,dt=0,Ut=0,Wt=Le.length;Ze\u003cWt;Ze+=3,dt+=2,Ut+=4){it.fromArray(Le,Ze),Yt.x=Ye?Ye[dt+0]:1,Yt.y=1,Yt.z=Ye?Ye[dt+1]:1,pn.x=tt?tt[Ut+0]:0,pn.y=tt?tt[Ut+1]:0,pn.z=tt?tt[Ut+2]:1;const Xt=tt?tt[Ut+3]:0;for(let Jt=0,yn=Ce.length;Jt\u003cyn;Jt+=2)be.x=Ce[Jt+0],be.y=0,be.z=Ce[Jt+1],be.multiply(Yt),et.setFromAxisAngle(pn,Xt),be.applyQuaternion(et),be.add(it),kt.push(be.x,be.y,be.z)}const It=[],Bt=Le.length/3,mt=Ce.length/2;for(let Ze=0;Ze\u003cBt-1;Ze++)for(let dt=0;dt\u003cmt-1;dt++){const Ut=dt+Ze*mt;let Wt=dt+1+Ze*mt;const Xt=dt+(Ze+1)*mt;let Jt=dt+1+(Ze+1)*mt;dt===mt-2\u0026\u0026Dt===!0\u0026\u0026(Wt=Ze*mt,Jt=(Ze+1)*mt),at===!0?(It.push(Ut,Wt,Xt),It.push(Xt,Wt,Jt)):(It.push(Ut,Xt,Wt),It.push(Xt,Jt,Wt))}if(At===!0||gt===!0){const Ze=[];for(let Wt=0,Xt=Ce.length;Wt\u003cXt;Wt+=2)Ze.push(new ni(Ce[Wt],Ce[Wt+1]));const dt=gY.triangulateShape(Ze,[]),Ut=[];for(let Wt=0,Xt=dt.length;Wt\u003cXt;Wt++){const Jt=dt[Wt];Ut.push(Jt[0],Jt[1],Jt[2])}if(At===!0)for(let Wt=0,Xt=Ut.length;Wt\u003cXt;Wt+=3)at===!0?It.push(Ut[Wt+0],Ut[Wt+1],Ut[Wt+2]):It.push(Ut[Wt+0],Ut[Wt+2],Ut[Wt+1]);if(gt===!0){const Wt=mt*(Bt-1);for(let Xt=0,Jt=Ut.length;Xt\u003cJt;Xt+=3)at===!0?It.push(Wt+Ut[Xt+0],Wt+Ut[Xt+2],Wt+Ut[Xt+1]):It.push(Wt+Ut[Xt+0],Wt+Ut[Xt+1],Wt+Ut[Xt+2])}}const st=ye(It,new Bs(kt,3)),xt=he(It,kt,nt),Xe=new Zl;return Xe.setAttribute(\"position\",st),Xe.setAttribute(\"normal\",xt),Xe._solid=bt,Xe._type=\"mesh\",Xe}function O(ke){const Ce=o[ke],Le=c(Ce);return Le.isObject3D||Le.isMaterial?Le.clone():Le}function U(ke,Ce){for(let Le=0,Ye=ke.length;Le\u003cYe;Le++){const tt=c(ke[Le]);tt instanceof T0\u0026\u0026Ce.add(tt)}}function Y(ke,Ce){const Le=[];let Ye=0;for(let tt=0,At=ke.length;tt\u003cAt;tt++){const at=ke[Ye],nt=ke[tt+(Ce?1:2)],gt=ke[tt+(Ce?2:1)];Le.push(at,nt,gt),(ke[tt+3]===-1||tt+3\u003e=At)\u0026\u0026(tt+=3,Ye=tt+1)}return Le}function W(ke,Ce){const Le=[];let Ye=0;for(let tt=0,At=Ce.length;tt\u003cAt;tt++){const at=Ye*3,nt=ke[at],gt=ke[at+1],bt=ke[at+2];Le.push(nt,gt,bt),(Ce[tt+3]===-1||tt+3\u003e=At)\u0026\u0026(tt+=3,Ye++)}return Le}function te(ke,Ce){const Le=[];for(let Ye=0,tt=Ce.length;Ye\u003ctt;Ye++){const at=Ce[Ye]*3,nt=ke[at],gt=ke[at+1],bt=ke[at+2];Le.push(nt,gt,bt)}return Le}function j(ke){const Ce=[];for(let Le=0,Ye=ke.length;Le\u003cYe;Le++){const tt=ke[Le],At=ke[Le+1];Ce.push(tt,At),(ke[Le+2]===-1||Le+2\u003e=Ye)\u0026\u0026(Le+=2)}return Ce}function J(ke,Ce){const Le=[];let Ye=0;for(let tt=0,At=Ce.length;tt\u003cAt;tt++){const at=Ye*3,nt=ke[at],gt=ke[at+1],bt=ke[at+2];Le.push(nt,gt,bt),(Ce[tt+2]===-1||tt+2\u003e=At)\u0026\u0026(tt+=2,Ye++)}return Le}const oe=new jt,ie=new jt,ne=new jt,le=new ni,ge=new ni,_e=new ni;function ue(ke,Ce,Le,Ye){const tt=[];for(let At=0,at=ke.length;At\u003cat;At+=3){const nt=Ce[At],gt=Ce[At+1],bt=Ce[At+2];Ye===2?(le.fromArray(Le,nt*Ye),ge.fromArray(Le,gt*Ye),_e.fromArray(Le,bt*Ye),tt.push(le.x,le.y),tt.push(ge.x,ge.y),tt.push(_e.x,_e.y)):(oe.fromArray(Le,nt*Ye),ie.fromArray(Le,gt*Ye),ne.fromArray(Le,bt*Ye),tt.push(oe.x,oe.y,oe.z),tt.push(ie.x,ie.y,ie.z),tt.push(ne.x,ne.y,ne.z))}return new Bs(tt,Ye)}function fe(ke,Ce){const Le=[];for(let Ye=0,tt=0,At=ke.length;Ye\u003cAt;Ye+=3,tt++)oe.fromArray(Ce,tt*3),Le.push(oe.x,oe.y,oe.z),Le.push(oe.x,oe.y,oe.z),Le.push(oe.x,oe.y,oe.z);return new Bs(Le,3)}function pe(ke,Ce){const Le=[];for(let Ye=0,tt=0,At=ke.length;Ye\u003cAt;Ye+=2,tt++)oe.fromArray(Ce,tt*3),Le.push(oe.x,oe.y,oe.z),Le.push(oe.x,oe.y,oe.z);return new Bs(Le,3)}function ye(ke,Ce){const Le=Ce.array,Ye=Ce.itemSize,tt=new Le.constructor(ke.length*Ye);let At=0,at=0;for(let nt=0,gt=ke.length;nt\u003cgt;nt++){At=ke[nt]*Ye;for(let bt=0;bt\u003cYe;bt++)tt[at++]=Le[At++]}return new Bs(tt,Ye)}const Me=new jt,ve=new jt;function he(ke,Ce,Le){const Ye=[],tt={};for(let at=0,nt=ke.length;at\u003cnt;at+=3){const gt=ke[at],bt=ke[at+1],Ct=ke[at+2],Dt=new Coi(gt,bt,Ct);oe.fromArray(Ce,gt*3),ie.fromArray(Ce,bt*3),ne.fromArray(Ce,Ct*3),ve.subVectors(ne,ie),Me.subVectors(oe,ie),ve.cross(Me),ve.normalize(),Dt.normal.copy(ve),tt[gt]===void 0\u0026\u0026(tt[gt]=[]),tt[bt]===void 0\u0026\u0026(tt[bt]=[]),tt[Ct]===void 0\u0026\u0026(tt[Ct]=[]),tt[gt].push(Dt.normal),tt[bt].push(Dt.normal),tt[Ct].push(Dt.normal),Ye.push(Dt)}const At=[];for(let at=0,nt=Ye.length;at\u003cnt;at++){const gt=Ye[at],bt=Qe(tt[gt.a],gt.normal,Le),Ct=Qe(tt[gt.b],gt.normal,Le),Dt=Qe(tt[gt.c],gt.normal,Le);oe.fromArray(Ce,gt.a*3),ie.fromArray(Ce,gt.b*3),ne.fromArray(Ce,gt.c*3),At.push(bt.x,bt.y,bt.z),At.push(Ct.x,Ct.y,Ct.z),At.push(Dt.x,Dt.y,Dt.z)}return new Bs(At,3)}function Qe(ke,Ce,Le){const Ye=new jt;if(Le===0)Ye.copy(Ce);else for(let tt=0,At=ke.length;tt\u003cAt;tt++)ke[tt].angleTo(Ce)\u003cLe\u0026\u0026Ye.add(ke[tt]);return Ye.normalize()}function Pe(ke){const Ce=[];for(let Le=0,Ye=ke.length;Le\u003cYe;Le+=3)Ce.push(new Vi(ke[Le],ke[Le+1],ke[Le+2]));return Ce}function we(ke,Ce,Le,Ye,tt){const At=[],at=tt===!0?0:Math.PI;for(let kt=0,it=Ye.length;kt\u003cit;kt++){let Yt=kt===0?0:Le[kt-1];Yt=tt===!0?Yt:at-Yt;const pn=new jt;pn.setFromSphericalCoords(Ce,Yt,0),At.push(pn)}const nt=ke.index,gt=ke.attributes.position,bt=new tg(new Float32Array(ke.attributes.position.count*3),3),Ct=new jt,Dt=new Vi;for(let kt=0;kt\u003cnt.count;kt++){const it=nt.getX(kt);Ct.fromBufferAttribute(gt,it);let Yt,pn,be=1;for(let Bt=1;Bt\u003cAt.length;Bt++){Yt=Bt-1,pn=Bt;const mt=At[Yt],st=At[pn];if(tt===!0){if(Ct.y\u003c=mt.y\u0026\u0026Ct.y\u003est.y){be=Math.abs(mt.y-Ct.y)/Math.abs(mt.y-st.y);break}}else if(Ct.y\u003e=mt.y\u0026\u0026Ct.y\u003cst.y){be=Math.abs(mt.y-Ct.y)/Math.abs(mt.y-st.y);break}}const et=Ye[Yt],It=Ye[pn];Dt.copy(et).lerp(It,be),bt.setXYZ(it,Dt.r,Dt.g,Dt.b)}ke.setAttribute(\"color\",bt)}const Te=new rke(this.manager);if(Te.setPath(this.resourcePath||n).setCrossOrigin(this.crossOrigin),e.indexOf(\"#VRML V2.0\")===-1)throw Error(\"THREE.VRMLLexer: Version of VRML asset not supported.\");const Re=i(e);return a(Re)}}class foi{constructor(e){this.lexer=new Eke(e)}lex(e){const n=this.lexer.tokenize(e);if(n.errors.length\u003e0)throw console.error(n.errors),Error(\"THREE.VRMLLexer: Lexing errors detected.\");return n}}class Ioi extends moi{constructor(e){super(e);const n=this,o=e.Version,i=e.LCurly,r=e.RCurly,s=e.LSquare,a=e.RSquare,A=e.Identifier,c=e.RouteIdentifier,l=e.StringLiteral,u=e.HexLiteral,g=e.NumberLiteral,h=e.TrueLiteral,d=e.FalseLiteral,p=e.NullLiteral,m=e.DEF,_=e.USE,f=e.ROUTE,I=e.TO,C=e.NodeName;n.RULE(\"vrml\",function(){n.SUBRULE(n.version),n.AT_LEAST_ONE(function(){n.SUBRULE(n.node)}),n.MANY(function(){n.SUBRULE(n.route)})}),n.RULE(\"version\",function(){n.CONSUME(o)}),n.RULE(\"node\",function(){n.OPTION(function(){n.SUBRULE(n.def)}),n.CONSUME(C),n.CONSUME(i),n.MANY(function(){n.SUBRULE(n.field)}),n.CONSUME(r)}),n.RULE(\"field\",function(){n.CONSUME(A),n.OR2([{ALT:function(){n.SUBRULE(n.singleFieldValue)}},{ALT:function(){n.SUBRULE(n.multiFieldValue)}}])}),n.RULE(\"def\",function(){n.CONSUME(m),n.OR([{ALT:function(){n.CONSUME(A)}},{ALT:function(){n.CONSUME(C)}}])}),n.RULE(\"use\",function(){n.CONSUME(_),n.OR([{ALT:function(){n.CONSUME(A)}},{ALT:function(){n.CONSUME(C)}}])}),n.RULE(\"singleFieldValue\",function(){n.AT_LEAST_ONE(function(){n.OR([{ALT:function(){n.SUBRULE(n.node)}},{ALT:function(){n.SUBRULE(n.use)}},{ALT:function(){n.CONSUME(l)}},{ALT:function(){n.CONSUME(u)}},{ALT:function(){n.CONSUME(g)}},{ALT:function(){n.CONSUME(h)}},{ALT:function(){n.CONSUME(d)}},{ALT:function(){n.CONSUME(p)}}])})}),n.RULE(\"multiFieldValue\",function(){n.CONSUME(s),n.MANY(function(){n.OR([{ALT:function(){n.SUBRULE(n.node)}},{ALT:function(){n.SUBRULE(n.use)}},{ALT:function(){n.CONSUME(l)}},{ALT:function(){n.CONSUME(u)}},{ALT:function(){n.CONSUME(g)}},{ALT:function(){n.CONSUME(p)}}])}),n.CONSUME(a)}),n.RULE(\"route\",function(){n.CONSUME(f),n.CONSUME(c),n.CONSUME(I),n.CONSUME2(c)}),this.performSelfAnalysis()}}let Coi=class{constructor(e,n,o){this.a=e,this.b=n,this.c=o,this.normal=new jt}};const zB={INTENSITY:1,INTENSITY_ALPHA:2,RGB:3,RGBA:4},yoi=/^[og]\\s*(.+)?/,xoi=/^mtllib /,Eoi=/^usemtl /,Boi=/^usemap /,MJt=new jt,Bke=new jt,DJt=new jt,NJt=new jt,h4=new jt;function boi(){const t={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,n){if(this.object\u0026\u0026this.object.fromDeclaration===!1){this.object.name=e,this.object.fromDeclaration=n!==!1;return}const o=this.object\u0026\u0026typeof this.object.currentMaterial==\"function\"?this.object.currentMaterial():void 0;if(this.object\u0026\u0026typeof this.object._finalize==\"function\"\u0026\u0026this.object._finalize(!0),this.object={name:e||\"\",fromDeclaration:n!==!1,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(i,r){const s=this._finalize(!1);s\u0026\u0026(s.inherited||s.groupCount\u003c=0)\u0026\u0026this.materials.splice(s.index,1);const a={index:this.materials.length,name:i||\"\",mtllib:Array.isArray(r)\u0026\u0026r.length\u003e0?r[r.length-1]:\"\",smooth:s!==void 0?s.smooth:this.smooth,groupStart:s!==void 0?s.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(A){const c={index:typeof A==\"number\"?A:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return c.clone=this.clone.bind(c),c}};return this.materials.push(a),a},currentMaterial:function(){if(this.materials.length\u003e0)return this.materials[this.materials.length-1]},_finalize:function(i){const r=this.currentMaterial();if(r\u0026\u0026r.groupEnd===-1\u0026\u0026(r.groupEnd=this.geometry.vertices.length/3,r.groupCount=r.groupEnd-r.groupStart,r.inherited=!1),i\u0026\u0026this.materials.length\u003e1)for(let s=this.materials.length-1;s\u003e=0;s--)this.materials[s].groupCount\u003c=0\u0026\u0026this.materials.splice(s,1);return i\u0026\u0026this.materials.length===0\u0026\u0026this.materials.push({name:\"\",smooth:this.smooth}),r}},o\u0026\u0026o.name\u0026\u0026typeof o.clone==\"function\"){const i=o.clone(0);i.inherited=!0,this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){this.object\u0026\u0026typeof this.object._finalize==\"function\"\u0026\u0026this.object._finalize(!0)},parseVertexIndex:function(e,n){const o=parseInt(e,10);return(o\u003e=0?o-1:o+n/3)*3},parseNormalIndex:function(e,n){const o=parseInt(e,10);return(o\u003e=0?o-1:o+n/3)*3},parseUVIndex:function(e,n){const o=parseInt(e,10);return(o\u003e=0?o-1:o+n/2)*2},addVertex:function(e,n,o){const i=this.vertices,r=this.object.geometry.vertices;r.push(i[e+0],i[e+1],i[e+2]),r.push(i[n+0],i[n+1],i[n+2]),r.push(i[o+0],i[o+1],i[o+2])},addVertexPoint:function(e){const n=this.vertices;this.object.geometry.vertices.push(n[e+0],n[e+1],n[e+2])},addVertexLine:function(e){const n=this.vertices;this.object.geometry.vertices.push(n[e+0],n[e+1],n[e+2])},addNormal:function(e,n,o){const i=this.normals,r=this.object.geometry.normals;r.push(i[e+0],i[e+1],i[e+2]),r.push(i[n+0],i[n+1],i[n+2]),r.push(i[o+0],i[o+1],i[o+2])},addFaceNormal:function(e,n,o){const i=this.vertices,r=this.object.geometry.normals;MJt.fromArray(i,e),Bke.fromArray(i,n),DJt.fromArray(i,o),h4.subVectors(DJt,Bke),NJt.subVectors(MJt,Bke),h4.cross(NJt),h4.normalize(),r.push(h4.x,h4.y,h4.z),r.push(h4.x,h4.y,h4.z),r.push(h4.x,h4.y,h4.z)},addColor:function(e,n,o){const i=this.colors,r=this.object.geometry.colors;i[e]!==void 0\u0026\u0026r.push(i[e+0],i[e+1],i[e+2]),i[n]!==void 0\u0026\u0026r.push(i[n+0],i[n+1],i[n+2]),i[o]!==void 0\u0026\u0026r.push(i[o+0],i[o+1],i[o+2])},addUV:function(e,n,o){const i=this.uvs,r=this.object.geometry.uvs;r.push(i[e+0],i[e+1]),r.push(i[n+0],i[n+1]),r.push(i[o+0],i[o+1])},addDefaultUV:function(){const e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){const n=this.uvs;this.object.geometry.uvs.push(n[e+0],n[e+1])},addFace:function(e,n,o,i,r,s,a,A,c){const l=this.vertices.length;let u=this.parseVertexIndex(e,l),g=this.parseVertexIndex(n,l),h=this.parseVertexIndex(o,l);if(this.addVertex(u,g,h),this.addColor(u,g,h),a!==void 0\u0026\u0026a!==\"\"){const d=this.normals.length;u=this.parseNormalIndex(a,d),g=this.parseNormalIndex(A,d),h=this.parseNormalIndex(c,d),this.addNormal(u,g,h)}else this.addFaceNormal(u,g,h);if(i!==void 0\u0026\u0026i!==\"\"){const d=this.uvs.length;u=this.parseUVIndex(i,d),g=this.parseUVIndex(r,d),h=this.parseUVIndex(s,d),this.addUV(u,g,h),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type=\"Points\";const n=this.vertices.length;for(let o=0,i=e.length;o\u003ci;o++){const r=this.parseVertexIndex(e[o],n);this.addVertexPoint(r),this.addColor(r)}},addLineGeometry:function(e,n){this.object.geometry.type=\"Line\";const o=this.vertices.length,i=this.uvs.length;for(let r=0,s=e.length;r\u003cs;r++)this.addVertexLine(this.parseVertexIndex(e[r],o));for(let r=0,s=n.length;r\u003cs;r++)this.addUVLine(this.parseUVIndex(n[r],i))}};return t.startObject(\"\",!1),t}class Soi extends x6{constructor(e){super(e),this.materials=null}load(e,n,o,i){const r=this,s=new fY(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(a){try{n(r.parse(a))}catch(A){i?i(A):console.error(A),r.manager.itemError(e)}},o,i)}setMaterials(e){return this.materials=e,this}parse(e){const n=new boi;e.indexOf(`\\r\n`)!==-1\u0026\u0026(e=e.replace(/\\r\\n/g,`\n`)),e.indexOf(`\\\\\n`)!==-1\u0026\u0026(e=e.replace(/\\\\\\n/g,\"\"));const o=e.split(`\n`);let i=\"\",r=\"\",s=0,a=[];const A=typeof\"\".trimLeft==\"function\";for(let u=0,g=o.length;u\u003cg;u++)if(i=o[u],i=A?i.trimLeft():i.trim(),s=i.length,s!==0\u0026\u0026(r=i.charAt(0),r!==\"#\"))if(r===\"v\"){const h=i.split(/\\s+/);switch(h[0]){case\"v\":n.vertices.push(parseFloat(h[1]),parseFloat(h[2]),parseFloat(h[3])),h.length\u003e=7?n.colors.push(parseFloat(h[4]),parseFloat(h[5]),parseFloat(h[6])):n.colors.push(void 0,void 0,void 0);break;case\"vn\":n.normals.push(parseFloat(h[1]),parseFloat(h[2]),parseFloat(h[3]));break;case\"vt\":n.uvs.push(parseFloat(h[1]),parseFloat(h[2]));break}}else if(r===\"f\"){const d=i.substr(1).trim().split(/\\s+/),p=[];for(let _=0,f=d.length;_\u003cf;_++){const I=d[_];if(I.length\u003e0){const C=I.split(\"/\");p.push(C)}}const m=p[0];for(let _=1,f=p.length-1;_\u003cf;_++){const I=p[_],C=p[_+1];n.addFace(m[0],I[0],C[0],m[1],I[1],C[1],m[2],I[2],C[2])}}else if(r===\"l\"){const h=i.substring(1).trim().split(\" \");let d=[];const p=[];if(i.indexOf(\"/\")===-1)d=h;else for(let m=0,_=h.length;m\u003c_;m++){const f=h[m].split(\"/\");f[0]!==\"\"\u0026\u0026d.push(f[0]),f[1]!==\"\"\u0026\u0026p.push(f[1])}n.addLineGeometry(d,p)}else if(r===\"p\"){const d=i.substr(1).trim().split(\" \");n.addPointGeometry(d)}else if((a=yoi.exec(i))!==null){const h=(\" \"+a[0].substr(1).trim()).substr(1);n.startObject(h)}else if(Eoi.test(i))n.object.startMaterial(i.substring(7).trim(),n.materialLibraries);else if(xoi.test(i))n.materialLibraries.push(i.substring(7).trim());else if(Boi.test(i))console.warn('THREE.OBJLoader: Rendering identifier \"usemap\" not supported. Textures must be defined in MTL files.');else if(r===\"s\"){if(a=i.split(\" \"),a.length\u003e1){const d=a[1].trim().toLowerCase();n.object.smooth=d!==\"0\"\u0026\u0026d!==\"off\"}else n.object.smooth=!0;const h=n.object.currentMaterial();h\u0026\u0026(h.smooth=n.object.smooth)}else{if(i===\"\\0\")continue;console.warn('THREE.OBJLoader: Unexpected line: \"'+i+'\"')}n.finalize();const c=new lh;if(c.materialLibraries=[].concat(n.materialLibraries),!(n.objects.length===1\u0026\u0026n.objects[0].geometry.vertices.length===0)===!0)for(let u=0,g=n.objects.length;u\u003cg;u++){const h=n.objects[u],d=h.geometry,p=h.materials,m=d.type===\"Line\",_=d.type===\"Points\";let f=!1;if(d.vertices.length===0)continue;const I=new Zl;I.setAttribute(\"position\",new Bs(d.vertices,3)),d.normals.length\u003e0\u0026\u0026I.setAttribute(\"normal\",new Bs(d.normals,3)),d.colors.length\u003e0\u0026\u0026(f=!0,I.setAttribute(\"color\",new Bs(d.colors,3))),d.hasUVIndices===!0\u0026\u0026I.setAttribute(\"uv\",new Bs(d.uvs,2));const C=[];for(let x=0,E=p.length;x\u003cE;x++){const B=p[x],S=B.name+\"_\"+B.smooth+\"_\"+f;let Q=n.materials[S];if(this.materials!==null){if(Q=this.materials.create(B.name),m\u0026\u0026Q\u0026\u0026!(Q instanceof VR)){const w=new VR;Gx.prototype.copy.call(w,Q),w.color.copy(Q.color),Q=w}else if(_\u0026\u0026Q\u0026\u0026!(Q instanceof zR)){const w=new zR({size:10,sizeAttenuation:!1});Gx.prototype.copy.call(w,Q),w.color.copy(Q.color),w.map=Q.map,Q=w}}Q===void 0\u0026\u0026(m?Q=new VR:_?Q=new zR({size:1,sizeAttenuation:!1}):Q=new ike,Q.name=B.name,Q.flatShading=!B.smooth,Q.vertexColors=f,n.materials[S]=Q),C.push(Q)}let y;if(C.length\u003e1){for(let x=0,E=p.length;x\u003cE;x++){const B=p[x];I.addGroup(B.groupStart,B.groupCount,x)}m?y=new Jq(I,C):_?y=new Wq(I,C):y=new Er(I,C)}else m?y=new Jq(I,C[0]):_?y=new Wq(I,C[0]):y=new Er(I,C[0]);y.name=h.name,c.add(y)}else if(n.vertices.length\u003e0){const u=new zR({size:1,sizeAttenuation:!1}),g=new Zl;g.setAttribute(\"position\",new Bs(n.vertices,3)),n.colors.length\u003e0\u0026\u0026n.colors[0]!==void 0\u0026\u0026(g.setAttribute(\"color\",new Bs(n.colors,3)),u.vertexColors=!0);const h=new Wq(g,u);c.add(h)}return c}}const RJt={type:\"change\"},bke={type:\"start\"},TJt={type:\"end\"},mhe=new zG,kJt=new nP,Qoi=Math.cos(70*OG.DEG2RAD);let voi=class extends RR{constructor(e,n){super(),this.object=e,this.domElement=n,this.domElement.style.touchAction=\"none\",this.enabled=!0,this.target=new jt,this.cursor=new jt,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:\"ArrowLeft\",UP:\"ArrowUp\",RIGHT:\"ArrowRight\",BOTTOM:\"ArrowDown\"},this.mouseButtons={LEFT:Vw.ROTATE,MIDDLE:Vw.DOLLY,RIGHT:Vw.PAN},this.touches={ONE:SG.ROTATE,TWO:SG.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(be){be.addEventListener(\"keydown\",at),this._domElementKeyEvents=be},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener(\"keydown\",at),this._domElementKeyEvents=null},this.saveState=function(){o.target0.copy(o.target),o.position0.copy(o.object.position),o.zoom0=o.object.zoom},this.reset=function(){o.target.copy(o.target0),o.object.position.copy(o.position0),o.object.zoom=o.zoom0,o.object.updateProjectionMatrix(),o.dispatchEvent(RJt),o.update(),r=i.NONE},this.update=(function(){const be=new jt,et=new Zy().setFromUnitVectors(e.up,new jt(0,1,0)),It=et.clone().invert(),Bt=new jt,mt=new Zy,st=new jt,xt=2*Math.PI;return function(Ze=null){const dt=o.object.position;be.copy(dt).sub(o.target),be.applyQuaternion(et),a.setFromVector3(be),o.autoRotate\u0026\u0026r===i.NONE\u0026\u0026M(Q(Ze)),o.enableDamping?(a.theta+=A.theta*o.dampingFactor,a.phi+=A.phi*o.dampingFactor):(a.theta+=A.theta,a.phi+=A.phi);let Ut=o.minAzimuthAngle,Wt=o.maxAzimuthAngle;isFinite(Ut)\u0026\u0026isFinite(Wt)\u0026\u0026(Ut\u003c-Math.PI?Ut+=xt:Ut\u003eMath.PI\u0026\u0026(Ut-=xt),Wt\u003c-Math.PI?Wt+=xt:Wt\u003eMath.PI\u0026\u0026(Wt-=xt),Ut\u003c=Wt?a.theta=Math.max(Ut,Math.min(Wt,a.theta)):a.theta=a.theta\u003e(Ut+Wt)/2?Math.max(Ut,a.theta):Math.min(Wt,a.theta)),a.phi=Math.max(o.minPolarAngle,Math.min(o.maxPolarAngle,a.phi)),a.makeSafe(),o.enableDamping===!0?o.target.addScaledVector(l,o.dampingFactor):o.target.add(l),o.target.sub(o.cursor),o.target.clampLength(o.minTargetRadius,o.maxTargetRadius),o.target.add(o.cursor);let Xt=!1;if(o.zoomToCursor\u0026\u0026x||o.object.isOrthographicCamera)a.radius=te(a.radius);else{const Jt=a.radius;a.radius=te(a.radius*c),Xt=Jt!=a.radius}if(be.setFromSpherical(a),be.applyQuaternion(It),dt.copy(o.target).add(be),o.object.lookAt(o.target),o.enableDamping===!0?(A.theta*=1-o.dampingFactor,A.phi*=1-o.dampingFactor,l.multiplyScalar(1-o.dampingFactor)):(A.set(0,0,0),l.set(0,0,0)),o.zoomToCursor\u0026\u0026x){let Jt=null;if(o.object.isPerspectiveCamera){const yn=be.length();Jt=te(yn*c);const An=yn-Jt;o.object.position.addScaledVector(C,An),o.object.updateMatrixWorld(),Xt=!!An}else if(o.object.isOrthographicCamera){const yn=new jt(y.x,y.y,0);yn.unproject(o.object);const An=o.object.zoom;o.object.zoom=Math.max(o.minZoom,Math.min(o.maxZoom,o.object.zoom/c)),o.object.updateProjectionMatrix(),Xt=An!==o.object.zoom;const kn=new jt(y.x,y.y,0);kn.unproject(o.object),o.object.position.sub(kn).add(yn),o.object.updateMatrixWorld(),Jt=be.length()}else console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.\"),o.zoomToCursor=!1;Jt!==null\u0026\u0026(this.screenSpacePanning?o.target.set(0,0,-1).transformDirection(o.object.matrix).multiplyScalar(Jt).add(o.object.position):(mhe.origin.copy(o.object.position),mhe.direction.set(0,0,-1).transformDirection(o.object.matrix),Math.abs(o.object.up.dot(mhe.direction))\u003cQoi?e.lookAt(o.target):(kJt.setFromNormalAndCoplanarPoint(o.object.up,o.target),mhe.intersectPlane(kJt,o.target))))}else if(o.object.isOrthographicCamera){const Jt=o.object.zoom;o.object.zoom=Math.max(o.minZoom,Math.min(o.maxZoom,o.object.zoom/c)),Jt!==o.object.zoom\u0026\u0026(o.object.updateProjectionMatrix(),Xt=!0)}return c=1,x=!1,Xt||Bt.distanceToSquared(o.object.position)\u003es||8*(1-mt.dot(o.object.quaternion))\u003es||st.distanceToSquared(o.target)\u003es?(o.dispatchEvent(RJt),Bt.copy(o.object.position),mt.copy(o.object.quaternion),st.copy(o.target),!0):!1}})(),this.dispose=function(){o.domElement.removeEventListener(\"contextmenu\",bt),o.domElement.removeEventListener(\"pointerdown\",Te),o.domElement.removeEventListener(\"pointercancel\",Ee),o.domElement.removeEventListener(\"wheel\",Le),o.domElement.removeEventListener(\"pointermove\",Re),o.domElement.removeEventListener(\"pointerup\",Ee),o.domElement.getRootNode().removeEventListener(\"keydown\",tt,{capture:!0}),o._domElementKeyEvents!==null\u0026\u0026(o._domElementKeyEvents.removeEventListener(\"keydown\",at),o._domElementKeyEvents=null)};const o=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let r=i.NONE;const s=1e-6,a=new dJt,A=new dJt;let c=1;const l=new jt,u=new ni,g=new ni,h=new ni,d=new ni,p=new ni,m=new ni,_=new ni,f=new ni,I=new ni,C=new jt,y=new ni;let x=!1;const E=[],B={};let S=!1;function Q(be){return be!==null?2*Math.PI/60*o.autoRotateSpeed*be:2*Math.PI/60/60*o.autoRotateSpeed}function w(be){const et=Math.abs(be*.01);return Math.pow(.95,o.zoomSpeed*et)}function M(be){A.theta-=be}function k(be){A.phi-=be}const R=(function(){const be=new jt;return function(It,Bt){be.setFromMatrixColumn(Bt,0),be.multiplyScalar(-It),l.add(be)}})(),F=(function(){const be=new jt;return function(It,Bt){o.screenSpacePanning===!0?be.setFromMatrixColumn(Bt,1):(be.setFromMatrixColumn(Bt,0),be.crossVectors(o.object.up,be)),be.multiplyScalar(It),l.add(be)}})(),O=(function(){const be=new jt;return function(It,Bt){const mt=o.domElement;if(o.object.isPerspectiveCamera){const st=o.object.position;be.copy(st).sub(o.target);let xt=be.length();xt*=Math.tan(o.object.fov/2*Math.PI/180),R(2*It*xt/mt.clientHeight,o.object.matrix),F(2*Bt*xt/mt.clientHeight,o.object.matrix)}else o.object.isOrthographicCamera?(R(It*(o.object.right-o.object.left)/o.object.zoom/mt.clientWidth,o.object.matrix),F(Bt*(o.object.top-o.object.bottom)/o.object.zoom/mt.clientHeight,o.object.matrix)):(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.\"),o.enablePan=!1)}})();function U(be){o.object.isPerspectiveCamera||o.object.isOrthographicCamera?c/=be:(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),o.enableZoom=!1)}function Y(be){o.object.isPerspectiveCamera||o.object.isOrthographicCamera?c*=be:(console.warn(\"WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.\"),o.enableZoom=!1)}function W(be,et){if(!o.zoomToCursor)return;x=!0;const It=o.domElement.getBoundingClientRect(),Bt=be-It.left,mt=et-It.top,st=It.width,xt=It.height;y.x=Bt/st*2-1,y.y=-(mt/xt)*2+1,C.set(y.x,y.y,1).unproject(o.object).sub(o.object.position).normalize()}function te(be){return Math.max(o.minDistance,Math.min(o.maxDistance,be))}function j(be){u.set(be.clientX,be.clientY)}function J(be){W(be.clientX,be.clientX),_.set(be.clientX,be.clientY)}function oe(be){d.set(be.clientX,be.clientY)}function ie(be){g.set(be.clientX,be.clientY),h.subVectors(g,u).multiplyScalar(o.rotateSpeed);const et=o.domElement;M(2*Math.PI*h.x/et.clientHeight),k(2*Math.PI*h.y/et.clientHeight),u.copy(g),o.update()}function ne(be){f.set(be.clientX,be.clientY),I.subVectors(f,_),I.y\u003e0?U(w(I.y)):I.y\u003c0\u0026\u0026Y(w(I.y)),_.copy(f),o.update()}function le(be){p.set(be.clientX,be.clientY),m.subVectors(p,d).multiplyScalar(o.panSpeed),O(m.x,m.y),d.copy(p),o.update()}function ge(be){W(be.clientX,be.clientY),be.deltaY\u003c0?Y(w(be.deltaY)):be.deltaY\u003e0\u0026\u0026U(w(be.deltaY)),o.update()}function _e(be){let et=!1;switch(be.code){case o.keys.UP:be.ctrlKey||be.metaKey||be.shiftKey?k(2*Math.PI*o.rotateSpeed/o.domElement.clientHeight):O(0,o.keyPanSpeed),et=!0;break;case o.keys.BOTTOM:be.ctrlKey||be.metaKey||be.shiftKey?k(-2*Math.PI*o.rotateSpeed/o.domElement.clientHeight):O(0,-o.keyPanSpeed),et=!0;break;case o.keys.LEFT:be.ctrlKey||be.metaKey||be.shiftKey?M(2*Math.PI*o.rotateSpeed/o.domElement.clientHeight):O(o.keyPanSpeed,0),et=!0;break;case o.keys.RIGHT:be.ctrlKey||be.metaKey||be.shiftKey?M(-2*Math.PI*o.rotateSpeed/o.domElement.clientHeight):O(-o.keyPanSpeed,0),et=!0;break}et\u0026\u0026(be.preventDefault(),o.update())}function ue(be){if(E.length===1)u.set(be.pageX,be.pageY);else{const et=Yt(be),It=.5*(be.pageX+et.x),Bt=.5*(be.pageY+et.y);u.set(It,Bt)}}function fe(be){if(E.length===1)d.set(be.pageX,be.pageY);else{const et=Yt(be),It=.5*(be.pageX+et.x),Bt=.5*(be.pageY+et.y);d.set(It,Bt)}}function pe(be){const et=Yt(be),It=be.pageX-et.x,Bt=be.pageY-et.y,mt=Math.sqrt(It*It+Bt*Bt);_.set(0,mt)}function ye(be){o.enableZoom\u0026\u0026pe(be),o.enablePan\u0026\u0026fe(be)}function Me(be){o.enableZoom\u0026\u0026pe(be),o.enableRotate\u0026\u0026ue(be)}function ve(be){if(E.length==1)g.set(be.pageX,be.pageY);else{const It=Yt(be),Bt=.5*(be.pageX+It.x),mt=.5*(be.pageY+It.y);g.set(Bt,mt)}h.subVectors(g,u).multiplyScalar(o.rotateSpeed);const et=o.domElement;M(2*Math.PI*h.x/et.clientHeight),k(2*Math.PI*h.y/et.clientHeight),u.copy(g)}function he(be){if(E.length===1)p.set(be.pageX,be.pageY);else{const et=Yt(be),It=.5*(be.pageX+et.x),Bt=.5*(be.pageY+et.y);p.set(It,Bt)}m.subVectors(p,d).multiplyScalar(o.panSpeed),O(m.x,m.y),d.copy(p)}function Qe(be){const et=Yt(be),It=be.pageX-et.x,Bt=be.pageY-et.y,mt=Math.sqrt(It*It+Bt*Bt);f.set(0,mt),I.set(0,Math.pow(f.y/_.y,o.zoomSpeed)),U(I.y),_.copy(f);const st=(be.pageX+et.x)*.5,xt=(be.pageY+et.y)*.5;W(st,xt)}function Pe(be){o.enableZoom\u0026\u0026Qe(be),o.enablePan\u0026\u0026he(be)}function we(be){o.enableZoom\u0026\u0026Qe(be),o.enableRotate\u0026\u0026ve(be)}function Te(be){o.enabled!==!1\u0026\u0026(E.length===0\u0026\u0026(o.domElement.setPointerCapture(be.pointerId),o.domElement.addEventListener(\"pointermove\",Re),o.domElement.addEventListener(\"pointerup\",Ee)),!kt(be)\u0026\u0026(Ct(be),be.pointerType===\"touch\"?nt(be):ke(be)))}function Re(be){o.enabled!==!1\u0026\u0026(be.pointerType===\"touch\"?gt(be):Ce(be))}function Ee(be){switch(Dt(be),E.length){case 0:o.domElement.releasePointerCapture(be.pointerId),o.domElement.removeEventListener(\"pointermove\",Re),o.domElement.removeEventListener(\"pointerup\",Ee),o.dispatchEvent(TJt),r=i.NONE;break;case 1:const et=E[0],It=B[et];nt({pointerId:et,pageX:It.x,pageY:It.y});break}}function ke(be){let et;switch(be.button){case 0:et=o.mouseButtons.LEFT;break;case 1:et=o.mouseButtons.MIDDLE;break;case 2:et=o.mouseButtons.RIGHT;break;default:et=-1}switch(et){case Vw.DOLLY:if(o.enableZoom===!1)return;J(be),r=i.DOLLY;break;case Vw.ROTATE:if(be.ctrlKey||be.metaKey||be.shiftKey){if(o.enablePan===!1)return;oe(be),r=i.PAN}else{if(o.enableRotate===!1)return;j(be),r=i.ROTATE}break;case Vw.PAN:if(be.ctrlKey||be.metaKey||be.shiftKey){if(o.enableRotate===!1)return;j(be),r=i.ROTATE}else{if(o.enablePan===!1)return;oe(be),r=i.PAN}break;default:r=i.NONE}r!==i.NONE\u0026\u0026o.dispatchEvent(bke)}function Ce(be){switch(r){case i.ROTATE:if(o.enableRotate===!1)return;ie(be);break;case i.DOLLY:if(o.enableZoom===!1)return;ne(be);break;case i.PAN:if(o.enablePan===!1)return;le(be);break}}function Le(be){o.enabled===!1||o.enableZoom===!1||r!==i.NONE||(be.preventDefault(),o.dispatchEvent(bke),ge(Ye(be)),o.dispatchEvent(TJt))}function Ye(be){const et=be.deltaMode,It={clientX:be.clientX,clientY:be.clientY,deltaY:be.deltaY};switch(et){case 1:It.deltaY*=16;break;case 2:It.deltaY*=100;break}return be.ctrlKey\u0026\u0026!S\u0026\u0026(It.deltaY*=10),It}function tt(be){be.key===\"Control\"\u0026\u0026(S=!0,o.domElement.getRootNode().addEventListener(\"keyup\",At,{passive:!0,capture:!0}))}function At(be){be.key===\"Control\"\u0026\u0026(S=!1,o.domElement.getRootNode().removeEventListener(\"keyup\",At,{passive:!0,capture:!0}))}function at(be){o.enabled===!1||o.enablePan===!1||_e(be)}function nt(be){switch(it(be),E.length){case 1:switch(o.touches.ONE){case SG.ROTATE:if(o.enableRotate===!1)return;ue(be),r=i.TOUCH_ROTATE;break;case SG.PAN:if(o.enablePan===!1)return;fe(be),r=i.TOUCH_PAN;break;default:r=i.NONE}break;case 2:switch(o.touches.TWO){case SG.DOLLY_PAN:if(o.enableZoom===!1\u0026\u0026o.enablePan===!1)return;ye(be),r=i.TOUCH_DOLLY_PAN;break;case SG.DOLLY_ROTATE:if(o.enableZoom===!1\u0026\u0026o.enableRotate===!1)return;Me(be),r=i.TOUCH_DOLLY_ROTATE;break;default:r=i.NONE}break;default:r=i.NONE}r!==i.NONE\u0026\u0026o.dispatchEvent(bke)}function gt(be){switch(it(be),r){case i.TOUCH_ROTATE:if(o.enableRotate===!1)return;ve(be),o.update();break;case i.TOUCH_PAN:if(o.enablePan===!1)return;he(be),o.update();break;case i.TOUCH_DOLLY_PAN:if(o.enableZoom===!1\u0026\u0026o.enablePan===!1)return;Pe(be),o.update();break;case i.TOUCH_DOLLY_ROTATE:if(o.enableZoom===!1\u0026\u0026o.enableRotate===!1)return;we(be),o.update();break;default:r=i.NONE}}function bt(be){o.enabled!==!1\u0026\u0026be.preventDefault()}function Ct(be){E.push(be.pointerId)}function Dt(be){delete B[be.pointerId];for(let et=0;et\u003cE.length;et++)if(E[et]==be.pointerId){E.splice(et,1);return}}function kt(be){for(let et=0;et\u003cE.length;et++)if(E[et]==be.pointerId)return!0;return!1}function it(be){let et=B[be.pointerId];et===void 0\u0026\u0026(et=new ni,B[be.pointerId]=et),et.set(be.pageX,be.pageY)}function Yt(be){const et=be.pointerId===E[0]?E[1]:E[0];return B[et]}o.domElement.addEventListener(\"contextmenu\",bt),o.domElement.addEventListener(\"pointerdown\",Te),o.domElement.addEventListener(\"pointercancel\",Ee),o.domElement.addEventListener(\"wheel\",Le,{passive:!1}),o.domElement.getRootNode().addEventListener(\"keydown\",tt,{passive:!0,capture:!0}),this.update()}};var FJt={env:{}};function woi(){var t=Object.create(null);function e(i,r){var s=i.id,a=i.name,A=i.dependencies;A===void 0\u0026\u0026(A=[]);var c=i.init;c===void 0\u0026\u0026(c=function(){});var l=i.getTransferables;if(l===void 0\u0026\u0026(l=null),!t[s])try{A=A.map(function(g){return g\u0026\u0026g.isWorkerModule\u0026\u0026(e(g,function(h){if(h instanceof Error)throw h}),g=t[g.id].value),g}),c=o(\"\u003c\"+a+\"\u003e.init\",c),l\u0026\u0026(l=o(\"\u003c\"+a+\"\u003e.getTransferables\",l));var u=null;typeof c==\"function\"?u=c.apply(void 0,A):console.error(\"worker module init function failed to rehydrate\"),t[s]={id:s,value:u,getTransferables:l},r(u)}catch(g){g\u0026\u0026g.noLog||console.error(g),r(g)}}function n(i,r){var s,a=i.id,A=i.args;(!t[a]||typeof t[a].value!=\"function\")\u0026\u0026r(new Error(\"Worker module \"+a+\": not found or its 'init' did not return a function\"));try{var c=(s=t[a]).value.apply(s,A);c\u0026\u0026typeof c.then==\"function\"?c.then(l,function(u){return r(u instanceof Error?u:new Error(\"\"+u))}):l(c)}catch(u){r(u)}function l(u){try{var g=t[a].getTransferables\u0026\u0026t[a].getTransferables(u);(!g||!Array.isArray(g)||!g.length)\u0026\u0026(g=void 0),r(u,g)}catch(h){console.error(h),r(h)}}}function o(i,r){var s=void 0;self.troikaDefine=function(A){return s=A};var a=URL.createObjectURL(new Blob([\"/** \"+i.replace(/\\*/g,\"\")+` **/\n\ntroikaDefine(\n`+r+`\n)`],{type:\"application/javascript\"}));try{importScripts(a)}catch(A){console.error(A)}return URL.revokeObjectURL(a),delete self.troikaDefine,s}self.addEventListener(\"message\",function(i){var r=i.data,s=r.messageId,a=r.action,A=r.data;try{a===\"registerModule\"\u0026\u0026e(A,function(c){c instanceof Error?postMessage({messageId:s,success:!1,error:c.message}):postMessage({messageId:s,success:!0,result:{isCallable:typeof c==\"function\"}})}),a===\"callModule\"\u0026\u0026n(A,function(c,l){c instanceof Error?postMessage({messageId:s,success:!1,error:c.message}):postMessage({messageId:s,success:!0,result:c},l||void 0)})}catch(c){postMessage({messageId:s,success:!1,error:c.stack})}})}function Poi(t){var e=function(){for(var n=[],o=arguments.length;o--;)n[o]=arguments[o];return e._getInitResult().then(function(i){if(typeof i==\"function\")return i.apply(void 0,n);throw new Error(\"Worker module function was called but `init` did not return a callable function\")})};return e._getInitResult=function(){var n=t.dependencies,o=t.init;n=Array.isArray(n)?n.map(function(r){return r\u0026\u0026(r=r.onMainThread||r,r._getInitResult\u0026\u0026(r=r._getInitResult())),r}):[];var i=Promise.all(n).then(function(r){return o.apply(null,r)});return e._getInitResult=function(){return i},i},e}var LJt=function(){var t=!1;if(typeof window\u003c\"u\"\u0026\u0026typeof window.document\u003c\"u\")try{var e=new Worker(URL.createObjectURL(new Blob([\"\"],{type:\"application/javascript\"})));e.terminate(),t=!0}catch(n){typeof FJt\u003c\"u\"\u0026\u0026FJt.env.NODE_ENV===\"test\"||console.log(\"Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: [\"+n.message+\"]\")}return LJt=function(){return t},t},Moi=0,Doi=0,Ske=!1,sX=Object.create(null),aX=Object.create(null),Qke=Object.create(null);function yY(t){if((!t||typeof t.init!=\"function\")\u0026\u0026!Ske)throw new Error(\"requires `options.init` function\");var e=t.dependencies,n=t.init,o=t.getTransferables,i=t.workerId,r=Poi(t);i==null\u0026\u0026(i=\"#default\");var s=\"workerModule\"+ ++Moi,a=t.name||s,A=null;e=e\u0026\u0026e.map(function(l){return typeof l==\"function\"\u0026\u0026!l.workerModuleData\u0026\u0026(Ske=!0,l=yY({workerId:i,name:\"\u003c\"+a+\"\u003e function dependency: \"+l.name,init:`function(){return (\n`+_he(l)+`\n)}`}),Ske=!1),l\u0026\u0026l.workerModuleData\u0026\u0026(l=l.workerModuleData),l});function c(){for(var l=[],u=arguments.length;u--;)l[u]=arguments[u];if(!LJt())return r.apply(void 0,l);if(!A){A=HJt(i,\"registerModule\",c.workerModuleData);var g=function(){A=null,aX[i].delete(g)};(aX[i]||(aX[i]=new Set)).add(g)}return A.then(function(h){var d=h.isCallable;if(d)return HJt(i,\"callModule\",{id:s,args:l});throw new Error(\"Worker module function was called but `init` did not return a callable function\")})}return c.workerModuleData={isWorkerModule:!0,id:s,name:a,dependencies:e,init:_he(n),getTransferables:o\u0026\u0026_he(o)},c.onMainThread=r,c}function Noi(t){aX[t]\u0026\u0026aX[t].forEach(function(e){e()}),sX[t]\u0026\u0026(sX[t].terminate(),delete sX[t])}function _he(t){var e=t.toString();return!/^function/.test(e)\u0026\u0026/^\\w+\\s*\\(/.test(e)\u0026\u0026(e=\"function \"+e),e}function Roi(t){var e=sX[t];if(!e){var n=_he(woi);e=sX[t]=new Worker(URL.createObjectURL(new Blob([\"/** Worker Module Bootstrap: \"+t.replace(/\\*/g,\"\")+` **/\n\n;(`+n+\")()\"],{type:\"application/javascript\"}))),e.onmessage=function(o){var i=o.data,r=i.messageId,s=Qke[r];if(!s)throw new Error(\"WorkerModule response with empty or unknown messageId\");delete Qke[r],s(i)}}return e}function HJt(t,e,n){return new Promise(function(o,i){var r=++Doi;Qke[r]=function(s){s.success?o(s.result):i(new Error(\"Error in worker \"+e+\" call: \"+s.error))},Roi(t).postMessage({messageId:r,action:e,data:n})})}function OJt(){var t=(function(e){function n(W,te,j,J,oe,ie,ne,le){var ge=1-ne;le.x=ge*ge*W+2*ge*ne*j+ne*ne*oe,le.y=ge*ge*te+2*ge*ne*J+ne*ne*ie}function o(W,te,j,J,oe,ie,ne,le,ge,_e){var ue=1-ge;_e.x=ue*ue*ue*W+3*ue*ue*ge*j+3*ue*ge*ge*oe+ge*ge*ge*ne,_e.y=ue*ue*ue*te+3*ue*ue*ge*J+3*ue*ge*ge*ie+ge*ge*ge*le}function i(W,te){for(var j=/([MLQCZ])([^MLQCZ]*)/g,J,oe,ie,ne,le;J=j.exec(W);){var ge=J[2].replace(/^\\s*|\\s*$/g,\"\").split(/[,\\s]+/).map(function(_e){return parseFloat(_e)});switch(J[1]){case\"M\":ne=oe=ge[0],le=ie=ge[1];break;case\"L\":(ge[0]!==ne||ge[1]!==le)\u0026\u0026te(\"L\",ne,le,ne=ge[0],le=ge[1]);break;case\"Q\":{te(\"Q\",ne,le,ne=ge[2],le=ge[3],ge[0],ge[1]);break}case\"C\":{te(\"C\",ne,le,ne=ge[4],le=ge[5],ge[0],ge[1],ge[2],ge[3]);break}case\"Z\":(ne!==oe||le!==ie)\u0026\u0026te(\"L\",ne,le,oe,ie);break}}}function r(W,te,j){j===void 0\u0026\u0026(j=16);var J={x:0,y:0};i(W,function(oe,ie,ne,le,ge,_e,ue,fe,pe){switch(oe){case\"L\":te(ie,ne,le,ge);break;case\"Q\":{for(var ye=ie,Me=ne,ve=1;ve\u003cj;ve++)n(ie,ne,_e,ue,le,ge,ve/(j-1),J),te(ye,Me,J.x,J.y),ye=J.x,Me=J.y;break}case\"C\":{for(var he=ie,Qe=ne,Pe=1;Pe\u003cj;Pe++)o(ie,ne,_e,ue,fe,pe,le,ge,Pe/(j-1),J),te(he,Qe,J.x,J.y),he=J.x,Qe=J.y;break}}})}var s=\"precision highp float;attribute vec2 aUV;varying vec2 vUV;void main(){vUV=aUV;gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}\",a=\"precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){gl_FragColor=texture2D(tex,vUV);}\",A=new WeakMap,c={premultipliedAlpha:!1,preserveDrawingBuffer:!0,antialias:!1,depth:!1};function l(W,te){var j=W.getContext?W.getContext(\"webgl\",c):W,J=A.get(j);if(!J){let ue=function(he){var Qe=ie[he];if(!Qe\u0026\u0026(Qe=ie[he]=j.getExtension(he),!Qe))throw new Error(he+\" not supported\");return Qe},fe=function(he,Qe){var Pe=j.createShader(Qe);return j.shaderSource(Pe,he),j.compileShader(Pe),Pe},pe=function(he,Qe,Pe,we){if(!ne[he]){var Te={},Re={},Ee=j.createProgram();j.attachShader(Ee,fe(Qe,j.VERTEX_SHADER)),j.attachShader(Ee,fe(Pe,j.FRAGMENT_SHADER)),j.linkProgram(Ee),ne[he]={program:Ee,transaction:function(Ce){j.useProgram(Ee),Ce({setUniform:function(Ye,tt){for(var At=[],at=arguments.length-2;at-- \u003e0;)At[at]=arguments[at+2];var nt=Re[tt]||(Re[tt]=j.getUniformLocation(Ee,tt));j[\"uniform\"+Ye].apply(j,[nt].concat(At))},setAttribute:function(Ye,tt,At,at,nt){var gt=Te[Ye];gt||(gt=Te[Ye]={buf:j.createBuffer(),loc:j.getAttribLocation(Ee,Ye),data:null}),j.bindBuffer(j.ARRAY_BUFFER,gt.buf),j.vertexAttribPointer(gt.loc,tt,j.FLOAT,!1,0,0),j.enableVertexAttribArray(gt.loc),oe?j.vertexAttribDivisor(gt.loc,at):ue(\"ANGLE_instanced_arrays\").vertexAttribDivisorANGLE(gt.loc,at),nt!==gt.data\u0026\u0026(j.bufferData(j.ARRAY_BUFFER,nt,At),gt.data=nt)}})}}}ne[he].transaction(we)},ye=function(he,Qe){ge++;try{j.activeTexture(j.TEXTURE0+ge);var Pe=le[he];Pe||(Pe=le[he]=j.createTexture(),j.bindTexture(j.TEXTURE_2D,Pe),j.texParameteri(j.TEXTURE_2D,j.TEXTURE_MIN_FILTER,j.NEAREST),j.texParameteri(j.TEXTURE_2D,j.TEXTURE_MAG_FILTER,j.NEAREST)),j.bindTexture(j.TEXTURE_2D,Pe),Qe(Pe,ge)}finally{ge--}},Me=function(he,Qe,Pe){var we=j.createFramebuffer();_e.push(we),j.bindFramebuffer(j.FRAMEBUFFER,we),j.activeTexture(j.TEXTURE0+Qe),j.bindTexture(j.TEXTURE_2D,he),j.framebufferTexture2D(j.FRAMEBUFFER,j.COLOR_ATTACHMENT0,j.TEXTURE_2D,he,0);try{Pe(we)}finally{j.deleteFramebuffer(we),j.bindFramebuffer(j.FRAMEBUFFER,_e[--_e.length-1]||null)}},ve=function(){ie={},ne={},le={},ge=-1,_e.length=0};var oe=typeof WebGL2RenderingContext\u003c\"u\"\u0026\u0026j instanceof WebGL2RenderingContext,ie={},ne={},le={},ge=-1,_e=[];j.canvas.addEventListener(\"webglcontextlost\",function(he){ve(),he.preventDefault()},!1),A.set(j,J={gl:j,isWebGL2:oe,getExtension:ue,withProgram:pe,withTexture:ye,withTextureFramebuffer:Me,handleContextLoss:ve})}te(J)}function u(W,te,j,J,oe,ie,ne,le){ne===void 0\u0026\u0026(ne=15),le===void 0\u0026\u0026(le=null),l(W,function(ge){var _e=ge.gl,ue=ge.withProgram,fe=ge.withTexture;fe(\"copy\",function(pe,ye){_e.texImage2D(_e.TEXTURE_2D,0,_e.RGBA,oe,ie,0,_e.RGBA,_e.UNSIGNED_BYTE,te),ue(\"copy\",s,a,function(Me){var ve=Me.setUniform,he=Me.setAttribute;he(\"aUV\",2,_e.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),ve(\"1i\",\"image\",ye),_e.bindFramebuffer(_e.FRAMEBUFFER,le||null),_e.disable(_e.BLEND),_e.colorMask(ne\u00268,ne\u00264,ne\u00262,ne\u00261),_e.viewport(j,J,oe,ie),_e.scissor(j,J,oe,ie),_e.drawArrays(_e.TRIANGLES,0,3)})})})}function g(W,te,j){var J=W.width,oe=W.height;l(W,function(ie){var ne=ie.gl,le=new Uint8Array(J*oe*4);ne.readPixels(0,0,J,oe,ne.RGBA,ne.UNSIGNED_BYTE,le),W.width=te,W.height=j,u(ne,le,0,0,J,oe)})}var h=Object.freeze({__proto__:null,withWebGLContext:l,renderImageData:u,resizeWebGLCanvasWithoutClearing:g});function d(W,te,j,J,oe,ie){ie===void 0\u0026\u0026(ie=1);var ne=new Uint8Array(W*te),le=J[2]-J[0],ge=J[3]-J[1],_e=[];r(j,function(he,Qe,Pe,we){_e.push({x1:he,y1:Qe,x2:Pe,y2:we,minX:Math.min(he,Pe),minY:Math.min(Qe,we),maxX:Math.max(he,Pe),maxY:Math.max(Qe,we)})}),_e.sort(function(he,Qe){return he.maxX-Qe.maxX});for(var ue=0;ue\u003cW;ue++)for(var fe=0;fe\u003cte;fe++){var pe=Me(J[0]+le*(ue+.5)/W,J[1]+ge*(fe+.5)/te),ye=Math.pow(1-Math.abs(pe)/oe,ie)/2;pe\u003c0\u0026\u0026(ye=1-ye),ye=Math.max(0,Math.min(255,Math.round(ye*255))),ne[fe*W+ue]=ye}return ne;function Me(he,Qe){for(var Pe=1/0,we=1/0,Te=_e.length;Te--;){var Re=_e[Te];if(Re.maxX+we\u003c=he)break;if(he+we\u003eRe.minX\u0026\u0026Qe-we\u003cRe.maxY\u0026\u0026Qe+we\u003eRe.minY){var Ee=_(he,Qe,Re.x1,Re.y1,Re.x2,Re.y2);Ee\u003cPe\u0026\u0026(Pe=Ee,we=Math.sqrt(Pe))}}return ve(he,Qe)\u0026\u0026(we=-we),we}function ve(he,Qe){for(var Pe=0,we=_e.length;we--;){var Te=_e[we];if(Te.maxX\u003c=he)break;var Re=Te.y1\u003eQe!=Te.y2\u003eQe\u0026\u0026he\u003c(Te.x2-Te.x1)*(Qe-Te.y1)/(Te.y2-Te.y1)+Te.x1;Re\u0026\u0026(Pe+=Te.y1\u003cTe.y2?1:-1)}return Pe!==0}}function p(W,te,j,J,oe,ie,ne,le,ge,_e){ie===void 0\u0026\u0026(ie=1),le===void 0\u0026\u0026(le=0),ge===void 0\u0026\u0026(ge=0),_e===void 0\u0026\u0026(_e=0),m(W,te,j,J,oe,ie,ne,null,le,ge,_e)}function m(W,te,j,J,oe,ie,ne,le,ge,_e,ue){ie===void 0\u0026\u0026(ie=1),ge===void 0\u0026\u0026(ge=0),_e===void 0\u0026\u0026(_e=0),ue===void 0\u0026\u0026(ue=0);for(var fe=d(W,te,j,J,oe,ie),pe=new Uint8Array(fe.length*4),ye=0;ye\u003cfe.length;ye++)pe[ye*4+ue]=fe[ye];u(ne,pe,ge,_e,W,te,1\u003c\u003c3-ue,le)}function _(W,te,j,J,oe,ie){var ne=oe-j,le=ie-J,ge=ne*ne+le*le,_e=ge?Math.max(0,Math.min(1,((W-j)*ne+(te-J)*le)/ge)):0,ue=W-(j+_e*ne),fe=te-(J+_e*le);return ue*ue+fe*fe}var f=Object.freeze({__proto__:null,generate:d,generateIntoCanvas:p,generateIntoFramebuffer:m}),I=\"precision highp float;uniform vec4 uGlyphBounds;attribute vec2 aUV;attribute vec4 aLineSegment;varying vec4 vLineSegment;varying vec2 vGlyphXY;void main(){vLineSegment=aLineSegment;vGlyphXY=mix(uGlyphBounds.xy,uGlyphBounds.zw,aUV);gl_Position=vec4(mix(vec2(-1.0),vec2(1.0),aUV),0.0,1.0);}\",C=\"precision highp float;uniform vec4 uGlyphBounds;uniform float uMaxDistance;uniform float uExponent;varying vec4 vLineSegment;varying vec2 vGlyphXY;float absDistToSegment(vec2 point,vec2 lineA,vec2 lineB){vec2 lineDir=lineB-lineA;float lenSq=dot(lineDir,lineDir);float t=lenSq==0.0 ? 0.0 : clamp(dot(point-lineA,lineDir)/lenSq,0.0,1.0);vec2 linePt=lineA+t*lineDir;return distance(point,linePt);}void main(){vec4 seg=vLineSegment;vec2 p=vGlyphXY;float dist=absDistToSegment(p,seg.xy,seg.zw);float val=pow(1.0-clamp(dist/uMaxDistance,0.0,1.0),uExponent)*0.5;bool crossing=(seg.y\u003ep.y!=seg.w\u003ep.y)\u0026\u0026(p.x\u003c(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing\u0026\u0026vLineSegment.y\u003cvLineSegment.w;gl_FragColor=vec4(crossingUp ? 1.0/255.0 : 0.0,crossing\u0026\u0026!crossingUp ? 1.0/255.0 : 0.0,0.0,val);}\",y=\"precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){vec4 color=texture2D(tex,vUV);bool inside=color.r!=color.g;float val=inside ? 1.0-color.a : color.a;gl_FragColor=vec4(val);}\",x=new Float32Array([0,0,2,0,0,2]),E=null,B=!1,S={},Q=new WeakMap;function w(W){if(!B\u0026\u0026!F(W))throw new Error(\"WebGL generation not supported\")}function M(W,te,j,J,oe,ie,ne){if(ie===void 0\u0026\u0026(ie=1),ne===void 0\u0026\u0026(ne=null),!ne\u0026\u0026(ne=E,!ne)){var le=typeof OffscreenCanvas==\"function\"?new OffscreenCanvas(1,1):typeof document\u003c\"u\"?document.createElement(\"canvas\"):null;if(!le)throw new Error(\"OffscreenCanvas or DOM canvas not supported\");ne=E=le.getContext(\"webgl\",{depth:!1})}w(ne);var ge=new Uint8Array(W*te*4);l(ne,function(pe){var ye=pe.gl,Me=pe.withTexture,ve=pe.withTextureFramebuffer;Me(\"readable\",function(he,Qe){ye.texImage2D(ye.TEXTURE_2D,0,ye.RGBA,W,te,0,ye.RGBA,ye.UNSIGNED_BYTE,null),ve(he,Qe,function(Pe){R(W,te,j,J,oe,ie,ye,Pe,0,0,0),ye.readPixels(0,0,W,te,ye.RGBA,ye.UNSIGNED_BYTE,ge)})})});for(var _e=new Uint8Array(W*te),ue=0,fe=0;ue\u003cge.length;ue+=4)_e[fe++]=ge[ue];return _e}function k(W,te,j,J,oe,ie,ne,le,ge,_e){ie===void 0\u0026\u0026(ie=1),le===void 0\u0026\u0026(le=0),ge===void 0\u0026\u0026(ge=0),_e===void 0\u0026\u0026(_e=0),R(W,te,j,J,oe,ie,ne,null,le,ge,_e)}function R(W,te,j,J,oe,ie,ne,le,ge,_e,ue){ie===void 0\u0026\u0026(ie=1),ge===void 0\u0026\u0026(ge=0),_e===void 0\u0026\u0026(_e=0),ue===void 0\u0026\u0026(ue=0),w(ne);var fe=[];r(j,function(pe,ye,Me,ve){fe.push(pe,ye,Me,ve)}),fe=new Float32Array(fe),l(ne,function(pe){var ye=pe.gl,Me=pe.isWebGL2,ve=pe.getExtension,he=pe.withProgram,Qe=pe.withTexture,Pe=pe.withTextureFramebuffer,we=pe.handleContextLoss;if(Qe(\"rawDistances\",function(Te,Re){(W!==Te._lastWidth||te!==Te._lastHeight)\u0026\u0026ye.texImage2D(ye.TEXTURE_2D,0,ye.RGBA,Te._lastWidth=W,Te._lastHeight=te,0,ye.RGBA,ye.UNSIGNED_BYTE,null),he(\"main\",I,C,function(Ee){var ke=Ee.setAttribute,Ce=Ee.setUniform,Le=!Me\u0026\u0026ve(\"ANGLE_instanced_arrays\"),Ye=!Me\u0026\u0026ve(\"EXT_blend_minmax\");ke(\"aUV\",2,ye.STATIC_DRAW,0,x),ke(\"aLineSegment\",4,ye.DYNAMIC_DRAW,1,fe),Ce.apply(void 0,[\"4f\",\"uGlyphBounds\"].concat(J)),Ce(\"1f\",\"uMaxDistance\",oe),Ce(\"1f\",\"uExponent\",ie),Pe(Te,Re,function(tt){ye.enable(ye.BLEND),ye.colorMask(!0,!0,!0,!0),ye.viewport(0,0,W,te),ye.scissor(0,0,W,te),ye.blendFunc(ye.ONE,ye.ONE),ye.blendEquationSeparate(ye.FUNC_ADD,Me?ye.MAX:Ye.MAX_EXT),ye.clear(ye.COLOR_BUFFER_BIT),Me?ye.drawArraysInstanced(ye.TRIANGLES,0,3,fe.length/4):Le.drawArraysInstancedANGLE(ye.TRIANGLES,0,3,fe.length/4)})}),he(\"post\",s,y,function(Ee){Ee.setAttribute(\"aUV\",2,ye.STATIC_DRAW,0,x),Ee.setUniform(\"1i\",\"tex\",Re),ye.bindFramebuffer(ye.FRAMEBUFFER,le),ye.disable(ye.BLEND),ye.colorMask(ue===0,ue===1,ue===2,ue===3),ye.viewport(ge,_e,W,te),ye.scissor(ge,_e,W,te),ye.drawArrays(ye.TRIANGLES,0,3)})}),ye.isContextLost())throw we(),new Error(\"webgl context lost\")})}function F(W){var te=!W||W===E?S:W.canvas||W,j=Q.get(te);if(j===void 0){B=!0;var J=null;try{var oe=[97,106,97,61,99,137,118,80,80,118,137,99,61,97,106,97],ie=M(4,4,\"M8,8L16,8L24,24L16,24Z\",[0,0,32,32],24,1,W);j=ie\u0026\u0026oe.length===ie.length\u0026\u0026ie.every(function(ne,le){return ne===oe[le]}),j||(J=\"bad trial run results\",console.info(oe,ie))}catch(ne){j=!1,J=ne.message}J\u0026\u0026console.warn(\"WebGL SDF generation not supported:\",J),B=!1,Q.set(te,j)}return j}var O=Object.freeze({__proto__:null,generate:M,generateIntoCanvas:k,generateIntoFramebuffer:R,isSupported:F});function U(W,te,j,J,oe,ie){oe===void 0\u0026\u0026(oe=Math.max(J[2]-J[0],J[3]-J[1])/2),ie===void 0\u0026\u0026(ie=1);try{return M.apply(O,arguments)}catch(ne){return console.info(\"WebGL SDF generation failed, falling back to JS\",ne),d.apply(f,arguments)}}function Y(W,te,j,J,oe,ie,ne,le,ge,_e){oe===void 0\u0026\u0026(oe=Math.max(J[2]-J[0],J[3]-J[1])/2),ie===void 0\u0026\u0026(ie=1),le===void 0\u0026\u0026(le=0),ge===void 0\u0026\u0026(ge=0),_e===void 0\u0026\u0026(_e=0);try{return k.apply(O,arguments)}catch(ue){return console.info(\"WebGL SDF generation failed, falling back to JS\",ue),p.apply(f,arguments)}}return e.forEachPathCommand=i,e.generate=U,e.generateIntoCanvas=Y,e.javascript=f,e.pathToLineSegments=r,e.webgl=O,e.webglUtils=h,Object.defineProperty(e,\"__esModule\",{value:!0}),e})({});return t}function Toi(){var t=(function(e){var n={R:\"13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73\",EN:\"1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9\",ES:\"17,2,6dp+1,f+1,av,16vr,mx+1,4o,2\",ET:\"z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj\",AN:\"16o+5,2j+9,2+1,35,ed,1ff2+9,87+u\",CS:\"18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b\",B:\"a,3,f+2,2v,690\",S:\"9,2,k\",WS:\"c,k,4f4,1vk+a,u,1j,335\",ON:\"x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i\",BN:\"0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1\",NSM:\"lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n\",AL:\"16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d\",LRO:\"6ct\",RLO:\"6cu\",LRE:\"6cq\",RLE:\"6cr\",PDF:\"6cs\",LRI:\"6ee\",RLI:\"6ef\",FSI:\"6eg\",PDI:\"6eh\"},o={},i={};o.L=1,i[1]=\"L\",Object.keys(n).forEach(function(we,Te){o[we]=1\u003c\u003cTe+1,i[o[we]]=we}),Object.freeze(o);var r=o.LRI|o.RLI|o.FSI,s=o.L|o.R|o.AL,a=o.B|o.S|o.WS|o.ON|o.FSI|o.LRI|o.RLI|o.PDI,A=o.BN|o.RLE|o.LRE|o.RLO|o.LRO|o.PDF,c=o.S|o.WS|o.B|r|o.PDI|A,l=null;function u(){if(!l){l=new Map;var we=0;for(var Te in n)if(n.hasOwnProperty(Te))for(var Re=n[Te],Ee=\"\",ke=void 0,Ce=!1,Le=0,Ye=0;Ye\u003c=Re.length+1;Ye+=1){var tt=Re[Ye];if(tt!==\",\"\u0026\u0026Ye!==Re.length)tt===\"+\"?(Ce=!0,Le=we=Le+parseInt(Ee,36),Ee=\"\"):Ee+=tt;else{Ce?ke=we+parseInt(Ee,36):(Le=we=Le+parseInt(Ee,36),ke=we),Ce=!1,Ee=\"\",Le=ke;for(var At=we;At\u003cke+1;At+=1)l.set(At,o[Te])}}}}function g(we){return u(),l.get(we.codePointAt(0))||o.L}function h(we){return i[g(we)]}var d={pairs:\"14\u003e1,1e\u003e2,u\u003e2,2wt\u003e1,1\u003e1,1ge\u003e1,1wp\u003e1,1j\u003e1,f\u003e1,hm\u003e1,1\u003e1,u\u003e1,u6\u003e1,1\u003e1,+5,28\u003e1,w\u003e1,1\u003e1,+3,b8\u003e1,1\u003e1,+3,1\u003e3,-1\u003e-1,3\u003e1,1\u003e1,+2,1s\u003e1,1\u003e1,x\u003e1,th\u003e1,1\u003e1,+2,db\u003e1,1\u003e1,+3,3\u003e1,1\u003e1,+2,14qm\u003e1,1\u003e1,+1,4q\u003e1,1e\u003e2,u\u003e2,2\u003e1,+1\",canonical:\"6f1\u003e-6dx,6dy\u003e-6dx,6ec\u003e-6ed,6ee\u003e-6ed,6ww\u003e2jj,-2ji\u003e2jj,14r4\u003e-1e7l,1e7m\u003e-1e7l,1e7m\u003e-1e5c,1e5d\u003e-1e5b,1e5c\u003e-14qx,14qy\u003e-14qx,14vn\u003e-1ecg,1ech\u003e-1ecg,1edu\u003e-1ecg,1eci\u003e-1ecg,1eda\u003e-1ecg,1eci\u003e-1ecg,1eci\u003e-168q,168r\u003e-168q,168s\u003e-14ye,14yf\u003e-14ye\"};function p(we,Te){var Re=36,Ee=0,ke=new Map,Ce=Te\u0026\u0026new Map,Le;return we.split(\",\").forEach(function Ye(tt){if(tt.indexOf(\"+\")!==-1)for(var At=+tt;At--;)Ye(Le);else{Le=tt;var at=tt.split(\"\u003e\"),nt=at[0],gt=at[1];nt=String.fromCodePoint(Ee+=parseInt(nt,Re)),gt=String.fromCodePoint(Ee+=parseInt(gt,Re)),ke.set(nt,gt),Te\u0026\u0026Ce.set(gt,nt)}}),{map:ke,reverseMap:Ce}}var m,_,f;function I(){if(!m){var we=p(d.pairs,!0),Te=we.map,Re=we.reverseMap;m=Te,_=Re,f=p(d.canonical,!1).map}}function C(we){return I(),m.get(we)||null}function y(we){return I(),_.get(we)||null}function x(we){return I(),f.get(we)||null}var E=o.L,B=o.R,S=o.EN,Q=o.ES,w=o.ET,M=o.AN,k=o.CS,R=o.B,F=o.S,O=o.ON,U=o.BN,Y=o.NSM,W=o.AL,te=o.LRO,j=o.RLO,J=o.LRE,oe=o.RLE,ie=o.PDF,ne=o.LRI,le=o.RLI,ge=o.FSI,_e=o.PDI;function ue(we,Te){for(var Re=125,Ee=new Uint32Array(we.length),ke=0;ke\u003cwe.length;ke++)Ee[ke]=g(we[ke]);var Ce=new Map;function Le(tr,Vo){var wA=Ee[tr];Ee[tr]=Vo,Ce.set(wA,Ce.get(wA)-1),wA\u0026a\u0026\u0026Ce.set(a,Ce.get(a)-1),Ce.set(Vo,(Ce.get(Vo)||0)+1),Vo\u0026a\u0026\u0026Ce.set(a,(Ce.get(a)||0)+1)}for(var Ye=new Uint8Array(we.length),tt=new Map,At=[],at=null,nt=0;nt\u003cwe.length;nt++)at||At.push(at={start:nt,end:we.length-1,level:Te===\"rtl\"?1:Te===\"ltr\"?0:Qp(nt,!1)}),Ee[nt]\u0026R\u0026\u0026(at.end=nt,at=null);for(var gt=oe|J|j|te|r|_e|ie|R,bt=function(tr){return tr+(tr\u00261?1:2)},Ct=function(tr){return tr+(tr\u00261?2:1)},Dt=0;Dt\u003cAt.length;Dt++){at=At[Dt];var kt=[{_level:at.level,_override:0,_isolate:0}],it=void 0,Yt=0,pn=0,be=0;Ce.clear();for(var et=at.start;et\u003c=at.end;et++){var It=Ee[et];if(it=kt[kt.length-1],Ce.set(It,(Ce.get(It)||0)+1),It\u0026a\u0026\u0026Ce.set(a,(Ce.get(a)||0)+1),It\u0026gt)if(It\u0026(oe|J)){Ye[et]=it._level;var Bt=(It===oe?Ct:bt)(it._level);Bt\u003c=Re\u0026\u0026!Yt\u0026\u0026!pn?kt.push({_level:Bt,_override:0,_isolate:0}):Yt||pn++}else if(It\u0026(j|te)){Ye[et]=it._level;var mt=(It===j?Ct:bt)(it._level);mt\u003c=Re\u0026\u0026!Yt\u0026\u0026!pn?kt.push({_level:mt,_override:It\u0026j?B:E,_isolate:0}):Yt||pn++}else if(It\u0026r){It\u0026ge\u0026\u0026(It=Qp(et+1,!0)===1?le:ne),Ye[et]=it._level,it._override\u0026\u0026Le(et,it._override);var st=(It===le?Ct:bt)(it._level);st\u003c=Re\u0026\u0026Yt===0\u0026\u0026pn===0?(be++,kt.push({_level:st,_override:0,_isolate:1,_isolInitIndex:et})):Yt++}else if(It\u0026_e){if(Yt\u003e0)Yt--;else if(be\u003e0){for(pn=0;!kt[kt.length-1]._isolate;)kt.pop();var xt=kt[kt.length-1]._isolInitIndex;xt!=null\u0026\u0026(tt.set(xt,et),tt.set(et,xt)),kt.pop(),be--}it=kt[kt.length-1],Ye[et]=it._level,it._override\u0026\u0026Le(et,it._override)}else It\u0026ie?(Yt===0\u0026\u0026(pn\u003e0?pn--:!it._isolate\u0026\u0026kt.length\u003e1\u0026\u0026(kt.pop(),it=kt[kt.length-1])),Ye[et]=it._level):It\u0026R\u0026\u0026(Ye[et]=at.level);else Ye[et]=it._level,it._override\u0026\u0026It!==U\u0026\u0026Le(et,it._override)}for(var Xe=[],Ze=null,dt=at.start;dt\u003c=at.end;dt++){var Ut=Ee[dt];if(!(Ut\u0026A)){var Wt=Ye[dt],Xt=Ut\u0026r,Jt=Ut===_e;Ze\u0026\u0026Wt===Ze._level?(Ze._end=dt,Ze._endsWithIsolInit=Xt):Xe.push(Ze={_start:dt,_end:dt,_level:Wt,_startsWithPDI:Jt,_endsWithIsolInit:Xt})}}for(var yn=[],An=0;An\u003cXe.length;An++){var kn=Xe[An];if(!kn._startsWithPDI||kn._startsWithPDI\u0026\u0026!tt.has(kn._start)){for(var $n=[Ze=kn],ht=void 0;Ze\u0026\u0026Ze._endsWithIsolInit\u0026\u0026(ht=tt.get(Ze._end))!=null;)for(var Kt=An+1;Kt\u003cXe.length;Kt++)if(Xe[Kt]._start===ht){$n.push(Ze=Xe[Kt]);break}for(var rn=[],Lt=0;Lt\u003c$n.length;Lt++)for(var Ho=$n[Lt],Ao=Ho._start;Ao\u003c=Ho._end;Ao++)rn.push(Ao);for(var qe=Ye[rn[0]],vt=at.level,qt=rn[0]-1;qt\u003e=0;qt--)if(!(Ee[qt]\u0026A)){vt=Ye[qt];break}var Zt=rn[rn.length-1],nn=Ye[Zt],zn=at.level;if(!(Ee[Zt]\u0026r)){for(var Nn=Zt+1;Nn\u003c=at.end;Nn++)if(!(Ee[Nn]\u0026A)){zn=Ye[Nn];break}}yn.push({_seqIndices:rn,_sosType:Math.max(vt,qe)%2?B:E,_eosType:Math.max(zn,nn)%2?B:E})}}for(var Co=0;Co\u003cyn.length;Co++){var ei=yn[Co],ro=ei._seqIndices,To=ei._sosType,yo=ei._eosType,Ro=Ye[ro[0]]\u00261?B:E;if(Ce.get(Y))for(var On=0;On\u003cro.length;On++){var uo=ro[On];if(Ee[uo]\u0026Y){for(var Oo=To,ko=On-1;ko\u003e=0;ko--)if(!(Ee[ro[ko]]\u0026A)){Oo=Ee[ro[ko]];break}Le(uo,Oo\u0026(r|_e)?O:Oo)}}if(Ce.get(S))for(var Ko=0;Ko\u003cro.length;Ko++){var mi=ro[Ko];if(Ee[mi]\u0026S)for(var Fo=Ko-1;Fo\u003e=-1;Fo--){var Nr=Fo===-1?To:Ee[ro[Fo]];if(Nr\u0026s){Nr===W\u0026\u0026Le(mi,M);break}}}if(Ce.get(W))for(var Rs=0;Rs\u003cro.length;Rs++){var ur=ro[Rs];Ee[ur]\u0026W\u0026\u0026Le(ur,B)}if(Ce.get(Q)||Ce.get(k))for(var zi=1;zi\u003cro.length-1;zi++){var bi=ro[zi];if(Ee[bi]\u0026(Q|k)){for(var Ar=0,ws=0,ds=zi-1;ds\u003e=0\u0026\u0026(Ar=Ee[ro[ds]],!!(Ar\u0026A));ds--);for(var Et=zi+1;Et\u003cro.length\u0026\u0026(ws=Ee[ro[Et]],!!(ws\u0026A));Et++);Ar===ws\u0026\u0026(Ee[bi]===Q?Ar===S:Ar\u0026(S|M))\u0026\u0026Le(bi,Ar)}}if(Ce.get(S))for(var Gt=0;Gt\u003cro.length;Gt++){var Rt=ro[Gt];if(Ee[Rt]\u0026S){for(var Ht=Gt-1;Ht\u003e=0\u0026\u0026Ee[ro[Ht]]\u0026(w|A);Ht--)Le(ro[Ht],S);for(Gt++;Gt\u003cro.length\u0026\u0026Ee[ro[Gt]]\u0026(w|A|S);Gt++)Ee[ro[Gt]]!==S\u0026\u0026Le(ro[Gt],S)}}if(Ce.get(w)||Ce.get(Q)||Ce.get(k))for(var Qt=0;Qt\u003cro.length;Qt++){var Nt=ro[Qt];if(Ee[Nt]\u0026(w|Q|k)){Le(Nt,O);for(var _n=Qt-1;_n\u003e=0\u0026\u0026Ee[ro[_n]]\u0026A;_n--)Le(ro[_n],O);for(var qn=Qt+1;qn\u003cro.length\u0026\u0026Ee[ro[qn]]\u0026A;qn++)Le(ro[qn],O)}}if(Ce.get(S))for(var En=0,Rn=To;En\u003cro.length;En++){var Hn=ro[En],Lo=Ee[Hn];Lo\u0026S?Rn===E\u0026\u0026Le(Hn,E):Lo\u0026s\u0026\u0026(Rn=Lo)}if(Ce.get(a)){var Io=B|S|M,gi=Io|E,jo=[];{for(var oi=[],Ji=0;Ji\u003cro.length;Ji++)if(Ee[ro[Ji]]\u0026a){var wi=we[ro[Ji]],Br=void 0;if(C(wi)!==null)if(oi.length\u003c63)oi.push({char:wi,seqIndex:Ji});else break;else if((Br=y(wi))!==null)for(var gr=oi.length-1;gr\u003e=0;gr--){var oa=oi[gr].char;if(oa===Br||oa===y(x(wi))||C(x(oa))===wi){jo.push([oi[gr].seqIndex,Ji]),oi.length=gr;break}}}jo.sort(function(tr,Vo){return tr[0]-Vo[0]})}for(var hs=0;hs\u003cjo.length;hs++){for(var Li=jo[hs],ys=Li[0],dr=Li[1],cA=!1,vA=0,Yl=ys+1;Yl\u003cdr;Yl++){var H0=ro[Yl];if(Ee[H0]\u0026gi){cA=!0;var ph=Ee[H0]\u0026Io?B:E;if(ph===Ro){vA=ph;break}}}if(cA\u0026\u0026!vA){vA=To;for(var Xh=ys-1;Xh\u003e=0;Xh--){var Bl=ro[Xh];if(Ee[Bl]\u0026gi){var fc=Ee[Bl]\u0026Io?B:E;fc!==Ro?vA=fc:vA=Ro;break}}}if(vA){if(Ee[ro[ys]]=Ee[ro[dr]]=vA,vA!==Ro){for(var Nd=ys+1;Nd\u003cro.length;Nd++)if(!(Ee[ro[Nd]]\u0026A)){g(we[ro[Nd]])\u0026Y\u0026\u0026(Ee[ro[Nd]]=vA);break}}if(vA!==Ro){for(var il=dr+1;il\u003cro.length;il++)if(!(Ee[ro[il]]\u0026A)){g(we[ro[il]])\u0026Y\u0026\u0026(Ee[ro[il]]=vA);break}}}}for(var Ul=0;Ul\u003cro.length;Ul++)if(Ee[ro[Ul]]\u0026a){for(var m_=Ul,ag=Ul,Rd=To,mh=Ul-1;mh\u003e=0;mh--)if(Ee[ro[mh]]\u0026A)m_=mh;else{Rd=Ee[ro[mh]]\u0026Io?B:E;break}for(var mm=yo,gu=Ul+1;gu\u003cro.length;gu++)if(Ee[ro[gu]]\u0026(a|A))ag=gu;else{mm=Ee[ro[gu]]\u0026Io?B:E;break}for(var Ag=m_;Ag\u003c=ag;Ag++)Ee[ro[Ag]]=Rd===mm?Rd:Ro;Ul=ag}}}for(var C0=at.start;C0\u003c=at.end;C0++){var FC=Ye[C0],O0=Ee[C0];if(FC\u00261?O0\u0026(E|S|M)\u0026\u0026Ye[C0]++:O0\u0026B?Ye[C0]++:O0\u0026(M|S)\u0026\u0026(Ye[C0]+=2),O0\u0026A\u0026\u0026(Ye[C0]=C0===0?at.level:Ye[C0-1]),C0===at.end||g(we[C0])\u0026(F|R))for(var __=C0;__\u003e=0\u0026\u0026g(we[__])\u0026c;__--)Ye[__]=at.level}}return{levels:Ye,paragraphs:At};function Qp(tr,Vo){for(var wA=tr;wA\u003cwe.length;wA++){var Td=Ee[wA];if(Td\u0026(B|W))return 1;if(Td\u0026(R|E)||Vo\u0026\u0026Td===_e)return 0;if(Td\u0026r){var da=_1(wA);wA=da===-1?we.length:da}}return 0}function _1(tr){for(var Vo=1,wA=tr+1;wA\u003cwe.length;wA++){var Td=Ee[wA];if(Td\u0026R)break;if(Td\u0026_e){if(--Vo===0)return wA}else Td\u0026r\u0026\u0026Vo++}return-1}}var fe=\"14\u003e1,j\u003e2,t\u003e2,u\u003e2,1a\u003eg,2v3\u003e1,1\u003e1,1ge\u003e1,1wd\u003e1,b\u003e1,1j\u003e1,f\u003e1,ai\u003e3,-2\u003e3,+1,8\u003e1k0,-1jq\u003e1y7,-1y6\u003e1hf,-1he\u003e1h6,-1h5\u003e1ha,-1h8\u003e1qi,-1pu\u003e1,6\u003e3u,-3s\u003e7,6\u003e1,1\u003e1,f\u003e1,1\u003e1,+2,3\u003e1,1\u003e1,+13,4\u003e1,1\u003e1,6\u003e1eo,-1ee\u003e1,3\u003e1mg,-1me\u003e1mk,-1mj\u003e1mi,-1mg\u003e1mi,-1md\u003e1,1\u003e1,+2,1\u003e10k,-103\u003e1,1\u003e1,4\u003e1,5\u003e1,1\u003e1,+10,3\u003e1,1\u003e8,-7\u003e8,+1,-6\u003e7,+1,a\u003e1,1\u003e1,u\u003e1,u6\u003e1,1\u003e1,+5,26\u003e1,1\u003e1,2\u003e1,2\u003e2,8\u003e1,7\u003e1,4\u003e1,1\u003e1,+5,b8\u003e1,1\u003e1,+3,1\u003e3,-2\u003e1,2\u003e1,1\u003e1,+2,c\u003e1,3\u003e1,1\u003e1,+2,h\u003e1,3\u003e1,a\u003e1,1\u003e1,2\u003e1,3\u003e1,1\u003e1,d\u003e1,f\u003e1,3\u003e1,1a\u003e1,1\u003e1,6\u003e1,7\u003e1,13\u003e1,k\u003e1,1\u003e1,+19,4\u003e1,1\u003e1,+2,2\u003e1,1\u003e1,+18,m\u003e1,a\u003e1,1\u003e1,lk\u003e1,1\u003e1,4\u003e1,2\u003e1,f\u003e1,3\u003e1,1\u003e1,+3,db\u003e1,1\u003e1,+3,3\u003e1,1\u003e1,+2,14qm\u003e1,1\u003e1,+1,6\u003e1,4j\u003e1,j\u003e2,t\u003e2,u\u003e2,2\u003e1,+1\",pe;function ye(){if(!pe){var we=p(fe,!0),Te=we.map,Re=we.reverseMap;Re.forEach(function(Ee,ke){Te.set(ke,Ee)}),pe=Te}}function Me(we){return ye(),pe.get(we)||null}function ve(we,Te,Re,Ee){var ke=we.length;Re=Math.max(0,Re==null?0:+Re),Ee=Math.min(ke-1,Ee==null?ke-1:+Ee);for(var Ce=new Map,Le=Re;Le\u003c=Ee;Le++)if(Te[Le]\u00261){var Ye=Me(we[Le]);Ye!==null\u0026\u0026Ce.set(Le,Ye)}return Ce}function he(we,Te,Re,Ee){var ke=we.length;Re=Math.max(0,Re==null?0:+Re),Ee=Math.min(ke-1,Ee==null?ke-1:+Ee);var Ce=[];return Te.paragraphs.forEach(function(Le){var Ye=Math.max(Re,Le.start),tt=Math.min(Ee,Le.end);if(Ye\u003ctt){for(var At=Te.levels.slice(Ye,tt+1),at=tt;at\u003e=Ye\u0026\u0026g(we[at])\u0026c;at--)At[at]=Le.level;for(var nt=Le.level,gt=1/0,bt=0;bt\u003cAt.length;bt++){var Ct=At[bt];Ct\u003ent\u0026\u0026(nt=Ct),Ct\u003cgt\u0026\u0026(gt=Ct|1)}for(var Dt=nt;Dt\u003e=gt;Dt--)for(var kt=0;kt\u003cAt.length;kt++)if(At[kt]\u003e=Dt){for(var it=kt;kt+1\u003cAt.length\u0026\u0026At[kt+1]\u003e=Dt;)kt++;kt\u003eit\u0026\u0026Ce.push([it+Ye,kt+Ye])}}}),Ce}function Qe(we,Te,Re,Ee){var ke=Pe(we,Te,Re,Ee),Ce=[].concat(we);return ke.forEach(function(Le,Ye){Ce[Ye]=(Te.levels[Le]\u00261?Me(we[Le]):null)||we[Le]}),Ce.join(\"\")}function Pe(we,Te,Re,Ee){for(var ke=he(we,Te,Re,Ee),Ce=[],Le=0;Le\u003cwe.length;Le++)Ce[Le]=Le;return ke.forEach(function(Ye){for(var tt=Ye[0],At=Ye[1],at=Ce.slice(tt,At+1),nt=at.length;nt--;)Ce[At-nt]=at[nt]}),Ce}return e.closingToOpeningBracket=y,e.getBidiCharType=g,e.getBidiCharTypeName=h,e.getCanonicalBracket=x,e.getEmbeddingLevels=ue,e.getMirroredCharacter=Me,e.getMirroredCharactersMap=ve,e.getReorderSegments=he,e.getReorderedIndices=Pe,e.getReorderedString=Qe,e.openingToClosingBracket=C,Object.defineProperty(e,\"__esModule\",{value:!0}),e})({});return t}const GJt=/\\bvoid\\s+main\\s*\\(\\s*\\)\\s*{/g;function vke(t){const e=/^[ \\t]*#include +\u003c([\\w\\d./]+)\u003e/gm;function n(o,i){let r=OA[i];return r?vke(r):o}return t.replace(e,n)}const gI=[];for(let t=0;t\u003c256;t++)gI[t]=(t\u003c16?\"0\":\"\")+t.toString(16);function koi(){const t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,n=Math.random()*4294967295|0,o=Math.random()*4294967295|0;return(gI[t\u0026255]+gI[t\u003e\u003e8\u0026255]+gI[t\u003e\u003e16\u0026255]+gI[t\u003e\u003e24\u0026255]+\"-\"+gI[e\u0026255]+gI[e\u003e\u003e8\u0026255]+\"-\"+gI[e\u003e\u003e16\u002615|64]+gI[e\u003e\u003e24\u0026255]+\"-\"+gI[n\u002663|128]+gI[n\u003e\u003e8\u0026255]+\"-\"+gI[n\u003e\u003e16\u0026255]+gI[n\u003e\u003e24\u0026255]+gI[o\u0026255]+gI[o\u003e\u003e8\u0026255]+gI[o\u003e\u003e16\u0026255]+gI[o\u003e\u003e24\u0026255]).toUpperCase()}const XR=Object.assign||function(){let t=arguments[0];for(let e=1,n=arguments.length;e\u003cn;e++){let o=arguments[e];if(o)for(let i in o)Object.prototype.hasOwnProperty.call(o,i)\u0026\u0026(t[i]=o[i])}return t},Foi=Date.now(),YJt=new WeakMap,UJt=new Map;let Loi=1e10;function wke(t,e){const n=Yoi(e);let o=YJt.get(t);if(o||YJt.set(t,o=Object.create(null)),o[n])return new o[n];const i=`_onBeforeCompile${n}`,r=function(c,l){t.onBeforeCompile.call(this,c,l);const u=this.customProgramCacheKey()+\"|\"+c.vertexShader+\"|\"+c.fragmentShader;let g=UJt[u];if(!g){const h=Hoi(this,c,e,n);g=UJt[u]=h}c.vertexShader=g.vertexShader,c.fragmentShader=g.fragmentShader,XR(c.uniforms,this.uniforms),e.timeUniform\u0026\u0026(c.uniforms[e.timeUniform]={get value(){return Date.now()-Foi}}),this[i]\u0026\u0026this[i](c)},s=function(){return a(e.chained?t:t.clone())},a=function(c){const l=Object.create(c,A);return Object.defineProperty(l,\"baseMaterial\",{value:t}),Object.defineProperty(l,\"id\",{value:Loi++}),l.uuid=koi(),l.uniforms=XR({},c.uniforms,e.uniforms),l.defines=XR({},c.defines,e.defines),l.defines[`TROIKA_DERIVED_MATERIAL_${n}`]=\"\",l.extensions=XR({},c.extensions,e.extensions),l._listeners=void 0,l},A={constructor:{value:s},isDerivedMaterial:{value:!0},type:{get:()=\u003et.type,set:c=\u003e{t.type=c}},isDerivedFrom:{writable:!0,configurable:!0,value:function(c){const l=this.baseMaterial;return c===l||l.isDerivedMaterial\u0026\u0026l.isDerivedFrom(c)||!1}},customProgramCacheKey:{writable:!0,configurable:!0,value:function(){return t.customProgramCacheKey()+\"|\"+n}},onBeforeCompile:{get(){return r},set(c){this[i]=c}},copy:{writable:!0,configurable:!0,value:function(c){return t.copy.call(this,c),!t.isShaderMaterial\u0026\u0026!t.isDerivedMaterial\u0026\u0026(XR(this.extensions,c.extensions),XR(this.defines,c.defines),XR(this.uniforms,KVt.clone(c.uniforms))),this}},clone:{writable:!0,configurable:!0,value:function(){const c=new t.constructor;return a(c).copy(this)}},getDepthMaterial:{writable:!0,configurable:!0,value:function(){let c=this._depthMaterial;return c||(c=this._depthMaterial=wke(t.isDerivedMaterial?t.getDepthMaterial():new Ezt({depthPacking:mVt}),e),c.defines.IS_DEPTH_MATERIAL=\"\",c.uniforms=this.uniforms),c}},getDistanceMaterial:{writable:!0,configurable:!0,value:function(){let c=this._distanceMaterial;return c||(c=this._distanceMaterial=wke(t.isDerivedMaterial?t.getDistanceMaterial():new Bzt,e),c.defines.IS_DISTANCE_MATERIAL=\"\",c.uniforms=this.uniforms),c}},dispose:{writable:!0,configurable:!0,value(){const{_depthMaterial:c,_distanceMaterial:l}=this;c\u0026\u0026c.dispose(),l\u0026\u0026l.dispose(),t.dispose.call(this)}}};return o[n]=s,new s}function Hoi(t,{vertexShader:e,fragmentShader:n},o,i){let{vertexDefs:r,vertexMainIntro:s,vertexMainOutro:a,vertexTransform:A,fragmentDefs:c,fragmentMainIntro:l,fragmentMainOutro:u,fragmentColorTransform:g,customRewriter:h,timeUniform:d}=o;if(r=r||\"\",s=s||\"\",a=a||\"\",c=c||\"\",l=l||\"\",u=u||\"\",(A||h)\u0026\u0026(e=vke(e)),(g||h)\u0026\u0026(n=n.replace(/^[ \\t]*#include \u003c((?:tonemapping|encodings|colorspace|fog|premultiplied_alpha|dithering)_fragment)\u003e/gm,`\n//!BEGIN_POST_CHUNK $1\n$\u0026\n//!END_POST_CHUNK\n`),n=vke(n)),h){let p=h({vertexShader:e,fragmentShader:n});e=p.vertexShader,n=p.fragmentShader}if(g){let p=[];n=n.replace(/^\\/\\/!BEGIN_POST_CHUNK[^]+?^\\/\\/!END_POST_CHUNK/gm,m=\u003e(p.push(m),\"\")),u=`${g}\n${p.join(`\n`)}\n${u}`}if(d){const p=`\nuniform float ${d};\n`;r=p+r,c=p+c}return A\u0026\u0026(e=`vec3 troika_position_${i};\nvec3 troika_normal_${i};\nvec2 troika_uv_${i};\n${e}\n`,r=`${r}\nvoid troikaVertexTransform${i}() {\n vec3 position = troika_position_${i};\n vec3 normal = troika_normal_${i};\n vec2 uv = troika_uv_${i};\n ${A}\n troika_position_${i} = position;\n troika_normal_${i} = normal;\n troika_uv_${i} = uv;\n}\n`,s=`\ntroika_position_${i} = vec3(position);\ntroika_normal_${i} = vec3(normal);\ntroika_uv_${i} = vec2(uv);\ntroikaVertexTransform${i}();\n${s}\n`,e=e.replace(/\\b(position|normal|uv)\\b/g,(p,m,_,f)=\u003e/\\battribute\\s+vec[23]\\s+$/.test(f.substr(0,_))?m:`troika_${m}_${i}`),t.map\u0026\u0026t.map.channel\u003e0||(e=e.replace(/\\bMAP_UV\\b/g,`troika_uv_${i}`))),e=KJt(e,i,r,s,a),n=KJt(n,i,c,l,u),{vertexShader:e,fragmentShader:n}}function KJt(t,e,n,o,i){return(o||i||n)\u0026\u0026(t=t.replace(GJt,`\n${n}\nvoid troikaOrigMain${e}() {`),t+=`\nvoid main() {\n ${o}\n troikaOrigMain${e}();\n ${i}\n}`),t}function Ooi(t,e){return t===\"uniforms\"?void 0:typeof e==\"function\"?e.toString():e}let Goi=0;const VJt=new Map;function Yoi(t){const e=JSON.stringify(t,Ooi);let n=VJt.get(e);return n==null\u0026\u0026VJt.set(e,n=++Goi),n}function Uoi(){return typeof window\u003e\"u\"\u0026\u0026(self.window=self),(function(t){var e={parse:function(i){var r=e._bin,s=new Uint8Array(i);if(r.readASCII(s,0,4)==\"ttcf\"){var a=4;r.readUshort(s,a),a+=2,r.readUshort(s,a),a+=2;var A=r.readUint(s,a);a+=4;for(var c=[],l=0;l\u003cA;l++){var u=r.readUint(s,a);a+=4,c.push(e._readFont(s,u))}return c}return[e._readFont(s,0)]},_readFont:function(i,r){var s=e._bin,a=r;s.readFixed(i,r),r+=4;var A=s.readUshort(i,r);r+=2,s.readUshort(i,r),r+=2,s.readUshort(i,r),r+=2,s.readUshort(i,r),r+=2;for(var c=[\"cmap\",\"head\",\"hhea\",\"maxp\",\"hmtx\",\"name\",\"OS/2\",\"post\",\"loca\",\"glyf\",\"kern\",\"CFF \",\"GDEF\",\"GPOS\",\"GSUB\",\"SVG \"],l={_data:i,_offset:a},u={},g=0;g\u003cA;g++){var h=s.readASCII(i,r,4);r+=4,s.readUint(i,r),r+=4;var d=s.readUint(i,r);r+=4;var p=s.readUint(i,r);r+=4,u[h]={offset:d,length:p}}for(g=0;g\u003cc.length;g++){var m=c[g];u[m]\u0026\u0026(l[m.trim()]=e[m.trim()].parse(i,u[m].offset,u[m].length,l))}return l},_tabOffset:function(i,r,s){for(var a=e._bin,A=a.readUshort(i,s+4),c=s+12,l=0;l\u003cA;l++){var u=a.readASCII(i,c,4);c+=4,a.readUint(i,c),c+=4;var g=a.readUint(i,c);if(c+=4,a.readUint(i,c),c+=4,u==r)return g}return 0}};e._bin={readFixed:function(i,r){return(i[r]\u003c\u003c8|i[r+1])+(i[r+2]\u003c\u003c8|i[r+3])/65540},readF2dot14:function(i,r){return e._bin.readShort(i,r)/16384},readInt:function(i,r){return e._bin._view(i).getInt32(r)},readInt8:function(i,r){return e._bin._view(i).getInt8(r)},readShort:function(i,r){return e._bin._view(i).getInt16(r)},readUshort:function(i,r){return e._bin._view(i).getUint16(r)},readUshorts:function(i,r,s){for(var a=[],A=0;A\u003cs;A++)a.push(e._bin.readUshort(i,r+2*A));return a},readUint:function(i,r){return e._bin._view(i).getUint32(r)},readUint64:function(i,r){return 4294967296*e._bin.readUint(i,r)+e._bin.readUint(i,r+4)},readASCII:function(i,r,s){for(var a=\"\",A=0;A\u003cs;A++)a+=String.fromCharCode(i[r+A]);return a},readUnicode:function(i,r,s){for(var a=\"\",A=0;A\u003cs;A++){var c=i[r++]\u003c\u003c8|i[r++];a+=String.fromCharCode(c)}return a},_tdec:typeof window\u003c\"u\"\u0026\u0026window.TextDecoder?new window.TextDecoder:null,readUTF8:function(i,r,s){var a=e._bin._tdec;return a\u0026\u0026r==0\u0026\u0026s==i.length?a.decode(i):e._bin.readASCII(i,r,s)},readBytes:function(i,r,s){for(var a=[],A=0;A\u003cs;A++)a.push(i[r+A]);return a},readASCIIArray:function(i,r,s){for(var a=[],A=0;A\u003cs;A++)a.push(String.fromCharCode(i[r+A]));return a},_view:function(i){return i._dataView||(i._dataView=i.buffer?new DataView(i.buffer,i.byteOffset,i.byteLength):new DataView(new Uint8Array(i).buffer))}},e._lctf={},e._lctf.parse=function(i,r,s,a,A){var c=e._bin,l={},u=r;c.readFixed(i,r),r+=4;var g=c.readUshort(i,r);r+=2;var h=c.readUshort(i,r);r+=2;var d=c.readUshort(i,r);return r+=2,l.scriptList=e._lctf.readScriptList(i,u+g),l.featureList=e._lctf.readFeatureList(i,u+h),l.lookupList=e._lctf.readLookupList(i,u+d,A),l},e._lctf.readLookupList=function(i,r,s){var a=e._bin,A=r,c=[],l=a.readUshort(i,r);r+=2;for(var u=0;u\u003cl;u++){var g=a.readUshort(i,r);r+=2;var h=e._lctf.readLookupTable(i,A+g,s);c.push(h)}return c},e._lctf.readLookupTable=function(i,r,s){var a=e._bin,A=r,c={tabs:[]};c.ltype=a.readUshort(i,r),r+=2,c.flag=a.readUshort(i,r),r+=2;var l=a.readUshort(i,r);r+=2;for(var u=c.ltype,g=0;g\u003cl;g++){var h=a.readUshort(i,r);r+=2;var d=s(i,u,A+h,c);c.tabs.push(d)}return c},e._lctf.numOfOnes=function(i){for(var r=0,s=0;s\u003c32;s++)(i\u003e\u003e\u003es\u00261)!=0\u0026\u0026r++;return r},e._lctf.readClassDef=function(i,r){var s=e._bin,a=[],A=s.readUshort(i,r);if(r+=2,A==1){var c=s.readUshort(i,r);r+=2;var l=s.readUshort(i,r);r+=2;for(var u=0;u\u003cl;u++)a.push(c+u),a.push(c+u),a.push(s.readUshort(i,r)),r+=2}if(A==2){var g=s.readUshort(i,r);for(r+=2,u=0;u\u003cg;u++)a.push(s.readUshort(i,r)),r+=2,a.push(s.readUshort(i,r)),r+=2,a.push(s.readUshort(i,r)),r+=2}return a},e._lctf.getInterval=function(i,r){for(var s=0;s\u003ci.length;s+=3){var a=i[s],A=i[s+1];if(i[s+2],a\u003c=r\u0026\u0026r\u003c=A)return s}return-1},e._lctf.readCoverage=function(i,r){var s=e._bin,a={};a.fmt=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);return r+=2,a.fmt==1\u0026\u0026(a.tab=s.readUshorts(i,r,A)),a.fmt==2\u0026\u0026(a.tab=s.readUshorts(i,r,3*A)),a},e._lctf.coverageIndex=function(i,r){var s=i.tab;if(i.fmt==1)return s.indexOf(r);if(i.fmt==2){var a=e._lctf.getInterval(s,r);if(a!=-1)return s[a+2]+(r-s[a])}return-1},e._lctf.readFeatureList=function(i,r){var s=e._bin,a=r,A=[],c=s.readUshort(i,r);r+=2;for(var l=0;l\u003cc;l++){var u=s.readASCII(i,r,4);r+=4;var g=s.readUshort(i,r);r+=2;var h=e._lctf.readFeatureTable(i,a+g);h.tag=u.trim(),A.push(h)}return A},e._lctf.readFeatureTable=function(i,r){var s=e._bin,a=r,A={},c=s.readUshort(i,r);r+=2,c\u003e0\u0026\u0026(A.featureParams=a+c);var l=s.readUshort(i,r);r+=2,A.tab=[];for(var u=0;u\u003cl;u++)A.tab.push(s.readUshort(i,r+2*u));return A},e._lctf.readScriptList=function(i,r){var s=e._bin,a=r,A={},c=s.readUshort(i,r);r+=2;for(var l=0;l\u003cc;l++){var u=s.readASCII(i,r,4);r+=4;var g=s.readUshort(i,r);r+=2,A[u.trim()]=e._lctf.readScriptTable(i,a+g)}return A},e._lctf.readScriptTable=function(i,r){var s=e._bin,a=r,A={},c=s.readUshort(i,r);r+=2,c\u003e0\u0026\u0026(A.default=e._lctf.readLangSysTable(i,a+c));var l=s.readUshort(i,r);r+=2;for(var u=0;u\u003cl;u++){var g=s.readASCII(i,r,4);r+=4;var h=s.readUshort(i,r);r+=2,A[g.trim()]=e._lctf.readLangSysTable(i,a+h)}return A},e._lctf.readLangSysTable=function(i,r){var s=e._bin,a={};s.readUshort(i,r),r+=2,a.reqFeature=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);return r+=2,a.features=s.readUshorts(i,r,A),a},e.CFF={},e.CFF.parse=function(i,r,s){var a=e._bin;(i=new Uint8Array(i.buffer,r,s))[r=0],i[++r],i[++r],i[++r],r++;var A=[];r=e.CFF.readIndex(i,r,A);for(var c=[],l=0;l\u003cA.length-1;l++)c.push(a.readASCII(i,r+A[l],A[l+1]-A[l]));r+=A[A.length-1];var u=[];r=e.CFF.readIndex(i,r,u);var g=[];for(l=0;l\u003cu.length-1;l++)g.push(e.CFF.readDict(i,r+u[l],r+u[l+1]));r+=u[u.length-1];var h=g[0],d=[];r=e.CFF.readIndex(i,r,d);var p=[];for(l=0;l\u003cd.length-1;l++)p.push(a.readASCII(i,r+d[l],d[l+1]-d[l]));if(r+=d[d.length-1],e.CFF.readSubrs(i,r,h),h.CharStrings){r=h.CharStrings,d=[],r=e.CFF.readIndex(i,r,d);var m=[];for(l=0;l\u003cd.length-1;l++)m.push(a.readBytes(i,r+d[l],d[l+1]-d[l]));h.CharStrings=m}if(h.ROS){r=h.FDArray;var _=[];for(r=e.CFF.readIndex(i,r,_),h.FDArray=[],l=0;l\u003c_.length-1;l++){var f=e.CFF.readDict(i,r+_[l],r+_[l+1]);e.CFF._readFDict(i,f,p),h.FDArray.push(f)}r+=_[_.length-1],r=h.FDSelect,h.FDSelect=[];var I=i[r];if(r++,I!=3)throw I;var C=a.readUshort(i,r);for(r+=2,l=0;l\u003cC+1;l++)h.FDSelect.push(a.readUshort(i,r),i[r+2]),r+=3}return h.Encoding\u0026\u0026(h.Encoding=e.CFF.readEncoding(i,h.Encoding,h.CharStrings.length)),h.charset\u0026\u0026(h.charset=e.CFF.readCharset(i,h.charset,h.CharStrings.length)),e.CFF._readFDict(i,h,p),h},e.CFF._readFDict=function(i,r,s){var a;for(var A in r.Private\u0026\u0026(a=r.Private[1],r.Private=e.CFF.readDict(i,a,a+r.Private[0]),r.Private.Subrs\u0026\u0026e.CFF.readSubrs(i,a+r.Private.Subrs,r.Private)),r)[\"FamilyName\",\"FontName\",\"FullName\",\"Notice\",\"version\",\"Copyright\"].indexOf(A)!=-1\u0026\u0026(r[A]=s[r[A]-426+35])},e.CFF.readSubrs=function(i,r,s){var a=e._bin,A=[];r=e.CFF.readIndex(i,r,A);var c,l=A.length;c=l\u003c1240?107:l\u003c33900?1131:32768,s.Bias=c,s.Subrs=[];for(var u=0;u\u003cA.length-1;u++)s.Subrs.push(a.readBytes(i,r+A[u],A[u+1]-A[u]))},e.CFF.tableSE=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,0,111,112,113,114,0,115,116,117,118,119,120,121,122,0,123,0,124,125,126,127,128,129,130,131,0,132,133,0,134,135,136,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,139,0,0,0,0,140,141,142,143,0,0,0,0,0,144,0,0,0,145,0,0,146,147,148,149,0,0,0,0],e.CFF.glyphByUnicode=function(i,r){for(var s=0;s\u003ci.charset.length;s++)if(i.charset[s]==r)return s;return-1},e.CFF.glyphBySE=function(i,r){return r\u003c0||r\u003e255?-1:e.CFF.glyphByUnicode(i,e.CFF.tableSE[r])},e.CFF.readEncoding=function(i,r,s){e._bin;var a=[\".notdef\"],A=i[r];if(r++,A!=0)throw\"error: unknown encoding format: \"+A;var c=i[r];r++;for(var l=0;l\u003cc;l++)a.push(i[r+l]);return a},e.CFF.readCharset=function(i,r,s){var a=e._bin,A=[\".notdef\"],c=i[r];if(r++,c==0)for(var l=0;l\u003cs;l++){var u=a.readUshort(i,r);r+=2,A.push(u)}else{if(c!=1\u0026\u0026c!=2)throw\"error: format: \"+c;for(;A.length\u003cs;){u=a.readUshort(i,r),r+=2;var g=0;for(c==1?(g=i[r],r++):(g=a.readUshort(i,r),r+=2),l=0;l\u003c=g;l++)A.push(u),u++}}return A},e.CFF.readIndex=function(i,r,s){var a=e._bin,A=a.readUshort(i,r)+1,c=i[r+=2];if(r++,c==1)for(var l=0;l\u003cA;l++)s.push(i[r+l]);else if(c==2)for(l=0;l\u003cA;l++)s.push(a.readUshort(i,r+2*l));else if(c==3)for(l=0;l\u003cA;l++)s.push(16777215\u0026a.readUint(i,r+3*l-1));else if(A!=1)throw\"unsupported offset size: \"+c+\", count: \"+A;return(r+=A*c)-1},e.CFF.getCharString=function(i,r,s){var a=e._bin,A=i[r],c=i[r+1];i[r+2],i[r+3],i[r+4];var l=1,u=null,g=null;A\u003c=20\u0026\u0026(u=A,l=1),A==12\u0026\u0026(u=100*A+c,l=2),21\u003c=A\u0026\u0026A\u003c=27\u0026\u0026(u=A,l=1),A==28\u0026\u0026(g=a.readShort(i,r+1),l=3),29\u003c=A\u0026\u0026A\u003c=31\u0026\u0026(u=A,l=1),32\u003c=A\u0026\u0026A\u003c=246\u0026\u0026(g=A-139,l=1),247\u003c=A\u0026\u0026A\u003c=250\u0026\u0026(g=256*(A-247)+c+108,l=2),251\u003c=A\u0026\u0026A\u003c=254\u0026\u0026(g=256*-(A-251)-c-108,l=2),A==255\u0026\u0026(g=a.readInt(i,r+1)/65535,l=5),s.val=g??\"o\"+u,s.size=l},e.CFF.readCharString=function(i,r,s){for(var a=r+s,A=e._bin,c=[];r\u003ca;){var l=i[r],u=i[r+1];i[r+2],i[r+3],i[r+4];var g=1,h=null,d=null;l\u003c=20\u0026\u0026(h=l,g=1),l==12\u0026\u0026(h=100*l+u,g=2),l!=19\u0026\u0026l!=20||(h=l,g=2),21\u003c=l\u0026\u0026l\u003c=27\u0026\u0026(h=l,g=1),l==28\u0026\u0026(d=A.readShort(i,r+1),g=3),29\u003c=l\u0026\u0026l\u003c=31\u0026\u0026(h=l,g=1),32\u003c=l\u0026\u0026l\u003c=246\u0026\u0026(d=l-139,g=1),247\u003c=l\u0026\u0026l\u003c=250\u0026\u0026(d=256*(l-247)+u+108,g=2),251\u003c=l\u0026\u0026l\u003c=254\u0026\u0026(d=256*-(l-251)-u-108,g=2),l==255\u0026\u0026(d=A.readInt(i,r+1)/65535,g=5),c.push(d??\"o\"+h),r+=g}return c},e.CFF.readDict=function(i,r,s){for(var a=e._bin,A={},c=[];r\u003cs;){var l=i[r],u=i[r+1];i[r+2],i[r+3],i[r+4];var g=1,h=null,d=null;if(l==28\u0026\u0026(d=a.readShort(i,r+1),g=3),l==29\u0026\u0026(d=a.readInt(i,r+1),g=5),32\u003c=l\u0026\u0026l\u003c=246\u0026\u0026(d=l-139,g=1),247\u003c=l\u0026\u0026l\u003c=250\u0026\u0026(d=256*(l-247)+u+108,g=2),251\u003c=l\u0026\u0026l\u003c=254\u0026\u0026(d=256*-(l-251)-u-108,g=2),l==255)throw d=a.readInt(i,r+1)/65535,g=5,\"unknown number\";if(l==30){var p=[];for(g=1;;){var m=i[r+g];g++;var _=m\u003e\u003e4,f=15\u0026m;if(_!=15\u0026\u0026p.push(_),f!=15\u0026\u0026p.push(f),f==15)break}for(var I=\"\",C=[0,1,2,3,4,5,6,7,8,9,\".\",\"e\",\"e-\",\"reserved\",\"-\",\"endOfNumber\"],y=0;y\u003cp.length;y++)I+=C[p[y]];d=parseFloat(I)}l\u003c=21\u0026\u0026(h=[\"version\",\"Notice\",\"FullName\",\"FamilyName\",\"Weight\",\"FontBBox\",\"BlueValues\",\"OtherBlues\",\"FamilyBlues\",\"FamilyOtherBlues\",\"StdHW\",\"StdVW\",\"escape\",\"UniqueID\",\"XUID\",\"charset\",\"Encoding\",\"CharStrings\",\"Private\",\"Subrs\",\"defaultWidthX\",\"nominalWidthX\"][l],g=1,l==12\u0026\u0026(h=[\"Copyright\",\"isFixedPitch\",\"ItalicAngle\",\"UnderlinePosition\",\"UnderlineThickness\",\"PaintType\",\"CharstringType\",\"FontMatrix\",\"StrokeWidth\",\"BlueScale\",\"BlueShift\",\"BlueFuzz\",\"StemSnapH\",\"StemSnapV\",\"ForceBold\",0,0,\"LanguageGroup\",\"ExpansionFactor\",\"initialRandomSeed\",\"SyntheticBase\",\"PostScript\",\"BaseFontName\",\"BaseFontBlend\",0,0,0,0,0,0,\"ROS\",\"CIDFontVersion\",\"CIDFontRevision\",\"CIDFontType\",\"CIDCount\",\"UIDBase\",\"FDArray\",\"FDSelect\",\"FontName\"][u],g=2)),h!=null?(A[h]=c.length==1?c[0]:c,c=[]):c.push(d),r+=g}return A},e.cmap={},e.cmap.parse=function(i,r,s){i=new Uint8Array(i.buffer,r,s),r=0;var a=e._bin,A={};a.readUshort(i,r),r+=2;var c=a.readUshort(i,r);r+=2;var l=[];A.tables=[];for(var u=0;u\u003cc;u++){var g=a.readUshort(i,r);r+=2;var h=a.readUshort(i,r);r+=2;var d=a.readUint(i,r);r+=4;var p=\"p\"+g+\"e\"+h,m=l.indexOf(d);if(m==-1){var _;m=A.tables.length,l.push(d);var f=a.readUshort(i,d);f==0?_=e.cmap.parse0(i,d):f==4?_=e.cmap.parse4(i,d):f==6?_=e.cmap.parse6(i,d):f==12?_=e.cmap.parse12(i,d):console.debug(\"unknown format: \"+f,g,h,d),A.tables.push(_)}if(A[p]!=null)throw\"multiple tables for one platform+encoding\";A[p]=m}return A},e.cmap.parse0=function(i,r){var s=e._bin,a={};a.format=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);r+=2,s.readUshort(i,r),r+=2,a.map=[];for(var c=0;c\u003cA-6;c++)a.map.push(i[r+c]);return a},e.cmap.parse4=function(i,r){var s=e._bin,a=r,A={};A.format=s.readUshort(i,r),r+=2;var c=s.readUshort(i,r);r+=2,s.readUshort(i,r),r+=2;var l=s.readUshort(i,r);r+=2;var u=l/2;A.searchRange=s.readUshort(i,r),r+=2,A.entrySelector=s.readUshort(i,r),r+=2,A.rangeShift=s.readUshort(i,r),r+=2,A.endCount=s.readUshorts(i,r,u),r+=2*u,r+=2,A.startCount=s.readUshorts(i,r,u),r+=2*u,A.idDelta=[];for(var g=0;g\u003cu;g++)A.idDelta.push(s.readShort(i,r)),r+=2;for(A.idRangeOffset=s.readUshorts(i,r,u),r+=2*u,A.glyphIdArray=[];r\u003ca+c;)A.glyphIdArray.push(s.readUshort(i,r)),r+=2;return A},e.cmap.parse6=function(i,r){var s=e._bin,a={};a.format=s.readUshort(i,r),r+=2,s.readUshort(i,r),r+=2,s.readUshort(i,r),r+=2,a.firstCode=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);r+=2,a.glyphIdArray=[];for(var c=0;c\u003cA;c++)a.glyphIdArray.push(s.readUshort(i,r)),r+=2;return a},e.cmap.parse12=function(i,r){var s=e._bin,a={};a.format=s.readUshort(i,r),r+=2,r+=2,s.readUint(i,r),r+=4,s.readUint(i,r),r+=4;var A=s.readUint(i,r);r+=4,a.groups=[];for(var c=0;c\u003cA;c++){var l=r+12*c,u=s.readUint(i,l+0),g=s.readUint(i,l+4),h=s.readUint(i,l+8);a.groups.push([u,g,h])}return a},e.glyf={},e.glyf.parse=function(i,r,s,a){for(var A=[],c=0;c\u003ca.maxp.numGlyphs;c++)A.push(null);return A},e.glyf._parseGlyf=function(i,r){var s=e._bin,a=i._data,A=e._tabOffset(a,\"glyf\",i._offset)+i.loca[r];if(i.loca[r]==i.loca[r+1])return null;var c={};if(c.noc=s.readShort(a,A),A+=2,c.xMin=s.readShort(a,A),A+=2,c.yMin=s.readShort(a,A),A+=2,c.xMax=s.readShort(a,A),A+=2,c.yMax=s.readShort(a,A),A+=2,c.xMin\u003e=c.xMax||c.yMin\u003e=c.yMax)return null;if(c.noc\u003e0){c.endPts=[];for(var l=0;l\u003cc.noc;l++)c.endPts.push(s.readUshort(a,A)),A+=2;var u=s.readUshort(a,A);if(A+=2,a.length-A\u003cu)return null;c.instructions=s.readBytes(a,A,u),A+=u;var g=c.endPts[c.noc-1]+1;for(c.flags=[],l=0;l\u003cg;l++){var h=a[A];if(A++,c.flags.push(h),(8\u0026h)!=0){var d=a[A];A++;for(var p=0;p\u003cd;p++)c.flags.push(h),l++}}for(c.xs=[],l=0;l\u003cg;l++){var m=(2\u0026c.flags[l])!=0,_=(16\u0026c.flags[l])!=0;m?(c.xs.push(_?a[A]:-a[A]),A++):_?c.xs.push(0):(c.xs.push(s.readShort(a,A)),A+=2)}for(c.ys=[],l=0;l\u003cg;l++)m=(4\u0026c.flags[l])!=0,_=(32\u0026c.flags[l])!=0,m?(c.ys.push(_?a[A]:-a[A]),A++):_?c.ys.push(0):(c.ys.push(s.readShort(a,A)),A+=2);var f=0,I=0;for(l=0;l\u003cg;l++)f+=c.xs[l],I+=c.ys[l],c.xs[l]=f,c.ys[l]=I}else{var C;c.parts=[];do{C=s.readUshort(a,A),A+=2;var y={m:{a:1,b:0,c:0,d:1,tx:0,ty:0},p1:-1,p2:-1};if(c.parts.push(y),y.glyphIndex=s.readUshort(a,A),A+=2,1\u0026C){var x=s.readShort(a,A);A+=2;var E=s.readShort(a,A);A+=2}else x=s.readInt8(a,A),A++,E=s.readInt8(a,A),A++;2\u0026C?(y.m.tx=x,y.m.ty=E):(y.p1=x,y.p2=E),8\u0026C?(y.m.a=y.m.d=s.readF2dot14(a,A),A+=2):64\u0026C?(y.m.a=s.readF2dot14(a,A),A+=2,y.m.d=s.readF2dot14(a,A),A+=2):128\u0026C\u0026\u0026(y.m.a=s.readF2dot14(a,A),A+=2,y.m.b=s.readF2dot14(a,A),A+=2,y.m.c=s.readF2dot14(a,A),A+=2,y.m.d=s.readF2dot14(a,A),A+=2)}while(32\u0026C);if(256\u0026C){var B=s.readUshort(a,A);for(A+=2,c.instr=[],l=0;l\u003cB;l++)c.instr.push(a[A]),A++}}return c},e.GDEF={},e.GDEF.parse=function(i,r,s,a){var A=r;r+=4;var c=e._bin.readUshort(i,r);return{glyphClassDef:c===0?null:e._lctf.readClassDef(i,A+c)}},e.GPOS={},e.GPOS.parse=function(i,r,s,a){return e._lctf.parse(i,r,s,a,e.GPOS.subt)},e.GPOS.subt=function(i,r,s,a){var A=e._bin,c=s,l={};if(l.fmt=A.readUshort(i,s),s+=2,r==1||r==2||r==3||r==7||r==8\u0026\u0026l.fmt\u003c=2){var u=A.readUshort(i,s);s+=2,l.coverage=e._lctf.readCoverage(i,u+c)}if(r==1\u0026\u0026l.fmt==1){var g=A.readUshort(i,s);s+=2,g!=0\u0026\u0026(l.pos=e.GPOS.readValueRecord(i,s,g))}else if(r==2\u0026\u0026l.fmt\u003e=1\u0026\u0026l.fmt\u003c=2){g=A.readUshort(i,s),s+=2;var h=A.readUshort(i,s);s+=2;var d=e._lctf.numOfOnes(g),p=e._lctf.numOfOnes(h);if(l.fmt==1){l.pairsets=[];var m=A.readUshort(i,s);s+=2;for(var _=0;_\u003cm;_++){var f=c+A.readUshort(i,s);s+=2;var I=A.readUshort(i,f);f+=2;for(var C=[],y=0;y\u003cI;y++){var x=A.readUshort(i,f);f+=2,g!=0\u0026\u0026(M=e.GPOS.readValueRecord(i,f,g),f+=2*d),h!=0\u0026\u0026(k=e.GPOS.readValueRecord(i,f,h),f+=2*p),C.push({gid2:x,val1:M,val2:k})}l.pairsets.push(C)}}if(l.fmt==2){var E=A.readUshort(i,s);s+=2;var B=A.readUshort(i,s);s+=2;var S=A.readUshort(i,s);s+=2;var Q=A.readUshort(i,s);for(s+=2,l.classDef1=e._lctf.readClassDef(i,c+E),l.classDef2=e._lctf.readClassDef(i,c+B),l.matrix=[],_=0;_\u003cS;_++){var w=[];for(y=0;y\u003cQ;y++){var M=null,k=null;g!=0\u0026\u0026(M=e.GPOS.readValueRecord(i,s,g),s+=2*d),h!=0\u0026\u0026(k=e.GPOS.readValueRecord(i,s,h),s+=2*p),w.push({val1:M,val2:k})}l.matrix.push(w)}}}else if(r==4\u0026\u0026l.fmt==1)l.markCoverage=e._lctf.readCoverage(i,A.readUshort(i,s)+c),l.baseCoverage=e._lctf.readCoverage(i,A.readUshort(i,s+2)+c),l.markClassCount=A.readUshort(i,s+4),l.markArray=e.GPOS.readMarkArray(i,A.readUshort(i,s+6)+c),l.baseArray=e.GPOS.readBaseArray(i,A.readUshort(i,s+8)+c,l.markClassCount);else if(r==6\u0026\u0026l.fmt==1)l.mark1Coverage=e._lctf.readCoverage(i,A.readUshort(i,s)+c),l.mark2Coverage=e._lctf.readCoverage(i,A.readUshort(i,s+2)+c),l.markClassCount=A.readUshort(i,s+4),l.mark1Array=e.GPOS.readMarkArray(i,A.readUshort(i,s+6)+c),l.mark2Array=e.GPOS.readBaseArray(i,A.readUshort(i,s+8)+c,l.markClassCount);else{if(r==9\u0026\u0026l.fmt==1){var R=A.readUshort(i,s);s+=2;var F=A.readUint(i,s);if(s+=4,a.ltype==9)a.ltype=R;else if(a.ltype!=R)throw\"invalid extension substitution\";return e.GPOS.subt(i,a.ltype,c+F)}console.debug(\"unsupported GPOS table LookupType\",r,\"format\",l.fmt)}return l},e.GPOS.readValueRecord=function(i,r,s){var a=e._bin,A=[];return A.push(1\u0026s?a.readShort(i,r):0),r+=1\u0026s?2:0,A.push(2\u0026s?a.readShort(i,r):0),r+=2\u0026s?2:0,A.push(4\u0026s?a.readShort(i,r):0),r+=4\u0026s?2:0,A.push(8\u0026s?a.readShort(i,r):0),r+=8\u0026s?2:0,A},e.GPOS.readBaseArray=function(i,r,s){var a=e._bin,A=[],c=r,l=a.readUshort(i,r);r+=2;for(var u=0;u\u003cl;u++){for(var g=[],h=0;h\u003cs;h++)g.push(e.GPOS.readAnchorRecord(i,c+a.readUshort(i,r))),r+=2;A.push(g)}return A},e.GPOS.readMarkArray=function(i,r){var s=e._bin,a=[],A=r,c=s.readUshort(i,r);r+=2;for(var l=0;l\u003cc;l++){var u=e.GPOS.readAnchorRecord(i,s.readUshort(i,r+2)+A);u.markClass=s.readUshort(i,r),a.push(u),r+=4}return a},e.GPOS.readAnchorRecord=function(i,r){var s=e._bin,a={};return a.fmt=s.readUshort(i,r),a.x=s.readShort(i,r+2),a.y=s.readShort(i,r+4),a},e.GSUB={},e.GSUB.parse=function(i,r,s,a){return e._lctf.parse(i,r,s,a,e.GSUB.subt)},e.GSUB.subt=function(i,r,s,a){var A=e._bin,c=s,l={};if(l.fmt=A.readUshort(i,s),s+=2,r!=1\u0026\u0026r!=2\u0026\u0026r!=4\u0026\u0026r!=5\u0026\u0026r!=6)return null;if(r==1||r==2||r==4||r==5\u0026\u0026l.fmt\u003c=2||r==6\u0026\u0026l.fmt\u003c=2){var u=A.readUshort(i,s);s+=2,l.coverage=e._lctf.readCoverage(i,c+u)}if(r==1\u0026\u0026l.fmt\u003e=1\u0026\u0026l.fmt\u003c=2){if(l.fmt==1)l.delta=A.readShort(i,s),s+=2;else if(l.fmt==2){var g=A.readUshort(i,s);s+=2,l.newg=A.readUshorts(i,s,g),s+=2*l.newg.length}}else if(r==2\u0026\u0026l.fmt==1){g=A.readUshort(i,s),s+=2,l.seqs=[];for(var h=0;h\u003cg;h++){var d=A.readUshort(i,s)+c;s+=2;var p=A.readUshort(i,d);l.seqs.push(A.readUshorts(i,d+2,p))}}else if(r==4)for(l.vals=[],g=A.readUshort(i,s),s+=2,h=0;h\u003cg;h++){var m=A.readUshort(i,s);s+=2,l.vals.push(e.GSUB.readLigatureSet(i,c+m))}else if(r==5\u0026\u0026l.fmt==2){if(l.fmt==2){var _=A.readUshort(i,s);s+=2,l.cDef=e._lctf.readClassDef(i,c+_),l.scset=[];var f=A.readUshort(i,s);for(s+=2,h=0;h\u003cf;h++){var I=A.readUshort(i,s);s+=2,l.scset.push(I==0?null:e.GSUB.readSubClassSet(i,c+I))}}}else if(r==6\u0026\u0026l.fmt==3){if(l.fmt==3){for(h=0;h\u003c3;h++){g=A.readUshort(i,s),s+=2;for(var C=[],y=0;y\u003cg;y++)C.push(e._lctf.readCoverage(i,c+A.readUshort(i,s+2*y)));s+=2*g,h==0\u0026\u0026(l.backCvg=C),h==1\u0026\u0026(l.inptCvg=C),h==2\u0026\u0026(l.ahedCvg=C)}g=A.readUshort(i,s),s+=2,l.lookupRec=e.GSUB.readSubstLookupRecords(i,s,g)}}else{if(r==7\u0026\u0026l.fmt==1){var x=A.readUshort(i,s);s+=2;var E=A.readUint(i,s);if(s+=4,a.ltype==9)a.ltype=x;else if(a.ltype!=x)throw\"invalid extension substitution\";return e.GSUB.subt(i,a.ltype,c+E)}console.debug(\"unsupported GSUB table LookupType\",r,\"format\",l.fmt)}return l},e.GSUB.readSubClassSet=function(i,r){var s=e._bin.readUshort,a=r,A=[],c=s(i,r);r+=2;for(var l=0;l\u003cc;l++){var u=s(i,r);r+=2,A.push(e.GSUB.readSubClassRule(i,a+u))}return A},e.GSUB.readSubClassRule=function(i,r){var s=e._bin.readUshort,a={},A=s(i,r),c=s(i,r+=2);r+=2,a.input=[];for(var l=0;l\u003cA-1;l++)a.input.push(s(i,r)),r+=2;return a.substLookupRecords=e.GSUB.readSubstLookupRecords(i,r,c),a},e.GSUB.readSubstLookupRecords=function(i,r,s){for(var a=e._bin.readUshort,A=[],c=0;c\u003cs;c++)A.push(a(i,r),a(i,r+2)),r+=4;return A},e.GSUB.readChainSubClassSet=function(i,r){var s=e._bin,a=r,A=[],c=s.readUshort(i,r);r+=2;for(var l=0;l\u003cc;l++){var u=s.readUshort(i,r);r+=2,A.push(e.GSUB.readChainSubClassRule(i,a+u))}return A},e.GSUB.readChainSubClassRule=function(i,r){for(var s=e._bin,a={},A=[\"backtrack\",\"input\",\"lookahead\"],c=0;c\u003cA.length;c++){var l=s.readUshort(i,r);r+=2,c==1\u0026\u0026l--,a[A[c]]=s.readUshorts(i,r,l),r+=2*a[A[c]].length}return l=s.readUshort(i,r),r+=2,a.subst=s.readUshorts(i,r,2*l),r+=2*a.subst.length,a},e.GSUB.readLigatureSet=function(i,r){var s=e._bin,a=r,A=[],c=s.readUshort(i,r);r+=2;for(var l=0;l\u003cc;l++){var u=s.readUshort(i,r);r+=2,A.push(e.GSUB.readLigature(i,a+u))}return A},e.GSUB.readLigature=function(i,r){var s=e._bin,a={chain:[]};a.nglyph=s.readUshort(i,r),r+=2;var A=s.readUshort(i,r);r+=2;for(var c=0;c\u003cA-1;c++)a.chain.push(s.readUshort(i,r)),r+=2;return a},e.head={},e.head.parse=function(i,r,s){var a=e._bin,A={};return a.readFixed(i,r),r+=4,A.fontRevision=a.readFixed(i,r),r+=4,a.readUint(i,r),r+=4,a.readUint(i,r),r+=4,A.flags=a.readUshort(i,r),r+=2,A.unitsPerEm=a.readUshort(i,r),r+=2,A.created=a.readUint64(i,r),r+=8,A.modified=a.readUint64(i,r),r+=8,A.xMin=a.readShort(i,r),r+=2,A.yMin=a.readShort(i,r),r+=2,A.xMax=a.readShort(i,r),r+=2,A.yMax=a.readShort(i,r),r+=2,A.macStyle=a.readUshort(i,r),r+=2,A.lowestRecPPEM=a.readUshort(i,r),r+=2,A.fontDirectionHint=a.readShort(i,r),r+=2,A.indexToLocFormat=a.readShort(i,r),r+=2,A.glyphDataFormat=a.readShort(i,r),r+=2,A},e.hhea={},e.hhea.parse=function(i,r,s){var a=e._bin,A={};return a.readFixed(i,r),r+=4,A.ascender=a.readShort(i,r),r+=2,A.descender=a.readShort(i,r),r+=2,A.lineGap=a.readShort(i,r),r+=2,A.advanceWidthMax=a.readUshort(i,r),r+=2,A.minLeftSideBearing=a.readShort(i,r),r+=2,A.minRightSideBearing=a.readShort(i,r),r+=2,A.xMaxExtent=a.readShort(i,r),r+=2,A.caretSlopeRise=a.readShort(i,r),r+=2,A.caretSlopeRun=a.readShort(i,r),r+=2,A.caretOffset=a.readShort(i,r),r+=2,r+=8,A.metricDataFormat=a.readShort(i,r),r+=2,A.numberOfHMetrics=a.readUshort(i,r),r+=2,A},e.hmtx={},e.hmtx.parse=function(i,r,s,a){for(var A=e._bin,c={aWidth:[],lsBearing:[]},l=0,u=0,g=0;g\u003ca.maxp.numGlyphs;g++)g\u003ca.hhea.numberOfHMetrics\u0026\u0026(l=A.readUshort(i,r),r+=2,u=A.readShort(i,r),r+=2),c.aWidth.push(l),c.lsBearing.push(u);return c},e.kern={},e.kern.parse=function(i,r,s,a){var A=e._bin,c=A.readUshort(i,r);if(r+=2,c==1)return e.kern.parseV1(i,r-2,s,a);var l=A.readUshort(i,r);r+=2;for(var u={glyph1:[],rval:[]},g=0;g\u003cl;g++){r+=2,s=A.readUshort(i,r),r+=2;var h=A.readUshort(i,r);r+=2;var d=h\u003e\u003e\u003e8;if((d\u0026=15)!=0)throw\"unknown kern table format: \"+d;r=e.kern.readFormat0(i,r,u)}return u},e.kern.parseV1=function(i,r,s,a){var A=e._bin;A.readFixed(i,r),r+=4;var c=A.readUint(i,r);r+=4;for(var l={glyph1:[],rval:[]},u=0;u\u003cc;u++){A.readUint(i,r),r+=4;var g=A.readUshort(i,r);r+=2,A.readUshort(i,r),r+=2;var h=g\u003e\u003e\u003e8;if((h\u0026=15)!=0)throw\"unknown kern table format: \"+h;r=e.kern.readFormat0(i,r,l)}return l},e.kern.readFormat0=function(i,r,s){var a=e._bin,A=-1,c=a.readUshort(i,r);r+=2,a.readUshort(i,r),r+=2,a.readUshort(i,r),r+=2,a.readUshort(i,r),r+=2;for(var l=0;l\u003cc;l++){var u=a.readUshort(i,r);r+=2;var g=a.readUshort(i,r);r+=2;var h=a.readShort(i,r);r+=2,u!=A\u0026\u0026(s.glyph1.push(u),s.rval.push({glyph2:[],vals:[]}));var d=s.rval[s.rval.length-1];d.glyph2.push(g),d.vals.push(h),A=u}return r},e.loca={},e.loca.parse=function(i,r,s,a){var A=e._bin,c=[],l=a.head.indexToLocFormat,u=a.maxp.numGlyphs+1;if(l==0)for(var g=0;g\u003cu;g++)c.push(A.readUshort(i,r+(g\u003c\u003c1))\u003c\u003c1);if(l==1)for(g=0;g\u003cu;g++)c.push(A.readUint(i,r+(g\u003c\u003c2)));return c},e.maxp={},e.maxp.parse=function(i,r,s){var a=e._bin,A={},c=a.readUint(i,r);return r+=4,A.numGlyphs=a.readUshort(i,r),r+=2,c==65536\u0026\u0026(A.maxPoints=a.readUshort(i,r),r+=2,A.maxContours=a.readUshort(i,r),r+=2,A.maxCompositePoints=a.readUshort(i,r),r+=2,A.maxCompositeContours=a.readUshort(i,r),r+=2,A.maxZones=a.readUshort(i,r),r+=2,A.maxTwilightPoints=a.readUshort(i,r),r+=2,A.maxStorage=a.readUshort(i,r),r+=2,A.maxFunctionDefs=a.readUshort(i,r),r+=2,A.maxInstructionDefs=a.readUshort(i,r),r+=2,A.maxStackElements=a.readUshort(i,r),r+=2,A.maxSizeOfInstructions=a.readUshort(i,r),r+=2,A.maxComponentElements=a.readUshort(i,r),r+=2,A.maxComponentDepth=a.readUshort(i,r),r+=2),A},e.name={},e.name.parse=function(i,r,s){var a=e._bin,A={};a.readUshort(i,r),r+=2;var c=a.readUshort(i,r);r+=2,a.readUshort(i,r);for(var l,u=[\"copyright\",\"fontFamily\",\"fontSubfamily\",\"ID\",\"fullName\",\"version\",\"postScriptName\",\"trademark\",\"manufacturer\",\"designer\",\"description\",\"urlVendor\",\"urlDesigner\",\"licence\",\"licenceURL\",\"---\",\"typoFamilyName\",\"typoSubfamilyName\",\"compatibleFull\",\"sampleText\",\"postScriptCID\",\"wwsFamilyName\",\"wwsSubfamilyName\",\"lightPalette\",\"darkPalette\"],g=r+=2,h=0;h\u003cc;h++){var d=a.readUshort(i,r);r+=2;var p=a.readUshort(i,r);r+=2;var m=a.readUshort(i,r);r+=2;var _=a.readUshort(i,r);r+=2;var f=a.readUshort(i,r);r+=2;var I=a.readUshort(i,r);r+=2;var C,y=u[_],x=g+12*c+I;if(d==0)C=a.readUnicode(i,x,f/2);else if(d==3\u0026\u0026p==0)C=a.readUnicode(i,x,f/2);else if(p==0)C=a.readASCII(i,x,f);else if(p==1)C=a.readUnicode(i,x,f/2);else if(p==3)C=a.readUnicode(i,x,f/2);else{if(d!=1)throw\"unknown encoding \"+p+\", platformID: \"+d;C=a.readASCII(i,x,f),console.debug(\"reading unknown MAC encoding \"+p+\" as ASCII\")}var E=\"p\"+d+\",\"+m.toString(16);A[E]==null\u0026\u0026(A[E]={}),A[E][y!==void 0?y:_]=C,A[E]._lang=m}for(var B in A)if(A[B].postScriptName!=null\u0026\u0026A[B]._lang==1033)return A[B];for(var B in A)if(A[B].postScriptName!=null\u0026\u0026A[B]._lang==0)return A[B];for(var B in A)if(A[B].postScriptName!=null\u0026\u0026A[B]._lang==3084)return A[B];for(var B in A)if(A[B].postScriptName!=null)return A[B];for(var B in A){l=B;break}return console.debug(\"returning name table with languageID \"+A[l]._lang),A[l]},e[\"OS/2\"]={},e[\"OS/2\"].parse=function(i,r,s){var a=e._bin.readUshort(i,r);r+=2;var A={};if(a==0)e[\"OS/2\"].version0(i,r,A);else if(a==1)e[\"OS/2\"].version1(i,r,A);else if(a==2||a==3||a==4)e[\"OS/2\"].version2(i,r,A);else{if(a!=5)throw\"unknown OS/2 table version: \"+a;e[\"OS/2\"].version5(i,r,A)}return A},e[\"OS/2\"].version0=function(i,r,s){var a=e._bin;return s.xAvgCharWidth=a.readShort(i,r),r+=2,s.usWeightClass=a.readUshort(i,r),r+=2,s.usWidthClass=a.readUshort(i,r),r+=2,s.fsType=a.readUshort(i,r),r+=2,s.ySubscriptXSize=a.readShort(i,r),r+=2,s.ySubscriptYSize=a.readShort(i,r),r+=2,s.ySubscriptXOffset=a.readShort(i,r),r+=2,s.ySubscriptYOffset=a.readShort(i,r),r+=2,s.ySuperscriptXSize=a.readShort(i,r),r+=2,s.ySuperscriptYSize=a.readShort(i,r),r+=2,s.ySuperscriptXOffset=a.readShort(i,r),r+=2,s.ySuperscriptYOffset=a.readShort(i,r),r+=2,s.yStrikeoutSize=a.readShort(i,r),r+=2,s.yStrikeoutPosition=a.readShort(i,r),r+=2,s.sFamilyClass=a.readShort(i,r),r+=2,s.panose=a.readBytes(i,r,10),r+=10,s.ulUnicodeRange1=a.readUint(i,r),r+=4,s.ulUnicodeRange2=a.readUint(i,r),r+=4,s.ulUnicodeRange3=a.readUint(i,r),r+=4,s.ulUnicodeRange4=a.readUint(i,r),r+=4,s.achVendID=[a.readInt8(i,r),a.readInt8(i,r+1),a.readInt8(i,r+2),a.readInt8(i,r+3)],r+=4,s.fsSelection=a.readUshort(i,r),r+=2,s.usFirstCharIndex=a.readUshort(i,r),r+=2,s.usLastCharIndex=a.readUshort(i,r),r+=2,s.sTypoAscender=a.readShort(i,r),r+=2,s.sTypoDescender=a.readShort(i,r),r+=2,s.sTypoLineGap=a.readShort(i,r),r+=2,s.usWinAscent=a.readUshort(i,r),r+=2,s.usWinDescent=a.readUshort(i,r),r+=2},e[\"OS/2\"].version1=function(i,r,s){var a=e._bin;return r=e[\"OS/2\"].version0(i,r,s),s.ulCodePageRange1=a.readUint(i,r),r+=4,s.ulCodePageRange2=a.readUint(i,r),r+=4},e[\"OS/2\"].version2=function(i,r,s){var a=e._bin;return r=e[\"OS/2\"].version1(i,r,s),s.sxHeight=a.readShort(i,r),r+=2,s.sCapHeight=a.readShort(i,r),r+=2,s.usDefault=a.readUshort(i,r),r+=2,s.usBreak=a.readUshort(i,r),r+=2,s.usMaxContext=a.readUshort(i,r),r+=2},e[\"OS/2\"].version5=function(i,r,s){var a=e._bin;return r=e[\"OS/2\"].version2(i,r,s),s.usLowerOpticalPointSize=a.readUshort(i,r),r+=2,s.usUpperOpticalPointSize=a.readUshort(i,r),r+=2},e.post={},e.post.parse=function(i,r,s){var a=e._bin,A={};return A.version=a.readFixed(i,r),r+=4,A.italicAngle=a.readFixed(i,r),r+=4,A.underlinePosition=a.readShort(i,r),r+=2,A.underlineThickness=a.readShort(i,r),r+=2,A},e==null\u0026\u0026(e={}),e.U==null\u0026\u0026(e.U={}),e.U.codeToGlyph=function(i,r){var s=i.cmap,a=-1;if(s.p0e4!=null?a=s.p0e4:s.p3e1!=null?a=s.p3e1:s.p1e0!=null?a=s.p1e0:s.p0e3!=null\u0026\u0026(a=s.p0e3),a==-1)throw\"no familiar platform and encoding!\";var A=s.tables[a];if(A.format==0)return r\u003e=A.map.length?0:A.map[r];if(A.format==4){for(var c=-1,l=0;l\u003cA.endCount.length;l++)if(r\u003c=A.endCount[l]){c=l;break}return c==-1||A.startCount[c]\u003er?0:65535\u0026(A.idRangeOffset[c]!=0?A.glyphIdArray[r-A.startCount[c]+(A.idRangeOffset[c]\u003e\u003e1)-(A.idRangeOffset.length-c)]:r+A.idDelta[c])}if(A.format==12){if(r\u003eA.groups[A.groups.length-1][1])return 0;for(l=0;l\u003cA.groups.length;l++){var u=A.groups[l];if(u[0]\u003c=r\u0026\u0026r\u003c=u[1])return u[2]+(r-u[0])}return 0}throw\"unknown cmap table format \"+A.format},e.U.glyphToPath=function(i,r){var s={cmds:[],crds:[]};if(i.SVG\u0026\u0026i.SVG.entries[r]){var a=i.SVG.entries[r];return a==null?s:(typeof a==\"string\"\u0026\u0026(a=e.SVG.toPath(a),i.SVG.entries[r]=a),a)}if(i.CFF){var A={x:0,y:0,stack:[],nStems:0,haveWidth:!1,width:i.CFF.Private?i.CFF.Private.defaultWidthX:0,open:!1},c=i.CFF,l=i.CFF.Private;if(c.ROS){for(var u=0;c.FDSelect[u+2]\u003c=r;)u+=2;l=c.FDArray[c.FDSelect[u+1]].Private}e.U._drawCFF(i.CFF.CharStrings[r],A,c,l,s)}else i.glyf\u0026\u0026e.U._drawGlyf(r,i,s);return s},e.U._drawGlyf=function(i,r,s){var a=r.glyf[i];a==null\u0026\u0026(a=r.glyf[i]=e.glyf._parseGlyf(r,i)),a!=null\u0026\u0026(a.noc\u003e-1?e.U._simpleGlyph(a,s):e.U._compoGlyph(a,r,s))},e.U._simpleGlyph=function(i,r){for(var s=0;s\u003ci.noc;s++){for(var a=s==0?0:i.endPts[s-1]+1,A=i.endPts[s],c=a;c\u003c=A;c++){var l=c==a?A:c-1,u=c==A?a:c+1,g=1\u0026i.flags[c],h=1\u0026i.flags[l],d=1\u0026i.flags[u],p=i.xs[c],m=i.ys[c];if(c==a)if(g){if(!h){e.U.P.moveTo(r,p,m);continue}e.U.P.moveTo(r,i.xs[l],i.ys[l])}else h?e.U.P.moveTo(r,i.xs[l],i.ys[l]):e.U.P.moveTo(r,(i.xs[l]+p)/2,(i.ys[l]+m)/2);g?h\u0026\u0026e.U.P.lineTo(r,p,m):d?e.U.P.qcurveTo(r,p,m,i.xs[u],i.ys[u]):e.U.P.qcurveTo(r,p,m,(p+i.xs[u])/2,(m+i.ys[u])/2)}e.U.P.closePath(r)}},e.U._compoGlyph=function(i,r,s){for(var a=0;a\u003ci.parts.length;a++){var A={cmds:[],crds:[]},c=i.parts[a];e.U._drawGlyf(c.glyphIndex,r,A);for(var l=c.m,u=0;u\u003cA.crds.length;u+=2){var g=A.crds[u],h=A.crds[u+1];s.crds.push(g*l.a+h*l.b+l.tx),s.crds.push(g*l.c+h*l.d+l.ty)}for(u=0;u\u003cA.cmds.length;u++)s.cmds.push(A.cmds[u])}},e.U._getGlyphClass=function(i,r){var s=e._lctf.getInterval(r,i);return s==-1?0:r[s+2]},e.U._applySubs=function(i,r,s,a){for(var A=i.length-r-1,c=0;c\u003cs.tabs.length;c++)if(s.tabs[c]!=null){var l,u=s.tabs[c];if(!u.coverage||(l=e._lctf.coverageIndex(u.coverage,i[r]))!=-1){if(s.ltype==1)i[r],u.fmt==1?i[r]=i[r]+u.delta:i[r]=u.newg[l];else if(s.ltype==4)for(var g=u.vals[l],h=0;h\u003cg.length;h++){var d=g[h],p=d.chain.length;if(!(p\u003eA)){for(var m=!0,_=0,f=0;f\u003cp;f++){for(;i[r+_+(1+f)]==-1;)_++;d.chain[f]!=i[r+_+(1+f)]\u0026\u0026(m=!1)}if(m){for(i[r]=d.nglyph,f=0;f\u003cp+_;f++)i[r+f+1]=-1;break}}}else if(s.ltype==5\u0026\u0026u.fmt==2)for(var I=e._lctf.getInterval(u.cDef,i[r]),C=u.cDef[I+2],y=u.scset[C],x=0;x\u003cy.length;x++){var E=y[x],B=E.input;if(!(B.length\u003eA)){for(m=!0,f=0;f\u003cB.length;f++){var S=e._lctf.getInterval(u.cDef,i[r+1+f]);if(I==-1\u0026\u0026u.cDef[S+2]!=B[f]){m=!1;break}}if(m){var Q=E.substLookupRecords;for(h=0;h\u003cQ.length;h+=2)Q[h],Q[h+1]}}}else if(s.ltype==6\u0026\u0026u.fmt==3){if(!e.U._glsCovered(i,u.backCvg,r-u.backCvg.length)||!e.U._glsCovered(i,u.inptCvg,r)||!e.U._glsCovered(i,u.ahedCvg,r+u.inptCvg.length))continue;var w=u.lookupRec;for(x=0;x\u003cw.length;x+=2){I=w[x];var M=a[w[x+1]];e.U._applySubs(i,r+I,M,a)}}}}},e.U._glsCovered=function(i,r,s){for(var a=0;a\u003cr.length;a++)if(e._lctf.coverageIndex(r[a],i[s+a])==-1)return!1;return!0},e.U.glyphsToPath=function(i,r,s){for(var a={cmds:[],crds:[]},A=0,c=0;c\u003cr.length;c++){var l=r[c];if(l!=-1){for(var u=c\u003cr.length-1\u0026\u0026r[c+1]!=-1?r[c+1]:0,g=e.U.glyphToPath(i,l),h=0;h\u003cg.crds.length;h+=2)a.crds.push(g.crds[h]+A),a.crds.push(g.crds[h+1]);for(s\u0026\u0026a.cmds.push(s),h=0;h\u003cg.cmds.length;h++)a.cmds.push(g.cmds[h]);s\u0026\u0026a.cmds.push(\"X\"),A+=i.hmtx.aWidth[l],c\u003cr.length-1\u0026\u0026(A+=e.U.getPairAdjustment(i,l,u))}}return a},e.U.P={},e.U.P.moveTo=function(i,r,s){i.cmds.push(\"M\"),i.crds.push(r,s)},e.U.P.lineTo=function(i,r,s){i.cmds.push(\"L\"),i.crds.push(r,s)},e.U.P.curveTo=function(i,r,s,a,A,c,l){i.cmds.push(\"C\"),i.crds.push(r,s,a,A,c,l)},e.U.P.qcurveTo=function(i,r,s,a,A){i.cmds.push(\"Q\"),i.crds.push(r,s,a,A)},e.U.P.closePath=function(i){i.cmds.push(\"Z\")},e.U._drawCFF=function(i,r,s,a,A){for(var c=r.stack,l=r.nStems,u=r.haveWidth,g=r.width,h=r.open,d=0,p=r.x,m=r.y,_=0,f=0,I=0,C=0,y=0,x=0,E=0,B=0,S=0,Q=0,w={val:0,size:0};d\u003ci.length;){e.CFF.getCharString(i,d,w);var M=w.val;if(d+=w.size,M==\"o1\"||M==\"o18\")c.length%2!=0\u0026\u0026!u\u0026\u0026(g=c.shift()+a.nominalWidthX),l+=c.length\u003e\u003e1,c.length=0,u=!0;else if(M==\"o3\"||M==\"o23\")c.length%2!=0\u0026\u0026!u\u0026\u0026(g=c.shift()+a.nominalWidthX),l+=c.length\u003e\u003e1,c.length=0,u=!0;else if(M==\"o4\")c.length\u003e1\u0026\u0026!u\u0026\u0026(g=c.shift()+a.nominalWidthX,u=!0),h\u0026\u0026e.U.P.closePath(A),m+=c.pop(),e.U.P.moveTo(A,p,m),h=!0;else if(M==\"o5\")for(;c.length\u003e0;)p+=c.shift(),m+=c.shift(),e.U.P.lineTo(A,p,m);else if(M==\"o6\"||M==\"o7\")for(var k=c.length,R=M==\"o6\",F=0;F\u003ck;F++){var O=c.shift();R?p+=O:m+=O,R=!R,e.U.P.lineTo(A,p,m)}else if(M==\"o8\"||M==\"o24\"){k=c.length;for(var U=0;U+6\u003c=k;)_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),p=I+c.shift(),m=C+c.shift(),e.U.P.curveTo(A,_,f,I,C,p,m),U+=6;M==\"o24\"\u0026\u0026(p+=c.shift(),m+=c.shift(),e.U.P.lineTo(A,p,m))}else{if(M==\"o11\")break;if(M==\"o1234\"||M==\"o1235\"||M==\"o1236\"||M==\"o1237\")M==\"o1234\"\u0026\u0026(f=m,I=(_=p+c.shift())+c.shift(),Q=C=f+c.shift(),x=C,B=m,p=(E=(y=(S=I+c.shift())+c.shift())+c.shift())+c.shift(),e.U.P.curveTo(A,_,f,I,C,S,Q),e.U.P.curveTo(A,y,x,E,B,p,m)),M==\"o1235\"\u0026\u0026(_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),S=I+c.shift(),Q=C+c.shift(),y=S+c.shift(),x=Q+c.shift(),E=y+c.shift(),B=x+c.shift(),p=E+c.shift(),m=B+c.shift(),c.shift(),e.U.P.curveTo(A,_,f,I,C,S,Q),e.U.P.curveTo(A,y,x,E,B,p,m)),M==\"o1236\"\u0026\u0026(_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),Q=C=f+c.shift(),x=C,E=(y=(S=I+c.shift())+c.shift())+c.shift(),B=x+c.shift(),p=E+c.shift(),e.U.P.curveTo(A,_,f,I,C,S,Q),e.U.P.curveTo(A,y,x,E,B,p,m)),M==\"o1237\"\u0026\u0026(_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),S=I+c.shift(),Q=C+c.shift(),y=S+c.shift(),x=Q+c.shift(),E=y+c.shift(),B=x+c.shift(),Math.abs(E-p)\u003eMath.abs(B-m)?p=E+c.shift():m=B+c.shift(),e.U.P.curveTo(A,_,f,I,C,S,Q),e.U.P.curveTo(A,y,x,E,B,p,m));else if(M==\"o14\"){if(c.length\u003e0\u0026\u0026!u\u0026\u0026(g=c.shift()+s.nominalWidthX,u=!0),c.length==4){var Y=c.shift(),W=c.shift(),te=c.shift(),j=c.shift(),J=e.CFF.glyphBySE(s,te),oe=e.CFF.glyphBySE(s,j);e.U._drawCFF(s.CharStrings[J],r,s,a,A),r.x=Y,r.y=W,e.U._drawCFF(s.CharStrings[oe],r,s,a,A)}h\u0026\u0026(e.U.P.closePath(A),h=!1)}else if(M==\"o19\"||M==\"o20\")c.length%2!=0\u0026\u0026!u\u0026\u0026(g=c.shift()+a.nominalWidthX),l+=c.length\u003e\u003e1,c.length=0,u=!0,d+=l+7\u003e\u003e3;else if(M==\"o21\")c.length\u003e2\u0026\u0026!u\u0026\u0026(g=c.shift()+a.nominalWidthX,u=!0),m+=c.pop(),p+=c.pop(),h\u0026\u0026e.U.P.closePath(A),e.U.P.moveTo(A,p,m),h=!0;else if(M==\"o22\")c.length\u003e1\u0026\u0026!u\u0026\u0026(g=c.shift()+a.nominalWidthX,u=!0),p+=c.pop(),h\u0026\u0026e.U.P.closePath(A),e.U.P.moveTo(A,p,m),h=!0;else if(M==\"o25\"){for(;c.length\u003e6;)p+=c.shift(),m+=c.shift(),e.U.P.lineTo(A,p,m);_=p+c.shift(),f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),p=I+c.shift(),m=C+c.shift(),e.U.P.curveTo(A,_,f,I,C,p,m)}else if(M==\"o26\")for(c.length%2\u0026\u0026(p+=c.shift());c.length\u003e0;)_=p,f=m+c.shift(),p=I=_+c.shift(),m=(C=f+c.shift())+c.shift(),e.U.P.curveTo(A,_,f,I,C,p,m);else if(M==\"o27\")for(c.length%2\u0026\u0026(m+=c.shift());c.length\u003e0;)f=m,I=(_=p+c.shift())+c.shift(),C=f+c.shift(),p=I+c.shift(),m=C,e.U.P.curveTo(A,_,f,I,C,p,m);else if(M==\"o10\"||M==\"o29\"){var ie=M==\"o10\"?a:s;if(c.length==0)console.debug(\"error: empty stack\");else{var ne=c.pop(),le=ie.Subrs[ne+ie.Bias];r.x=p,r.y=m,r.nStems=l,r.haveWidth=u,r.width=g,r.open=h,e.U._drawCFF(le,r,s,a,A),p=r.x,m=r.y,l=r.nStems,u=r.haveWidth,g=r.width,h=r.open}}else if(M==\"o30\"||M==\"o31\"){var ge=c.length,_e=(U=0,M==\"o31\");for(U+=ge-(k=-3\u0026ge);U\u003ck;)_e?(f=m,I=(_=p+c.shift())+c.shift(),m=(C=f+c.shift())+c.shift(),k-U==5?(p=I+c.shift(),U++):p=I,_e=!1):(_=p,f=m+c.shift(),I=_+c.shift(),C=f+c.shift(),p=I+c.shift(),k-U==5?(m=C+c.shift(),U++):m=C,_e=!0),e.U.P.curveTo(A,_,f,I,C,p,m),U+=4}else{if((M+\"\").charAt(0)==\"o\")throw console.debug(\"Unknown operation: \"+M,i),M;c.push(M)}}}r.x=p,r.y=m,r.nStems=l,r.haveWidth=u,r.width=g,r.open=h};var n=e,o={Typr:n};return t.Typr=n,t.default=o,Object.defineProperty(t,\"__esModule\",{value:!0}),t})({}).Typr}function Koi(){return(function(t){var e=Uint8Array,n=Uint16Array,o=Uint32Array,i=new e([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),r=new e([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),s=new e([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=function(M,k){for(var R=new n(31),F=0;F\u003c31;++F)R[F]=k+=1\u003c\u003cM[F-1];var O=new o(R[30]);for(F=1;F\u003c30;++F)for(var U=R[F];U\u003cR[F+1];++U)O[U]=U-R[F]\u003c\u003c5|F;return[R,O]},A=a(i,2),c=A[0],l=A[1];c[28]=258,l[258]=28;for(var u=a(r,0)[0],g=new n(32768),h=0;h\u003c32768;++h){var d=(43690\u0026h)\u003e\u003e\u003e1|(21845\u0026h)\u003c\u003c1;d=(61680\u0026(d=(52428\u0026d)\u003e\u003e\u003e2|(13107\u0026d)\u003c\u003c2))\u003e\u003e\u003e4|(3855\u0026d)\u003c\u003c4,g[h]=((65280\u0026d)\u003e\u003e\u003e8|(255\u0026d)\u003c\u003c8)\u003e\u003e\u003e1}var p=function(M,k,R){for(var F=M.length,O=0,U=new n(k);O\u003cF;++O)++U[M[O]-1];var Y,W=new n(k);for(O=0;O\u003ck;++O)W[O]=W[O-1]+U[O-1]\u003c\u003c1;{Y=new n(1\u003c\u003ck);var te=15-k;for(O=0;O\u003cF;++O)if(M[O])for(var j=O\u003c\u003c4|M[O],J=k-M[O],oe=W[M[O]-1]++\u003c\u003cJ,ie=oe|(1\u003c\u003cJ)-1;oe\u003c=ie;++oe)Y[g[oe]\u003e\u003e\u003ete]=j}return Y},m=new e(288);for(h=0;h\u003c144;++h)m[h]=8;for(h=144;h\u003c256;++h)m[h]=9;for(h=256;h\u003c280;++h)m[h]=7;for(h=280;h\u003c288;++h)m[h]=8;var _=new e(32);for(h=0;h\u003c32;++h)_[h]=5;var f=p(m,9),I=p(_,5),C=function(M){for(var k=M[0],R=1;R\u003cM.length;++R)M[R]\u003ek\u0026\u0026(k=M[R]);return k},y=function(M,k,R){var F=k/8|0;return(M[F]|M[F+1]\u003c\u003c8)\u003e\u003e(7\u0026k)\u0026R},x=function(M,k){var R=k/8|0;return(M[R]|M[R+1]\u003c\u003c8|M[R+2]\u003c\u003c16)\u003e\u003e(7\u0026k)},E=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],B=function(M,k,R){var F=new Error(k||E[M]);if(F.code=M,Error.captureStackTrace\u0026\u0026Error.captureStackTrace(F,B),!R)throw F;return F},S=function(M,k,R){var F=M.length;if(!F||R\u0026\u0026!R.l\u0026\u0026F\u003c5)return k||new e(0);var O=!k||R,U=!R||R.i;R||(R={}),k||(k=new e(3*F));var Y,W=function(it){var Yt=k.length;if(it\u003eYt){var pn=new e(Math.max(2*Yt,it));pn.set(k),k=pn}},te=R.f||0,j=R.p||0,J=R.b||0,oe=R.l,ie=R.d,ne=R.m,le=R.n,ge=8*F;do{if(!oe){R.f=te=y(M,j,1);var _e=y(M,j+1,3);if(j+=3,!_e){var ue=M[(Re=((Y=j)/8|0)+(7\u0026Y\u0026\u00261)+4)-4]|M[Re-3]\u003c\u003c8,fe=Re+ue;if(fe\u003eF){U\u0026\u0026B(0);break}O\u0026\u0026W(J+ue),k.set(M.subarray(Re,fe),J),R.b=J+=ue,R.p=j=8*fe;continue}if(_e==1)oe=f,ie=I,ne=9,le=5;else if(_e==2){var pe=y(M,j,31)+257,ye=y(M,j+10,15)+4,Me=pe+y(M,j+5,31)+1;j+=14;for(var ve=new e(Me),he=new e(19),Qe=0;Qe\u003cye;++Qe)he[s[Qe]]=y(M,j+3*Qe,7);j+=3*ye;var Pe=C(he),we=(1\u003c\u003cPe)-1,Te=p(he,Pe);for(Qe=0;Qe\u003cMe;){var Re,Ee=Te[y(M,j,we)];if(j+=15\u0026Ee,(Re=Ee\u003e\u003e\u003e4)\u003c16)ve[Qe++]=Re;else{var ke=0,Ce=0;for(Re==16?(Ce=3+y(M,j,3),j+=2,ke=ve[Qe-1]):Re==17?(Ce=3+y(M,j,7),j+=3):Re==18\u0026\u0026(Ce=11+y(M,j,127),j+=7);Ce--;)ve[Qe++]=ke}}var Le=ve.subarray(0,pe),Ye=ve.subarray(pe);ne=C(Le),le=C(Ye),oe=p(Le,ne),ie=p(Ye,le)}else B(1);if(j\u003ege){U\u0026\u0026B(0);break}}O\u0026\u0026W(J+131072);for(var tt=(1\u003c\u003cne)-1,At=(1\u003c\u003cle)-1,at=j;;at=j){var nt=(ke=oe[x(M,j)\u0026tt])\u003e\u003e\u003e4;if((j+=15\u0026ke)\u003ege){U\u0026\u0026B(0);break}if(ke||B(2),nt\u003c256)k[J++]=nt;else{if(nt==256){at=j,oe=null;break}var gt=nt-254;if(nt\u003e264){var bt=i[Qe=nt-257];gt=y(M,j,(1\u003c\u003cbt)-1)+c[Qe],j+=bt}var Ct=ie[x(M,j)\u0026At],Dt=Ct\u003e\u003e\u003e4;if(Ct||B(3),j+=15\u0026Ct,Ye=u[Dt],Dt\u003e3\u0026\u0026(bt=r[Dt],Ye+=x(M,j)\u0026(1\u003c\u003cbt)-1,j+=bt),j\u003ege){U\u0026\u0026B(0);break}O\u0026\u0026W(J+131072);for(var kt=J+gt;J\u003ckt;J+=4)k[J]=k[J-Ye],k[J+1]=k[J+1-Ye],k[J+2]=k[J+2-Ye],k[J+3]=k[J+3-Ye];J=kt}}R.l=oe,R.p=at,R.b=J,oe\u0026\u0026(te=1,R.m=ne,R.d=ie,R.n=le)}while(!te);return J==k.length?k:(function(it,Yt,pn){(pn==null||pn\u003eit.length)\u0026\u0026(pn=it.length);var be=new(it instanceof n?n:it instanceof o?o:e)(pn-Yt);return be.set(it.subarray(Yt,pn)),be})(k,0,J)},Q=new e(0),w=typeof TextDecoder\u003c\"u\"\u0026\u0026new TextDecoder;try{w.decode(Q,{stream:!0})}catch{}return t.convert_streams=function(M){var k=new DataView(M),R=0;function F(){var pe=k.getUint16(R);return R+=2,pe}function O(){var pe=k.getUint32(R);return R+=4,pe}function U(pe){ue.setUint16(fe,pe),fe+=2}function Y(pe){ue.setUint32(fe,pe),fe+=4}for(var W={signature:O(),flavor:O(),length:O(),numTables:F(),reserved:F(),totalSfntSize:O(),majorVersion:F(),minorVersion:F(),metaOffset:O(),metaLength:O(),metaOrigLength:O(),privOffset:O(),privLength:O()},te=0;Math.pow(2,te)\u003c=W.numTables;)te++;te--;for(var j=16*Math.pow(2,te),J=16*W.numTables-j,oe=12,ie=[],ne=0;ne\u003cW.numTables;ne++)ie.push({tag:O(),offset:O(),compLength:O(),origLength:O(),origChecksum:O()}),oe+=16;var le,ge=new Uint8Array(12+16*ie.length+ie.reduce((function(pe,ye){return pe+ye.origLength+4}),0)),_e=ge.buffer,ue=new DataView(_e),fe=0;return Y(W.flavor),U(W.numTables),U(j),U(te),U(J),ie.forEach((function(pe){Y(pe.tag),Y(pe.origChecksum),Y(oe),Y(pe.origLength),pe.outOffset=oe,(oe+=pe.origLength)%4!=0\u0026\u0026(oe+=4-oe%4)})),ie.forEach((function(pe){var ye,Me=M.slice(pe.offset,pe.offset+pe.compLength);if(pe.compLength!=pe.origLength){var ve=new Uint8Array(pe.origLength);ye=new Uint8Array(Me,2),S(ye,ve)}else ve=new Uint8Array(Me);ge.set(ve,pe.outOffset);var he=0;(oe=pe.outOffset+pe.origLength)%4!=0\u0026\u0026(he=4-oe%4),ge.set(new Uint8Array(he).buffer,pe.outOffset+pe.origLength),le=oe+he})),_e.slice(0,le)},Object.defineProperty(t,\"__esModule\",{value:!0}),t})({}).convert_streams}function Voi(t,e){const n={M:2,L:2,Q:4,C:6,Z:0},o={C:\"18g,ca,368,1kz\",D:\"17k,6,2,2+4,5+c,2+6,2+1,10+1,9+f,j+11,2+1,a,2,2+1,15+2,3,j+2,6+3,2+8,2,2,2+1,w+a,4+e,3+3,2,3+2,3+5,23+w,2f+4,3,2+9,2,b,2+3,3,1k+9,6+1,3+1,2+2,2+d,30g,p+y,1,1+1g,f+x,2,sd2+1d,jf3+4,f+3,2+4,2+2,b+3,42,2,4+2,2+1,2,3,t+1,9f+w,2,el+2,2+g,d+2,2l,2+1,5,3+1,2+1,2,3,6,16wm+1v\",R:\"17m+3,2,2,6+3,m,15+2,2+2,h+h,13,3+8,2,2,3+1,2,p+1,x,5+4,5,a,2,2,3,u,c+2,g+1,5,2+1,4+1,5j,6+1,2,b,2+2,f,2+1,1s+2,2,3+1,7,1ez0,2,2+1,4+4,b,4,3,b,42,2+2,4,3,2+1,2,o+3,ae,ep,x,2o+2,3+1,3,5+1,6\",L:\"x9u,jff,a,fd,jv\",T:\"4t,gj+33,7o+4,1+1,7c+18,2,2+1,2+1,2,21+a,2,1b+k,h,2u+6,3+5,3+1,2+3,y,2,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,3,7,6+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+d,1,1+1,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,ek,3+1,r+4,1e+4,6+5,2p+c,1+3,1,1+2,1+b,2db+2,3y,2p+v,ff+3,30+1,n9x,1+2,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,5s,6y+2,ea,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+9,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2,2b+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,470+8,at4+4,1o+6,t5,1s+3,2a,f5l+1,2+3,43o+2,a+7,1+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,1,gzau,v+2n,3l+6n\"},i=1,r=2,s=4,a=8,A=16,c=32;let l;function u(E){if(!l){const B={R:r,L:i,D:s,C:A,U:c,T:a};l=new Map;for(let S in o){let Q=0;o[S].split(\",\").forEach(w=\u003e{let[M,k]=w.split(\"+\");M=parseInt(M,36),k=k?parseInt(k,36):0,l.set(Q+=M,B[S]);for(let R=k;R--;)l.set(++Q,B[S])})}}return l.get(E)||c}const g=1,h=2,d=3,p=4,m=[null,\"isol\",\"init\",\"fina\",\"medi\"];function _(E){const B=new Uint8Array(E.length);let S=c,Q=g,w=-1;for(let M=0;M\u003cE.length;M++){const k=E.codePointAt(M);let R=u(k)|0,F=g;R\u0026a||(S\u0026(i|s|A)?R\u0026(r|s|A)?(F=d,(Q===g||Q===d)\u0026\u0026B[w]++):R\u0026(i|c)\u0026\u0026(Q===h||Q===p)\u0026\u0026B[w]--:S\u0026(r|c)\u0026\u0026(Q===h||Q===p)\u0026\u0026B[w]--,Q=B[M]=F,S=R,w=M,k\u003e65535\u0026\u0026M++)}return B}function f(E,B){const S=[];for(let w=0;w\u003cB.length;w++){const M=B.codePointAt(w);M\u003e65535\u0026\u0026w++,S.push(t.U.codeToGlyph(E,M))}const Q=E.GSUB;if(Q){const{lookupList:w,featureList:M}=Q;let k;const R=/^(rlig|liga|mset|isol|init|fina|medi|half|pres|blws|ccmp)$/,F=[];M.forEach(O=\u003e{if(R.test(O.tag))for(let U=0;U\u003cO.tab.length;U++){if(F[O.tab[U]])continue;F[O.tab[U]]=!0;const Y=w[O.tab[U]],W=/^(isol|init|fina|medi)$/.test(O.tag);W\u0026\u0026!k\u0026\u0026(k=_(B));for(let te=0;te\u003cS.length;te++)(!k||!W||m[k[te]]===O.tag)\u0026\u0026t.U._applySubs(S,te,Y,w)}})}return S}function I(E,B){const S=new Int16Array(B.length*3);let Q=0;for(;Q\u003cB.length;Q++){const R=B[Q];if(R===-1)continue;S[Q*3+2]=E.hmtx.aWidth[R];const F=E.GPOS;if(F){const O=F.lookupList;for(let U=0;U\u003cO.length;U++){const Y=O[U];for(let W=0;W\u003cY.tabs.length;W++){const te=Y.tabs[W];if(Y.ltype===1){if(t._lctf.coverageIndex(te.coverage,R)!==-1\u0026\u0026te.pos){k(te.pos,Q);break}}else if(Y.ltype===2){let j=null,J=w();if(J!==-1){const oe=t._lctf.coverageIndex(te.coverage,B[J]);if(oe!==-1){if(te.fmt===1){const ie=te.pairsets[oe];for(let ne=0;ne\u003cie.length;ne++)ie[ne].gid2===R\u0026\u0026(j=ie[ne])}else if(te.fmt===2){const ie=t.U._getGlyphClass(B[J],te.classDef1),ne=t.U._getGlyphClass(R,te.classDef2);j=te.matrix[ie][ne]}if(j){j.val1\u0026\u0026k(j.val1,J),j.val2\u0026\u0026k(j.val2,Q);break}}}}else if(Y.ltype===4){const j=t._lctf.coverageIndex(te.markCoverage,R);if(j!==-1){const J=w(M),oe=J===-1?-1:t._lctf.coverageIndex(te.baseCoverage,B[J]);if(oe!==-1){const ie=te.markArray[j],ne=te.baseArray[oe][ie.markClass];S[Q*3]=ne.x-ie.x+S[J*3]-S[J*3+2],S[Q*3+1]=ne.y-ie.y+S[J*3+1];break}}}else if(Y.ltype===6){const j=t._lctf.coverageIndex(te.mark1Coverage,R);if(j!==-1){const J=w();if(J!==-1){const oe=B[J];if(C(E,oe)===3){const ie=t._lctf.coverageIndex(te.mark2Coverage,oe);if(ie!==-1){const ne=te.mark1Array[j],le=te.mark2Array[ie][ne.markClass];S[Q*3]=le.x-ne.x+S[J*3]-S[J*3+2],S[Q*3+1]=le.y-ne.y+S[J*3+1];break}}}}}}}}else if(E.kern\u0026\u0026!E.cff){const O=w();if(O!==-1){const U=E.kern.glyph1.indexOf(B[O]);if(U!==-1){const Y=E.kern.rval[U].glyph2.indexOf(R);Y!==-1\u0026\u0026(S[O*3+2]+=E.kern.rval[U].vals[Y])}}}}return S;function w(R){for(let F=Q-1;F\u003e=0;F--)if(B[F]!==-1\u0026\u0026(!R||R(B[F])))return F;return-1}function M(R){return C(E,R)===1}function k(R,F){for(let O=0;O\u003c3;O++)S[F*3+O]+=R[O]||0}}function C(E,B){const S=E.GDEF\u0026\u0026E.GDEF.glyphClassDef;return S?t.U._getGlyphClass(B,S):0}function y(...E){for(let B=0;B\u003cE.length;B++)if(typeof E[B]==\"number\")return E[B]}function x(E){const B=Object.create(null),S=E[\"OS/2\"],Q=E.hhea,w=E.head.unitsPerEm,M=y(S\u0026\u0026S.sTypoAscender,Q\u0026\u0026Q.ascender,w),k={unitsPerEm:w,ascender:M,descender:y(S\u0026\u0026S.sTypoDescender,Q\u0026\u0026Q.descender,0),capHeight:y(S\u0026\u0026S.sCapHeight,M),xHeight:y(S\u0026\u0026S.sxHeight,M),lineGap:y(S\u0026\u0026S.sTypoLineGap,Q\u0026\u0026Q.lineGap),supportsCodePoint(R){return t.U.codeToGlyph(E,R)\u003e0},forEachGlyph(R,F,O,U){let Y=0;const W=1/k.unitsPerEm*F,te=f(E,R);let j=0;const J=I(E,te);return te.forEach((oe,ie)=\u003e{if(oe!==-1){let ne=B[oe];if(!ne){const{cmds:le,crds:ge}=t.U.glyphToPath(E,oe);let _e=\"\",ue=0;for(let ve=0,he=le.length;ve\u003che;ve++){const Qe=n[le[ve]];_e+=le[ve];for(let Pe=1;Pe\u003c=Qe;Pe++)_e+=(Pe\u003e1?\",\":\"\")+ge[ue++]}let fe,pe,ye,Me;if(ge.length){fe=pe=1/0,ye=Me=-1/0;for(let ve=0,he=ge.length;ve\u003che;ve+=2){let Qe=ge[ve],Pe=ge[ve+1];Qe\u003cfe\u0026\u0026(fe=Qe),Pe\u003cpe\u0026\u0026(pe=Pe),Qe\u003eye\u0026\u0026(ye=Qe),Pe\u003eMe\u0026\u0026(Me=Pe)}}else fe=ye=pe=Me=0;ne=B[oe]={index:oe,advanceWidth:E.hmtx.aWidth[oe],xMin:fe,yMin:pe,xMax:ye,yMax:Me,path:_e}}U.call(null,ne,Y+J[ie*3]*W,J[ie*3+1]*W,j),Y+=J[ie*3+2]*W,O\u0026\u0026(Y+=O*F)}j+=R.codePointAt(j)\u003e65535?2:1}),Y}};return k}return function(B){const S=new Uint8Array(B,0,4),Q=t._bin.readASCII(S,0,4);if(Q===\"wOFF\")B=e(B);else if(Q===\"wOF2\")throw new Error(\"woff2 fonts not supported\");return x(t.parse(B)[0])}}const zoi=yY({name:\"Typr Font Parser\",dependencies:[Uoi,Koi,Voi],init(t,e,n){const o=t(),i=e();return n(o,i)}});function Joi(){return(function(t){var e=function(){this.buckets=new Map};e.prototype.add=function(I){var C=I\u003e\u003e5;this.buckets.set(C,(this.buckets.get(C)||0)|1\u003c\u003c(31\u0026I))},e.prototype.has=function(I){var C=this.buckets.get(I\u003e\u003e5);return C!==void 0\u0026\u0026(C\u00261\u003c\u003c(31\u0026I))!=0},e.prototype.serialize=function(){var I=[];return this.buckets.forEach((function(C,y){I.push((+y).toString(36)+\":\"+C.toString(36))})),I.join(\",\")},e.prototype.deserialize=function(I){var C=this;this.buckets.clear(),I.split(\",\").forEach((function(y){var x=y.split(\":\");C.buckets.set(parseInt(x[0],36),parseInt(x[1],36))}))};var n=Math.pow(2,8),o=n-1,i=~o;function r(I){var C=(function(x){return x\u0026i})(I).toString(16),y=(function(x){return(x\u0026i)+n-1})(I).toString(16);return\"codepoint-index/plane\"+(I\u003e\u003e16)+\"/\"+C+\"-\"+y+\".json\"}function s(I,C){var y=I\u0026o,x=C.codePointAt(y/6|0);return((x=(x||48)-48)\u00261\u003c\u003cy%6)!=0}function a(I,C){var y;(y=I,y.replace(/U\\+/gi,\"\").replace(/^,+|,+$/g,\"\").split(/,+/).map((function(x){return x.split(\"-\").map((function(E){return parseInt(E.trim(),16)}))}))).forEach((function(x){var E=x[0],B=x[1];B===void 0\u0026\u0026(B=E),C(E,B)}))}function A(I,C){a(I,(function(y,x){for(var E=y;E\u003c=x;E++)C(E)}))}var c={},l={},u=new WeakMap,g=\"https://cdn.jsdelivr.net/gh/lojjic/unicode-font-resolver@v1.0.1/packages/data\";function h(I){var C=u.get(I);return C||(C=new e,A(I.ranges,(function(y){return C.add(y)})),u.set(I,C)),C}var d,p=new Map;function m(I,C,y){return I[C]?C:I[y]?y:(function(x){for(var E in x)return E})(I)}function _(I,C){var y=C;if(!I.includes(y)){y=1/0;for(var x=0;x\u003cI.length;x++)Math.abs(I[x]-C)\u003cMath.abs(y-C)\u0026\u0026(y=I[x])}return y}function f(I){return d||(d=new Set,A(\"9-D,20,85,A0,1680,2000-200A,2028-202F,205F,3000\",(function(C){d.add(C)}))),d.has(I)}return t.CodePointSet=e,t.clearCache=function(){c={},l={}},t.getFontsForString=function(I,C){C===void 0\u0026\u0026(C={});var y,x=C.lang;x===void 0\u0026\u0026(x=new RegExp(\"\\\\p{Script=Hangul}\",\"u\").test(y=I)?\"ko\":new RegExp(\"\\\\p{Script=Hiragana}|\\\\p{Script=Katakana}\",\"u\").test(y)?\"ja\":\"en\");var E=C.category;E===void 0\u0026\u0026(E=\"sans-serif\");var B=C.style;B===void 0\u0026\u0026(B=\"normal\");var S=C.weight;S===void 0\u0026\u0026(S=400);var Q=(C.dataUrl||g).replace(/\\/$/g,\"\"),w=new Map,M=new Uint8Array(I.length),k={},R={},F=new Array(I.length),O=new Map,U=!1;function Y(j){var J=p.get(j);return J||(J=fetch(Q+\"/\"+j).then((function(oe){if(!oe.ok)throw new Error(oe.statusText);return oe.json().then((function(ie){if(!Array.isArray(ie)||ie[0]!==1)throw new Error(\"Incorrect schema version; need 1, got \"+ie[0]);return ie[1]}))})).catch((function(oe){if(Q!==g)return U||(console.error('unicode-font-resolver: Failed loading from dataUrl \"'+Q+'\", trying default CDN. '+oe.message),U=!0),Q=g,p.delete(j),Y(j);throw oe})),p.set(j,J)),J}for(var W=function(j){var J=I.codePointAt(j),oe=r(J);F[j]=oe,c[oe]||O.has(oe)||O.set(oe,Y(oe).then((function(ie){c[oe]=ie}))),J\u003e65535\u0026\u0026(j++,te=j)},te=0;te\u003cI.length;te++)W(te);return Promise.all(O.values()).then((function(){O.clear();for(var j=function(oe){var ie=I.codePointAt(oe),ne=null,le=c[F[oe]],ge=void 0;for(var _e in le){var ue=R[_e];if(ue===void 0\u0026\u0026(ue=R[_e]=new RegExp(_e).test(x||\"en\")),ue){for(var fe in ge=_e,le[_e])if(s(ie,le[_e][fe])){ne=fe;break}break}}if(!ne){e:for(var pe in le)if(pe!==ge){for(var ye in le[pe])if(s(ie,le[pe][ye])){ne=ye;break e}}}ne||(console.debug(\"No font coverage for U+\"+ie.toString(16)),ne=\"latin\"),F[oe]=ne,l[ne]||O.has(ne)||O.set(ne,Y(\"font-meta/\"+ne+\".json\").then((function(Me){l[ne]=Me}))),ie\u003e65535\u0026\u0026(oe++,J=oe)},J=0;J\u003cI.length;J++)j(J);return Promise.all(O.values())})).then((function(){for(var j,J=null,oe=0;oe\u003cI.length;oe++){var ie=I.codePointAt(oe);if(J\u0026\u0026(f(ie)||h(J).has(ie)))M[oe]=M[oe-1];else{J=l[F[oe]];var ne=k[J.id];if(!ne){var le=J.typeforms,ge=m(le,E,\"sans-serif\"),_e=m(le[ge],B,\"normal\"),ue=_((j=le[ge])===null||j===void 0?void 0:j[_e],S);ne=k[J.id]=Q+\"/font-files/\"+J.id+\"/\"+ge+\".\"+_e+\".\"+ue+\".woff\"}var fe=w.get(ne);fe==null\u0026\u0026(fe=w.size,w.set(ne,fe)),M[oe]=fe}ie\u003e65535\u0026\u0026(oe++,M[oe]=M[oe-1])}return{fontUrls:Array.from(w.keys()),chars:M}}))},Object.defineProperty(t,\"__esModule\",{value:!0}),t})({})}function Woi(t,e){const n=Object.create(null),o=Object.create(null);function i(s,a){const A=c=\u003e{console.error(`Failure loading font ${s}`,c)};try{const c=new XMLHttpRequest;c.open(\"get\",s,!0),c.responseType=\"arraybuffer\",c.onload=function(){if(c.status\u003e=400)A(new Error(c.statusText));else if(c.status\u003e0)try{const l=t(c.response);l.src=s,a(l)}catch(l){A(l)}},c.onerror=A,c.send()}catch(c){A(c)}}function r(s,a){let A=n[s];A?a(A):o[s]?o[s].push(a):(o[s]=[a],i(s,c=\u003e{c.src=s,n[s]=c,o[s].forEach(l=\u003el(c)),delete o[s]}))}return function(s,a,{lang:A,fonts:c=[],style:l=\"normal\",weight:u=\"normal\",unicodeFontsURL:g}={}){const h=new Uint8Array(s.length),d=[];s.length||f();const p=new Map,m=[];if(l!==\"italic\"\u0026\u0026(l=\"normal\"),typeof u!=\"number\"\u0026\u0026(u=u===\"bold\"?700:400),c\u0026\u0026!Array.isArray(c)\u0026\u0026(c=[c]),c=c.slice().filter(C=\u003e!C.lang||C.lang.test(A)).reverse(),c.length){let E=0;(function B(S=0){for(let Q=S,w=s.length;Q\u003cw;Q++){const M=s.codePointAt(Q);if(E===1\u0026\u0026d[h[Q-1]].supportsCodePoint(M)||Q\u003e0\u0026\u0026/\\s/.test(s[Q]))h[Q]=h[Q-1],E===2\u0026\u0026(m[m.length-1][1]=Q);else for(let k=h[Q],R=c.length;k\u003c=R;k++)if(k===R){const F=E===2?m[m.length-1]:m[m.length]=[Q,Q];F[1]=Q,E=2}else{h[Q]=k;const{src:F,unicodeRange:O}=c[k];if(!O||I(M,O)){const U=n[F];if(!U){r(F,()=\u003e{B(Q)});return}if(U.supportsCodePoint(M)){let Y=p.get(U);typeof Y!=\"number\"\u0026\u0026(Y=d.length,d.push(U),p.set(U,Y)),h[Q]=Y,E=1;break}}}M\u003e65535\u0026\u0026Q+1\u003cw\u0026\u0026(h[Q+1]=h[Q],Q++,E===2\u0026\u0026(m[m.length-1][1]=Q))}_()})()}else m.push([0,s.length-1]),_();function _(){if(m.length){const C=m.map(y=\u003es.substring(y[0],y[1]+1)).join(`\n`);e.getFontsForString(C,{lang:A||void 0,style:l,weight:u,dataUrl:g}).then(({fontUrls:y,chars:x})=\u003e{const E=d.length;let B=0;m.forEach(Q=\u003e{for(let w=0,M=Q[1]-Q[0];w\u003c=M;w++)h[Q[0]+w]=x[B++]+E;B++});let S=0;y.forEach((Q,w)=\u003e{r(Q,M=\u003e{d[w+E]=M,++S===y.length\u0026\u0026f()})})})}else f()}function f(){a({chars:h,fonts:d})}function I(C,y){for(let x=0;x\u003cy.length;x++){const[E,B=E]=y[x];if(E\u003c=C\u0026\u0026C\u003c=B)return!0}return!1}}}const joi=yY({name:\"FontResolver\",dependencies:[Woi,zoi,Joi],init(t,e,n){return t(e,n())}});function $oi(t,e){const o=/[\\u00AD\\u034F\\u061C\\u115F-\\u1160\\u17B4-\\u17B5\\u180B-\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u206F\\u3164\\uFE00-\\uFE0F\\uFEFF\\uFFA0\\uFFF0-\\uFFF8]/,i=\"[^\\\\S\\\\u00A0]\",r=new RegExp(`${i}|[\\\\-\\\\u007C\\\\u00AD\\\\u2010\\\\u2012-\\\\u2014\\\\u2027\\\\u2056\\\\u2E17\\\\u2E40]`);function s({text:d,lang:p,fonts:m,style:_,weight:f,preResolvedFonts:I,unicodeFontsURL:C},y){const x=({chars:E,fonts:B})=\u003e{let S,Q;const w=[];for(let M=0;M\u003cE.length;M++)E[M]!==Q?(Q=E[M],w.push(S={start:M,end:M,fontObj:B[E[M]]})):S.end=M;y(w)};I?x(I):t(d,x,{lang:p,fonts:m,style:_,weight:f,unicodeFontsURL:C})}function a({text:d=\"\",font:p,lang:m,sdfGlyphSize:_=64,fontSize:f=400,fontWeight:I=1,fontStyle:C=\"normal\",letterSpacing:y=0,lineHeight:x=\"normal\",maxWidth:E=1/0,direction:B,textAlign:S=\"left\",textIndent:Q=0,whiteSpace:w=\"normal\",overflowWrap:M=\"normal\",anchorX:k=0,anchorY:R=0,metricsOnly:F=!1,unicodeFontsURL:O,preResolvedFonts:U=null,includeCaretPositions:Y=!1,chunkedBoundsSize:W=8192,colorRanges:te=null},j){const J=u(),oe={fontLoad:0,typesetting:0};d.indexOf(\"\\r\")\u003e-1\u0026\u0026(console.info(\"Typesetter: got text with \\\\r chars; normalizing to \\\\n\"),d=d.replace(/\\r\\n/g,`\n`).replace(/\\r/g,`\n`)),f=+f,y=+y,E=+E,x=x||\"normal\",Q=+Q,s({text:d,lang:m,style:C,weight:I,fonts:typeof p==\"string\"?[{src:p}]:p,unicodeFontsURL:O,preResolvedFonts:U},ie=\u003e{oe.fontLoad=u()-J;const ne=isFinite(E);let le=null,ge=null,_e=null,ue=null,fe=null,pe=null,ye=null,Me=null,ve=0,he=0,Qe=w!==\"nowrap\";const Pe=new Map,we=u();let Te=Q,Re=0,Ee=new g;const ke=[Ee];ie.forEach(At=\u003e{const{fontObj:at}=At,{ascender:nt,descender:gt,unitsPerEm:bt,lineGap:Ct,capHeight:Dt,xHeight:kt}=at;let it=Pe.get(at);if(!it){const It=f/bt,Bt=x===\"normal\"?(nt-gt+Ct)*It:x*f,mt=(Bt-(nt-gt)*It)/2,st=Math.min(Bt,(nt-gt)*It),xt=(nt+gt)/2*It+st/2;it={index:Pe.size,src:at.src,fontObj:at,fontSizeMult:It,unitsPerEm:bt,ascender:nt*It,descender:gt*It,capHeight:Dt*It,xHeight:kt*It,lineHeight:Bt,baseline:-mt-nt*It,caretTop:xt,caretBottom:xt-st},Pe.set(at,it)}const{fontSizeMult:Yt}=it,pn=d.slice(At.start,At.end+1);let be,et;at.forEachGlyph(pn,f,y,(It,Bt,mt,st)=\u003e{Bt+=Re,st+=At.start,be=Bt,et=It;const xt=d.charAt(st),Xe=It.advanceWidth*Yt,Ze=Ee.count;let dt;if(\"isEmpty\"in It||(It.isWhitespace=!!xt\u0026\u0026new RegExp(i).test(xt),It.canBreakAfter=!!xt\u0026\u0026r.test(xt),It.isEmpty=It.xMin===It.xMax||It.yMin===It.yMax||o.test(xt)),!It.isWhitespace\u0026\u0026!It.isEmpty\u0026\u0026he++,Qe\u0026\u0026ne\u0026\u0026!It.isWhitespace\u0026\u0026Bt+Xe+Te\u003eE\u0026\u0026Ze){if(Ee.glyphAt(Ze-1).glyphObj.canBreakAfter)dt=new g,Te=-Bt;else for(let Wt=Ze;Wt--;)if(Wt===0\u0026\u0026M===\"break-word\"){dt=new g,Te=-Bt;break}else if(Ee.glyphAt(Wt).glyphObj.canBreakAfter){dt=Ee.splitAt(Wt+1);const Xt=dt.glyphAt(0).x;Te-=Xt;for(let Jt=dt.count;Jt--;)dt.glyphAt(Jt).x-=Xt;break}dt\u0026\u0026(Ee.isSoftWrapped=!0,Ee=dt,ke.push(Ee),ve=E)}let Ut=Ee.glyphAt(Ee.count);Ut.glyphObj=It,Ut.x=Bt+Te,Ut.y=mt,Ut.width=Xe,Ut.charIndex=st,Ut.fontData=it,xt===`\n`\u0026\u0026(Ee=new g,ke.push(Ee),Te=-(Bt+Xe+y*f)+Q)}),Re=be+et.advanceWidth*Yt+y*f});let Ce=0;ke.forEach(At=\u003e{let at=!0;for(let nt=At.count;nt--;){const gt=At.glyphAt(nt);at\u0026\u0026!gt.glyphObj.isWhitespace\u0026\u0026(At.width=gt.x+gt.width,At.width\u003eve\u0026\u0026(ve=At.width),at=!1);let{lineHeight:bt,capHeight:Ct,xHeight:Dt,baseline:kt}=gt.fontData;bt\u003eAt.lineHeight\u0026\u0026(At.lineHeight=bt);const it=kt-At.baseline;it\u003c0\u0026\u0026(At.baseline+=it,At.cap+=it,At.ex+=it),At.cap=Math.max(At.cap,At.baseline+Ct),At.ex=Math.max(At.ex,At.baseline+Dt)}At.baseline-=Ce,At.cap-=Ce,At.ex-=Ce,Ce+=At.lineHeight});let Le=0,Ye=0;if(k\u0026\u0026(typeof k==\"number\"?Le=-k:typeof k==\"string\"\u0026\u0026(Le=-ve*(k===\"left\"?0:k===\"center\"?.5:k===\"right\"?1:c(k)))),R\u0026\u0026(typeof R==\"number\"?Ye=-R:typeof R==\"string\"\u0026\u0026(Ye=R===\"top\"?0:R===\"top-baseline\"?-ke[0].baseline:R===\"top-cap\"?-ke[0].cap:R===\"top-ex\"?-ke[0].ex:R===\"middle\"?Ce/2:R===\"bottom\"?Ce:R===\"bottom-baseline\"?-ke[ke.length-1].baseline:c(R)*Ce)),!F){const At=e.getEmbeddingLevels(d,B);le=new Uint16Array(he),ge=new Uint8Array(he),_e=new Float32Array(he*2),ue={},ye=[1/0,1/0,-1/0,-1/0],Me=[],Y\u0026\u0026(pe=new Float32Array(d.length*4)),te\u0026\u0026(fe=new Uint8Array(he*3));let at=0,nt=-1,gt=-1,bt,Ct;if(ke.forEach((Dt,kt)=\u003e{let{count:it,width:Yt}=Dt;if(it\u003e0){let pn=0;for(let st=it;st--\u0026\u0026Dt.glyphAt(st).glyphObj.isWhitespace;)pn++;let be=0,et=0;if(S===\"center\")be=(ve-Yt)/2;else if(S===\"right\")be=ve-Yt;else if(S===\"justify\"\u0026\u0026Dt.isSoftWrapped){let st=0;for(let xt=it-pn;xt--;)Dt.glyphAt(xt).glyphObj.isWhitespace\u0026\u0026st++;et=(ve-Yt)/st}if(et||be){let st=0;for(let xt=0;xt\u003cit;xt++){let Xe=Dt.glyphAt(xt);const Ze=Xe.glyphObj;Xe.x+=be+st,et!==0\u0026\u0026Ze.isWhitespace\u0026\u0026xt\u003cit-pn\u0026\u0026(st+=et,Xe.width+=et)}}const It=e.getReorderSegments(d,At,Dt.glyphAt(0).charIndex,Dt.glyphAt(Dt.count-1).charIndex);for(let st=0;st\u003cIt.length;st++){const[xt,Xe]=It[st];let Ze=1/0,dt=-1/0;for(let Ut=0;Ut\u003cit;Ut++)if(Dt.glyphAt(Ut).charIndex\u003e=xt){let Wt=Ut,Xt=Ut;for(;Xt\u003cit;Xt++){let Jt=Dt.glyphAt(Xt);if(Jt.charIndex\u003eXe)break;Xt\u003cit-pn\u0026\u0026(Ze=Math.min(Ze,Jt.x),dt=Math.max(dt,Jt.x+Jt.width))}for(let Jt=Wt;Jt\u003cXt;Jt++){const yn=Dt.glyphAt(Jt);yn.x=dt-(yn.x+yn.width-Ze)}break}}let Bt;const mt=st=\u003eBt=st;for(let st=0;st\u003cit;st++){const xt=Dt.glyphAt(st);Bt=xt.glyphObj;const Xe=Bt.index,Ze=At.levels[xt.charIndex]\u00261;if(Ze){const dt=e.getMirroredCharacter(d[xt.charIndex]);dt\u0026\u0026xt.fontData.fontObj.forEachGlyph(dt,0,0,mt)}if(Y){const{charIndex:dt,fontData:Ut}=xt,Wt=xt.x+Le,Xt=xt.x+xt.width+Le;pe[dt*4]=Ze?Xt:Wt,pe[dt*4+1]=Ze?Wt:Xt,pe[dt*4+2]=Dt.baseline+Ut.caretBottom+Ye,pe[dt*4+3]=Dt.baseline+Ut.caretTop+Ye;const Jt=dt-nt;Jt\u003e1\u0026\u0026l(pe,nt,Jt),nt=dt}if(te){const{charIndex:dt}=xt;for(;dt\u003egt;)gt++,te.hasOwnProperty(gt)\u0026\u0026(Ct=te[gt])}if(!Bt.isWhitespace\u0026\u0026!Bt.isEmpty){const dt=at++,{fontSizeMult:Ut,src:Wt,index:Xt}=xt.fontData,Jt=ue[Wt]||(ue[Wt]={});Jt[Xe]||(Jt[Xe]={path:Bt.path,pathBounds:[Bt.xMin,Bt.yMin,Bt.xMax,Bt.yMax]});const yn=xt.x+Le,An=xt.y+Dt.baseline+Ye;_e[dt*2]=yn,_e[dt*2+1]=An;const kn=yn+Bt.xMin*Ut,$n=An+Bt.yMin*Ut,ht=yn+Bt.xMax*Ut,Kt=An+Bt.yMax*Ut;kn\u003cye[0]\u0026\u0026(ye[0]=kn),$n\u003cye[1]\u0026\u0026(ye[1]=$n),ht\u003eye[2]\u0026\u0026(ye[2]=ht),Kt\u003eye[3]\u0026\u0026(ye[3]=Kt),dt%W===0\u0026\u0026(bt={start:dt,end:dt,rect:[1/0,1/0,-1/0,-1/0]},Me.push(bt)),bt.end++;const rn=bt.rect;if(kn\u003crn[0]\u0026\u0026(rn[0]=kn),$n\u003crn[1]\u0026\u0026(rn[1]=$n),ht\u003ern[2]\u0026\u0026(rn[2]=ht),Kt\u003ern[3]\u0026\u0026(rn[3]=Kt),le[dt]=Xe,ge[dt]=Xt,te){const Lt=dt*3;fe[Lt]=Ct\u003e\u003e16\u0026255,fe[Lt+1]=Ct\u003e\u003e8\u0026255,fe[Lt+2]=Ct\u0026255}}}}}),pe){const Dt=d.length-nt;Dt\u003e1\u0026\u0026l(pe,nt,Dt)}}const tt=[];Pe.forEach(({index:At,src:at,unitsPerEm:nt,ascender:gt,descender:bt,lineHeight:Ct,capHeight:Dt,xHeight:kt})=\u003e{tt[At]={src:at,unitsPerEm:nt,ascender:gt,descender:bt,lineHeight:Ct,capHeight:Dt,xHeight:kt}}),oe.typesetting=u()-we,j({glyphIds:le,glyphFontIndices:ge,glyphPositions:_e,glyphData:ue,fontData:tt,caretPositions:pe,glyphColors:fe,chunkedBounds:Me,fontSize:f,topBaseline:Ye+ke[0].baseline,blockBounds:[Le,Ye-Ce,Le+ve,Ye],visibleBounds:ye,timings:oe})})}function A(d,p){a({...d,metricsOnly:!0},m=\u003e{const[_,f,I,C]=m.blockBounds;p({width:I-_,height:C-f})})}function c(d){let p=d.match(/^([\\d.]+)%$/),m=p?parseFloat(p[1]):NaN;return isNaN(m)?0:m/100}function l(d,p,m){const _=d[p*4],f=d[p*4+1],I=d[p*4+2],C=d[p*4+3],y=(f-_)/m;for(let x=0;x\u003cm;x++){const E=(p+x)*4;d[E]=_+y*x,d[E+1]=_+y*(x+1),d[E+2]=I,d[E+3]=C}}function u(){return(self.performance||Date).now()}function g(){this.data=[]}const h=[\"glyphObj\",\"x\",\"y\",\"width\",\"charIndex\",\"fontData\"];return g.prototype={width:0,lineHeight:0,baseline:0,cap:0,ex:0,isSoftWrapped:!1,get count(){return Math.ceil(this.data.length/h.length)},glyphAt(d){let p=g.flyweight;return p.data=this.data,p.index=d,p},splitAt(d){let p=new g;return p.data=this.data.splice(d*h.length),p}},g.flyweight=h.reduce((d,p,m,_)=\u003e(Object.defineProperty(d,p,{get(){return this.data[this.index*h.length+m]},set(f){this.data[this.index*h.length+m]=f}}),d),{data:null,index:0}),{typeset:a,measure:A}}const ZR=()=\u003e(self.performance||Date).now(),fhe=OJt();let zJt;function qoi(t,e,n,o,i,r,s,a,A,c,l=!0){return l?Zoi(t,e,n,o,i,r,s,a,A,c).then(null,u=\u003e(zJt||(console.warn(\"WebGL SDF generation failed, falling back to JS\",u),zJt=!0),jJt(t,e,n,o,i,r,s,a,A,c))):jJt(t,e,n,o,i,r,s,a,A,c)}const Ihe=[],Xoi=5;let Pke=0;function JJt(){const t=ZR();for(;Ihe.length\u0026\u0026ZR()-t\u003cXoi;)Ihe.shift()();Pke=Ihe.length?setTimeout(JJt,0):0}const Zoi=(...t)=\u003enew Promise((e,n)=\u003e{Ihe.push(()=\u003e{const o=ZR();try{fhe.webgl.generateIntoCanvas(...t),e({timing:ZR()-o})}catch(i){n(i)}}),Pke||(Pke=setTimeout(JJt,0))}),eii=4,tii=2e3,WJt={};let nii=0;function jJt(t,e,n,o,i,r,s,a,A,c){const l=\"TroikaTextSDFGenerator_JS_\"+nii++%eii;let u=WJt[l];return u||(u=WJt[l]={workerModule:yY({name:l,workerId:l,dependencies:[OJt,ZR],init(g,h){const d=g().javascript.generate;return function(...p){const m=h();return{textureData:d(...p),timing:h()-m}}},getTransferables(g){return[g.textureData.buffer]}}),requests:0,idleTimer:null}),u.requests++,clearTimeout(u.idleTimer),u.workerModule(t,e,n,o,i,r).then(({textureData:g,timing:h})=\u003e{const d=ZR(),p=new Uint8Array(g.length*4);for(let m=0;m\u003cg.length;m++)p[m*4+c]=g[m];return fhe.webglUtils.renderImageData(s,p,a,A,t,e,1\u003c\u003c3-c),h+=ZR()-d,--u.requests===0\u0026\u0026(u.idleTimer=setTimeout(()=\u003e{Noi(l)},tii)),{timing:h}})}function oii(t){t._warm||(fhe.webgl.isSupported(t),t._warm=!0)}const iii=fhe.webglUtils.resizeWebGLCanvasWithoutClearing,AX={unicodeFontsURL:null,sdfGlyphSize:64,sdfMargin:1/16,sdfExponent:9,textureWidth:2048},rii=new Vi;function xY(){return(self.performance||Date).now()}const $Jt=Object.create(null);function sii(t,e){t=Aii({},t);const n=xY(),o=[];if(t.font\u0026\u0026o.push({label:\"user\",src:cii(t.font)}),t.font=o,t.text=\"\"+t.text,t.sdfGlyphSize=t.sdfGlyphSize||AX.sdfGlyphSize,t.unicodeFontsURL=t.unicodeFontsURL||AX.unicodeFontsURL,t.colorRanges!=null){let g={};for(let h in t.colorRanges)if(t.colorRanges.hasOwnProperty(h)){let d=t.colorRanges[h];typeof d!=\"number\"\u0026\u0026(d=rii.set(d).getHex()),g[h]=d}t.colorRanges=g}Object.freeze(t);const{textureWidth:i,sdfExponent:r}=AX,{sdfGlyphSize:s}=t,a=i/s*4;let A=$Jt[s];if(!A){const g=document.createElement(\"canvas\");g.width=i,g.height=s*256/a,A=$Jt[s]={glyphCount:0,sdfGlyphSize:s,sdfCanvas:g,sdfTexture:new Hg(g,void 0,void 0,void 0,Fl,Fl),contextLost:!1,glyphsByFont:new Map},A.sdfTexture.generateMipmaps=!1,aii(A)}const{sdfTexture:c,sdfCanvas:l}=A;ZJt(t).then(g=\u003e{const{glyphIds:h,glyphFontIndices:d,fontData:p,glyphPositions:m,fontSize:_,timings:f}=g,I=[],C=new Float32Array(h.length*4);let y=0,x=0;const E=xY(),B=p.map(k=\u003e{let R=A.glyphsByFont.get(k.src);return R||A.glyphsByFont.set(k.src,R=new Map),R});h.forEach((k,R)=\u003e{const F=d[R],{src:O,unitsPerEm:U}=p[F];let Y=B[F].get(k);if(!Y){const{path:oe,pathBounds:ie}=g.glyphData[O][k],ne=Math.max(ie[2]-ie[0],ie[3]-ie[1])/s*(AX.sdfMargin*s+.5),le=A.glyphCount++,ge=[ie[0]-ne,ie[1]-ne,ie[2]+ne,ie[3]+ne];B[F].set(k,Y={path:oe,atlasIndex:le,sdfViewBox:ge}),I.push(Y)}const{sdfViewBox:W}=Y,te=m[x++],j=m[x++],J=_/U;C[y++]=te+W[0]*J,C[y++]=j+W[1]*J,C[y++]=te+W[2]*J,C[y++]=j+W[3]*J,h[R]=Y.atlasIndex}),f.quads=(f.quads||0)+(xY()-E);const S=xY();f.sdf={};const Q=l.height,w=Math.ceil(A.glyphCount/a),M=Math.pow(2,Math.ceil(Math.log2(w*s)));M\u003eQ\u0026\u0026(console.info(`Increasing SDF texture size ${Q}-\u003e${M}`),iii(l,i,M),c.dispose()),Promise.all(I.map(k=\u003eqJt(k,A,t.gpuAccelerateSDF).then(({timing:R})=\u003e{f.sdf[k.atlasIndex]=R}))).then(()=\u003e{I.length\u0026\u0026!A.contextLost\u0026\u0026(XJt(A),c.needsUpdate=!0),f.sdfTotal=xY()-S,f.total=xY()-n,e(Object.freeze({parameters:t,sdfTexture:c,sdfGlyphSize:s,sdfExponent:r,glyphBounds:C,glyphAtlasIndices:h,glyphColors:g.glyphColors,caretPositions:g.caretPositions,chunkedBounds:g.chunkedBounds,ascender:g.ascender,descender:g.descender,lineHeight:g.lineHeight,capHeight:g.capHeight,xHeight:g.xHeight,topBaseline:g.topBaseline,blockBounds:g.blockBounds,visibleBounds:g.visibleBounds,timings:g.timings}))})}),Promise.resolve().then(()=\u003e{A.contextLost||oii(l)})}function qJt({path:t,atlasIndex:e,sdfViewBox:n},{sdfGlyphSize:o,sdfCanvas:i,contextLost:r},s){if(r)return Promise.resolve({timing:-1});const{textureWidth:a,sdfExponent:A}=AX,c=Math.max(n[2]-n[0],n[3]-n[1]),l=Math.floor(e/4),u=l%(a/o)*o,g=Math.floor(l/(a/o))*o,h=e%4;return qoi(o,o,t,n,c,A,i,u,g,h,s)}function aii(t){const e=t.sdfCanvas;e.addEventListener(\"webglcontextlost\",n=\u003e{console.log(\"Context Lost\",n),n.preventDefault(),t.contextLost=!0}),e.addEventListener(\"webglcontextrestored\",n=\u003e{console.log(\"Context Restored\",n),t.contextLost=!1;const o=[];t.glyphsByFont.forEach(i=\u003e{i.forEach(r=\u003e{o.push(qJt(r,t,!0))})}),Promise.all(o).then(()=\u003e{XJt(t),t.sdfTexture.needsUpdate=!0})})}function Aii(t,e){for(let n in e)e.hasOwnProperty(n)\u0026\u0026(t[n]=e[n]);return t}let Che;function cii(t){return Che||(Che=typeof document\u003e\"u\"?{}:document.createElement(\"a\")),Che.href=t,Che.href}function XJt(t){if(typeof createImageBitmap!=\"function\"){console.info(\"Safari\u003c15: applying SDF canvas workaround\");const{sdfCanvas:e,sdfTexture:n}=t,{width:o,height:i}=e,r=t.sdfCanvas.getContext(\"webgl\");let s=n.image.data;(!s||s.length!==o*i*4)\u0026\u0026(s=new Uint8Array(o*i*4),n.image={width:o,height:i,data:s},n.flipY=!1,n.isDataTexture=!0),r.readPixels(0,0,o,i,r.RGBA,r.UNSIGNED_BYTE,s)}}const ZJt=yY({name:\"Typesetter\",dependencies:[yY({name:\"Typesetter\",dependencies:[$oi,joi,Toi],init(t,e,n){return t(e,n())}})],init(t){return function(e){return new Promise(n=\u003e{t.typeset(e,n)})}},getTransferables(t){const e=[];for(let n in t)t[n]\u0026\u0026t[n].buffer\u0026\u0026e.push(t[n].buffer);return e}});ZJt.onMainThread;const eWt={};function lii(t){let e=eWt[t];return e||(e=eWt[t]=new VB(1,1,t,t).translate(.5,.5,0)),e}const uii=\"aTroikaGlyphBounds\",tWt=\"aTroikaGlyphIndex\",gii=\"aTroikaGlyphColor\";class dii extends jti{constructor(){super(),this.detail=1,this.curveRadius=0,this.groups=[{start:0,count:1/0,materialIndex:0},{start:0,count:1/0,materialIndex:1}],this.boundingSphere=new GB,this.boundingBox=new e2}computeBoundingSphere(){}computeBoundingBox(){}set detail(e){if(e!==this._detail){this._detail=e,(typeof e!=\"number\"||e\u003c1)\u0026\u0026(e=1);let n=lii(e);[\"position\",\"normal\",\"uv\"].forEach(o=\u003e{this.attributes[o]=n.attributes[o].clone()}),this.setIndex(n.getIndex().clone())}}get detail(){return this._detail}set curveRadius(e){e!==this._curveRadius\u0026\u0026(this._curveRadius=e,this._updateBounds())}get curveRadius(){return this._curveRadius}updateGlyphs(e,n,o,i,r){this.updateAttributeData(uii,e,4),this.updateAttributeData(tWt,n,1),this.updateAttributeData(gii,r,3),this._blockBounds=o,this._chunkedBounds=i,this.instanceCount=n.length,this._updateBounds()}_updateBounds(){const e=this._blockBounds;if(e){const{curveRadius:n,boundingBox:o}=this;if(n){const{PI:i,floor:r,min:s,max:a,sin:A,cos:c}=Math,l=i/2,u=i*2,g=Math.abs(n),h=e[0]/g,d=e[2]/g,p=r((h+l)/u)!==r((d+l)/u)?-g:s(A(h)*g,A(d)*g),m=r((h-l)/u)!==r((d-l)/u)?g:a(A(h)*g,A(d)*g),_=r((h+i)/u)!==r((d+i)/u)?g*2:a(g-c(h)*g,g-c(d)*g);o.min.set(p,e[1],n\u003c0?-_:0),o.max.set(m,e[3],n\u003c0?0:_)}else o.min.set(e[0],e[1],0),o.max.set(e[2],e[3],0);o.getBoundingSphere(this.boundingSphere)}}applyClipRect(e){let n=this.getAttribute(tWt).count,o=this._chunkedBounds;if(o)for(let i=o.length;i--;){n=o[i].end;let r=o[i].rect;if(r[1]\u003ce.w\u0026\u0026r[3]\u003ee.y\u0026\u0026r[0]\u003ce.z\u0026\u0026r[2]\u003ee.x)break}this.instanceCount=n}updateAttributeData(e,n,o){const i=this.getAttribute(e);n?i\u0026\u0026i.array.length===n.length?(i.array.set(n),i.needsUpdate=!0):(this.setAttribute(e,new Xde(n,o)),delete this._maxInstanceCount,this.dispose()):i\u0026\u0026this.deleteAttribute(e)}}const hii=`\nuniform vec2 uTroikaSDFTextureSize;\nuniform float uTroikaSDFGlyphSize;\nuniform vec4 uTroikaTotalBounds;\nuniform vec4 uTroikaClipRect;\nuniform mat3 uTroikaOrient;\nuniform bool uTroikaUseGlyphColors;\nuniform float uTroikaEdgeOffset;\nuniform float uTroikaBlurRadius;\nuniform vec2 uTroikaPositionOffset;\nuniform float uTroikaCurveRadius;\nattribute vec4 aTroikaGlyphBounds;\nattribute float aTroikaGlyphIndex;\nattribute vec3 aTroikaGlyphColor;\nvarying vec2 vTroikaGlyphUV;\nvarying vec4 vTroikaTextureUVBounds;\nvarying float vTroikaTextureChannel;\nvarying vec3 vTroikaGlyphColor;\nvarying vec2 vTroikaGlyphDimensions;\n`,pii=`\nvec4 bounds = aTroikaGlyphBounds;\nbounds.xz += uTroikaPositionOffset.x;\nbounds.yw -= uTroikaPositionOffset.y;\n\nvec4 outlineBounds = vec4(\n bounds.xy - uTroikaEdgeOffset - uTroikaBlurRadius,\n bounds.zw + uTroikaEdgeOffset + uTroikaBlurRadius\n);\nvec4 clippedBounds = vec4(\n clamp(outlineBounds.xy, uTroikaClipRect.xy, uTroikaClipRect.zw),\n clamp(outlineBounds.zw, uTroikaClipRect.xy, uTroikaClipRect.zw)\n);\n\nvec2 clippedXY = (mix(clippedBounds.xy, clippedBounds.zw, position.xy) - bounds.xy) / (bounds.zw - bounds.xy);\n\nposition.xy = mix(bounds.xy, bounds.zw, clippedXY);\n\nuv = (position.xy - uTroikaTotalBounds.xy) / (uTroikaTotalBounds.zw - uTroikaTotalBounds.xy);\n\nfloat rad = uTroikaCurveRadius;\nif (rad != 0.0) {\n float angle = position.x / rad;\n position.xz = vec2(sin(angle) * rad, rad - cos(angle) * rad);\n normal.xz = vec2(sin(angle), cos(angle));\n}\n \nposition = uTroikaOrient * position;\nnormal = uTroikaOrient * normal;\n\nvTroikaGlyphUV = clippedXY.xy;\nvTroikaGlyphDimensions = vec2(bounds[2] - bounds[0], bounds[3] - bounds[1]);\n\n\nfloat txCols = uTroikaSDFTextureSize.x / uTroikaSDFGlyphSize;\nvec2 txUvPerSquare = uTroikaSDFGlyphSize / uTroikaSDFTextureSize;\nvec2 txStartUV = txUvPerSquare * vec2(\n mod(floor(aTroikaGlyphIndex / 4.0), txCols),\n floor(floor(aTroikaGlyphIndex / 4.0) / txCols)\n);\nvTroikaTextureUVBounds = vec4(txStartUV, vec2(txStartUV) + txUvPerSquare);\nvTroikaTextureChannel = mod(aTroikaGlyphIndex, 4.0);\n`,mii=`\nuniform sampler2D uTroikaSDFTexture;\nuniform vec2 uTroikaSDFTextureSize;\nuniform float uTroikaSDFGlyphSize;\nuniform float uTroikaSDFExponent;\nuniform float uTroikaEdgeOffset;\nuniform float uTroikaFillOpacity;\nuniform float uTroikaBlurRadius;\nuniform vec3 uTroikaStrokeColor;\nuniform float uTroikaStrokeWidth;\nuniform float uTroikaStrokeOpacity;\nuniform bool uTroikaSDFDebug;\nvarying vec2 vTroikaGlyphUV;\nvarying vec4 vTroikaTextureUVBounds;\nvarying float vTroikaTextureChannel;\nvarying vec2 vTroikaGlyphDimensions;\n\nfloat troikaSdfValueToSignedDistance(float alpha) {\n // Inverse of exponential encoding in webgl-sdf-generator\n \n float maxDimension = max(vTroikaGlyphDimensions.x, vTroikaGlyphDimensions.y);\n float absDist = (1.0 - pow(2.0 * (alpha \u003e 0.5 ? 1.0 - alpha : alpha), 1.0 / uTroikaSDFExponent)) * maxDimension;\n float signedDist = absDist * (alpha \u003e 0.5 ? -1.0 : 1.0);\n return signedDist;\n}\n\nfloat troikaGlyphUvToSdfValue(vec2 glyphUV) {\n vec2 textureUV = mix(vTroikaTextureUVBounds.xy, vTroikaTextureUVBounds.zw, glyphUV);\n vec4 rgba = texture2D(uTroikaSDFTexture, textureUV);\n float ch = floor(vTroikaTextureChannel + 0.5); //NOTE: can't use round() in WebGL1\n return ch == 0.0 ? rgba.r : ch == 1.0 ? rgba.g : ch == 2.0 ? rgba.b : rgba.a;\n}\n\nfloat troikaGlyphUvToDistance(vec2 uv) {\n return troikaSdfValueToSignedDistance(troikaGlyphUvToSdfValue(uv));\n}\n\nfloat troikaGetAADist() {\n \n #if defined(GL_OES_standard_derivatives) || __VERSION__ \u003e= 300\n return length(fwidth(vTroikaGlyphUV * vTroikaGlyphDimensions)) * 0.5;\n #else\n return vTroikaGlyphDimensions.x / 64.0;\n #endif\n}\n\nfloat troikaGetFragDistValue() {\n vec2 clampedGlyphUV = clamp(vTroikaGlyphUV, 0.5 / uTroikaSDFGlyphSize, 1.0 - 0.5 / uTroikaSDFGlyphSize);\n float distance = troikaGlyphUvToDistance(clampedGlyphUV);\n \n // Extrapolate distance when outside bounds:\n distance += clampedGlyphUV == vTroikaGlyphUV ? 0.0 : \n length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions);\n\n \n\n return distance;\n}\n\nfloat troikaGetEdgeAlpha(float distance, float distanceOffset, float aaDist) {\n #if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL)\n float alpha = step(-distanceOffset, -distance);\n #else\n\n float alpha = smoothstep(\n distanceOffset + aaDist,\n distanceOffset - aaDist,\n distance\n );\n #endif\n\n return alpha;\n}\n`,_ii=`\nfloat aaDist = troikaGetAADist();\nfloat fragDistance = troikaGetFragDistValue();\nfloat edgeAlpha = uTroikaSDFDebug ?\n troikaGlyphUvToSdfValue(vTroikaGlyphUV) :\n troikaGetEdgeAlpha(fragDistance, uTroikaEdgeOffset, max(aaDist, uTroikaBlurRadius));\n\n#if !defined(IS_DEPTH_MATERIAL) \u0026\u0026 !defined(IS_DISTANCE_MATERIAL)\nvec4 fillRGBA = gl_FragColor;\nfillRGBA.a *= uTroikaFillOpacity;\nvec4 strokeRGBA = uTroikaStrokeWidth == 0.0 ? fillRGBA : vec4(uTroikaStrokeColor, uTroikaStrokeOpacity);\nif (fillRGBA.a == 0.0) fillRGBA.rgb = strokeRGBA.rgb;\ngl_FragColor = mix(fillRGBA, strokeRGBA, smoothstep(\n -uTroikaStrokeWidth - aaDist,\n -uTroikaStrokeWidth + aaDist,\n fragDistance\n));\ngl_FragColor.a *= edgeAlpha;\n#endif\n\nif (edgeAlpha == 0.0) {\n discard;\n}\n`;function fii(t){const e=wke(t,{chained:!0,extensions:{derivatives:!0},uniforms:{uTroikaSDFTexture:{value:null},uTroikaSDFTextureSize:{value:new ni},uTroikaSDFGlyphSize:{value:0},uTroikaSDFExponent:{value:0},uTroikaTotalBounds:{value:new ru(0,0,0,0)},uTroikaClipRect:{value:new ru(0,0,0,0)},uTroikaEdgeOffset:{value:0},uTroikaFillOpacity:{value:1},uTroikaPositionOffset:{value:new ni},uTroikaCurveRadius:{value:0},uTroikaBlurRadius:{value:0},uTroikaStrokeWidth:{value:0},uTroikaStrokeColor:{value:new Vi},uTroikaStrokeOpacity:{value:1},uTroikaOrient:{value:new HA},uTroikaUseGlyphColors:{value:!0},uTroikaSDFDebug:{value:!1}},vertexDefs:hii,vertexTransform:pii,fragmentDefs:mii,fragmentColorTransform:_ii,customRewriter({vertexShader:n,fragmentShader:o}){let i=/\\buniform\\s+vec3\\s+diffuse\\b/;return i.test(o)\u0026\u0026(o=o.replace(i,\"varying vec3 vTroikaGlyphColor\").replace(/\\bdiffuse\\b/g,\"vTroikaGlyphColor\"),i.test(n)||(n=n.replace(GJt,`uniform vec3 diffuse;\n$\u0026\nvTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse;\n`))),{vertexShader:n,fragmentShader:o}}});return e.transparent=!0,e.forceSinglePass=!0,Object.defineProperties(e,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),e}const Mke=new fE({color:16777215,side:r_,transparent:!0}),nWt=8421504,oWt=new va,yhe=new jt,Dke=new jt,cX=[],Iii=new jt,Nke=\"+x+y\";function iWt(t){return Array.isArray(t)?t[0]:t}let rWt=()=\u003e{const t=new Er(new VB(1,1),Mke);return rWt=()=\u003et,t},sWt=()=\u003e{const t=new Er(new VB(1,1,32,1),Mke);return sWt=()=\u003et,t};const Cii={type:\"syncstart\"},yii={type:\"synccomplete\"},aWt=[\"font\",\"fontSize\",\"fontStyle\",\"fontWeight\",\"lang\",\"letterSpacing\",\"lineHeight\",\"maxWidth\",\"overflowWrap\",\"text\",\"direction\",\"textAlign\",\"textIndent\",\"whiteSpace\",\"anchorX\",\"anchorY\",\"colorRanges\",\"sdfGlyphSize\"],xii=aWt.concat(\"material\",\"color\",\"depthOffset\",\"clipRect\",\"curveRadius\",\"orientation\",\"glyphGeometryDetail\");let Rke=class extends Er{constructor(){const e=new dii;super(e,null),this.text=\"\",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction=\"auto\",this.font=null,this.unicodeFontsURL=null,this.fontSize=.1,this.fontWeight=\"normal\",this.fontStyle=\"normal\",this.lang=null,this.letterSpacing=0,this.lineHeight=\"normal\",this.maxWidth=1/0,this.overflowWrap=\"normal\",this.textAlign=\"left\",this.textIndent=0,this.whiteSpace=\"normal\",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=nWt,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=Nke,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(e){this._needsSync\u0026\u0026(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(e):(this._isSyncing=!0,this.dispatchEvent(Cii),sii({text:this.text,font:this.font,lang:this.lang,fontSize:this.fontSize||.1,fontWeight:this.fontWeight||\"normal\",fontStyle:this.fontStyle||\"normal\",letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||\"normal\",maxWidth:this.maxWidth,direction:this.direction||\"auto\",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF,unicodeFontsURL:this.unicodeFontsURL},n=\u003e{this._isSyncing=!1,this._textRenderInfo=n,this.geometry.updateGlyphs(n.glyphBounds,n.glyphAtlasIndices,n.blockBounds,n.chunkedBounds,n.glyphColors);const o=this._queuedSyncs;o\u0026\u0026(this._queuedSyncs=null,this._needsSync=!0,this.sync(()=\u003e{o.forEach(i=\u003ei\u0026\u0026i())})),this.dispatchEvent(yii),e\u0026\u0026e()})))}onBeforeRender(e,n,o,i,r,s){this.sync(),r.isTroikaTextMaterial\u0026\u0026this._prepareForRender(r)}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}createDerivedMaterial(e){return fii(e)}get material(){let e=this._derivedMaterial;const n=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=Mke.clone());if((!e||!e.isDerivedFrom(n))\u0026\u0026(e=this._derivedMaterial=this.createDerivedMaterial(n),n.addEventListener(\"dispose\",function o(){n.removeEventListener(\"dispose\",o),e.dispose()})),this.hasOutline()){let o=e._outlineMtl;return o||(o=e._outlineMtl=Object.create(e,{id:{value:e.id+.1}}),o.isTextOutlineMaterial=!0,o.depthWrite=!1,o.map=null,e.addEventListener(\"dispose\",function i(){e.removeEventListener(\"dispose\",i),o.dispose()})),[o,e]}else return e}set material(e){e\u0026\u0026e.isTroikaTextMaterial?(this._derivedMaterial=e,this._baseMaterial=e.baseMaterial):this._baseMaterial=e}hasOutline(){return!!(this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY)}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(e){this.geometry.detail=e}get curveRadius(){return this.geometry.curveRadius}set curveRadius(e){this.geometry.curveRadius=e}get customDepthMaterial(){return iWt(this.material).getDepthMaterial()}set customDepthMaterial(e){}get customDistanceMaterial(){return iWt(this.material).getDistanceMaterial()}set customDistanceMaterial(e){}_prepareForRender(e){const n=e.isTextOutlineMaterial,o=e.uniforms,i=this.textRenderInfo;if(i){const{sdfTexture:a,blockBounds:A}=i;o.uTroikaSDFTexture.value=a,o.uTroikaSDFTextureSize.value.set(a.image.width,a.image.height),o.uTroikaSDFGlyphSize.value=i.sdfGlyphSize,o.uTroikaSDFExponent.value=i.sdfExponent,o.uTroikaTotalBounds.value.fromArray(A),o.uTroikaUseGlyphColors.value=!n\u0026\u0026!!i.glyphColors;let c=0,l=0,u=0,g,h,d,p=0,m=0;if(n){let{outlineWidth:f,outlineOffsetX:I,outlineOffsetY:C,outlineBlur:y,outlineOpacity:x}=this;c=this._parsePercent(f)||0,l=Math.max(0,this._parsePercent(y)||0),g=x,p=this._parsePercent(I)||0,m=this._parsePercent(C)||0}else u=Math.max(0,this._parsePercent(this.strokeWidth)||0),u\u0026\u0026(d=this.strokeColor,o.uTroikaStrokeColor.value.set(d??nWt),h=this.strokeOpacity,h==null\u0026\u0026(h=1)),g=this.fillOpacity;o.uTroikaEdgeOffset.value=c,o.uTroikaPositionOffset.value.set(p,m),o.uTroikaBlurRadius.value=l,o.uTroikaStrokeWidth.value=u,o.uTroikaStrokeOpacity.value=h,o.uTroikaFillOpacity.value=g??1,o.uTroikaCurveRadius.value=this.curveRadius||0;let _=this.clipRect;if(_\u0026\u0026Array.isArray(_)\u0026\u0026_.length===4)o.uTroikaClipRect.value.fromArray(_);else{const f=(this.fontSize||.1)*100;o.uTroikaClipRect.value.set(A[0]-f,A[1]-f,A[2]+f,A[3]+f)}this.geometry.applyClipRect(o.uTroikaClipRect.value)}o.uTroikaSDFDebug.value=!!this.debugSDF,e.polygonOffset=!!this.depthOffset,e.polygonOffsetFactor=e.polygonOffsetUnits=this.depthOffset||0;const r=n?this.outlineColor||0:this.color;if(r==null)delete e.color;else{const a=e.hasOwnProperty(\"color\")?e.color:e.color=new Vi;(r!==a._input||typeof r==\"object\")\u0026\u0026a.set(a._input=r)}let s=this.orientation||Nke;if(s!==e._orientation){let a=o.uTroikaOrient.value;s=s.replace(/[^-+xyz]/g,\"\");let A=s!==Nke\u0026\u0026s.match(/^([-+])([xyz])([-+])([xyz])$/);if(A){let[,c,l,u,g]=A;yhe.set(0,0,0)[l]=c===\"-\"?1:-1,Dke.set(0,0,0)[g]=u===\"-\"?-1:1,oWt.lookAt(Iii,yhe.cross(Dke),Dke),a.setFromMatrix4(oWt)}else a.identity();e._orientation=s}}_parsePercent(e){if(typeof e==\"string\"){let n=e.match(/^(-?[\\d.]+)%$/),o=n?parseFloat(n[1]):NaN;e=(isNaN(o)?0:o/100)*this.fontSize}return e}localPositionToTextCoords(e,n=new ni){n.copy(e);const o=this.curveRadius;return o\u0026\u0026(n.x=Math.atan2(e.x,Math.abs(o)-Math.abs(e.z))*Math.abs(o)),n}worldPositionToTextCoords(e,n=new ni){return yhe.copy(e),this.localPositionToTextCoords(this.worldToLocal(yhe),n)}raycast(e,n){const{textRenderInfo:o,curveRadius:i}=this;if(o){const r=o.blockBounds,s=i?sWt():rWt(),a=s.geometry,{position:A,uv:c}=a.attributes;for(let l=0;l\u003cc.count;l++){let u=r[0]+c.getX(l)*(r[2]-r[0]);const g=r[1]+c.getY(l)*(r[3]-r[1]);let h=0;i\u0026\u0026(h=i-Math.cos(u/i)*i,u=Math.sin(u/i)*i),A.setXYZ(l,u,g,h)}a.boundingSphere=this.geometry.boundingSphere,a.boundingBox=this.geometry.boundingBox,s.matrixWorld=this.matrixWorld,s.material.side=this.material.side,cX.length=0,s.raycast(e,cX);for(let l=0;l\u003ccX.length;l++)cX[l].object=this,n.push(cX[l])}}copy(e){const n=this.geometry;return super.copy(e),this.geometry=n,xii.forEach(o=\u003e{this[o]=e[o]}),this}clone(){return new this.constructor().copy(this)}};aWt.forEach(t=\u003e{const e=\"_private_\"+t;Object.defineProperty(Rke.prototype,t,{get(){return this[e]},set(n){n!==this[e]\u0026\u0026(this[e]=n,this._needsSync=!0)}})}),new e2,new Vi;var Tke,AWt;function la(){return AWt||(AWt=1,Tke=e=\u003ee.flat(1/0)),Tke}var kke,cWt;function Eii(){return cWt||(cWt=1,kke=e=\u003eObject.assign({},e)),kke}var Fke,lWt;function Bii(){return lWt||(lWt=1,Fke=(e,n,o)=\u003e(e[0]=n[0]+o[0],e[1]=n[1]+o[1],e[2]=n[2]+o[2],e[3]=n[3]+o[3],e[4]=n[4]+o[4],e[5]=n[5]+o[5],e[6]=n[6]+o[6],e[7]=n[7]+o[7],e[8]=n[8]+o[8],e[9]=n[9]+o[9],e[10]=n[10]+o[10],e[11]=n[11]+o[11],e[12]=n[12]+o[12],e[13]=n[13]+o[13],e[14]=n[14]+o[14],e[15]=n[15]+o[15],e)),Fke}var Lke,uWt;function Hke(){return uWt||(uWt=1,Lke=()=\u003e[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),Lke}var Oke,gWt;function bii(){if(gWt)return Oke;gWt=1;const t=Hke();return Oke=n=\u003e{const o=t();return o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o[4]=n[4],o[5]=n[5],o[6]=n[6],o[7]=n[7],o[8]=n[8],o[9]=n[9],o[10]=n[10],o[11]=n[11],o[12]=n[12],o[13]=n[13],o[14]=n[14],o[15]=n[15],o},Oke}var Gke,dWt;function hWt(){return dWt||(dWt=1,Gke=(e,n)=\u003e(e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],e)),Gke}var Yke,pWt;function Sii(){return pWt||(pWt=1,Yke=(e,n)=\u003e{const o=n[0],i=n[1],r=n[2],s=n[3],a=n[4],A=n[5],c=n[6],l=n[7],u=n[8],g=n[9],h=n[10],d=n[11],p=n[12],m=n[13],_=n[14],f=n[15],I=o*A-i*a,C=o*c-r*a,y=o*l-s*a,x=i*c-r*A,E=i*l-s*A,B=r*l-s*c,S=u*m-g*p,Q=u*_-h*p,w=u*f-d*p,M=g*_-h*m,k=g*f-d*m,R=h*f-d*_;let F=I*R-C*k+y*M+x*w-E*Q+B*S;return F?(F=1/F,e[0]=(A*R-c*k+l*M)*F,e[1]=(r*k-i*R-s*M)*F,e[2]=(m*B-_*E+f*x)*F,e[3]=(h*E-g*B-d*x)*F,e[4]=(c*w-a*R-l*Q)*F,e[5]=(o*R-r*w+s*Q)*F,e[6]=(_*y-p*B-f*C)*F,e[7]=(u*B-h*y+d*C)*F,e[8]=(a*k-A*w+l*S)*F,e[9]=(i*w-o*k-s*S)*F,e[10]=(p*E-m*y+f*I)*F,e[11]=(g*y-u*E-d*I)*F,e[12]=(A*Q-a*M-c*S)*F,e[13]=(o*M-i*Q+r*S)*F,e[14]=(m*C-p*x-_*I)*F,e[15]=(u*x-g*C+h*I)*F,e):null}),Yke}var Uke,mWt;function Qii(){return mWt||(mWt=1,Uke=(e,n)=\u003ee[0]===n[0]\u0026\u0026e[1]===n[1]\u0026\u0026e[2]===n[2]\u0026\u0026e[3]===n[3]\u0026\u0026e[4]===n[4]\u0026\u0026e[5]===n[5]\u0026\u0026e[6]===n[6]\u0026\u0026e[7]===n[7]\u0026\u0026e[8]===n[8]\u0026\u0026e[9]===n[9]\u0026\u0026e[10]===n[10]\u0026\u0026e[11]===n[11]\u0026\u0026e[12]===n[12]\u0026\u0026e[13]===n[13]\u0026\u0026e[14]===n[14]\u0026\u0026e[15]===n[15]),Uke}var Kke,_Wt;function pc(){if(_Wt)return Kke;_Wt=1;const t=1e5,e=1e-5,n=1e-13,o=Math.PI*2;return Kke={EPS:e,NEPS:n,TAU:o,spatialResolution:t},Kke}var Vke,fWt;function dI(){if(fWt)return Vke;fWt=1;const{NEPS:t}=pc(),e=i=\u003eMath.abs(i)\u003ct?0:i;return Vke={sin:i=\u003ee(Math.sin(i)),cos:i=\u003ee(Math.cos(i))},Vke}var zke,IWt;function CWt(){return IWt||(IWt=1,zke=e=\u003e(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)),zke}var Jke,yWt;function xWt(){if(yWt)return Jke;yWt=1;const{EPS:t}=pc(),{sin:e,cos:n}=dI(),o=CWt();return Jke=(r,s,a)=\u003e{let[A,c,l]=a;const u=A*A+c*c+l*l;if(Math.abs(u)\u003ct)return o(r);const g=1/Math.sqrt(u);A*=g,c*=g,l*=g;const h=e(s),d=n(s),p=1-d;return r[0]=A*A*p+d,r[1]=c*A*p+l*h,r[2]=l*A*p-c*h,r[3]=0,r[4]=A*c*p-l*h,r[5]=c*c*p+d,r[6]=l*c*p+A*h,r[7]=0,r[8]=A*l*p+c*h,r[9]=c*l*p-A*h,r[10]=l*l*p+d,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r},Jke}var Wke,EWt;function vii(){return EWt||(EWt=1,Wke=(e,n)=\u003e(e[0]=n[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=n[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)),Wke}var jke,BWt;function wii(){if(BWt)return jke;BWt=1;const{sin:t,cos:e}=dI();return jke=(o,i,r,s)=\u003e{const a=t(i),A=e(i),c=t(r),l=e(r),u=t(s),g=e(s);return o[0]=l*A,o[1]=l*a,o[2]=-c,o[3]=0,o[4]=u*c*A-g*a,o[5]=g*A+u*c*a,o[6]=u*l,o[7]=0,o[8]=u*a+g*c*A,o[9]=g*c*a-u*A,o[10]=g*l,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},jke}var $ke,bWt;function Pii(){return bWt||(bWt=1,$ke=(e,n)=\u003e(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e)),$ke}var qke,SWt;function Mii(){if(SWt)return qke;SWt=1;const t=Hke();return qke=(n,o,i,r,s,a,A,c,l,u,g,h,d,p,m,_)=\u003e{const f=t();return f[0]=n,f[1]=o,f[2]=i,f[3]=r,f[4]=s,f[5]=a,f[6]=A,f[7]=c,f[8]=l,f[9]=u,f[10]=g,f[11]=h,f[12]=d,f[13]=p,f[14]=m,f[15]=_,f},qke}var Xke,QWt;function vWt(){return QWt||(QWt=1,Xke=(e,n)=\u003e(e[0]=Math.abs(n[0]),e[1]=Math.abs(n[1]),e[2]=Math.abs(n[2]),e)),Xke}var Zke,wWt;function PWt(){return wWt||(wWt=1,Zke=(e,n,o)=\u003e(e[0]=n[0]+o[0],e[1]=n[1]+o[1],e[2]=n[2]+o[2],e)),Zke}var eFe,MWt;function xhe(){return MWt||(MWt=1,eFe=(e,n)=\u003ee[0]*n[0]+e[1]*n[1]+e[2]*n[2]),eFe}var tFe,DWt;function Dii(){if(DWt)return tFe;DWt=1;const t=xhe();return tFe=(n,o)=\u003e{const i=n[0],r=n[1],s=n[2],a=o[0],A=o[1],c=o[2],l=Math.sqrt(i*i+r*r+s*s),u=Math.sqrt(a*a+A*A+c*c),g=l*u,h=g\u0026\u0026t(n,o)/g;return Math.acos(Math.min(Math.max(h,-1),1))},tFe}var nFe,NWt;function Ehe(){return NWt||(NWt=1,nFe=()=\u003e[0,0,0]),nFe}var oFe,RWt;function Nii(){if(RWt)return oFe;RWt=1;const t=Ehe();return oFe=n=\u003e{const o=t();return o[0]=n[0],o[1]=n[1],o[2]=n[2],o},oFe}var iFe,TWt;function kWt(){return TWt||(TWt=1,iFe=(e,n)=\u003e(e[0]=n[0],e[1]=n[1],e[2]=n[2],e)),iFe}var rFe,FWt;function lX(){return FWt||(FWt=1,rFe=(e,n,o)=\u003e{const i=n[0],r=n[1],s=n[2],a=o[0],A=o[1],c=o[2];return e[0]=r*c-s*A,e[1]=s*a-i*c,e[2]=i*A-r*a,e}),rFe}var sFe,LWt;function HWt(){return LWt||(LWt=1,sFe=(e,n)=\u003e{const o=n[0]-e[0],i=n[1]-e[1],r=n[2]-e[2];return Math.sqrt(o*o+i*i+r*r)}),sFe}var aFe,OWt;function Rii(){return OWt||(OWt=1,aFe=(e,n,o)=\u003e(e[0]=n[0]/o[0],e[1]=n[1]/o[1],e[2]=n[2]/o[2],e)),aFe}var AFe,GWt;function Tii(){return GWt||(GWt=1,AFe=(e,n)=\u003ee[0]===n[0]\u0026\u0026e[1]===n[1]\u0026\u0026e[2]===n[2]),AFe}var cFe,YWt;function kii(){return YWt||(YWt=1,cFe=(e,n)=\u003e(e[0]=n,e[1]=n,e[2]=n,e)),cFe}var lFe,UWt;function Fii(){if(UWt)return lFe;UWt=1;const t=Ehe();return lFe=(n,o,i)=\u003e{const r=t();return r[0]=n,r[1]=o,r[2]=i,r},lFe}var uFe,KWt;function Lii(){return KWt||(KWt=1,uFe=(e,n,o=0)=\u003e(e[0]=n[0],e[1]=n[1],e[2]=o,e)),uFe}var gFe,VWt;function zWt(){return VWt||(VWt=1,gFe=e=\u003e{const n=e[0],o=e[1],i=e[2];return Math.sqrt(n*n+o*o+i*i)}),gFe}var dFe,JWt;function Hii(){return JWt||(JWt=1,dFe=(e,n,o,i)=\u003e(e[0]=n[0]+i*(o[0]-n[0]),e[1]=n[1]+i*(o[1]-n[1]),e[2]=n[2]+i*(o[2]-n[2]),e)),dFe}var hFe,WWt;function jWt(){return WWt||(WWt=1,hFe=(e,n,o)=\u003e(e[0]=Math.max(n[0],o[0]),e[1]=Math.max(n[1],o[1]),e[2]=Math.max(n[2],o[2]),e)),hFe}var pFe,$Wt;function qWt(){return $Wt||($Wt=1,pFe=(e,n,o)=\u003e(e[0]=Math.min(n[0],o[0]),e[1]=Math.min(n[1],o[1]),e[2]=Math.min(n[2],o[2]),e)),pFe}var mFe,XWt;function Oii(){return XWt||(XWt=1,mFe=(e,n,o)=\u003e(e[0]=n[0]*o[0],e[1]=n[1]*o[1],e[2]=n[2]*o[2],e)),mFe}var _Fe,ZWt;function Gii(){return ZWt||(ZWt=1,_Fe=(e,n)=\u003e(e[0]=-n[0],e[1]=-n[1],e[2]=-n[2],e)),_Fe}var fFe,ejt;function IFe(){return ejt||(ejt=1,fFe=(e,n)=\u003e{const o=n[0],i=n[1],r=n[2];let s=o*o+i*i+r*r;return s\u003e0\u0026\u0026(s=1/Math.sqrt(s)),e[0]=o*s,e[1]=i*s,e[2]=r*s,e}),fFe}var CFe,tjt;function Yii(){if(tjt)return CFe;tjt=1;const t=vWt(),e=Ehe(),n=lX();return CFe=(i,r)=\u003e{const s=t(e(),r),a=0+(s[0]\u003cs[1]\u0026\u0026s[0]\u003cs[2]),A=0+(s[1]\u003c=s[0]\u0026\u0026s[1]\u003cs[2]),c=0+(s[2]\u003c=s[0]\u0026\u0026s[2]\u003c=s[1]);return n(i,r,[a,A,c])},CFe}var yFe,njt;function Uii(){return njt||(njt=1,yFe=(e,n,o,i)=\u003e{const r=[],s=[];return r[0]=n[0]-o[0],r[1]=n[1]-o[1],r[2]=n[2]-o[2],s[0]=r[0],s[1]=r[1]*Math.cos(i)-r[2]*Math.sin(i),s[2]=r[1]*Math.sin(i)+r[2]*Math.cos(i),e[0]=s[0]+o[0],e[1]=s[1]+o[1],e[2]=s[2]+o[2],e}),yFe}var xFe,ojt;function Kii(){return ojt||(ojt=1,xFe=(e,n,o,i)=\u003e{const r=[],s=[];return r[0]=n[0]-o[0],r[1]=n[1]-o[1],r[2]=n[2]-o[2],s[0]=r[2]*Math.sin(i)+r[0]*Math.cos(i),s[1]=r[1],s[2]=r[2]*Math.cos(i)-r[0]*Math.sin(i),e[0]=s[0]+o[0],e[1]=s[1]+o[1],e[2]=s[2]+o[2],e}),xFe}var EFe,ijt;function Vii(){return ijt||(ijt=1,EFe=(e,n,o,i)=\u003e{const r=[],s=[];return r[0]=n[0]-o[0],r[1]=n[1]-o[1],s[0]=r[0]*Math.cos(i)-r[1]*Math.sin(i),s[1]=r[0]*Math.sin(i)+r[1]*Math.cos(i),e[0]=s[0]+o[0],e[1]=s[1]+o[1],e[2]=n[2],e}),EFe}var BFe,rjt;function sjt(){return rjt||(rjt=1,BFe=(e,n,o)=\u003e(e[0]=n[0]*o,e[1]=n[1]*o,e[2]=n[2]*o,e)),BFe}var bFe,ajt;function zii(){return ajt||(ajt=1,bFe=(e,n,o)=\u003e(e[0]=Math.round(n[0]/o)*o+0,e[1]=Math.round(n[1]/o)*o+0,e[2]=Math.round(n[2]/o)*o+0,e)),bFe}var SFe,Ajt;function cjt(){return Ajt||(Ajt=1,SFe=(e,n)=\u003e{const o=n[0]-e[0],i=n[1]-e[1],r=n[2]-e[2];return o*o+i*i+r*r}),SFe}var QFe,ljt;function ujt(){return ljt||(ljt=1,QFe=e=\u003e{const n=e[0],o=e[1],i=e[2];return n*n+o*o+i*i}),QFe}var vFe,gjt;function Bhe(){return gjt||(gjt=1,vFe=(e,n,o)=\u003e(e[0]=n[0]-o[0],e[1]=n[1]-o[1],e[2]=n[2]-o[2],e)),vFe}var wFe,djt;function Jii(){return djt||(djt=1,wFe=e=\u003e`[${e[0].toFixed(7)}, ${e[1].toFixed(7)}, ${e[2].toFixed(7)}]`),wFe}var PFe,hjt;function Wii(){return hjt||(hjt=1,PFe=(e,n,o)=\u003e{const i=n[0],r=n[1],s=n[2];let a=o[3]*i+o[7]*r+o[11]*s+o[15];return a=a||1,e[0]=(o[0]*i+o[4]*r+o[8]*s+o[12])/a,e[1]=(o[1]*i+o[5]*r+o[9]*s+o[13])/a,e[2]=(o[2]*i+o[6]*r+o[10]*s+o[14])/a,e}),PFe}var MFe,pjt;function jr(){return pjt||(pjt=1,MFe={abs:vWt(),add:PWt(),angle:Dii(),clone:Nii(),copy:kWt(),create:Ehe(),cross:lX(),distance:HWt(),divide:Rii(),dot:xhe(),equals:Tii(),fromScalar:kii(),fromValues:Fii(),fromVec2:Lii(),length:zWt(),lerp:Hii(),max:jWt(),min:qWt(),multiply:Oii(),negate:Gii(),normalize:IFe(),orthogonal:Yii(),rotateX:Uii(),rotateY:Kii(),rotateZ:Vii(),scale:sjt(),snap:zii(),squaredDistance:cjt(),squaredLength:ujt(),subtract:Bhe(),toString:Jii(),transform:Wii()}),MFe}var DFe,mjt;function jii(){if(mjt)return DFe;mjt=1;const t=jr(),e=xWt();return DFe=(o,i,r)=\u003e{const s=t.normalize(t.create(),i),a=t.normalize(t.create(),r),A=t.cross(t.create(),a,s),c=t.dot(a,s);if(c===-1)return e(o,Math.PI,t.orthogonal(A,s));const l=1/(1+c);return o[0]=A[0]*A[0]*l+c,o[1]=A[1]*A[0]*l-A[2],o[2]=A[2]*A[0]*l+A[1],o[3]=0,o[4]=A[0]*A[1]*l+A[2],o[5]=A[1]*A[1]*l+c,o[6]=A[2]*A[1]*l-A[0],o[7]=0,o[8]=A[0]*A[2]*l-A[1],o[9]=A[1]*A[2]*l+A[0],o[10]=A[2]*A[2]*l+c,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},DFe}var NFe,_jt;function $ii(){if(_jt)return NFe;_jt=1;const{sin:t,cos:e}=dI();return NFe=(o,i)=\u003e{const r=t(i),s=e(i);return o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=r,o[7]=0,o[8]=0,o[9]=-r,o[10]=s,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},NFe}var RFe,fjt;function qii(){if(fjt)return RFe;fjt=1;const{sin:t,cos:e}=dI();return RFe=(o,i)=\u003e{const r=t(i),s=e(i);return o[0]=s,o[1]=0,o[2]=-r,o[3]=0,o[4]=0,o[5]=1,o[6]=0,o[7]=0,o[8]=r,o[9]=0,o[10]=s,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},RFe}var TFe,Ijt;function Xii(){if(Ijt)return TFe;Ijt=1;const{sin:t,cos:e}=dI();return TFe=(o,i)=\u003e{const r=t(i),s=e(i);return o[0]=s,o[1]=r,o[2]=0,o[3]=0,o[4]=-r,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o},TFe}var kFe,Cjt;function Zii(){return Cjt||(Cjt=1,kFe=e=\u003ee[0]===1\u0026\u0026e[1]===0\u0026\u0026e[2]===0\u0026\u0026e[3]===0\u0026\u0026e[4]===0\u0026\u0026e[5]===1\u0026\u0026e[6]===0\u0026\u0026e[7]===0\u0026\u0026e[8]===0\u0026\u0026e[9]===0\u0026\u0026e[10]===1\u0026\u0026e[11]===0\u0026\u0026e[12]===0\u0026\u0026e[13]===0\u0026\u0026e[14]===0\u0026\u0026e[15]===1),kFe}var FFe,yjt;function eri(){if(yjt)return FFe;yjt=1;const t=n=\u003ee(n[1])\u0026\u0026e(n[2])\u0026\u0026e(n[3])\u0026\u0026e(n[4])\u0026\u0026e(n[6])\u0026\u0026e(n[7])\u0026\u0026e(n[8])\u0026\u0026e(n[9])\u0026\u0026e(n[11])\u0026\u0026n[15]===1,e=n=\u003eMath.abs(n)\u003cNumber.EPSILON;return FFe=t,FFe}var LFe,xjt;function tri(){return xjt||(xjt=1,LFe=e=\u003e{const n=e[4]*e[9]-e[8]*e[5],o=e[8]*e[1]-e[0]*e[9],i=e[0]*e[5]-e[4]*e[1];return n*e[2]+o*e[6]+i*e[10]\u003c0}),LFe}var HFe,Ejt;function nri(){return Ejt||(Ejt=1,HFe=(e,n)=\u003e{const[o,i,r,s]=n;return e[0]=1-2*o*o,e[1]=-2*i*o,e[2]=-2*r*o,e[3]=0,e[4]=-2*o*i,e[5]=1-2*i*i,e[6]=-2*r*i,e[7]=0,e[8]=-2*o*r,e[9]=-2*i*r,e[10]=1-2*r*r,e[11]=0,e[12]=2*o*s,e[13]=2*i*s,e[14]=2*r*s,e[15]=1,e}),HFe}var OFe,Bjt;function ori(){return Bjt||(Bjt=1,OFe=(e,n,o)=\u003e{const i=n[0],r=n[1],s=n[2],a=n[3],A=n[4],c=n[5],l=n[6],u=n[7],g=n[8],h=n[9],d=n[10],p=n[11],m=n[12],_=n[13],f=n[14],I=n[15];let C=o[0],y=o[1],x=o[2],E=o[3];return e[0]=C*i+y*A+x*g+E*m,e[1]=C*r+y*c+x*h+E*_,e[2]=C*s+y*l+x*d+E*f,e[3]=C*a+y*u+x*p+E*I,C=o[4],y=o[5],x=o[6],E=o[7],e[4]=C*i+y*A+x*g+E*m,e[5]=C*r+y*c+x*h+E*_,e[6]=C*s+y*l+x*d+E*f,e[7]=C*a+y*u+x*p+E*I,C=o[8],y=o[9],x=o[10],E=o[11],e[8]=C*i+y*A+x*g+E*m,e[9]=C*r+y*c+x*h+E*_,e[10]=C*s+y*l+x*d+E*f,e[11]=C*a+y*u+x*p+E*I,C=o[12],y=o[13],x=o[14],E=o[15],e[12]=C*i+y*A+x*g+E*m,e[13]=C*r+y*c+x*h+E*_,e[14]=C*s+y*l+x*d+E*f,e[15]=C*a+y*u+x*p+E*I,e}),OFe}var GFe,bjt;function iri(){if(bjt)return GFe;bjt=1;const{EPS:t}=pc(),{sin:e,cos:n}=dI(),o=hWt();return GFe=(r,s,a,A)=\u003e{let[c,l,u]=A;const g=c*c+l*l+u*u;if(Math.abs(g)\u003ct)return o(r,s);const h=1/Math.sqrt(g);c*=h,l*=h,u*=h;const d=e(a),p=n(a),m=1-p,_=s[0],f=s[1],I=s[2],C=s[3],y=s[4],x=s[5],E=s[6],B=s[7],S=s[8],Q=s[9],w=s[10],M=s[11],k=c*c*m+p,R=l*c*m+u*d,F=u*c*m-l*d,O=c*l*m-u*d,U=l*l*m+p,Y=u*l*m+c*d,W=c*u*m+l*d,te=l*u*m-c*d,j=u*u*m+p;return r[0]=_*k+y*R+S*F,r[1]=f*k+x*R+Q*F,r[2]=I*k+E*R+w*F,r[3]=C*k+B*R+M*F,r[4]=_*O+y*U+S*Y,r[5]=f*O+x*U+Q*Y,r[6]=I*O+E*U+w*Y,r[7]=C*O+B*U+M*Y,r[8]=_*W+y*te+S*j,r[9]=f*W+x*te+Q*j,r[10]=I*W+E*te+w*j,r[11]=C*W+B*te+M*j,s!==r\u0026\u0026(r[12]=s[12],r[13]=s[13],r[14]=s[14],r[15]=s[15]),r},GFe}var YFe,Sjt;function rri(){if(Sjt)return YFe;Sjt=1;const{sin:t,cos:e}=dI();return YFe=(o,i,r)=\u003e{const s=t(r),a=e(r),A=i[4],c=i[5],l=i[6],u=i[7],g=i[8],h=i[9],d=i[10],p=i[11];return i!==o\u0026\u0026(o[0]=i[0],o[1]=i[1],o[2]=i[2],o[3]=i[3],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15]),o[4]=A*a+g*s,o[5]=c*a+h*s,o[6]=l*a+d*s,o[7]=u*a+p*s,o[8]=g*a-A*s,o[9]=h*a-c*s,o[10]=d*a-l*s,o[11]=p*a-u*s,o},YFe}var UFe,Qjt;function sri(){if(Qjt)return UFe;Qjt=1;const{sin:t,cos:e}=dI();return UFe=(o,i,r)=\u003e{const s=t(r),a=e(r),A=i[0],c=i[1],l=i[2],u=i[3],g=i[8],h=i[9],d=i[10],p=i[11];return i!==o\u0026\u0026(o[4]=i[4],o[5]=i[5],o[6]=i[6],o[7]=i[7],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15]),o[0]=A*a-g*s,o[1]=c*a-h*s,o[2]=l*a-d*s,o[3]=u*a-p*s,o[8]=A*s+g*a,o[9]=c*s+h*a,o[10]=l*s+d*a,o[11]=u*s+p*a,o},UFe}var KFe,vjt;function ari(){if(vjt)return KFe;vjt=1;const{sin:t,cos:e}=dI();return KFe=(o,i,r)=\u003e{const s=t(r),a=e(r),A=i[0],c=i[1],l=i[2],u=i[3],g=i[4],h=i[5],d=i[6],p=i[7];return i!==o\u0026\u0026(o[8]=i[8],o[9]=i[9],o[10]=i[10],o[11]=i[11],o[12]=i[12],o[13]=i[13],o[14]=i[14],o[15]=i[15]),o[0]=A*a+g*s,o[1]=c*a+h*s,o[2]=l*a+d*s,o[3]=u*a+p*s,o[4]=g*a-A*s,o[5]=h*a-c*s,o[6]=d*a-l*s,o[7]=p*a-u*s,o},KFe}var VFe,wjt;function Ari(){return wjt||(wjt=1,VFe=(e,n,o)=\u003e{const i=o[0],r=o[1],s=o[2];return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=n[3]*i,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=n[7]*r,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=n[11]*s,e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],e}),VFe}var zFe,Pjt;function cri(){return Pjt||(Pjt=1,zFe=(e,n,o)=\u003e(e[0]=n[0]-o[0],e[1]=n[1]-o[1],e[2]=n[2]-o[2],e[3]=n[3]-o[3],e[4]=n[4]-o[4],e[5]=n[5]-o[5],e[6]=n[6]-o[6],e[7]=n[7]-o[7],e[8]=n[8]-o[8],e[9]=n[9]-o[9],e[10]=n[10]-o[10],e[11]=n[11]-o[11],e[12]=n[12]-o[12],e[13]=n[13]-o[13],e[14]=n[14]-o[14],e[15]=n[15]-o[15],e)),zFe}var JFe,Mjt;function lri(){return Mjt||(Mjt=1,JFe=e=\u003ee.map(n=\u003en.toFixed(7)).toString()),JFe}var WFe,Djt;function uri(){return Djt||(Djt=1,WFe=(e,n,o)=\u003e{const i=o[0],r=o[1],s=o[2];let a,A,c,l,u,g,h,d,p,m,_,f;return n===e?(e[12]=n[0]*i+n[4]*r+n[8]*s+n[12],e[13]=n[1]*i+n[5]*r+n[9]*s+n[13],e[14]=n[2]*i+n[6]*r+n[10]*s+n[14],e[15]=n[3]*i+n[7]*r+n[11]*s+n[15]):(a=n[0],A=n[1],c=n[2],l=n[3],u=n[4],g=n[5],h=n[6],d=n[7],p=n[8],m=n[9],_=n[10],f=n[11],e[0]=a,e[1]=A,e[2]=c,e[3]=l,e[4]=u,e[5]=g,e[6]=h,e[7]=d,e[8]=p,e[9]=m,e[10]=_,e[11]=f,e[12]=a*i+u*r+p*s+n[12],e[13]=A*i+g*r+m*s+n[13],e[14]=c*i+h*r+_*s+n[14],e[15]=l*i+d*r+f*s+n[15]),e}),WFe}var jFe,Njt;function Mu(){return Njt||(Njt=1,jFe={add:Bii(),clone:bii(),copy:hWt(),create:Hke(),invert:Sii(),equals:Qii(),fromRotation:xWt(),fromScaling:vii(),fromTaitBryanRotation:wii(),fromTranslation:Pii(),fromValues:Mii(),fromVectorRotation:jii(),fromXRotation:$ii(),fromYRotation:qii(),fromZRotation:Xii(),identity:CWt(),isIdentity:Zii(),isOnlyTransformScale:eri(),isMirroring:tri(),mirrorByPlane:nri(),multiply:ori(),rotate:iri(),rotateX:rri(),rotateY:sri(),rotateZ:ari(),scale:Ari(),subtract:cri(),toString:lri(),translate:uri()}),jFe}var $Fe,Rjt;function bhe(){if(Rjt)return $Fe;Rjt=1;const t=Mu();return $Fe=n=\u003e(n===void 0\u0026\u0026(n=[]),{sides:n,transforms:t.create()}),$Fe}var qFe,Tjt;function gri(){return Tjt||(Tjt=1,qFe=(e,n)=\u003e(e[0]=Math.abs(n[0]),e[1]=Math.abs(n[1]),e)),qFe}var XFe,kjt;function dri(){return kjt||(kjt=1,XFe=(e,n,o)=\u003e(e[0]=n[0]+o[0],e[1]=n[1]+o[1],e)),XFe}var ZFe,Fjt;function eLe(){return Fjt||(Fjt=1,ZFe=e=\u003eMath.atan2(e[1],e[0])),ZFe}var tLe,Ljt;function hri(){return Ljt||(Ljt=1,tLe=eLe()),tLe}var nLe,Hjt;function pri(){if(Hjt)return nLe;Hjt=1;const t=eLe();return nLe=n=\u003et(n)*57.29577951308232,nLe}var oLe,Ojt;function She(){return Ojt||(Ojt=1,oLe=()=\u003e[0,0]),oLe}var iLe,Gjt;function mri(){if(Gjt)return iLe;Gjt=1;const t=She();return iLe=n=\u003e{const o=t();return o[0]=n[0],o[1]=n[1],o},iLe}var rLe,Yjt;function _ri(){return Yjt||(Yjt=1,rLe=(e,n)=\u003e(e[0]=n[0],e[1]=n[1],e)),rLe}var sLe,Ujt;function fri(){return Ujt||(Ujt=1,sLe=(e,n,o)=\u003e(e[0]=0,e[1]=0,e[2]=n[0]*o[1]-n[1]*o[0],e)),sLe}var aLe,Kjt;function Iri(){return Kjt||(Kjt=1,aLe=(e,n)=\u003e{const o=n[0]-e[0],i=n[1]-e[1];return Math.sqrt(o*o+i*i)}),aLe}var ALe,Vjt;function Cri(){return Vjt||(Vjt=1,ALe=(e,n,o)=\u003e(e[0]=n[0]/o[0],e[1]=n[1]/o[1],e)),ALe}var cLe,zjt;function yri(){return zjt||(zjt=1,cLe=(e,n)=\u003ee[0]*n[0]+e[1]*n[1]),cLe}var lLe,Jjt;function xri(){return Jjt||(Jjt=1,lLe=(e,n)=\u003ee[0]===n[0]\u0026\u0026e[1]===n[1]),lLe}var uLe,Wjt;function jjt(){if(Wjt)return uLe;Wjt=1;const{sin:t,cos:e}=dI();return uLe=(o,i)=\u003e(o[0]=e(i),o[1]=t(i),o),uLe}var gLe,$jt;function Eri(){if($jt)return gLe;$jt=1;const t=jjt();return gLe=(n,o)=\u003et(n,o*.017453292519943295),gLe}var dLe,qjt;function Bri(){return qjt||(qjt=1,dLe=(e,n)=\u003e(e[0]=n,e[1]=n,e)),dLe}var hLe,Xjt;function bri(){if(Xjt)return hLe;Xjt=1;const t=She();return hLe=(n,o)=\u003e{const i=t();return i[0]=n,i[1]=o,i},hLe}var pLe,Zjt;function Sri(){return Zjt||(Zjt=1,pLe=e=\u003eMath.sqrt(e[0]*e[0]+e[1]*e[1])),pLe}var mLe,e$t;function Qri(){return e$t||(e$t=1,mLe=(e,n,o,i)=\u003e{const r=n[0],s=n[1];return e[0]=r+i*(o[0]-r),e[1]=s+i*(o[1]-s),e}),mLe}var _Le,t$t;function vri(){return t$t||(t$t=1,_Le=(e,n,o)=\u003e(e[0]=Math.max(n[0],o[0]),e[1]=Math.max(n[1],o[1]),e)),_Le}var fLe,n$t;function wri(){return n$t||(n$t=1,fLe=(e,n,o)=\u003e(e[0]=Math.min(n[0],o[0]),e[1]=Math.min(n[1],o[1]),e)),fLe}var ILe,o$t;function Pri(){return o$t||(o$t=1,ILe=(e,n,o)=\u003e(e[0]=n[0]*o[0],e[1]=n[1]*o[1],e)),ILe}var CLe,i$t;function Mri(){return i$t||(i$t=1,CLe=(e,n)=\u003e(e[0]=-n[0],e[1]=-n[1],e)),CLe}var yLe,r$t;function s$t(){return r$t||(r$t=1,yLe=(e,n,o,i)=\u003e{const r=n[0]-o[0],s=n[1]-o[1],a=Math.cos(i),A=Math.sin(i);return e[0]=r*a-s*A+o[0],e[1]=r*A+s*a+o[1],e}),yLe}var xLe,a$t;function Dri(){if(a$t)return xLe;a$t=1;const{TAU:t}=pc(),e=She(),n=s$t();return xLe=(i,r)=\u003en(i,r,e(),t/4),xLe}var ELe,A$t;function Nri(){return A$t||(A$t=1,ELe=(e,n)=\u003e{const o=n[0],i=n[1];let r=o*o+i*i;return r\u003e0\u0026\u0026(r=1/Math.sqrt(r)),e[0]=o*r,e[1]=i*r,e}),ELe}var BLe,c$t;function Rri(){return c$t||(c$t=1,BLe=(e,n,o)=\u003e(e[0]=n[0]*o,e[1]=n[1]*o,e)),BLe}var bLe,l$t;function Tri(){return l$t||(l$t=1,bLe=(e,n,o)=\u003e(e[0]=Math.round(n[0]/o)*o+0,e[1]=Math.round(n[1]/o)*o+0,e)),bLe}var SLe,u$t;function kri(){return u$t||(u$t=1,SLe=(e,n)=\u003e{const o=n[0]-e[0],i=n[1]-e[1];return o*o+i*i}),SLe}var QLe,g$t;function Fri(){return g$t||(g$t=1,QLe=e=\u003e{const n=e[0],o=e[1];return n*n+o*o}),QLe}var vLe,d$t;function Lri(){return d$t||(d$t=1,vLe=(e,n,o)=\u003e(e[0]=n[0]-o[0],e[1]=n[1]-o[1],e)),vLe}var wLe,h$t;function Hri(){return h$t||(h$t=1,wLe=e=\u003e`[${e[0].toFixed(7)}, ${e[1].toFixed(7)}]`),wLe}var PLe,p$t;function Ori(){return p$t||(p$t=1,PLe=(e,n,o)=\u003e{const i=n[0],r=n[1];return e[0]=o[0]*i+o[4]*r+o[12],e[1]=o[1]*i+o[5]*r+o[13],e}),PLe}var MLe,m$t;function mA(){return m$t||(m$t=1,MLe={abs:gri(),add:dri(),angle:hri(),angleDegrees:pri(),angleRadians:eLe(),clone:mri(),copy:_ri(),create:She(),cross:fri(),distance:Iri(),divide:Cri(),dot:yri(),equals:xri(),fromAngleDegrees:Eri(),fromAngleRadians:jjt(),fromScalar:Bri(),fromValues:bri(),length:Sri(),lerp:Qri(),max:vri(),min:wri(),multiply:Pri(),negate:Mri(),normal:Dri(),normalize:Nri(),rotate:s$t(),scale:Rri(),snap:Tri(),squaredDistance:kri(),squaredLength:Fri(),subtract:Lri(),toString:Hri(),transform:Ori()}),MLe}var DLe,_$t;function Gri(){if(_$t)return DLe;_$t=1;const t=mA(),e=bhe();return DLe=o=\u003e{if(!Array.isArray(o))throw new Error(\"the given points must be an array\");let i=o.length;if(i\u003c3)throw new Error(\"the given points must define a closed geometry with three or more points\");t.equals(o[0],o[i-1])\u0026\u0026--i;const r=[];let s=o[i-1];for(let a=0;a\u003ci;a++){const A=o[a];r.push([t.clone(s),t.clone(A)]),s=A}return e(r)},DLe}var NLe,f$t;function Yri(){if(f$t)return NLe;f$t=1;const t=Mu(),e=mA(),n=bhe();return NLe=i=\u003e{if(i[0]!==0)throw new Error(\"invalid compact binary data\");const r=n();r.transforms=t.clone(i.slice(1,17));for(let s=21;s\u003ci.length;s+=4){const a=e.fromValues(i[s+0],i[s+1]),A=e.fromValues(i[s+2],i[s+3]);r.sides.push([a,A])}return i[17]\u003e=0\u0026\u0026(r.color=[i[17],i[18],i[19],i[20]]),r},NLe}var RLe,I$t;function C$t(){return I$t||(I$t=1,RLe=e=\u003e!!(e\u0026\u0026typeof e==\"object\"\u0026\u0026\"sides\"in e\u0026\u0026\"transforms\"in e\u0026\u0026Array.isArray(e.sides)\u0026\u0026\"length\"in e.transforms)),RLe}var TLe,y$t;function Uri(){if(y$t)return TLe;y$t=1;const t=Mu(),e=mA();return TLe=o=\u003e(t.isIdentity(o.transforms)||(o.sides=o.sides.map(i=\u003e{const r=e.transform(e.create(),i[0],o.transforms),s=e.transform(e.create(),i[1],o.transforms);return[r,s]}),o.transforms=t.create()),o),TLe}var kLe,x$t;function uX(){if(x$t)return kLe;x$t=1;const t=Uri();return kLe=n=\u003et(n).sides,kLe}var FLe,E$t;function B$t(){if(E$t)return FLe;E$t=1;const t=bhe(),e=uX();return FLe=o=\u003e{const r=e(o).map(s=\u003e[s[1],s[0]]);return r.reverse(),t(r)},FLe}var LLe,b$t;function S$t(){if(b$t)return LLe;b$t=1;const t=mA(),e=uX(),n=s=\u003e{const a=new Map,A=c=\u003e{const l=c.toString();return a.has(l)?a.get(l):(a.set(l,c),c)};return s.map(c=\u003ec.map(A))},o=s=\u003e{const a=new Map;return n(s).forEach(c=\u003e{a.has(c[0])?a.get(c[0]).push(c):a.set(c[0],[c])}),a},i=s=\u003e{const a=o(e(s)),A=[];for(;;){let c;for(const[g,h]of a){if(c=h.shift(),!c){a.delete(g);continue}break}if(c===void 0)break;const l=[],u=c[0];for(;;){l.push(c[0]);const g=c[1];if(g===u)break;const h=a.get(g);if(!h)throw new Error(`geometry is not closed at vertex ${g}`);const d=r(c,h);h.length===0\u0026\u0026a.delete(g),c=d}l.length\u003e0\u0026\u0026l.push(l.shift()),A.push(l)}return a.clear(),A},r=(s,a)=\u003e{if(a.length===1)return a.pop();const A=t.create(),c=t.angleDegrees(t.subtract(A,s[1],s[0]));let l,u;a.forEach((h,d)=\u003e{let m=t.angleDegrees(t.subtract(A,h[1],h[0]))-c;m\u003c-180\u0026\u0026(m+=360),m\u003e=180\u0026\u0026(m-=360),(u===void 0||m\u003el)\u0026\u0026(u=d,l=m)});const g=a[u];return a.splice(u,1),g};return LLe=i,LLe}var HLe,Q$t;function Kri(){if(Q$t)return HLe;Q$t=1;const t=uX();return HLe=n=\u003e{const i=t(n).map(r=\u003er[0]);return i.length\u003e0\u0026\u0026i.push(i.shift()),i},HLe}var OLe,v$t;function Vri(){if(v$t)return OLe;v$t=1;const t=mA(),e=uX();return OLe=o=\u003e{const i=e(o);let r=\"geom2 (\"+i.length+` sides):\n[\n`;return i.forEach(s=\u003e{r+=\" [\"+t.toString(s[0])+\", \"+t.toString(s[1])+`]\n`}),r+=`]\n`,r},OLe}var GLe,w$t;function zri(){return w$t||(w$t=1,GLe=e=\u003e{const n=e.sides,o=e.transforms;let i=[-1,-1,-1,-1];e.color\u0026\u0026(i=e.color);const r=new Float32Array(21+n.length*4);r[0]=0,r[1]=o[0],r[2]=o[1],r[3]=o[2],r[4]=o[3],r[5]=o[4],r[6]=o[5],r[7]=o[6],r[8]=o[7],r[9]=o[8],r[10]=o[9],r[11]=o[10],r[12]=o[11],r[13]=o[12],r[14]=o[13],r[15]=o[14],r[16]=o[15],r[17]=i[0],r[18]=i[1],r[19]=i[2],r[20]=i[3];for(let s=0;s\u003cn.length;s++){const a=s*4+21,A=n[s][0],c=n[s][1];r[a+0]=A[0],r[a+1]=A[1],r[a+2]=c[0],r[a+3]=c[1]}return r}),GLe}var YLe,P$t;function Jri(){if(P$t)return YLe;P$t=1;const t=Mu(),e=B$t();return YLe=(o,i)=\u003e{const r=t.multiply(t.create(),o,i.transforms),s=Object.assign({},i,{transforms:r});return o[0]*o[5]-o[4]*o[1]\u003c0?e(s):s},YLe}var ULe,M$t;function Wri(){if(M$t)return ULe;M$t=1;const t=mA(),e=C$t(),n=S$t();return ULe=i=\u003e{if(!e(i))throw new Error(\"invalid geom2 structure\");if(n(i),i.sides.forEach(r=\u003e{if(t.equals(r[0],r[1]))throw new Error(`geom2 self-edge ${r[0]}`)}),!i.transforms.every(Number.isFinite))throw new Error(`geom2 invalid transforms ${i.transforms}`)},ULe}var KLe,D$t;function Ga(){return D$t||(D$t=1,KLe={clone:Eii(),create:bhe(),fromPoints:Gri(),fromCompactBinary:Yri(),isA:C$t(),reverse:B$t(),toOutlines:S$t(),toPoints:Kri(),toSides:uX(),toString:Vri(),toCompactBinary:zri(),transform:Jri(),validate:Wri()}),KLe}var VLe,N$t;function jri(){return N$t||(N$t=1,VLe=e=\u003eObject.assign({},e)),VLe}var zLe,R$t;function gX(){if(R$t)return zLe;R$t=1;const t=Mu();return zLe=n=\u003e(n===void 0\u0026\u0026(n=[]),{polygons:n,transforms:t.create()}),zLe}var JLe,T$t;function $ri(){if(T$t)return JLe;T$t=1;const t=lX(),e=Bhe(),n=ujt(),o=(r,s,a)=\u003e{const A=[],c=[],l=[];e(A,a,s),e(c,r,s);const u=n(t(l,c,A)),g=n(A);if(g===0)throw Error(\"a and b are the same point\");return u/g};return JLe=(r,s,a)=\u003eMath.sqrt(o(r,s,a)),JLe}var WLe,k$t;function qri(){if(k$t)return WLe;k$t=1;const t=lX(),e=IFe(),n=Bhe();return WLe=(i,r,s,a)=\u003e{const A=[0,0,0];return n(i,r,s),n(A,s,a),t(i,i,A),e(i,i)},WLe}var jLe,F$t;function Xri(){if(F$t)return jLe;F$t=1;class t{constructor(){this.head=null,this.tail=null}clear(){this.head=this.tail=null}insertBefore(n,o){o.prev=n.prev,o.next=n,o.prev?o.prev.next=o:this.head=o,n.prev=o}insertAfter(n,o){o.prev=n,o.next=n.next,o.next?o.next.prev=o:this.tail=o,n.next=o}add(n){this.head?this.tail.next=n:this.head=n,n.prev=this.tail,n.next=null,this.tail=n}addAll(n){for(this.head?this.tail.next=n:this.head=n,n.prev=this.tail;n.next;)n=n.next;this.tail=n}remove(n){n.prev?n.prev.next=n.next:this.head=n.next,n.next?n.next.prev=n.prev:this.tail=n.prev}removeChain(n,o){n.prev?n.prev.next=o.next:this.head=o.next,o.next?o.next.prev=n.prev:this.tail=n.prev}first(){return this.head}isEmpty(){return!this.head}}return jLe=t,jLe}var $Le,L$t;function Zri(){if(L$t)return $Le;L$t=1;class t{constructor(n,o){this.point=n,this.index=o,this.next=null,this.prev=null,this.face=null}}return $Le=t,$Le}var qLe,H$t;function esi(){if(H$t)return qLe;H$t=1;const t=HWt(),e=cjt();class n{constructor(i,r){this.vertex=i,this.face=r,this.next=null,this.prev=null,this.opposite=null}head(){return this.vertex}tail(){return this.prev?this.prev.vertex:null}length(){return this.tail()?t(this.tail().point,this.head().point):-1}lengthSquared(){return this.tail()?e(this.tail().point,this.head().point):-1}setOpposite(i){this.opposite=i,i.opposite=this}}return qLe=n,qLe}var XLe,O$t;function tsi(){if(O$t)return XLe;O$t=1;const t=PWt(),e=kWt(),n=lX(),o=xhe(),i=zWt(),r=IFe(),s=sjt(),a=Bhe(),A=esi(),c=0,l=1,u=2;class g{constructor(){this.normal=[],this.centroid=[],this.offset=0,this.outside=null,this.mark=c,this.edge=null,this.nVertices=0}getEdge(d){if(typeof d!=\"number\")throw Error(\"requires a number\");let p=this.edge;for(;d\u003e0;)p=p.next,d-=1;for(;d\u003c0;)p=p.prev,d+=1;return p}computeNormal(){const d=this.edge,p=d.next;let m=p.next;const _=a([],p.head().point,d.head().point),f=[],I=[];for(this.nVertices=2,this.normal=[0,0,0];m!==d;)e(I,_),a(_,m.head().point,d.head().point),t(this.normal,this.normal,n(f,I,_)),m=m.next,this.nVertices+=1;this.area=i(this.normal),this.normal=s(this.normal,this.normal,1/this.area)}computeNormalMinArea(d){if(this.computeNormal(),this.area\u003cd){let p,m=0,_=this.edge;do{const E=_.lengthSquared();E\u003em\u0026\u0026(p=_,m=E),_=_.next}while(_!==this.edge);const f=p.tail().point,I=p.head().point,C=a([],I,f),y=Math.sqrt(m);s(C,C,1/y);const x=o(this.normal,C);s(C,C,-x),t(this.normal,this.normal,C),r(this.normal,this.normal)}}computeCentroid(){this.centroid=[0,0,0];let d=this.edge;do t(this.centroid,this.centroid,d.head().point),d=d.next;while(d!==this.edge);s(this.centroid,this.centroid,1/this.nVertices)}computeNormalAndCentroid(d){typeof d\u003c\"u\"?this.computeNormalMinArea(d):this.computeNormal(),this.computeCentroid(),this.offset=o(this.normal,this.centroid)}distanceToPlane(d){return o(this.normal,d)-this.offset}connectHalfEdges(d,p){let m;if(d.opposite.face===p.opposite.face){const _=p.opposite.face;let f;d===this.edge\u0026\u0026(this.edge=p),_.nVertices===3?(f=p.opposite.prev.opposite,_.mark=u,m=_):(f=p.opposite.next,_.edge===f.prev\u0026\u0026(_.edge=f),f.prev=f.prev.prev,f.prev.next=f),p.prev=d.prev,p.prev.next=p,p.setOpposite(f),_.computeNormalAndCentroid()}else d.next=p,p.prev=d;return m}mergeAdjacentFaces(d,p){const m=d.opposite,_=m.face;p.push(_),_.mark=u;let f=d.prev,I=d.next,C=m.prev,y=m.next;for(;f.opposite.face===_;)f=f.prev,y=y.next;for(;I.opposite.face===_;)I=I.next,C=C.prev;let x;for(x=y;x!==C.next;x=x.next)x.face=this;this.edge=I;let E;return E=this.connectHalfEdges(C,I),E\u0026\u0026p.push(E),E=this.connectHalfEdges(f,y),E\u0026\u0026p.push(E),this.computeNormalAndCentroid(),p}collectIndices(){const d=[];let p=this.edge;do d.push(p.head().index),p=p.next;while(p!==this.edge);return d}static createTriangle(d,p,m,_=0){const f=new g,I=new A(d,f),C=new A(p,f),y=new A(m,f);return I.next=y.prev=C,C.next=I.prev=y,y.next=C.prev=I,f.edge=I,f.computeNormalAndCentroid(_),f}}return XLe={VISIBLE:c,NON_CONVEX:l,DELETED:u,Face:g},XLe}var ZLe,G$t;function nsi(){if(G$t)return ZLe;G$t=1;const t=xhe(),e=$ri(),n=qri(),o=Xri(),i=Zri(),{Face:r,VISIBLE:s,NON_CONVEX:a,DELETED:A}=tsi(),c=1,l=2;class u{constructor(h){if(!Array.isArray(h))throw TypeError(\"input is not a valid array\");if(h.length\u003c4)throw Error(\"cannot build a simplex out of \u003c4 points\");this.tolerance=-1,this.nFaces=0,this.nPoints=h.length,this.faces=[],this.newFaces=[],this.claimed=new o,this.unclaimed=new o,this.vertices=[];for(let d=0;d\u003ch.length;d+=1)this.vertices.push(new i(h[d],d));this.discardedFaces=[],this.vertexPointIndices=[]}addVertexToFace(h,d){h.face=d,d.outside?this.claimed.insertBefore(d.outside,h):this.claimed.add(h),d.outside=h}removeVertexFromFace(h,d){h===d.outside\u0026\u0026(h.next\u0026\u0026h.next.face===d?d.outside=h.next:d.outside=null),this.claimed.remove(h)}removeAllVerticesFromFace(h){if(h.outside){let d=h.outside;for(;d.next\u0026\u0026d.next.face===h;)d=d.next;return this.claimed.removeChain(h.outside,d),d.next=null,h.outside}}deleteFaceVertices(h,d){const p=this.removeAllVerticesFromFace(h);if(p)if(!d)this.unclaimed.addAll(p);else{let m;for(let _=p;_;_=m)m=_.next,d.distanceToPlane(_.point)\u003ethis.tolerance?this.addVertexToFace(_,d):this.unclaimed.add(_)}}resolveUnclaimedPoints(h){let d=this.unclaimed.first();for(let p=d;p;p=d){d=p.next;let m=this.tolerance,_;for(let f=0;f\u003ch.length;f+=1){const I=h[f];if(I.mark===s){const C=I.distanceToPlane(p.point);if(C\u003em\u0026\u0026(m=C,_=I),m\u003e1e3*this.tolerance)break}}_\u0026\u0026this.addVertexToFace(p,_)}}computeExtremes(){const h=[],d=[],p=[],m=[];let _,f;for(_=0;_\u003c3;_+=1)p[_]=m[_]=this.vertices[0];for(_=0;_\u003c3;_+=1)h[_]=d[_]=this.vertices[0].point[_];for(_=1;_\u003cthis.vertices.length;_+=1){const I=this.vertices[_],C=I.point;for(f=0;f\u003c3;f+=1)C[f]\u003ch[f]\u0026\u0026(h[f]=C[f],p[f]=I);for(f=0;f\u003c3;f+=1)C[f]\u003ed[f]\u0026\u0026(d[f]=C[f],m[f]=I)}return this.tolerance=3*Number.EPSILON*(Math.max(Math.abs(h[0]),Math.abs(d[0]))+Math.max(Math.abs(h[1]),Math.abs(d[1]))+Math.max(Math.abs(h[2]),Math.abs(d[2]))),[p,m]}createInitialSimplex(){const h=this.vertices,[d,p]=this.computeExtremes();let m,_,f,I,C=0,y=0;for(f=0;f\u003c3;f+=1){const w=p[f].point[f]-d[f].point[f];w\u003eC\u0026\u0026(C=w,y=f)}const x=d[y],E=p[y];for(C=0,f=0;f\u003cthis.vertices.length;f+=1){const w=this.vertices[f];if(w!==x\u0026\u0026w!==E){const M=e(w.point,x.point,E.point);M\u003eC\u0026\u0026(C=M,m=w)}}const B=n([],x.point,E.point,m.point),S=t(x.point,B);for(C=-1,f=0;f\u003cthis.vertices.length;f+=1){const w=this.vertices[f];if(w!==x\u0026\u0026w!==E\u0026\u0026w!==m){const M=Math.abs(t(B,w.point)-S);M\u003eC\u0026\u0026(C=M,_=w)}}const Q=[];if(t(_.point,B)-S\u003c0)for(Q.push(r.createTriangle(x,E,m),r.createTriangle(_,E,x),r.createTriangle(_,m,E),r.createTriangle(_,x,m)),f=0;f\u003c3;f+=1){const w=(f+1)%3;Q[f+1].getEdge(2).setOpposite(Q[0].getEdge(w)),Q[f+1].getEdge(1).setOpposite(Q[w+1].getEdge(0))}else for(Q.push(r.createTriangle(x,m,E),r.createTriangle(_,x,E),r.createTriangle(_,E,m),r.createTriangle(_,m,x)),f=0;f\u003c3;f+=1){const w=(f+1)%3;Q[f+1].getEdge(2).setOpposite(Q[0].getEdge((3-f)%3)),Q[f+1].getEdge(0).setOpposite(Q[w+1].getEdge(1))}for(f=0;f\u003c4;f+=1)this.faces.push(Q[f]);for(f=0;f\u003ch.length;f+=1){const w=h[f];if(w!==x\u0026\u0026w!==E\u0026\u0026w!==m\u0026\u0026w!==_){C=this.tolerance;let M;for(I=0;I\u003c4;I+=1){const k=Q[I].distanceToPlane(w.point);k\u003eC\u0026\u0026(C=k,M=Q[I])}M\u0026\u0026this.addVertexToFace(w,M)}}}reindexFaceAndVertices(){const h=[];for(let d=0;d\u003cthis.faces.length;d+=1){const p=this.faces[d];p.mark===s\u0026\u0026h.push(p)}this.faces=h}collectFaces(h){const d=[];for(let p=0;p\u003cthis.faces.length;p+=1){if(this.faces[p].mark!==s)throw Error(\"attempt to include a destroyed face in the hull\");const m=this.faces[p].collectIndices();if(h)d.push(m);else for(let _=0;_\u003cm.length-2;_+=1)d.push([m[0],m[_+1],m[_+2]])}return d}nextVertexToAdd(){if(!this.claimed.isEmpty()){let h,d,p=0;const m=this.claimed.first().face;for(d=m.outside;d\u0026\u0026d.face===m;d=d.next){const _=m.distanceToPlane(d.point);_\u003ep\u0026\u0026(p=_,h=d)}return h}}computeHorizon(h,d,p,m){this.deleteFaceVertices(p),p.mark=A;let _;d?_=d.next:_=d=p.getEdge(0);do{const f=_.opposite,I=f.face;I.mark===s\u0026\u0026(I.distanceToPlane(h)\u003ethis.tolerance?this.computeHorizon(h,f,I,m):m.push(_)),_=_.next}while(_!==d)}addAdjoiningFace(h,d){const p=r.createTriangle(h,d.tail(),d.head());return this.faces.push(p),p.getEdge(-1).setOpposite(d.opposite),p.getEdge(0)}addNewFaces(h,d){this.newFaces=[];let p,m;for(let _=0;_\u003cd.length;_+=1){const f=d[_],I=this.addAdjoiningFace(h,f);p?I.next.setOpposite(m):p=I,this.newFaces.push(I.face),m=I}p.next.setOpposite(m)}oppositeFaceDistance(h){return h.face.distanceToPlane(h.opposite.face.centroid)}doAdjacentMerge(h,d){let p=h.edge,m=!0,_=0;do{if(_\u003e=h.nVertices)throw Error(\"merge recursion limit exceeded\");const f=p.opposite.face;let I=!1;if(d===l?(this.oppositeFaceDistance(p)\u003e-this.tolerance||this.oppositeFaceDistance(p.opposite)\u003e-this.tolerance)\u0026\u0026(I=!0):h.area\u003ef.area?this.oppositeFaceDistance(p)\u003e-this.tolerance?I=!0:this.oppositeFaceDistance(p.opposite)\u003e-this.tolerance\u0026\u0026(m=!1):this.oppositeFaceDistance(p.opposite)\u003e-this.tolerance?I=!0:this.oppositeFaceDistance(p)\u003e-this.tolerance\u0026\u0026(m=!1),I){const C=h.mergeAdjacentFaces(p,[]);for(let y=0;y\u003cC.length;y+=1)this.deleteFaceVertices(C[y],h);return!0}p=p.next,_+=1}while(p!==h.edge);return m||(h.mark=a),!1}addVertexToHull(h){const d=[];this.unclaimed.clear(),this.removeVertexFromFace(h,h.face),this.computeHorizon(h.point,null,h.face,d),this.addNewFaces(h,d);for(let p=0;p\u003cthis.newFaces.length;p+=1){const m=this.newFaces[p];if(m.mark===s)for(;this.doAdjacentMerge(m,c););}for(let p=0;p\u003cthis.newFaces.length;p+=1){const m=this.newFaces[p];if(m.mark===a)for(m.mark=s;this.doAdjacentMerge(m,l););}this.resolveUnclaimedPoints(this.newFaces)}build(){let h;for(this.createInitialSimplex();h=this.nextVertexToAdd();)this.addVertexToHull(h);this.reindexFaceAndVertices()}}return ZLe=u,ZLe}var eHe,Y$t;function U$t(){if(Y$t)return eHe;Y$t=1;const t=nsi();return eHe=(n,o={})=\u003e{const i=new t(n);return i.build(),i.collectFaces(o.skipTriangulation)},eHe}var tHe,K$t;function EY(){return K$t||(K$t=1,tHe=e=\u003e((e===void 0||e.length\u003c3)\u0026\u0026(e=[]),{vertices:e})),tHe}var nHe,V$t;function osi(){if(V$t)return nHe;V$t=1;const t=EY(),e=jr();return nHe=(...o)=\u003e{let i,r;return o.length===1?(i=t(),r=o[0]):(i=o[0],r=o[1]),i.vertices=r.vertices.map(s=\u003ee.clone(s)),i},nHe}var oHe,z$t;function isi(){if(z$t)return oHe;z$t=1;const t=jr(),e=EY();return oHe=o=\u003e{const i=o.map(r=\u003et.clone(r));return e(i)},oHe}var iHe,J$t;function rsi(){if(J$t)return iHe;J$t=1;const t=EY();return iHe=(n,o)=\u003e{const i=t(n);return i.plane=o,i},iHe}var rHe,W$t;function Qhe(){return W$t||(W$t=1,rHe=()=\u003e[0,0,0,0]),rHe}var sHe,j$t;function $t(){if(j$t)return sHe;j$t=1;const t=Qhe();return sHe=n=\u003e{const o=t();return o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o},sHe}var aHe,q$t;function X$t(){return q$t||(q$t=1,aHe=(e,n)=\u003e(e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e)),aHe}var AHe,Z$t;function eqt(){return Z$t||(Z$t=1,AHe=(e,n)=\u003ee[0]===n[0]\u0026\u0026e[1]===n[1]\u0026\u0026e[2]===n[2]\u0026\u0026e[3]===n[3]),AHe}var cHe,tqt;function nqt(){return tqt||(tqt=1,cHe=(e,n)=\u003e(e[0]=-n[0],e[1]=-n[1],e[2]=-n[2],e[3]=-n[3],e)),cHe}var lHe,oqt;function iqt(){if(oqt)return lHe;oqt=1;const t=jr();return lHe=(n,o,i)=\u003e{const r=t.normalize(t.create(),o),s=t.dot(i,r);return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=s,n},lHe}var uHe,rqt;function sqt(){if(rqt)return uHe;rqt=1;const t=Qhe();return uHe=(n,o,i,r)=\u003e{const s=t();return s[0]=n,s[1]=o,s[2]=i,s[3]=r,s},uHe}var gHe,aqt;function ssi(){if(aqt)return gHe;aqt=1;const t=jr(),e=iqt();return gHe=(o,...i)=\u003e{o[0]=0,o[1]=0,o[2]=0,o[3]=0;const r=i.length;i.forEach(m=\u003e{t.add(o,o,m)}),t.scale(o,o,1/r);let s=0,a=0,A=0,c=0,l=0,u=0;const g=t.create();i.forEach(m=\u003e{t.subtract(g,m,o),s+=g[0]*g[0],a+=g[0]*g[1],A+=g[0]*g[2],c+=g[1]*g[1],l+=g[1]*g[2],u+=g[2]*g[2]}),s/=r,a/=r,A/=r,c/=r,l/=r,u/=r,g[0]=0,g[1]=0,g[2]=0;const h=t.create();let d=c*u-l*l;h[0]=d,h[1]=A*l-a*u,h[2]=a*l-A*c;let p=d*d;return t.add(g,g,t.scale(h,h,p)),d=s*u-A*A,h[0]=A*l-a*u,h[1]=d,h[2]=a*A-l*s,p=d*d,t.dot(g,h)\u003c0\u0026\u0026(p=-p),t.add(g,g,t.scale(h,h,p)),d=s*c-a*a,h[0]=a*l-A*c,h[1]=a*A-l*s,h[2]=d,p=d*d,t.dot(g,h)\u003c0\u0026\u0026(p=-p),t.add(g,g,t.scale(h,h,p)),e(o,g,o)},gHe}var dHe,Aqt;function cqt(){if(Aqt)return dHe;Aqt=1;const t=jr();return dHe=(n,...o)=\u003e{const i=o.length,r=t.create(),s=t.create(),a=A=\u003e{const c=o[A],l=o[(A+1)%i],u=o[(A+2)%i];return t.subtract(r,l,c),t.subtract(s,u,c),t.cross(r,r,s),t.normalize(r,r),r};return n[0]=0,n[1]=0,n[2]=0,i===3?t.copy(n,a(0)):(o.forEach((A,c)=\u003e{t.add(n,n,a(c))}),t.normalize(n,n)),n[3]=t.dot(n,o[0]),n},dHe}var hHe,lqt;function asi(){if(lqt)return hHe;lqt=1;const{EPS:t}=pc(),e=jr();return hHe=(o,i,r,s)=\u003e{let a=e.subtract(e.create(),r,i),A=e.subtract(e.create(),s,i);e.length(a)\u003ct\u0026\u0026(a=e.orthogonal(a,A)),e.length(A)\u003ct\u0026\u0026(A=e.orthogonal(A,a));let c=e.cross(e.create(),a,A);e.length(c)\u003ct\u0026\u0026(A=e.orthogonal(A,a),c=e.cross(c,a,A)),c=e.normalize(c,c);const l=e.dot(c,i);return o[0]=c[0],o[1]=c[1],o[2]=c[2],o[3]=l,o},hHe}var pHe,uqt;function Asi(){if(uqt)return pHe;uqt=1;const t=jr();return pHe=(n,o)=\u003e{const i=o[0]*n[0]+o[1]*n[1]+o[2]*n[2]-n[3],r=o[0]-i*n[0],s=o[1]-i*n[1],a=o[2]-i*n[2];return t.fromValues(r,s,a)},pHe}var mHe,gqt;function dqt(){if(gqt)return mHe;gqt=1;const t=jr();return mHe=(n,o)=\u003et.dot(n,o)-n[3],mHe}var _He,hqt;function pqt(){return hqt||(hqt=1,_He=e=\u003e`(${e[0].toFixed(9)}, ${e[1].toFixed(9)}, ${e[2].toFixed(9)}, ${e[3].toFixed(9)})`),_He}var fHe,mqt;function csi(){if(mqt)return fHe;mqt=1;const t=Mu(),e=jr(),n=cqt(),o=nqt();return fHe=(r,s,a)=\u003e{const A=t.isMirroring(a),c=e.orthogonal(e.create(),s),l=e.cross(c,s,c),u=e.cross(e.create(),s,l);let g=e.fromScalar(e.create(),s[3]);e.multiply(g,g,s);let h=e.add(e.create(),g,l),d=e.add(e.create(),g,u);return g=e.transform(g,g,a),h=e.transform(h,h,a),d=e.transform(d,d,a),n(r,g,h,d),A\u0026\u0026o(r,r),r},fHe}var IHe,_qt;function E6(){return _qt||(_qt=1,IHe={clone:$t(),copy:X$t(),create:Qhe(),equals:eqt(),flip:nqt(),fromNormalAndPoint:iqt(),fromValues:sqt(),fromNoisyPoints:ssi(),fromPoints:cqt(),fromPointsRandom:asi(),projectionOfPoint:Asi(),signedDistanceToPoint:dqt(),toString:pqt(),transform:csi()}),IHe}var CHe,fqt;function lsi(){if(fqt)return CHe;fqt=1;const t=E6(),e=EY();return CHe=o=\u003e{const i=o.vertices.slice().reverse(),r=e(i);return o.plane\u0026\u0026(r.plane=t.flip(t.create(),o.plane)),r},CHe}var yHe,Iqt;function Cqt(){return Iqt||(Iqt=1,yHe=e=\u003e!!(e\u0026\u0026typeof e==\"object\"\u0026\u0026\"vertices\"in e\u0026\u0026Array.isArray(e.vertices))),yHe}var xHe,yqt;function xqt(){if(yqt)return xHe;yqt=1;const t=E6(),e=jr(),n=r=\u003eo(r.vertices),o=r=\u003e{const s=r.length;if(s\u003e2){const a=t.fromPoints(t.create(),...r);let A=r[s-2],c=r[s-1];for(let l=0;l\u003cs;l++){const u=r[l];if(!i(A,c,u,a))return!1;A=c,c=u}}return!0},i=(r,s,a,A)=\u003e{const c=e.cross(e.create(),e.subtract(e.create(),s,r),e.subtract(e.create(),a,s));return e.dot(c,A)\u003e=0};return xHe=n,xHe}var EHe,Eqt;function BHe(){if(Eqt)return EHe;Eqt=1;const t=E6();return EHe=n=\u003e(n.plane||(n.plane=t.fromPoints(t.create(),...n.vertices)),n.plane),EHe}var bHe,Bqt;function bqt(){if(Bqt)return bHe;Bqt=1;const t=BHe();return bHe=n=\u003e{const o=n.vertices.length;if(o\u003c3)return 0;const i=n.vertices,r=t(n),s=Math.abs(r[0]),a=Math.abs(r[1]),A=Math.abs(r[2]);if(s+a+A===0)return 0;let c=3;s\u003ea\u0026\u0026s\u003eA?c=1:a\u003eA\u0026\u0026(c=2);let l=0,u=0,g=1,h=2;switch(c){case 1:for(g=1;g\u003co;g++)u=g-1,h=(g+1)%o,l+=i[g][1]*(i[h][2]-i[u][2]);l+=i[0][1]*(i[1][2]-i[o-1][2]),l/=2*r[0];break;case 2:for(g=1;g\u003co;g++)u=g-1,h=(g+1)%o,l+=i[g][2]*(i[h][0]-i[u][0]);l+=i[0][2]*(i[1][0]-i[o-1][0]),l/=2*r[1];break;default:for(g=1;g\u003co;g++)u=g-1,h=(g+1)%o,l+=i[g][0]*(i[h][1]-i[u][1]);l+=i[0][0]*(i[1][1]-i[o-1][1]),l/=2*r[2];break}return l},bHe}var SHe,Sqt;function usi(){if(Sqt)return SHe;Sqt=1;const t=jr();return SHe=n=\u003e{const o=n.vertices,i=o.length,r=i===0?t.create():t.clone(o[0]),s=t.clone(r);for(let a=1;a\u003ci;a++)t.min(r,r,o[a]),t.max(s,s,o[a]);return[r,s]},SHe}var QHe,Qqt;function gsi(){return Qqt||(Qqt=1,QHe=(e,n)=\u003ee[0]*n[0]+e[1]*n[1]+e[2]*n[2]+e[3]*n[3]),QHe}var vHe,vqt;function dsi(){return vqt||(vqt=1,vHe=(e,n)=\u003e(e[0]=n,e[1]=n,e[2]=n,e[3]=n,e)),vHe}var wHe,wqt;function hsi(){return wqt||(wqt=1,wHe=(e,n,o)=\u003e{const[i,r,s,a]=n;return e[0]=o[0]*i+o[4]*r+o[8]*s+o[12]*a,e[1]=o[1]*i+o[5]*r+o[9]*s+o[13]*a,e[2]=o[2]*i+o[6]*r+o[10]*s+o[14]*a,e[3]=o[3]*i+o[7]*r+o[11]*s+o[15]*a,e}),wHe}var PHe,Pqt;function Mqt(){return Pqt||(Pqt=1,PHe={clone:$t(),copy:X$t(),create:Qhe(),dot:gsi(),equals:eqt(),fromScalar:dsi(),fromValues:sqt(),toString:pqt(),transform:hsi()}),PHe}var MHe,Dqt;function psi(){if(Dqt)return MHe;Dqt=1;const t=Mqt(),e=new WeakMap;return MHe=o=\u003e{const i=e.get(o);if(i)return i;const r=o.vertices,s=t.create();if(r.length===0)return s[0]=0,s[1]=0,s[2]=0,s[3]=0,s;let a=r[0],A=a,c=a,l=a,u=a,g=a;r.forEach(m=\u003e{a[0]\u003em[0]\u0026\u0026(a=m),A[1]\u003em[1]\u0026\u0026(A=m),c[2]\u003em[2]\u0026\u0026(c=m),l[0]\u003cm[0]\u0026\u0026(l=m),u[1]\u003cm[1]\u0026\u0026(u=m),g[2]\u003cm[2]\u0026\u0026(g=m)}),s[0]=(a[0]+l[0])*.5,s[1]=(A[1]+u[1])*.5,s[2]=(c[2]+g[2])*.5;const h=s[0]-l[0],d=s[1]-u[1],p=s[2]-g[2];return s[3]=Math.sqrt(h*h+d*d+p*p),e.set(o,s),s},MHe}var DHe,Nqt;function msi(){if(Nqt)return DHe;Nqt=1;const t=jr();return DHe=n=\u003e{let o=0;const i=n.vertices,r=t.create();for(let s=0;s\u003ci.length-2;s++)t.cross(r,i[s+1],i[s+2]),o+=t.dot(i[0],r);return o/=6,o},DHe}var NHe,Rqt;function _si(){return Rqt||(Rqt=1,NHe=e=\u003ee.vertices),NHe}var RHe,Tqt;function fsi(){if(Tqt)return RHe;Tqt=1;const t=jr();return RHe=n=\u003e{let o=\"poly3: vertices: [\";return n.vertices.forEach(i=\u003e{o+=`${t.toString(i)}, `}),o+=\"]\",o},RHe}var THe,kqt;function Isi(){if(kqt)return THe;kqt=1;const t=Mu(),e=jr(),n=EY();return THe=(i,r)=\u003e{const s=r.vertices.map(a=\u003ee.transform(e.create(),a,i));return t.isMirroring(i)\u0026\u0026s.reverse(),n(s)},THe}var kHe,Fqt;function Csi(){if(Fqt)return kHe;Fqt=1;const t=dqt(),{NEPS:e}=pc(),n=jr(),o=Cqt(),i=xqt(),r=bqt(),s=BHe();return kHe=A=\u003e{if(!o(A))throw new Error(\"invalid poly3 structure\");if(A.vertices.length\u003c3)throw new Error(`poly3 not enough vertices ${A.vertices.length}`);if(r(A)\u003c=0)throw new Error(\"poly3 area must be greater than zero\");for(let c=0;c\u003cA.vertices.length;c++)if(n.equals(A.vertices[c],A.vertices[(c+1)%A.vertices.length]))throw new Error(`poly3 duplicate vertex ${A.vertices[c]}`);if(!i(A))throw new Error(\"poly3 must be convex\");if(A.vertices.forEach(c=\u003e{if(!c.every(Number.isFinite))throw new Error(`poly3 invalid vertex ${c}`)}),A.vertices.length\u003e3){const c=s(A);A.vertices.forEach(l=\u003e{const u=Math.abs(t(c,l));if(u\u003ee)throw new Error(`poly3 must be coplanar: vertex ${l} distance ${u}`)})}},kHe}var FHe,Lqt;function qA(){return Lqt||(Lqt=1,FHe={clone:osi(),create:EY(),fromPoints:isi(),fromPointsAndPlane:rsi(),invert:lsi(),isA:Cqt(),isConvex:xqt(),measureArea:bqt(),measureBoundingBox:usi(),measureBoundingSphere:psi(),measureSignedVolume:msi(),plane:BHe(),toPoints:_si(),toString:fsi(),transform:Isi(),validate:Csi()}),FHe}var LHe,Hqt;function ysi(){if(Hqt)return LHe;Hqt=1;const t=U$t(),e=gX(),n=qA();return LHe=i=\u003e{if(!Array.isArray(i))throw new Error(\"the given points must be an array\");const s=t(i,{skipTriangulation:!0}).map(a=\u003e{const A=a.map(c=\u003ei[c]);return n.create(A)});return e(s)},LHe}var HHe,Oqt;function xsi(){if(Oqt)return HHe;Oqt=1;const t=qA(),e=gX();return HHe=o=\u003e{if(!Array.isArray(o))throw new Error(\"the given points must be an array\");const i=o.map((s,a)=\u003et.create(s));return e(i)},HHe}var OHe,Gqt;function Esi(){if(Gqt)return OHe;Gqt=1;const t=jr(),e=Mu(),n=qA(),o=gX();return OHe=r=\u003e{if(r[0]!==1)throw new Error(\"invalid compact binary data\");const s=o();s.transforms=e.clone(r.slice(1,17));const a=r[21];let A=22,c=r.length-a*3;for(;c\u003cr.length;){const l=r[A];A++;const u=[];for(let g=0;g\u003cl;g++)u.push(t.fromValues(r[c],r[c+1],r[c+2])),c+=3;s.polygons.push(n.create(u))}return r[17]\u003e=0\u0026\u0026(s.color=[r[17],r[18],r[19],r[20]]),s},OHe}var GHe,Yqt;function Bsi(){if(Yqt)return GHe;Yqt=1;const t=Mu(),e=qA();return GHe=o=\u003e(t.isIdentity(o.transforms)||(o.polygons=o.polygons.map(i=\u003ee.transform(o.transforms,i)),o.transforms=t.create()),o),GHe}var YHe,Uqt;function dX(){if(Uqt)return YHe;Uqt=1;const t=Bsi();return YHe=n=\u003et(n).polygons,YHe}var UHe,Kqt;function bsi(){if(Kqt)return UHe;Kqt=1;const t=qA(),e=gX(),n=dX();return UHe=i=\u003e{const s=n(i).map(a=\u003et.invert(a));return e(s)},UHe}var KHe,Vqt;function VHe(){return Vqt||(Vqt=1,KHe=e=\u003e!!(e\u0026\u0026typeof e==\"object\"\u0026\u0026\"polygons\"in e\u0026\u0026\"transforms\"in e\u0026\u0026Array.isArray(e.polygons)\u0026\u0026\"length\"in e.transforms)),KHe}var zHe,zqt;function Ssi(){if(zqt)return zHe;zqt=1;const{EPS:t}=pc(),e=jr(),n=VHe(),o=dX(),i=qA();return zHe=s=\u003e{if(!n(s))throw new Error(\"isConvex requires a geom3 geometry\");const a=o(s);if(a.length===0)return!0;const A=[],c=new Set;for(let l=0;l\u003ca.length;l++){const u=a[l].vertices;for(let g=0;g\u003cu.length;g++){const h=u[g],d=`${h[0]},${h[1]},${h[2]}`;c.has(d)||(c.add(d),A.push(h))}}for(let l=0;l\u003ca.length;l++){const u=i.plane(a[l]);for(let g=0;g\u003cA.length;g++){const h=A[g];if(e.dot(u,h)-u[3]\u003et)return!1}}return!0},zHe}var JHe,Jqt;function Qsi(){if(Jqt)return JHe;Jqt=1;const t=qA(),e=dX();return JHe=o=\u003ee(o).map(s=\u003et.toPoints(s)),JHe}var WHe,Wqt;function vsi(){if(Wqt)return WHe;Wqt=1;const t=qA(),e=dX();return WHe=o=\u003e{const i=e(o);let r=\"geom3 (\"+i.length+` polygons):\n`;return i.forEach(s=\u003e{r+=\" \"+t.toString(s)+`\n`}),r},WHe}var jHe,jqt;function wsi(){if(jqt)return jHe;jqt=1;const t=qA();return jHe=n=\u003e{const o=n.polygons,i=n.transforms,r=o.length,s=o.reduce((u,g)=\u003eu+g.vertices.length,0);let a=[-1,-1,-1,-1];n.color\u0026\u0026(a=n.color);const A=new Float32Array(22+r+s*3);A[0]=1,A[1]=i[0],A[2]=i[1],A[3]=i[2],A[4]=i[3],A[5]=i[4],A[6]=i[5],A[7]=i[6],A[8]=i[7],A[9]=i[8],A[10]=i[9],A[11]=i[10],A[12]=i[11],A[13]=i[12],A[14]=i[13],A[15]=i[14],A[16]=i[15],A[17]=a[0],A[18]=a[1],A[19]=a[2],A[20]=a[3],A[21]=s;let c=22,l=c+r;return o.forEach(u=\u003e{const g=t.toPoints(u);A[c]=g.length,c++;for(let h=0;h\u003cg.length;h++){const d=g[h];A[l+0]=d[0],A[l+1]=d[1],A[l+2]=d[2],l+=3}}),A},jHe}var $He,$qt;function Psi(){if($qt)return $He;$qt=1;const t=Mu();return $He=(n,o)=\u003e{const i=t.multiply(t.create(),n,o.transforms);return Object.assign({},o,{transforms:i})},$He}var qHe,qqt;function Msi(){if(qqt)return qHe;qqt=1;const t=qA(),e=VHe(),n=i=\u003e{if(!e(i))throw new Error(\"invalid geom3 structure\");if(i.polygons.forEach(t.validate),o(i),!i.transforms.every(Number.isFinite))throw new Error(`geom3 invalid transforms ${i.transforms}`)},o=i=\u003e{const r=new Map;i.polygons.forEach(({vertices:a})=\u003e{a.forEach((A,c)=\u003e{const l=`${A}`,u=`${a[(c+1)%a.length]}`,g=`${l}/${u}`,h=r.has(g)?r.get(g):0;r.set(g,h+1)})});const s=[];if(r.forEach((a,A)=\u003e{const c=A.split(\"/\").reverse().join(\"/\"),l=r.get(c);a!==l\u0026\u0026s.push(A.replace(\"/\",\" -\u003e \"))}),s.length\u003e0)throw new Error(`non-manifold edges ${s.length}\n${s.join(`\n`)}`)};return qHe=n,qHe}var XHe,Xqt;function Ra(){return Xqt||(Xqt=1,XHe={clone:jri(),create:gX(),fromPointsConvex:ysi(),fromPoints:xsi(),fromCompactBinary:Esi(),invert:bsi(),isA:VHe(),isConvex:Ssi(),toPoints:Qsi(),toPolygons:dX(),toString:vsi(),toCompactBinary:wsi(),transform:Psi(),validate:Msi()}),XHe}var ZHe,Zqt;function eOe(){return Zqt||(Zqt=1,ZHe=e=\u003eObject.assign({},e)),ZHe}var tOe,eXt;function tXt(){if(eXt)return tOe;eXt=1;const{EPS:t}=pc(),e=mA(),n=eOe();return tOe=i=\u003e{if(i.isClosed)return i;const r=n(i);if(r.isClosed=!0,r.points.length\u003e1){const s=r.points,a=s[0];let A=s[s.length-1];for(;e.distance(a,A)\u003ct*t\u0026\u0026(s.pop(),s.length!==1);)A=s[s.length-1]}return r},tOe}var nOe,nXt;function vhe(){if(nXt)return nOe;nXt=1;const t=Mu();return nOe=n=\u003e(n===void 0\u0026\u0026(n=[]),{points:n,isClosed:!1,transforms:t.create()}),nOe}var oOe,oXt;function iOe(){if(oXt)return oOe;oXt=1;const{EPS:t}=pc(),e=mA(),n=tXt(),o=vhe();return oOe=(r,s)=\u003e{const a={closed:!1};let{closed:A}=Object.assign({},a,r),c=o();if(c.points=s.map(l=\u003ee.clone(l)),c.points.length\u003e1){const l=c.points[0],u=c.points[c.points.length-1];e.distance(l,u)\u003ct*t\u0026\u0026(A=!0)}return A===!0\u0026\u0026(c=n(c)),c},oOe}var rOe,iXt;function Dsi(){if(iXt)return rOe;iXt=1;const t=Mu(),e=mA();return rOe=o=\u003e(t.isIdentity(o.transforms)||(o.points=o.points.map(i=\u003ee.transform(e.create(),i,o.transforms)),o.transforms=t.create()),o),rOe}var sOe,rXt;function BY(){if(rXt)return sOe;rXt=1;const t=Dsi();return sOe=n=\u003et(n).points,sOe}var aOe,sXt;function Nsi(){if(sXt)return aOe;sXt=1;const{TAU:t}=pc(),e=mA(),n=iOe(),o=BY();return aOe=(r,s)=\u003e{const a={radius:[0,0],xaxisrotation:0,clockwise:!1,large:!1,segments:16};let{endpoint:A,radius:c,xaxisrotation:l,clockwise:u,large:g,segments:h}=Object.assign({},a,r);if(!Array.isArray(A))throw new Error(\"endpoint must be an array of X and Y values\");if(A.length\u003c2)throw new Error(\"endpoint must contain X and Y values\");if(A=e.clone(A),!Array.isArray(c))throw new Error(\"radius must be an array of X and Y values\");if(c.length\u003c2)throw new Error(\"radius must contain X and Y values\");if(h\u003c4)throw new Error(\"segments must be four or more\");const d=1e5;if(s.isClosed)throw new Error(\"the given path cannot be closed\");const p=o(s);if(p.length\u003c1)throw new Error(\"the given path must contain one or more points (as the starting point for the arc)\");let m=c[0],_=c[1];const f=p[p.length-1];m=Math.round(m*d)/d,_=Math.round(_*d)/d,A=e.fromValues(Math.round(A[0]*d)/d,Math.round(A[1]*d)/d);const I=!u;let C=[];if(m===0||_===0)C.push(A);else{m=Math.abs(m),_=Math.abs(_);const x=l,E=Math.cos(x),B=Math.sin(x),S=e.subtract(e.create(),f,A);e.scale(S,S,.5);const Q=Math.round((E*S[0]+B*S[1])*d)/d,w=Math.round((-B*S[0]+E*S[1])*d)/d,M=e.fromValues(Q,w),k=M[0]*M[0]/(m*m)+M[1]*M[1]/(_*_);if(k\u003e1){const oe=Math.sqrt(k);m*=oe,_*=oe,m=Math.round(m*d)/d,_=Math.round(_*d)/d}let R=Math.sqrt((m*m*_*_-m*m*M[1]*M[1]-_*_*M[0]*M[0])/(m*m*M[1]*M[1]+_*_*M[0]*M[0]));I===g\u0026\u0026(R=-R);const F=e.fromValues(m*M[1]/_,-_*M[0]/m);e.scale(F,F,R);let O=e.fromValues(E*F[0]-B*F[1],B*F[0]+E*F[1]);O=e.add(O,O,e.scale(e.create(),e.add(e.create(),f,A),.5));const U=e.fromValues((M[0]-F[0])/m,(M[1]-F[1])/_),Y=e.fromValues((-M[0]-F[0])/m,(-M[1]-F[1])/_),W=e.angleRadians(U);let j=e.angleRadians(Y)-W;j=j%t,!I\u0026\u0026j\u003e0?j-=t:I\u0026\u0026j\u003c0\u0026\u0026(j+=t);let J=Math.floor(h*(Math.abs(j)/t));J\u003c1\u0026\u0026(J=1);for(let oe=1;oe\u003cJ;oe++){const ie=W+oe/J*j,ne=Math.cos(ie),le=Math.sin(ie),ge=e.fromValues(E*m*ne-B*_*le,B*m*ne+E*_*le);e.add(ge,ge,O),C.push(ge)}J\u0026\u0026C.push(r.endpoint)}return C=p.concat(C),n({},C)},aOe}var AOe,aXt;function AXt(){if(aXt)return AOe;aXt=1;const t=iOe(),e=BY(),{equals:n}=mA();return AOe=(...i)=\u003e{let r=!1,s=[];return i.forEach((a,A)=\u003e{const c=e(a).slice();if(s.length\u003e0\u0026\u0026c.length\u003e0\u0026\u0026n(c[0],s[s.length-1])\u0026\u0026c.shift(),c.length\u003e0\u0026\u0026r)throw new Error(`Cannot concatenate to a closed path; check the ${A}th path`);r=a.isClosed,s=s.concat(c)}),t({closed:r},s)},AOe}var cOe,cXt;function lXt(){if(cXt)return cOe;cXt=1;const t=AXt(),e=vhe();return cOe=(o,i)=\u003et(i,e(o)),cOe}var lOe,uXt;function Rsi(){if(uXt)return lOe;uXt=1;const{TAU:t}=pc(),e=mA(),n=mA(),o=lXt(),i=BY();return lOe=(s,a)=\u003e{const A={segments:16};let{controlPoints:c,segments:l}=Object.assign({},A,s);if(!Array.isArray(c))throw new Error(\"controlPoints must be an array of one or more points\");if(c.length\u003c1)throw new Error(\"controlPoints must be an array of one or more points\");if(l\u003c4)throw new Error(\"segments must be four or more\");if(a.isClosed)throw new Error(\"the given geometry cannot be closed\");const u=i(a);if(u.length\u003c1)throw new Error(\"the given path must contain one or more points (as the starting point for the bezier curve)\");if(c=c.slice(),c[0]===null){if(c.length\u003c2)throw new Error(\"a null control point must be passed with one more control points\");let M=u[u.length-2];if(\"lastBezierControlPoint\"in a\u0026\u0026(M=a.lastBezierControlPoint),!Array.isArray(M))throw new Error(\"the given path must contain TWO or more points if given a null control point\");const k=e.scale(e.create(),u[u.length-1],2);e.subtract(k,k,M),c[0]=k}c.unshift(u[u.length-1]);const h=c.length-1,d=[];let p=1;for(let M=0;M\u003c=h;++M)M\u003e0\u0026\u0026(p*=M),d.push(p);const m=[];for(let M=0;M\u003c=h;++M){const k=d[h]/(d[M]*d[h-M]);m.push(k)}const _=e.create(),f=e.create(),I=n.create(),C=M=\u003e{let k=1,R=Math.pow(1-M,h);const F=M!==1?1/(1-M):1,O=e.create();for(let U=0;U\u003c=h;++U){U===h\u0026\u0026(R=1);const Y=m[U]*k*R,W=e.scale(_,c[U],Y);e.add(O,O,W),k*=M,R*=F}return O},y=[],x=[],E=h+1;for(let M=0;M\u003cE;++M){const k=M/(E-1),R=C(k);y.push(R),x.push(k)}let B=1;const S=t/l,Q=Math.sin(S);for(;B\u003cy.length-1;){const M=e.subtract(_,y[B],y[B-1]);e.normalize(M,M);const k=e.subtract(f,y[B+1],y[B]);e.normalize(k,k);const R=e.cross(I,M,k);if(Math.abs(R[2])\u003eQ){const F=x[B-1],O=x[B+1],U=F+(O-F)*1/3,Y=F+(O-F)*2/3,W=C(U),te=C(Y);y.splice(B,1,W,te),x.splice(B,1,U,Y),B--,B\u003c1\u0026\u0026(B=1)}else++B}y.shift();const w=o(y,a);return w.lastBezierControlPoint=c[c.length-2],w},lOe}var uOe,gXt;function Tsi(){if(gXt)return uOe;gXt=1;const t=mA(),e=BY();return uOe=(o,i)=\u003e{if(o.isClosed!==i.isClosed||o.points.length!==i.points.length)return!1;const r=e(o),s=e(i),a=r.length;let A=0;do{let c=!1;for(let l=0;l\u003ca;l++)if(!t.equals(r[l],s[(l+A)%a])){c=!0;break}if(c===!1)return!0;if(!o.isClosed)return!1}while(++A\u003ca);return!1},uOe}var gOe,dXt;function ksi(){if(dXt)return gOe;dXt=1;const t=Mu(),e=mA(),n=vhe();return gOe=i=\u003e{if(i[0]!==2)throw new Error(\"invalid compact binary data\");const r=n();r.transforms=t.clone(i.slice(1,17)),r.isClosed=!!i[17];for(let s=22;s\u003ci.length;s+=2){const a=e.fromValues(i[s],i[s+1]);r.points.push(a)}return i[18]\u003e=0\u0026\u0026(r.color=[i[18],i[19],i[20],i[21]]),r},gOe}var dOe,hXt;function pXt(){return hXt||(hXt=1,dOe=e=\u003e!!(e\u0026\u0026typeof e==\"object\"\u0026\u0026\"points\"in e\u0026\u0026\"transforms\"in e\u0026\u0026\"isClosed\"in e\u0026\u0026Array.isArray(e.points)\u0026\u0026\"length\"in e.transforms)),dOe}var hOe,mXt;function Fsi(){if(mXt)return hOe;mXt=1;const t=eOe();return hOe=n=\u003e{const o=t(n);return o.points=n.points.slice().reverse(),o},hOe}var pOe,_Xt;function Lsi(){if(_Xt)return pOe;_Xt=1;const t=mA(),e=BY();return pOe=o=\u003e{const i=e(o);let r=\"path (\"+i.length+\" points, \"+o.isClosed+`):\n[\n`;return i.forEach(s=\u003e{r+=\" \"+t.toString(s)+`,\n`}),r+=`]\n`,r},pOe}var mOe,fXt;function Hsi(){return fXt||(fXt=1,mOe=e=\u003e{const n=e.points,o=e.transforms;let i=[-1,-1,-1,-1];e.color\u0026\u0026(i=e.color);const r=new Float32Array(22+n.length*2);r[0]=2,r[1]=o[0],r[2]=o[1],r[3]=o[2],r[4]=o[3],r[5]=o[4],r[6]=o[5],r[7]=o[6],r[8]=o[7],r[9]=o[8],r[10]=o[9],r[11]=o[10],r[12]=o[11],r[13]=o[12],r[14]=o[13],r[15]=o[14],r[16]=o[15],r[17]=e.isClosed?1:0,r[18]=i[0],r[19]=i[1],r[20]=i[2],r[21]=i[3];for(let s=0;s\u003cn.length;s++){const a=s*2+22,A=n[s];r[a]=A[0],r[a+1]=A[1]}return r}),mOe}var _Oe,IXt;function Osi(){if(IXt)return _Oe;IXt=1;const t=Mu();return _Oe=(n,o)=\u003e{const i=t.multiply(t.create(),n,o.transforms);return Object.assign({},o,{transforms:i})},_Oe}var fOe,CXt;function Gsi(){if(CXt)return fOe;CXt=1;const t=mA(),e=pXt();return fOe=o=\u003e{if(!e(o))throw new Error(\"invalid path2 structure\");if(o.points.length\u003e1){for(let i=0;i\u003co.points.length;i++)if(t.equals(o.points[i],o.points[(i+1)%o.points.length]))throw new Error(`path2 duplicate points ${o.points[i]}`)}if(o.points.forEach(i=\u003e{if(!i.every(Number.isFinite))throw new Error(`path2 invalid point ${i}`)}),!o.transforms.every(Number.isFinite))throw new Error(`path2 invalid transforms ${o.transforms}`)},fOe}var IOe,yXt;function au(){return yXt||(yXt=1,IOe={appendArc:Nsi(),appendBezier:Rsi(),appendPoints:lXt(),clone:eOe(),close:tXt(),concat:AXt(),create:vhe(),equals:Tsi(),fromPoints:iOe(),fromCompactBinary:ksi(),isA:pXt(),reverse:Fsi(),toPoints:BY(),toString:Lsi(),toCompactBinary:Hsi(),transform:Osi(),validate:Gsi()}),IOe}var COe,xXt;function Ysi(){if(xXt)return COe;xXt=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=qA(),r=(l,u)=\u003e{const g=e.clone(u);return g.color=l,g},s=(l,u)=\u003e{const g=n.clone(u);return g.color=l,g},a=(l,u)=\u003e{const g=o.clone(u);return g.color=l,g},A=(l,u)=\u003e{const g=i.clone(u);return g.color=l,g};return COe=(l,...u)=\u003e{if(!Array.isArray(l))throw new Error(\"color must be an array\");if(l.length\u003c3)throw new Error(\"color must contain R, G and B values\");if(l.length===3\u0026\u0026(l=[l[0],l[1],l[2],1]),u=t(u),u.length===0)throw new Error(\"wrong number of arguments\");const g=u.map(h=\u003ee.isA(h)?r(l,h):n.isA(h)?s(l,h):o.isA(h)?a(l,h):i.isA(h)?A(l,h):(h.color=l,h));return g.length===1?g[0]:g},COe}var yOe,EXt;function BXt(){return EXt||(EXt=1,yOe={black:[0/255,0/255,0/255],silver:[192/255,192/255,192/255],gray:[128/255,128/255,128/255],white:[255/255,255/255,255/255],maroon:[128/255,0/255,0/255],red:[255/255,0/255,0/255],purple:[128/255,0/255,128/255],fuchsia:[255/255,0/255,255/255],green:[0/255,128/255,0/255],lime:[0/255,255/255,0/255],olive:[128/255,128/255,0/255],yellow:[255/255,255/255,0/255],navy:[0/255,0/255,128/255],blue:[0/255,0/255,255/255],teal:[0/255,128/255,128/255],aqua:[0/255,255/255,255/255],aliceblue:[240/255,248/255,255/255],antiquewhite:[250/255,235/255,215/255],aquamarine:[127/255,255/255,212/255],azure:[240/255,255/255,255/255],beige:[245/255,245/255,220/255],bisque:[255/255,228/255,196/255],blanchedalmond:[255/255,235/255,205/255],blueviolet:[138/255,43/255,226/255],brown:[165/255,42/255,42/255],burlywood:[222/255,184/255,135/255],cadetblue:[95/255,158/255,160/255],chartreuse:[127/255,255/255,0/255],chocolate:[210/255,105/255,30/255],coral:[255/255,127/255,80/255],cornflowerblue:[100/255,149/255,237/255],cornsilk:[255/255,248/255,220/255],crimson:[220/255,20/255,60/255],cyan:[0/255,255/255,255/255],darkblue:[0/255,0/255,139/255],darkcyan:[0/255,139/255,139/255],darkgoldenrod:[184/255,134/255,11/255],darkgray:[169/255,169/255,169/255],darkgreen:[0/255,100/255,0/255],darkgrey:[169/255,169/255,169/255],darkkhaki:[189/255,183/255,107/255],darkmagenta:[139/255,0/255,139/255],darkolivegreen:[85/255,107/255,47/255],darkorange:[255/255,140/255,0/255],darkorchid:[153/255,50/255,204/255],darkred:[139/255,0/255,0/255],darksalmon:[233/255,150/255,122/255],darkseagreen:[143/255,188/255,143/255],darkslateblue:[72/255,61/255,139/255],darkslategray:[47/255,79/255,79/255],darkslategrey:[47/255,79/255,79/255],darkturquoise:[0/255,206/255,209/255],darkviolet:[148/255,0/255,211/255],deeppink:[255/255,20/255,147/255],deepskyblue:[0/255,191/255,255/255],dimgray:[105/255,105/255,105/255],dimgrey:[105/255,105/255,105/255],dodgerblue:[30/255,144/255,255/255],firebrick:[178/255,34/255,34/255],floralwhite:[255/255,250/255,240/255],forestgreen:[34/255,139/255,34/255],gainsboro:[220/255,220/255,220/255],ghostwhite:[248/255,248/255,255/255],gold:[255/255,215/255,0/255],goldenrod:[218/255,165/255,32/255],greenyellow:[173/255,255/255,47/255],grey:[128/255,128/255,128/255],honeydew:[240/255,255/255,240/255],hotpink:[255/255,105/255,180/255],indianred:[205/255,92/255,92/255],indigo:[75/255,0/255,130/255],ivory:[255/255,255/255,240/255],khaki:[240/255,230/255,140/255],lavender:[230/255,230/255,250/255],lavenderblush:[255/255,240/255,245/255],lawngreen:[124/255,252/255,0/255],lemonchiffon:[255/255,250/255,205/255],lightblue:[173/255,216/255,230/255],lightcoral:[240/255,128/255,128/255],lightcyan:[224/255,255/255,255/255],lightgoldenrodyellow:[250/255,250/255,210/255],lightgray:[211/255,211/255,211/255],lightgreen:[144/255,238/255,144/255],lightgrey:[211/255,211/255,211/255],lightpink:[255/255,182/255,193/255],lightsalmon:[255/255,160/255,122/255],lightseagreen:[32/255,178/255,170/255],lightskyblue:[135/255,206/255,250/255],lightslategray:[119/255,136/255,153/255],lightslategrey:[119/255,136/255,153/255],lightsteelblue:[176/255,196/255,222/255],lightyellow:[255/255,255/255,224/255],limegreen:[50/255,205/255,50/255],linen:[250/255,240/255,230/255],magenta:[255/255,0/255,255/255],mediumaquamarine:[102/255,205/255,170/255],mediumblue:[0/255,0/255,205/255],mediumorchid:[186/255,85/255,211/255],mediumpurple:[147/255,112/255,219/255],mediumseagreen:[60/255,179/255,113/255],mediumslateblue:[123/255,104/255,238/255],mediumspringgreen:[0/255,250/255,154/255],mediumturquoise:[72/255,209/255,204/255],mediumvioletred:[199/255,21/255,133/255],midnightblue:[25/255,25/255,112/255],mintcream:[245/255,255/255,250/255],mistyrose:[255/255,228/255,225/255],moccasin:[255/255,228/255,181/255],navajowhite:[255/255,222/255,173/255],oldlace:[253/255,245/255,230/255],olivedrab:[107/255,142/255,35/255],orange:[255/255,165/255,0/255],orangered:[255/255,69/255,0/255],orchid:[218/255,112/255,214/255],palegoldenrod:[238/255,232/255,170/255],palegreen:[152/255,251/255,152/255],paleturquoise:[175/255,238/255,238/255],palevioletred:[219/255,112/255,147/255],papayawhip:[255/255,239/255,213/255],peachpuff:[255/255,218/255,185/255],peru:[205/255,133/255,63/255],pink:[255/255,192/255,203/255],plum:[221/255,160/255,221/255],powderblue:[176/255,224/255,230/255],rosybrown:[188/255,143/255,143/255],royalblue:[65/255,105/255,225/255],saddlebrown:[139/255,69/255,19/255],salmon:[250/255,128/255,114/255],sandybrown:[244/255,164/255,96/255],seagreen:[46/255,139/255,87/255],seashell:[255/255,245/255,238/255],sienna:[160/255,82/255,45/255],skyblue:[135/255,206/255,235/255],slateblue:[106/255,90/255,205/255],slategray:[112/255,128/255,144/255],slategrey:[112/255,128/255,144/255],snow:[255/255,250/255,250/255],springgreen:[0/255,255/255,127/255],steelblue:[70/255,130/255,180/255],tan:[210/255,180/255,140/255],thistle:[216/255,191/255,216/255],tomato:[255/255,99/255,71/255],turquoise:[64/255,224/255,208/255],violet:[238/255,130/255,238/255],wheat:[245/255,222/255,179/255],whitesmoke:[245/255,245/255,245/255],yellowgreen:[154/255,205/255,50/255]}),yOe}var xOe,bXt;function Usi(){if(bXt)return xOe;bXt=1;const t=BXt();return xOe=n=\u003et[n.toLowerCase()],xOe}var EOe,SXt;function Ksi(){return SXt||(SXt=1,EOe=e=\u003e{if(e=e.replace(\"#\",\"\"),e.length\u003c6)throw new Error(\"the given notation must contain 3 or more hex values\");const n=parseInt(e.substring(0,2),16)/255,o=parseInt(e.substring(2,4),16)/255,i=parseInt(e.substring(4,6),16)/255;if(e.length\u003e=8){const r=parseInt(e.substring(6,8),16)/255;return[n,o,i,r]}return[n,o,i]}),EOe}var BOe,QXt;function vXt(){return QXt||(QXt=1,BOe=(e,n,o)=\u003e(o\u003c0\u0026\u0026(o+=1),o\u003e1\u0026\u0026(o-=1),o\u003c1/6?e+(n-e)*6*o:o\u003c1/2?n:o\u003c2/3?e+(n-e)*(2/3-o)*6:e)),BOe}var bOe,wXt;function Vsi(){if(wXt)return bOe;wXt=1;const t=la(),e=vXt();return bOe=(...o)=\u003e{if(o=t(o),o.length\u003c3)throw new Error(\"values must contain H, S and L values\");const i=o[0],r=o[1],s=o[2];let a=s,A=s,c=s;if(r!==0){const l=s\u003c.5?s*(1+r):s+r-s*r,u=2*s-l;a=e(u,l,i+1/3),A=e(u,l,i),c=e(u,l,i-1/3)}if(o.length\u003e3){const l=o[3];return[a,A,c,l]}return[a,A,c]},bOe}var SOe,PXt;function zsi(){if(PXt)return SOe;PXt=1;const t=la();return SOe=(...n)=\u003e{if(n=t(n),n.length\u003c3)throw new Error(\"values must contain H, S and V values\");const o=n[0],i=n[1],r=n[2];let s=0,a=0,A=0;const c=Math.floor(o*6),l=o*6-c,u=r*(1-i),g=r*(1-l*i),h=r*(1-(1-l)*i);switch(c%6){case 0:s=r,a=h,A=u;break;case 1:s=g,a=r,A=u;break;case 2:s=u,a=r,A=h;break;case 3:s=u,a=g,A=r;break;case 4:s=h,a=u,A=r;break;case 5:s=r,a=u,A=g;break}if(n.length\u003e3){const d=n[3];return[s,a,A,d]}return[s,a,A]},SOe}var QOe,MXt;function Jsi(){if(MXt)return QOe;MXt=1;const t=la();return QOe=(...n)=\u003e{if(n=t(n),n.length\u003c3)throw new Error(\"values must contain R, G and B values\");const o=n[0]*255,i=n[1]*255,r=n[2]*255;let s=`#${Number(16777216+o*65536+i*256+r).toString(16).substring(1,7)}`;return n.length\u003e3\u0026\u0026(s=s+Number(n[3]*255).toString(16)),s},QOe}var vOe,DXt;function Wsi(){if(DXt)return vOe;DXt=1;const t=la();return vOe=(...n)=\u003e{if(n=t(n),n.length\u003c3)throw new Error(\"values must contain R, G and B values\");const o=n[0],i=n[1],r=n[2],s=Math.max(o,i,r),a=Math.min(o,i,r);let A,c;const l=(s+a)/2;if(s===a)A=c=0;else{const u=s-a;switch(c=l\u003e.5?u/(2-s-a):u/(s+a),s){case o:A=(i-r)/u+(i\u003cr?6:0);break;case i:A=(r-o)/u+2;break;case r:A=(o-i)/u+4;break}A/=6}if(n.length\u003e3){const u=n[3];return[A,c,l,u]}return[A,c,l]},vOe}var wOe,NXt;function jsi(){if(NXt)return wOe;NXt=1;const t=la();return wOe=(...n)=\u003e{if(n=t(n),n.length\u003c3)throw new Error(\"values must contain R, G and B values\");const o=n[0],i=n[1],r=n[2],s=Math.max(o,i,r),a=Math.min(o,i,r);let A;const c=s,l=s-a,u=s===0?0:l/s;if(s===a)A=0;else{switch(s){case o:A=(i-r)/l+(i\u003cr?6:0);break;case i:A=(r-o)/l+2;break;case r:A=(o-i)/l+4;break}A/=6}if(n.length\u003e3){const g=n[3];return[A,u,c,g]}return[A,u,c]},wOe}var POe,RXt;function $si(){return RXt||(RXt=1,POe={colorize:Ysi(),colorNameToRgb:Usi(),cssColors:BXt(),hexToRgb:Ksi(),hslToRgb:Vsi(),hsvToRgb:zsi(),hueToColorComponent:vXt(),rgbToHex:Jsi(),rgbToHsl:Wsi(),rgbToHsv:jsi()}),POe}var MOe,TXt;function qsi(){if(TXt)return MOe;TXt=1;const t=i=\u003e{if(!Array.isArray(i))throw new Error(\"Bezier points must be a valid array/\");if(i.length\u003c2)throw new Error(\"Bezier points must contain at least 2 values.\");const r=e(i);return{points:i,pointType:r,dimensions:r===\"float_single\"?0:i[0].length,permutations:n(i.length-1),tangentPermutations:n(i.length-2)}},e=function(i){let r=null;return i.forEach(s=\u003e{let a=\"\";if(Number.isFinite(s))a=\"float_single\";else if(Array.isArray(s))s.forEach(A=\u003e{if(!Number.isFinite(A))throw new Error(\"Bezier point values must all be numbers.\")}),a=\"float_\"+s.length;else throw new Error(\"Bezier points must all be numbers or arrays of number.\");if(r==null)r=a;else if(r!==a)throw new Error(\"Bezier points must be either all numbers or all arrays of numbers of the same size.\")}),r},n=function(i){const r=[];for(let s=0;s\u003c=i;s++)r.push(o(i)/(o(s)*o(i-s)));return r},o=function(i){let r=1;for(let s=2;s\u003c=i;s++)r*=s;return r};return MOe=t,MOe}var DOe,kXt;function FXt(){if(kXt)return DOe;kXt=1;const t=(n,o)=\u003e{if(n\u003c0||n\u003e1)throw new Error(\"Bezier valueAt() input must be between 0 and 1\");if(o.pointType===\"float_single\")return e(o,o.points,n);{const i=[];for(let r=0;r\u003co.dimensions;r++){const s=[];for(let a=0;a\u003co.points.length;a++)s.push(o.points[a][r]);i.push(e(o,s,n))}return i}},e=function(n,o,i){const r=o.length-1;let s=0;for(let a=0;a\u003c=r;a++)s+=n.permutations[a]*Math.pow(1-i,r-a)*Math.pow(i,a)*o[a];return s};return DOe=t,DOe}var NOe,LXt;function Xsi(){if(LXt)return NOe;LXt=1;const t=(n,o)=\u003e{if(n\u003c0||n\u003e1)throw new Error(\"Bezier tangentAt() input must be between 0 and 1\");if(o.pointType===\"float_single\")return e(o,o.points,n);{const i=[];for(let r=0;r\u003co.dimensions;r++){const s=[];for(let a=0;a\u003co.points.length;a++)s.push(o.points[a][r]);i.push(e(o,s,n))}return i}},e=function(n,o,i){const r=o.length-1;let s=0;for(let a=0;a\u003cr;a++){const A=r*(o[a+1]-o[a]);s+=n.tangentPermutations[a]*Math.pow(1-i,r-1-a)*Math.pow(i,a)*A}return s};return NOe=t,NOe}var ROe,HXt;function TOe(){if(HXt)return ROe;HXt=1;const t=FXt(),e=(o,i)=\u003e{let r=0;const s=[0];let a=t(0,i);for(let A=1;A\u003c=o;A++){const c=t(A/o,i);r+=n(c,a),s.push(r),a=c}return s},n=(o,i)=\u003e{if(Number.isFinite(o)\u0026\u0026Number.isFinite(i))return Math.abs(o-i);if(Array.isArray(o)\u0026\u0026Array.isArray(i)){if(o.length!==i.length)throw new Error(\"The operands must have the same number of dimensions.\");let r=0;for(let s=0;s\u003co.length;s++)r+=(i[s]-o[s])*(i[s]-o[s]);return Math.sqrt(r)}else throw new Error(\"The operands must be of the same type, either number or array.\")};return ROe=e,ROe}var kOe,OXt;function Zsi(){if(OXt)return kOe;OXt=1;const t=TOe();return kOe=(n,o)=\u003et(n,o)[n],kOe}var FOe,GXt;function eai(){if(GXt)return FOe;GXt=1;const t=TOe();return FOe=(n,o)=\u003e{const i={distance:0,segments:100},{distance:r,segments:s}=Object.assign({},i,n),a=t(s,o);let A=0,c=s;for(;A\u003c=c;){const p=Math.floor(A+(c-A)/2),m=a[p]-r;if(m\u003c0)A=p+1;else if(m\u003e0)c=p-1;else{c=p;break}}const l=c;if(a[l]===r)return l/s;const u=a[l],h=a[l+1]-u,d=(r-u)/h;return(l+d)/s},FOe}var LOe,YXt;function tai(){return YXt||(YXt=1,LOe={create:qsi(),valueAt:FXt(),tangentAt:Xsi(),lengths:TOe(),length:Zsi(),arcLengthToT:eai()}),LOe}var HOe,UXt;function nai(){return UXt||(UXt=1,HOe={bezier:tai()}),HOe}var OOe,KXt;function whe(){return KXt||(KXt=1,OOe=e=\u003e{let n=0;for(let o=0;o\u003ce.length;o++){const i=(o+1)%e.length;n+=e[o][0]*e[i][1],n-=e[i][0]*e[o][1]}return n/2}),OOe}var GOe,VXt;function zXt(){if(VXt)return GOe;VXt=1;const t=whe();return GOe=n=\u003et(n.vertices),GOe}var YOe,JXt;function WXt(){return JXt||(JXt=1,YOe=e=\u003e((e===void 0||e.length\u003c3)\u0026\u0026(e=[]),{vertices:e})),YOe}var UOe,jXt;function $Xt(){if(jXt)return UOe;jXt=1;const t=WXt();return UOe=n=\u003e{const o=n.vertices.slice().reverse();return t(o)},UOe}var KOe,qXt;function oai(){if(qXt)return KOe;qXt=1;const t=zXt(),e=$Xt(),n=(i,r)=\u003e{if(i.length===0)return 0;const s=r.vertices;return s.length\u003c3?0:(t(r)\u003c0\u0026\u0026(r=e(r)),i.reduce((A,c)=\u003eA+o(c,s),0)===i.length?1:0)},o=(i,r)=\u003e{const s=r.length,a=i[0],A=i[1];let c=r[s-1],l=r[0],u=c[1]\u003eA,g=0,h=0;for(let d=s+1;--d;){const p=l[1]\u003eA;if(u!==p){const m=c[0]\u003ea,_=l[0]\u003ea;(m\u0026\u0026_||l[0]-(l[1]-A)*(c[0]-l[0])/(c[1]-l[1])\u003e=a)\u0026\u0026(g=!g)}u=p,c=l,l=r[++h]}return g};return KOe=n,KOe}var VOe,XXt;function zOe(){return XXt||(XXt=1,VOe={arePointsInside:oai(),create:WXt(),flip:$Xt(),measureArea:zXt()}),VOe}var JOe,ZXt;function WOe(){return ZXt||(ZXt=1,JOe={geom2:Ga(),geom3:Ra(),path2:au(),poly2:zOe(),poly3:qA()}),JOe}var jOe,eZt;function $Oe(){return eZt||(eZt=1,jOe=()=\u003e[0,1,0]),jOe}var qOe,tZt;function iai(){if(tZt)return qOe;tZt=1;const t=$Oe();return qOe=n=\u003e{const o=t();return o[0]=n[0],o[1]=n[1],o[2]=n[2],o},qOe}var XOe,nZt;function ZOe(){if(nZt)return XOe;nZt=1;const t=mA();return XOe=n=\u003e{const o=t.normal(t.create(),n);return t.negate(o,o),o},XOe}var eGe,oZt;function Phe(){if(oZt)return eGe;oZt=1;const t=mA();return eGe=n=\u003et.scale(t.create(),n,n[2]),eGe}var tGe,iZt;function rai(){if(iZt)return tGe;iZt=1;const t=mA(),e=ZOe(),n=Phe();return tGe=(i,r)=\u003e{const s=n(i),a=e(i),A=t.subtract(t.create(),r,s),c=t.dot(A,a);return t.scale(A,a,c),t.add(A,A,s),A},tGe}var nGe,rZt;function sZt(){return rZt||(rZt=1,nGe=(e,n)=\u003e(e[0]=n[0],e[1]=n[1],e[2]=n[2],e)),nGe}var oGe,aZt;function sai(){if(aZt)return oGe;aZt=1;const t=mA();return oGe=(n,o)=\u003e{let i=t.dot(o,n);return i=Math.abs(i-n[2]),i},oGe}var iGe,AZt;function aai(){return AZt||(AZt=1,iGe=(e,n)=\u003ee[0]===n[0]\u0026\u0026e[1]===n[1]\u0026\u0026e[2]===n[2]),iGe}var rGe,cZt;function lZt(){if(cZt)return rGe;cZt=1;const t=mA();return rGe=(n,o,i)=\u003e{const r=t.subtract(t.create(),i,o);t.normal(r,r),t.normalize(r,r);const s=t.dot(o,r);return n[0]=r[0],n[1]=r[1],n[2]=s,n},rGe}var sGe,uZt;function gZt(){if(uZt)return sGe;uZt=1;const t=$Oe();return sGe=(n,o,i)=\u003e{const r=t();return r[0]=n,r[1]=o,r[2]=i,r},sGe}var aGe,dZt;function AGe(){if(dZt)return aGe;dZt=1;const{NEPS:t}=pc();return aGe=(n,o)=\u003eMath.abs(n[0]-o[0])\u003c=t\u0026\u0026Math.abs(n[1]-o[1])\u003c=t\u0026\u0026Math.abs(n[2]-o[2])\u003c=t,aGe}var cGe,hZt;function pZt(){return hZt||(hZt=1,cGe=(e,n,o)=\u003e{let i=o-e[1],r=n[1]-e[1];r\u003c0\u0026\u0026(i=-i,r=-r);let s;return i\u003c=0?s=0:i\u003e=r?s=1:r\u003c1e-10?s=.5:s=i/r,e[0]+s*(n[0]-e[0])}),cGe}var lGe,mZt;function _Zt(){return mZt||(mZt=1,lGe=(e,n,o,i)=\u003e{if(e[0]===n[0]\u0026\u0026e[1]===n[1]||o[0]===i[0]\u0026\u0026o[1]===i[1])return;const r=(i[1]-o[1])*(n[0]-e[0])-(i[0]-o[0])*(n[1]-e[1]);if(Math.abs(r)\u003cNumber.MIN_VALUE)return;const s=((i[0]-o[0])*(e[1]-o[1])-(i[1]-o[1])*(e[0]-o[0]))/r,a=((n[0]-e[0])*(e[1]-o[1])-(n[1]-e[1])*(e[0]-o[0]))/r;if(s\u003c0||s\u003e1||a\u003c0||a\u003e1)return;const A=e[0]+s*(n[0]-e[0]),c=e[1]+s*(n[1]-e[1]);return[A,c]}),lGe}var uGe,fZt;function Aai(){return fZt||(fZt=1,uGe=(e,n,o,i,r,s)=\u003e{const A=1/(e*i-n*o);let c=r*i-n*s,l=-r*o+e*s;return c*=A,l*=A,[c,l]}),uGe}var gGe,IZt;function hX(){return IZt||(IZt=1,gGe={aboutEqualNormals:AGe(),area:whe(),cos:dI().cos,interpolateBetween2DPointsForY:pZt(),intersect:_Zt(),sin:dI().sin,solve2Linear:Aai()}),gGe}var dGe,CZt;function cai(){if(CZt)return dGe;CZt=1;const t=mA(),{solve2Linear:e}=hX();return dGe=(o,i)=\u003e{const r=e(o[0],o[1],i[0],i[1],o[2],i[2]);return t.clone(r)},dGe}var hGe,yZt;function lai(){if(yZt)return hGe;yZt=1;const t=mA(),e=sZt(),n=gZt();return hGe=(i,r)=\u003e{const s=t.negate(t.create(),r),a=-r[2];return e(i,n(s[0],s[1],a))},hGe}var pGe,xZt;function uai(){return xZt||(xZt=1,pGe=e=\u003e`line2: (${e[0].toFixed(7)}, ${e[1].toFixed(7)}, ${e[2].toFixed(7)})`),pGe}var mGe,EZt;function gai(){if(EZt)return mGe;EZt=1;const t=mA(),e=lZt(),n=Phe(),o=ZOe();return mGe=(r,s,a)=\u003e{const A=n(s),c=o(s);return t.transform(A,A,a),t.transform(c,c,a),e(r,A,c)},mGe}var _Ge,BZt;function dai(){if(BZt)return _Ge;BZt=1;const t=Phe();return _Ge=(n,o)=\u003e{let i=(n[2]-n[1]*o)/n[0];return Number.isNaN(i)\u0026\u0026(i=t(n)[0]),i},_Ge}var fGe,bZt;function IGe(){return bZt||(bZt=1,fGe={clone:iai(),closestPoint:rai(),copy:sZt(),create:$Oe(),direction:ZOe(),distanceToPoint:sai(),equals:aai(),fromPoints:lZt(),fromValues:gZt(),intersectPointOfLines:cai(),origin:Phe(),reverse:lai(),toString:uai(),transform:gai(),xAtY:dai()}),fGe}var CGe,SZt;function QZt(){if(SZt)return CGe;SZt=1;const t=jr();return CGe=()=\u003e[t.fromValues(0,0,0),t.fromValues(0,0,1)],CGe}var yGe,vZt;function hai(){if(vZt)return yGe;vZt=1;const t=jr(),e=QZt();return yGe=o=\u003e{const i=e();return t.copy(i[0],o[0]),t.copy(i[1],o[1]),i},yGe}var xGe,wZt;function PZt(){if(wZt)return xGe;wZt=1;const t=jr();return xGe=(n,o)=\u003e{const i=n[0],r=n[1],s=t.dot(t.subtract(t.create(),o,i),r),a=t.dot(r,r),A=s/a,c=t.scale(t.create(),r,A);return t.add(c,c,i),c},xGe}var EGe,MZt;function pai(){if(MZt)return EGe;MZt=1;const t=jr();return EGe=(n,o)=\u003e(t.copy(n[0],o[0]),t.copy(n[1],o[1]),n),EGe}var BGe,DZt;function mai(){return DZt||(DZt=1,BGe=e=\u003ee[1]),BGe}var bGe,NZt;function _ai(){if(NZt)return bGe;NZt=1;const t=jr(),e=PZt();return bGe=(o,i)=\u003e{const r=e(o,i),s=t.subtract(t.create(),i,r);return t.length(s)},bGe}var SGe,RZt;function fai(){if(RZt)return SGe;RZt=1;const t=jr();return SGe=(n,o)=\u003e!(!t.equals(n[1],o[1])||!t.equals(n[0],o[0])),SGe}var QGe,TZt;function pX(){if(TZt)return QGe;TZt=1;const t=jr();return QGe=(n,o,i)=\u003e{const r=t.normalize(t.create(),i);return t.copy(n[0],o),t.copy(n[1],r),n},QGe}var vGe,kZt;function Iai(){if(kZt)return vGe;kZt=1;const t=jr(),{solve2Linear:e}=hX(),{EPS:n}=pc(),o=pX();return vGe=(r,s,a)=\u003e{let A=t.cross(t.create(),s,a),c=t.length(A);if(c\u003cn)throw new Error(\"parallel planes do not intersect\");c=1/c,A=t.scale(A,A,c);const l=Math.abs(A[0]),u=Math.abs(A[1]),g=Math.abs(A[2]);let h,d;return l\u003e=u\u0026\u0026l\u003e=g?(d=e(s[1],s[2],a[1],a[2],s[3],a[3]),h=t.fromValues(0,d[0],d[1])):u\u003e=l\u0026\u0026u\u003e=g?(d=e(s[0],s[2],a[0],a[2],s[3],a[3]),h=t.fromValues(d[0],0,d[1])):(d=e(s[0],s[1],a[0],a[1],s[3],a[3]),h=t.fromValues(d[0],d[1],0)),o(r,h,A)},vGe}var wGe,FZt;function Cai(){if(FZt)return wGe;FZt=1;const t=jr(),e=pX();return wGe=(o,i,r)=\u003e{const s=t.subtract(t.create(),r,i);return e(o,i,s)},wGe}var PGe,LZt;function yai(){if(LZt)return PGe;LZt=1;const t=jr();return PGe=(n,o)=\u003e{const i=o,r=o[3],s=n[0],a=n[1],A=(r-t.dot(i,s))/t.dot(i,a);return t.add(t.create(),s,t.scale(t.create(),a,A))},PGe}var MGe,HZt;function xai(){return HZt||(HZt=1,MGe=e=\u003ee[0]),MGe}var DGe,OZt;function Eai(){if(OZt)return DGe;OZt=1;const t=jr(),e=pX();return DGe=(o,i)=\u003e{const r=t.clone(i[0]),s=t.negate(t.create(),i[1]);return e(o,r,s)},DGe}var NGe,GZt;function Bai(){return GZt||(GZt=1,NGe=e=\u003e{const n=e[0],o=e[1];return`line3: point: (${n[0].toFixed(7)}, ${n[1].toFixed(7)}, ${n[2].toFixed(7)}) direction: (${o[0].toFixed(7)}, ${o[1].toFixed(7)}, ${o[2].toFixed(7)})`}),NGe}var RGe,YZt;function bai(){if(YZt)return RGe;YZt=1;const t=jr(),e=pX();return RGe=(o,i,r)=\u003e{const s=i[0],a=i[1],A=t.add(t.create(),s,a),c=t.transform(t.create(),s,r),l=t.transform(A,A,r),u=t.subtract(l,l,c);return e(o,c,u)},RGe}var TGe,UZt;function Sai(){return UZt||(UZt=1,TGe={clone:hai(),closestPoint:PZt(),copy:pai(),create:QZt(),direction:mai(),distanceToPoint:_ai(),equals:fai(),fromPlanes:Iai(),fromPointAndDirection:pX(),fromPoints:Cai(),intersectPointOfLineAndPlane:yai(),origin:xai(),reverse:Eai(),toString:Bai(),transform:bai()}),TGe}var kGe,KZt;function Qai(){return KZt||(KZt=1,kGe={constants:pc(),line2:IGe(),line3:Sai(),mat4:Mu(),plane:E6(),utils:hX(),vec2:mA(),vec3:jr(),vec4:Mqt()}),kGe}var FGe,VZt;function zZt(){if(VZt)return FGe;VZt=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=qA(),r=new WeakMap,s=()=\u003e0,a=l=\u003e{let u=r.get(l);return u||(u=e.toSides(l).reduce((h,d)=\u003eh+(d[0][0]*d[1][1]-d[0][1]*d[1][0]),0),u*=.5,r.set(l,u),u)},A=l=\u003e{let u=r.get(l);return u||(u=n.toPolygons(l).reduce((h,d)=\u003eh+i.measureArea(d),0),r.set(l,u),u)};return FGe=(...l)=\u003e{if(l=t(l),l.length===0)throw new Error(\"wrong number of arguments\");const u=l.map(g=\u003eo.isA(g)?s():e.isA(g)?a(g):n.isA(g)?A(g):0);return u.length===1?u[0]:u},FGe}var LGe,JZt;function vai(){if(JZt)return LGe;JZt=1;const t=la(),e=zZt();return LGe=(...o)=\u003e{if(o=t(o),o.length===0)throw new Error(\"measureAggregateArea: no geometries supplied\");const i=e(o);return o.length===1?i:i.reduce((s,a)=\u003es+a,0)},LGe}var HGe,WZt;function eT(){if(WZt)return HGe;WZt=1;const t=la(),e=mA(),n=jr(),o=Ga(),i=Ra(),r=au(),s=qA(),a=new WeakMap,A=g=\u003e{let h=a.get(g);if(h)return h;const d=r.toPoints(g);let p;d.length===0?p=e.create():p=e.clone(d[0]);let m=e.clone(p);return d.forEach(_=\u003e{e.min(p,p,_),e.max(m,m,_)}),p=[p[0],p[1],0],m=[m[0],m[1],0],h=[p,m],a.set(g,h),h},c=g=\u003e{let h=a.get(g);if(h)return h;const d=o.toPoints(g);let p;d.length===0?p=e.create():p=e.clone(d[0]);let m=e.clone(p);return d.forEach(_=\u003e{e.min(p,p,_),e.max(m,m,_)}),p=[p[0],p[1],0],m=[m[0],m[1],0],h=[p,m],a.set(g,h),h},l=g=\u003e{let h=a.get(g);if(h)return h;const d=i.toPolygons(g);let p=n.create();if(d.length\u003e0){const _=s.toPoints(d[0]);n.copy(p,_[0])}let m=n.clone(p);return d.forEach(_=\u003e{s.toPoints(_).forEach(f=\u003e{n.min(p,p,f),n.max(m,m,f)})}),p=[p[0],p[1],p[2]],m=[m[0],m[1],m[2]],h=[p,m],a.set(g,h),h};return HGe=(...g)=\u003e{if(g=t(g),g.length===0)throw new Error(\"wrong number of arguments\");const h=g.map(d=\u003er.isA(d)?A(d):o.isA(d)?c(d):i.isA(d)?l(d):[[0,0,0],[0,0,0]]);return h.length===1?h[0]:h},HGe}var OGe,jZt;function GGe(){if(jZt)return OGe;jZt=1;const t=la(),e=qWt(),n=jWt(),o=eT();return OGe=(...r)=\u003e{if(r=t(r),r.length===0)throw new Error(\"measureAggregateBoundingBox: no geometries supplied\");const s=o(r);if(r.length===1)return s;const a=[[Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE],[-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE]];return s.reduce((A,c)=\u003e(A=[e(A[0],A[0],c[0]),n(A[1],A[1],c[1])],A),a)},OGe}var YGe,$Zt;function qZt(){if($Zt)return YGe;$Zt=1;const{EPS:t}=pc();return YGe=(n,o)=\u003e{let i=0;for(let r=0;r\u003co;r++)i+=n[1][r]-n[0][r];return t*i/o},YGe}var UGe,XZt;function wai(){if(XZt)return UGe;XZt=1;const t=la(),e=GGe(),n=qZt(),{geom2:o,geom3:i,path2:r}=WOe();return UGe=(...a)=\u003e{if(a=t(a),a.length===0)throw new Error(\"measureAggregateEpsilon: no geometries supplied\");const A=e(a);let c=0;return c=a.reduce((l,u)=\u003er.isA(u)||o.isA(u)?Math.max(l,2):i.isA(u)?Math.max(l,3):0,c),n(A,c)},UGe}var KGe,ZZt;function een(){if(ZZt)return KGe;ZZt=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=qA(),r=new WeakMap,s=()=\u003e0,a=()=\u003e0,A=l=\u003e{let u=r.get(l);return u||(u=n.toPolygons(l).reduce((h,d)=\u003eh+i.measureSignedVolume(d),0),r.set(l,u),u)};return KGe=(...l)=\u003e{if(l=t(l),l.length===0)throw new Error(\"wrong number of arguments\");const u=l.map(g=\u003eo.isA(g)?s():e.isA(g)?a():n.isA(g)?A(g):0);return u.length===1?u[0]:u},KGe}var VGe,ten;function Pai(){if(ten)return VGe;ten=1;const t=la(),e=een();return VGe=(...o)=\u003e{if(o=t(o),o.length===0)throw new Error(\"measureAggregateVolume: no geometries supplied\");const i=e(o);return o.length===1?i:i.reduce((s,a)=\u003es+a,0)},VGe}var zGe,nen;function Mai(){if(nen)return zGe;nen=1;const t=la(),e=mA(),n=jr(),o=Ga(),i=Ra(),r=au(),s=qA(),a=new WeakMap,A=g=\u003e{let h=a.get(g);if(h!==void 0)return h;const d=n.create();let p=0;const m=r.toPoints(g);if(m.length\u003e0){let _=0;const f=n.create();m.forEach(I=\u003e{n.add(d,d,n.fromVec2(f,I,0)),_++}),n.scale(d,d,1/_),m.forEach(I=\u003e{p=Math.max(p,e.squaredDistance(d,I))}),p=Math.sqrt(p)}return h=[d,p],a.set(g,h),h},c=g=\u003e{let h=a.get(g);if(h!==void 0)return h;const d=n.create();let p=0;const m=o.toSides(g);if(m.length\u003e0){let _=0;const f=n.create();m.forEach(I=\u003e{n.add(d,d,n.fromVec2(f,I[0],0)),_++}),n.scale(d,d,1/_),m.forEach(I=\u003e{p=Math.max(p,e.squaredDistance(d,I[0]))}),p=Math.sqrt(p)}return h=[d,p],a.set(g,h),h},l=g=\u003e{let h=a.get(g);if(h!==void 0)return h;const d=n.create();let p=0;const m=i.toPolygons(g);if(m.length\u003e0){let _=0;m.forEach(f=\u003e{s.toPoints(f).forEach(I=\u003e{n.add(d,d,I),_++})}),n.scale(d,d,1/_),m.forEach(f=\u003e{s.toPoints(f).forEach(I=\u003e{p=Math.max(p,n.squaredDistance(d,I))})}),p=Math.sqrt(p)}return h=[d,p],a.set(g,h),h};return zGe=(...g)=\u003e{g=t(g);const h=g.map(d=\u003er.isA(d)?A(d):o.isA(d)?c(d):i.isA(d)?l(d):[[0,0,0],0]);return h.length===1?h[0]:h},zGe}var JGe,oen;function Dai(){if(oen)return JGe;oen=1;const t=la(),e=eT();return JGe=(...o)=\u003e{o=t(o);const i=o.map(r=\u003e{const s=e(r);return[s[0][0]+(s[1][0]-s[0][0])/2,s[0][1]+(s[1][1]-s[0][1])/2,s[0][2]+(s[1][2]-s[0][2])/2]});return i.length===1?i[0]:i},JGe}var WGe,ien;function Nai(){if(ien)return WGe;ien=1;const t=la(),e=jr(),n=Ga(),o=Ra(),i=new WeakMap,r=A=\u003e{let c=i.get(A);if(c!==void 0)return c;const l=n.toSides(A);let u=0,g=0,h=0;if(l.length\u003e0){for(let p=0;p\u003cl.length;p++){const m=l[p][0],_=l[p][1],f=m[0]*_[1]-m[1]*_[0];u+=f,g+=(m[0]+_[0])*f,h+=(m[1]+_[1])*f}u/=2;const d=1/(u*6);g*=d,h*=d}return c=e.fromValues(g,h,0),i.set(A,c),c},s=A=\u003e{let c=i.get(A);if(c!==void 0)return c;c=e.create();const l=o.toPolygons(A);if(l.length===0)return c;let u=0;const g=e.create();return l.forEach(h=\u003e{const d=h.vertices;for(let p=0;p\u003cd.length-2;p++){e.cross(g,d[p+1],d[p+2]);const m=e.dot(d[0],g)/6;u+=m,e.add(g,d[0],d[p+1]),e.add(g,g,d[p+2]);const _=e.scale(g,g,1/4*m);e.add(c,c,_)}}),e.scale(c,c,1/u),i.set(A,c),c};return WGe=(...A)=\u003e{A=t(A);const c=A.map(l=\u003en.isA(l)?r(l):o.isA(l)?s(l):[0,0,0]);return c.length===1?c[0]:c},WGe}var jGe,ren;function Rai(){if(ren)return jGe;ren=1;const t=la(),e=eT();return jGe=(...o)=\u003e{o=t(o);const i=o.map(r=\u003e{const s=e(r);return[s[1][0]-s[0][0],s[1][1]-s[0][1],s[1][2]-s[0][2]]});return i.length===1?i[0]:i},jGe}var $Ge,sen;function rP(){if(sen)return $Ge;sen=1;const t=la(),{geom2:e,geom3:n,path2:o}=WOe(),i=qZt(),r=eT(),s=l=\u003ei(r(l),2),a=l=\u003ei(r(l),2),A=l=\u003ei(r(l),3);return $Ge=(...l)=\u003e{if(l=t(l),l.length===0)throw new Error(\"wrong number of arguments\");const u=l.map(g=\u003eo.isA(g)?s(g):e.isA(g)?a(g):n.isA(g)?A(g):0);return u.length===1?u[0]:u},$Ge}var qGe,aen;function Tai(){return aen||(aen=1,qGe={measureAggregateArea:vai(),measureAggregateBoundingBox:GGe(),measureAggregateEpsilon:wai(),measureAggregateVolume:Pai(),measureArea:zZt(),measureBoundingBox:eT(),measureBoundingSphere:Mai(),measureCenter:Dai(),measureCenterOfMass:Nai(),measureDimensions:Rai(),measureEpsilon:rP(),measureVolume:een()}),qGe}var XGe,Aen;function cf(){return Aen||(Aen=1,XGe={isNumberArray:(o,i)=\u003eArray.isArray(o)\u0026\u0026o.length\u003e=i?o.every(r=\u003eNumber.isFinite(r)):!1,isGT:(o,i)=\u003eNumber.isFinite(o)\u0026\u0026o\u003ei,isGTE:(o,i)=\u003eNumber.isFinite(o)\u0026\u0026o\u003e=i}),XGe}var ZGe,cen;function kai(){if(cen)return ZGe;cen=1;const{EPS:t,TAU:e}=pc(),n=mA(),o=au(),{isGT:i,isGTE:r,isNumberArray:s}=cf();return ZGe=A=\u003e{const c={center:[0,0],radius:1,startAngle:0,endAngle:e,makeTangent:!1,segments:32};let{center:l,radius:u,startAngle:g,endAngle:h,makeTangent:d,segments:p}=Object.assign({},c,A);if(!s(l,2))throw new Error(\"center must be an array of X and Y values\");if(!i(u,0))throw new Error(\"radius must be greater than zero\");if(!r(g,0))throw new Error(\"startAngle must be positive\");if(!r(h,0))throw new Error(\"endAngle must be positive\");if(!r(p,4))throw new Error(\"segments must be four or more\");g=g%e,h=h%e;let m=e;g\u003ch\u0026\u0026(m=h-g),g\u003eh\u0026\u0026(m=h+(e-g));const _=Math.acos((u*u+u*u-t*t)/(2*u*u)),f=n.clone(l);let I;const C=[];if(m\u003c_)I=n.fromAngleRadians(n.create(),g),n.scale(I,I,u),n.add(I,I,f),C.push(I);else{const y=Math.floor(p*(Math.abs(m)/e));let x=y*.5/m;x\u003e.25\u0026\u0026(x=.25);const E=d?y+2:y;for(let B=0;B\u003c=E;B++){let S=B;d\u0026\u0026(S=(B-1)*(y-2*x)/y+x,S\u003c0\u0026\u0026(S=0),S\u003ey\u0026\u0026(S=y));const Q=g+S*(m/y);I=n.fromAngleRadians(n.create(),Q),n.scale(I,I,u),n.add(I,I,f),C.push(I)}}return o.fromPoints({closed:!1},C)},ZGe}var eYe,len;function uen(){if(len)return eYe;len=1;const{EPS:t,TAU:e}=pc(),n=mA(),o=Ga(),{sin:i,cos:r}=dI(),{isGTE:s,isNumberArray:a}=cf();return eYe=c=\u003e{const l={center:[0,0],radius:[1,1],startAngle:0,endAngle:e,segments:32};let{center:u,radius:g,startAngle:h,endAngle:d,segments:p}=Object.assign({},l,c);if(!a(u,2))throw new Error(\"center must be an array of X and Y values\");if(!a(g,2))throw new Error(\"radius must be an array of X and Y values\");if(!g.every(x=\u003ex\u003e=0))throw new Error(\"radius values must be positive\");if(!s(h,0))throw new Error(\"startAngle must be positive\");if(!s(d,0))throw new Error(\"endAngle must be positive\");if(!s(p,3))throw new Error(\"segments must be three or more\");if(g[0]===0||g[1]===0)return o.create();h=h%e,d=d%e;let m=e;h\u003cd\u0026\u0026(m=d-h),h\u003ed\u0026\u0026(m=d+(e-h));const _=Math.min(g[0],g[1]),f=Math.acos((_*_+_*_-t*t)/(2*_*_));if(m\u003cf)throw new Error(\"startAngle and endAngle do not define a significant rotation\");p=Math.floor(p*(m/e));const I=n.clone(u),C=m/p,y=[];p=m\u003ce?p+1:p;for(let x=0;x\u003cp;x++){const E=C*x+h,B=n.fromValues(g[0]*r(E),g[1]*i(E));n.add(B,I,B),y.push(B)}return m\u003ce\u0026\u0026y.push(I),o.fromPoints(y)},eYe}var tYe,gen;function den(){if(gen)return tYe;gen=1;const{TAU:t}=pc(),e=uen(),{isGTE:n}=cf();return tYe=i=\u003e{const r={center:[0,0],radius:1,startAngle:0,endAngle:t,segments:32};let{center:s,radius:a,startAngle:A,endAngle:c,segments:l}=Object.assign({},r,i);if(!n(a,0))throw new Error(\"radius must be positive\");return a=[a,a],e({center:s,radius:a,startAngle:A,endAngle:c,segments:l})},tYe}var nYe,hen;function oYe(){if(hen)return nYe;hen=1;const t=Ra(),e=qA(),{isNumberArray:n}=cf();return nYe=i=\u003e{const r={center:[0,0,0],size:[2,2,2]},{center:s,size:a}=Object.assign({},r,i);if(!n(s,3))throw new Error(\"center must be an array of X, Y and Z values\");if(!n(a,3))throw new Error(\"size must be an array of width, depth and height values\");if(!a.every(c=\u003ec\u003e=0))throw new Error(\"size values must be positive\");return a[0]===0||a[1]===0||a[2]===0?t.create():t.create([[[0,4,6,2],[-1,0,0]],[[1,3,7,5],[1,0,0]],[[0,1,5,4],[0,-1,0]],[[2,6,7,3],[0,1,0]],[[0,2,3,1],[0,0,-1]],[[4,5,7,6],[0,0,1]]].map(c=\u003e{const l=c[0].map(u=\u003e[s[0]+a[0]/2*(2*!!(u\u00261)-1),s[1]+a[1]/2*(2*!!(u\u00262)-1),s[2]+a[2]/2*(2*!!(u\u00264)-1)]);return e.create(l)}))},nYe}var iYe,pen;function Fai(){if(pen)return iYe;pen=1;const t=oYe(),{isGTE:e}=cf();return iYe=o=\u003e{const i={center:[0,0,0],size:2};let{center:r,size:s}=Object.assign({},i,o);if(!e(s,0))throw new Error(\"size must be positive\");return s=[s,s,s],t({center:r,size:s})},iYe}var rYe,men;function _en(){if(men)return rYe;men=1;const{EPS:t,TAU:e}=pc(),n=jr(),o=Ra(),i=qA(),{sin:r,cos:s}=dI(),{isGT:a,isGTE:A,isNumberArray:c}=cf();return rYe=u=\u003e{const g={center:[0,0,0],height:2,startRadius:[1,1],startAngle:0,endRadius:[1,1],endAngle:e,segments:32};let{center:h,height:d,startRadius:p,startAngle:m,endRadius:_,endAngle:f,segments:I}=Object.assign({},g,u);if(!c(h,3))throw new Error(\"center must be an array of X, Y and Z values\");if(!a(d,0))throw new Error(\"height must be greater then zero\");if(!c(p,2))throw new Error(\"startRadius must be an array of X and Y values\");if(!p.every(te=\u003ete\u003e=0))throw new Error(\"startRadius values must be positive\");if(!c(_,2))throw new Error(\"endRadius must be an array of X and Y values\");if(!_.every(te=\u003ete\u003e=0))throw new Error(\"endRadius values must be positive\");if(_.every(te=\u003ete===0)\u0026\u0026p.every(te=\u003ete===0))throw new Error(\"at least one radius must be positive\");if(!A(m,0))throw new Error(\"startAngle must be positive\");if(!A(f,0))throw new Error(\"endAngle must be positive\");if(!A(I,4))throw new Error(\"segments must be four or more\");m=m%e,f=f%e;let C=e;m\u003cf\u0026\u0026(C=f-m),m\u003ef\u0026\u0026(C=f+(e-m));const y=Math.min(p[0],p[1],_[0],_[1]),x=Math.acos((y*y+y*y-t*t)/(2*y*y));if(C\u003cx)throw new Error(\"startAngle and endAngle do not define a significant rotation\");const E=Math.floor(I*(C/e)),B=n.fromValues(0,0,-(d/2)),S=n.fromValues(0,0,d/2),Q=n.subtract(n.create(),S,B),w=n.fromValues(1,0,0),M=n.fromValues(0,1,0),k=n.create(),R=n.create(),F=n.create(),O=(te,j,J)=\u003e{const oe=j*C+m;return n.scale(k,w,J[0]*s(oe)),n.scale(R,M,J[1]*r(oe)),n.add(k,k,R),n.scale(F,Q,te),n.add(F,F,B),n.add(n.create(),k,F)},U=(...te)=\u003e{const j=te.map(J=\u003en.add(n.create(),J,h));return i.create(j)},Y=[];for(let te=0;te\u003cE;te++){const j=te/E;let J=(te+1)/E;C===e\u0026\u0026te===E-1\u0026\u0026(J=0),_[0]===p[0]\u0026\u0026_[1]===p[1]?(Y.push(U(B,O(0,J,_),O(0,j,_))),Y.push(U(O(0,J,_),O(1,J,_),O(1,j,_),O(0,j,_))),Y.push(U(S,O(1,j,_),O(1,J,_)))):(p[0]\u003e0\u0026\u0026p[1]\u003e0\u0026\u0026Y.push(U(B,O(0,J,p),O(0,j,p))),(p[0]\u003e0||p[1]\u003e0)\u0026\u0026Y.push(U(O(0,j,p),O(0,J,p),O(1,j,_))),_[0]\u003e0\u0026\u0026_[1]\u003e0\u0026\u0026Y.push(U(S,O(1,j,_),O(1,J,_))),(_[0]\u003e0||_[1]\u003e0)\u0026\u0026Y.push(U(O(1,j,_),O(0,J,p),O(1,J,_))))}return C\u003ce\u0026\u0026(Y.push(U(B,O(0,0,p),S)),Y.push(U(O(0,0,p),O(1,0,_),S)),Y.push(U(B,S,O(0,1,p))),Y.push(U(O(0,1,p),S,O(1,1,_)))),o.create(Y)},rYe}var sYe,fen;function Ien(){if(fen)return sYe;fen=1;const t=Ra(),e=_en(),{isGTE:n}=cf();return sYe=i=\u003e{const r={center:[0,0,0],height:2,radius:1,segments:32},{center:s,height:a,radius:A,segments:c}=Object.assign({},r,i);if(!n(A,0))throw new Error(\"radius must be positive\");return a===0||A===0?t.create():e({center:s,height:a,startRadius:[A,A],endRadius:[A,A],segments:c})},sYe}var aYe,Cen;function yen(){if(Cen)return aYe;Cen=1;const{TAU:t}=pc(),e=jr(),n=Ra(),o=qA(),{sin:i,cos:r}=dI(),{isGTE:s,isNumberArray:a}=cf();return aYe=c=\u003e{const l={center:[0,0,0],radius:[1,1,1],segments:32,axes:[[1,0,0],[0,-1,0],[0,0,1]]},{center:u,radius:g,segments:h,axes:d}=Object.assign({},l,c);if(!a(u,3))throw new Error(\"center must be an array of X, Y and Z values\");if(!a(g,3))throw new Error(\"radius must be an array of X, Y and Z values\");if(!g.every(E=\u003eE\u003e=0))throw new Error(\"radius values must be positive\");if(!s(h,4))throw new Error(\"segments must be four or more\");if(g[0]===0||g[1]===0||g[2]===0)return n.create();const p=e.scale(e.create(),e.normalize(e.create(),d[0]),g[0]),m=e.scale(e.create(),e.normalize(e.create(),d[1]),g[1]),_=e.scale(e.create(),e.normalize(e.create(),d[2]),g[2]),f=Math.round(h/4);let I;const C=[],y=e.create(),x=e.create();for(let E=0;E\u003c=h;E++){const B=t*E/h,S=e.add(e.create(),e.scale(y,p,r(B)),e.scale(x,m,i(B)));if(E\u003e0){let Q,w;for(let M=0;M\u003c=f;M++){const k=t/4*M/f,R=r(k),F=i(k);if(M\u003e0){let O=[],U;U=e.subtract(e.create(),e.scale(y,I,Q),e.scale(x,_,w)),O.push(e.add(U,U,u)),U=e.subtract(e.create(),e.scale(y,S,Q),e.scale(x,_,w)),O.push(e.add(U,U,u)),M\u003cf\u0026\u0026(U=e.subtract(e.create(),e.scale(y,S,R),e.scale(x,_,F)),O.push(e.add(U,U,u))),U=e.subtract(e.create(),e.scale(y,I,R),e.scale(x,_,F)),O.push(e.add(U,U,u)),C.push(o.create(O)),O=[],U=e.add(e.create(),e.scale(y,I,Q),e.scale(x,_,w)),O.push(e.add(e.create(),u,U)),U=e.add(U,e.scale(y,S,Q),e.scale(x,_,w)),O.push(e.add(e.create(),u,U)),M\u003cf\u0026\u0026(U=e.add(U,e.scale(y,S,R),e.scale(x,_,F)),O.push(e.add(e.create(),u,U))),U=e.add(U,e.scale(y,I,R),e.scale(x,_,F)),O.push(e.add(e.create(),u,U)),O.reverse(),C.push(o.create(O))}Q=R,w=F}}I=S}return n.create(C)},aYe}var AYe,xen;function Een(){if(xen)return AYe;xen=1;const t=Ra(),e=qA(),{isNumberArray:n}=cf();return AYe=i=\u003e{const r={points:[],faces:[],colors:void 0,orientation:\"outward\"},{points:s,faces:a,colors:A,orientation:c}=Object.assign({},r,i);if(!(Array.isArray(s)\u0026\u0026Array.isArray(a)))throw new Error(\"points and faces must be arrays\");if(s.length\u003c3)throw new Error(\"three or more points are required\");if(a.length\u003c1)throw new Error(\"one or more faces are required\");if(A){if(!Array.isArray(A))throw new Error(\"colors must be an array\");if(A.length!==a.length)throw new Error(\"faces and colors must have the same length\")}s.forEach((u,g)=\u003e{if(!n(u,3))throw new Error(`point ${g} must be an array of X, Y, Z values`)}),a.forEach((u,g)=\u003e{if(u.length\u003c3)throw new Error(`face ${g} must contain 3 or more indexes`);if(!n(u,u.length))throw new Error(`face ${g} must be an array of numbers`)}),c!==\"outward\"\u0026\u0026a.forEach(u=\u003eu.reverse());const l=a.map((u,g)=\u003e{const h=e.create(u.map(d=\u003es[d]));return A\u0026\u0026A[g]\u0026\u0026(h.color=A[g]),h});return t.create(l)},AYe}var cYe,Ben;function Lai(){if(Ben)return cYe;Ben=1;const t=Mu(),e=jr(),n=Ra(),o=Een(),{isGTE:i}=cf();return cYe=s=\u003e{const a={radius:1,frequency:6};let{radius:A,frequency:c}=Object.assign({},a,s);if(!i(A,0))throw new Error(\"radius must be positive\");if(!i(c,6))throw new Error(\"frequency must be six or more\");if(A===0)return n.create();c=Math.floor(c/6);const l=[[.850651,0,-.525731],[.850651,-0,.525731],[-.850651,-0,.525731],[-.850651,0,-.525731],[0,-.525731,.850651],[0,.525731,.850651],[0,.525731,-.850651],[0,-.525731,-.850651],[-.525731,-.850651,-0],[.525731,-.850651,-0],[.525731,.850651,0],[-.525731,.850651,0]],u=[[0,9,1],[1,10,0],[6,7,0],[10,6,0],[7,9,0],[5,1,4],[4,1,9],[5,10,1],[2,8,3],[3,11,2],[2,5,4],[4,8,2],[2,11,5],[3,7,6],[6,11,3],[8,7,3],[9,8,4],[11,10,5],[10,11,6],[8,9,7]],g=(f,I,C)=\u003e{const y=f[0],x=f[1],E=f[2];let B=C;const S=[],Q=[];for(let w=0;w\u003cI;w++)for(let M=0;M\u003cI-w;M++){const k=w/I,R=(w+1)/I,F=M/(I-w),O=(M+1)/(I-w),U=I-w-1?M/(I-w-1):1,Y=[];Y[0]=h(h(y,x,F),E,k),Y[1]=h(h(y,x,O),E,k),Y[2]=h(h(y,x,U),E,R);for(let W=0;W\u003c3;W++){const te=e.length(Y[W]);for(let j=0;j\u003c3;j++)Y[W][j]/=te}if(S.push(Y[0],Y[1],Y[2]),Q.push([B,B+1,B+2]),B+=3,M\u003cI-w-1){const W=I-w-1?(M+1)/(I-w-1):1;Y[0]=h(h(y,x,O),E,k),Y[1]=h(h(y,x,W),E,R),Y[2]=h(h(y,x,U),E,R);for(let te=0;te\u003c3;te++){const j=e.length(Y[te]);for(let J=0;J\u003c3;J++)Y[te][J]/=j}S.push(Y[0],Y[1],Y[2]),Q.push([B,B+1,B+2]),B+=3}}return{points:S,triangles:Q,offset:B}},h=(f,I,C)=\u003e{const y=1-C,x=[];for(let E=0;E\u003c3;E++)x[E]=f[E]*y+I[E]*C;return x};let d=[],p=[],m=0;for(let f=0;f\u003cu.length;f++){const I=g([l[u[f][0]],l[u[f][1]],l[u[f][2]]],c,m);d=d.concat(I.points),p=p.concat(I.triangles),m=I.offset}let _=o({points:d,faces:p,orientation:\"inward\"});return A!==1\u0026\u0026(_=n.transform(t.fromScaling(t.create(),[A,A,A]),_)),_},cYe}var lYe,ben;function Hai(){if(ben)return lYe;ben=1;const t=au();return lYe=n=\u003e{if(!Array.isArray(n))throw new Error(\"points must be an array\");return t.fromPoints({},n)},lYe}var uYe,Sen;function Oai(){if(Sen)return uYe;Sen=1;const t=Ga();return uYe=n=\u003e{const o={points:[],paths:[],orientation:\"counterclockwise\"},{points:i,paths:r,orientation:s}=Object.assign({},o,n);if(!(Array.isArray(i)\u0026\u0026Array.isArray(r)))throw new Error(\"points and paths must be arrays\");let a=i;Array.isArray(i[0])\u0026\u0026(Array.isArray(i[0][0])||(a=[i])),a.forEach((g,h)=\u003e{if(!Array.isArray(g))throw new Error(\"list of points \"+h+\" must be an array\");if(g.length\u003c3)throw new Error(\"list of points \"+h+\" must contain three or more points\");g.forEach((d,p)=\u003e{if(!Array.isArray(d))throw new Error(\"list of points \"+h+\", point \"+p+\" must be an array\");if(d.length\u003c2)throw new Error(\"list of points \"+h+\", point \"+p+\" must contain by X and Y values\")})});let A=r;if(r.length===0){let g=0;A=a.map(h=\u003eh.map(d=\u003eg++))}const c=[];a.forEach(g=\u003eg.forEach(h=\u003ec.push(h)));let l=[];A.forEach(g=\u003e{const h=g.map(p=\u003ec[p]),d=t.fromPoints(h);l=l.concat(t.toSides(d))});let u=t.create(l);return s===\"clockwise\"\u0026\u0026(u=t.reverse(u)),u},uYe}var gYe,Qen;function dYe(){if(Qen)return gYe;Qen=1;const t=mA(),e=Ga(),{isNumberArray:n}=cf();return gYe=i=\u003e{const r={center:[0,0],size:[2,2]},{center:s,size:a}=Object.assign({},r,i);if(!n(s,2))throw new Error(\"center must be an array of X and Y values\");if(!n(a,2))throw new Error(\"size must be an array of X and Y values\");if(!a.every(u=\u003eu\u003e=0))throw new Error(\"size values must be positive\");if(a[0]===0||a[1]===0)return e.create();const A=[a[0]/2,a[1]/2],c=[A[0],-A[1]],l=[t.subtract(t.create(),s,A),t.add(t.create(),s,c),t.add(t.create(),s,A),t.subtract(t.create(),s,c)];return e.fromPoints(l)},gYe}var hYe,ven;function Gai(){if(ven)return hYe;ven=1;const{EPS:t,TAU:e}=pc(),n=mA(),o=jr(),i=Ra(),r=qA(),{sin:s,cos:a}=dI(),{isGTE:A,isNumberArray:c}=cf(),l=oYe(),u=(m,_,f,I,C,y)=\u003e{const x=e/4*C/I,E=a(x),B=s(x),S=I-C;let Q=f*E,w=_[2]-(f-f*B);y||(w=f-f*B-_[2]),Q=Q\u003et?Q:0;const M=o.add(o.create(),m,[_[0]-f,_[1]-f,w]),k=o.add(o.create(),m,[f-_[0],_[1]-f,w]),R=o.add(o.create(),m,[f-_[0],f-_[1],w]),F=o.add(o.create(),m,[_[0]-f,f-_[1],w]),O=[],U=[],Y=[],W=[];for(let te=0;te\u003c=S;te++){const j=S\u003e0?e/4*te/S:0,J=n.fromAngleRadians(n.create(),j);n.scale(J,J,Q);const oe=o.fromVec2(o.create(),J);O.push(o.add(o.create(),M,oe)),o.rotateZ(oe,oe,[0,0,0],e/4),U.push(o.add(o.create(),k,oe)),o.rotateZ(oe,oe,[0,0,0],e/4),Y.push(o.add(o.create(),R,oe)),o.rotateZ(oe,oe,[0,0,0],e/4),W.push(o.add(o.create(),F,oe))}return y?[O,U,Y,W]:(O.reverse(),U.reverse(),Y.reverse(),W.reverse(),[W,Y,U,O])},g=(m,_)=\u003e{const f=[];for(let I=0;I\u003cm.length;I++){const C=m[I],y=_[I];for(let x=0;x\u003cC.length-1;x++)f.push(r.create([C[x],C[x+1],y[x]])),x\u003cy.length-1\u0026\u0026f.push(r.create([y[x],C[x+1],y[x+1]]))}return f},h=(m,_)=\u003e{const f=[];for(let I=0;I\u003cm.length;I++){let C=m[I],y=_[I];const x=C[C.length-1],E=y[y.length-1],B=(I+1)%m.length;C=m[B],y=_[B];const S=C[0],Q=y[0];f.push(r.create([x,S,Q,E]))}return f},d=(m,_)=\u003e{m=[m[3],m[2],m[1],m[0]],m=m.map(y=\u003ey.slice().reverse());const f=[];m.forEach(y=\u003e{y.forEach(x=\u003ef.push(x))});const I=[];_.forEach(y=\u003e{y.forEach(x=\u003eI.push(x))});const C=[];for(let y=0;y\u003cI.length;y++){const x=(y+1)%I.length;C.push(r.create([f[y],f[x],I[x],I[y]]))}return C};return hYe=m=\u003e{const _={center:[0,0,0],size:[2,2,2],roundRadius:.2,segments:32};let{center:f,size:I,roundRadius:C,segments:y}=Object.assign({},_,m);if(!c(f,3))throw new Error(\"center must be an array of X, Y and Z values\");if(!c(I,3))throw new Error(\"size must be an array of X, Y and Z values\");if(!I.every(S=\u003eS\u003e=0))throw new Error(\"size values must be positive\");if(!A(C,0))throw new Error(\"roundRadius must be positive\");if(!A(y,4))throw new Error(\"segments must be four or more\");if(I[0]===0||I[1]===0||I[2]===0)return i.create();if(C===0)return l({center:f,size:I});if(I=I.map(S=\u003eS/2),C\u003eI[0]-t||C\u003eI[1]-t||C\u003eI[2]-t)throw new Error(\"roundRadius must be smaller than the radius of all dimensions\");y=Math.floor(y/4);let x=null,E=null,B=[];for(let S=0;S\u003c=y;S++){const Q=u(f,I,C,y,S,!0),w=u(f,I,C,y,S,!1);if(S===0\u0026\u0026(B=B.concat(d(w,Q))),x\u0026\u0026(B=B.concat(g(x,Q),h(x,Q))),E\u0026\u0026(B=B.concat(g(E,w),h(E,w))),S===y){let M=Q.map(k=\u003ek[0]);B.push(r.create(M)),M=w.map(k=\u003ek[0]),B.push(r.create(M))}x=Q,E=w}return i.create(B)},hYe}var pYe,wen;function Yai(){if(wen)return pYe;wen=1;const{EPS:t,TAU:e}=pc(),n=jr(),o=Ra(),i=qA(),{sin:r,cos:s}=dI(),{isGTE:a,isNumberArray:A}=cf(),c=Ien();return pYe=u=\u003e{const g={center:[0,0,0],height:2,radius:1,roundRadius:.2,segments:32},{center:h,height:d,radius:p,roundRadius:m,segments:_}=Object.assign({},g,u);if(!A(h,3))throw new Error(\"center must be an array of X, Y and Z values\");if(!a(d,0))throw new Error(\"height must be positive\");if(!a(p,0))throw new Error(\"radius must be positive\");if(!a(m,0))throw new Error(\"roundRadius must be positive\");if(m\u003ep)throw new Error(\"roundRadius must be smaller than the radius\");if(!a(_,4))throw new Error(\"segments must be four or more\");if(d===0||p===0)return o.create();if(m===0)return c({center:h,height:d,radius:p});const f=[0,0,-(d/2)],I=[0,0,d/2],C=n.subtract(n.create(),I,f),y=n.length(C);if(2*m\u003ey-t)throw new Error(\"height must be larger than twice roundRadius\");let x;Math.abs(C[0])\u003eMath.abs(C[1])?x=n.fromValues(0,1,0):x=n.fromValues(1,0,0);const E=n.scale(n.create(),n.normalize(n.create(),C),m),B=n.scale(n.create(),n.normalize(n.create(),n.cross(n.create(),E,x)),p),S=n.scale(n.create(),n.normalize(n.create(),n.cross(n.create(),B,E)),p);n.add(f,f,E),n.subtract(I,I,E);const Q=Math.floor(.25*_),w=U=\u003e{const Y=U.map(W=\u003en.add(W,W,h));return i.create(Y)},M=[],k=n.create(),R=n.create();let F;for(let U=0;U\u003c=_;U++){const Y=e*U/_,W=n.add(n.create(),n.scale(k,B,s(Y)),n.scale(R,S,r(Y)));if(U\u003e0){let te=[];te.push(n.add(n.create(),f,W)),te.push(n.add(n.create(),f,F)),te.push(n.add(n.create(),I,F)),te.push(n.add(n.create(),I,W)),M.push(w(te));let j,J;for(let oe=0;oe\u003c=Q;oe++){const ie=e/4*oe/Q,ne=s(ie),le=r(ie);if(oe\u003e0){te=[];let ge;ge=n.add(n.create(),f,n.subtract(k,n.scale(k,F,j),n.scale(R,E,J))),te.push(ge),ge=n.add(n.create(),f,n.subtract(k,n.scale(k,W,j),n.scale(R,E,J))),te.push(ge),oe\u003cQ\u0026\u0026(ge=n.add(n.create(),f,n.subtract(k,n.scale(k,W,ne),n.scale(R,E,le))),te.push(ge)),ge=n.add(n.create(),f,n.subtract(k,n.scale(k,F,ne),n.scale(R,E,le))),te.push(ge),M.push(w(te)),te=[],ge=n.add(n.create(),n.scale(k,F,j),n.scale(R,E,J)),n.add(ge,ge,I),te.push(ge),ge=n.add(n.create(),n.scale(k,W,j),n.scale(R,E,J)),n.add(ge,ge,I),te.push(ge),oe\u003cQ\u0026\u0026(ge=n.add(n.create(),n.scale(k,W,ne),n.scale(R,E,le)),n.add(ge,ge,I),te.push(ge)),ge=n.add(n.create(),n.scale(k,F,ne),n.scale(R,E,le)),n.add(ge,ge,I),te.push(ge),te.reverse(),M.push(w(te))}j=ne,J=le}}F=W}return o.create(M)},pYe}var mYe,Pen;function Uai(){if(Pen)return mYe;Pen=1;const{EPS:t,TAU:e}=pc(),n=mA(),o=Ga(),{isGTE:i,isNumberArray:r}=cf(),s=dYe();return mYe=A=\u003e{const c={center:[0,0],size:[2,2],roundRadius:.2,segments:32};let{center:l,size:u,roundRadius:g,segments:h}=Object.assign({},c,A);if(!r(l,2))throw new Error(\"center must be an array of X and Y values\");if(!r(u,2))throw new Error(\"size must be an array of X and Y values\");if(!u.every(E=\u003eE\u003e=0))throw new Error(\"size values must be positive\");if(!i(g,0))throw new Error(\"roundRadius must be positive\");if(!i(h,4))throw new Error(\"segments must be four or more\");if(u[0]===0||u[1]===0)return o.create();if(g===0)return s({center:l,size:u});if(u=u.map(E=\u003eE/2),g\u003eu[0]-t||g\u003eu[1]-t)throw new Error(\"roundRadius must be smaller than the radius of all dimensions\");const d=Math.floor(h/4),p=n.add(n.create(),l,[u[0]-g,u[1]-g]),m=n.add(n.create(),l,[g-u[0],u[1]-g]),_=n.add(n.create(),l,[g-u[0],g-u[1]]),f=n.add(n.create(),l,[u[0]-g,g-u[1]]),I=[],C=[],y=[],x=[];for(let E=0;E\u003c=d;E++){const B=e/4*E/d,S=n.fromAngleRadians(n.create(),B);n.scale(S,S,g),I.push(n.add(n.create(),p,S)),n.rotate(S,S,n.create(),e/4),C.push(n.add(n.create(),m,S)),n.rotate(S,S,n.create(),e/4),y.push(n.add(n.create(),_,S)),n.rotate(S,S,n.create(),e/4),x.push(n.add(n.create(),f,S))}return o.fromPoints(I.concat(C,y,x))},mYe}var _Ye,Men;function Den(){if(Men)return _Ye;Men=1;const t=yen(),{isGTE:e}=cf();return _Ye=o=\u003e{const i={center:[0,0,0],radius:1,segments:32,axes:[[1,0,0],[0,-1,0],[0,0,1]]};let{center:r,radius:s,segments:a,axes:A}=Object.assign({},i,o);if(!e(s,0))throw new Error(\"radius must be positive\");return s=[s,s,s],t({center:r,radius:s,segments:a,axes:A})},_Ye}var fYe,Nen;function Kai(){if(Nen)return fYe;Nen=1;const t=dYe(),{isGTE:e}=cf();return fYe=o=\u003e{const i={center:[0,0],size:2};let{center:r,size:s}=Object.assign({},i,o);if(!e(s,0))throw new Error(\"size must be positive\");return s=[s,s],t({center:r,size:s})},fYe}var IYe,Ren;function Vai(){if(Ren)return IYe;Ren=1;const{TAU:t}=pc(),e=mA(),n=Ga(),{isGT:o,isGTE:i,isNumberArray:r}=cf(),s=(c,l)=\u003ec\u003e0\u0026\u0026l\u003e1\u0026\u0026l\u003cc/2?Math.cos(Math.PI*l/c)/Math.cos(Math.PI*(l-1)/c):0,a=(c,l,u,g)=\u003e{const h=t/c,d=[];for(let p=0;p\u003cc;p++){const m=e.fromAngleRadians(e.create(),h*p+u);e.scale(m,m,l),e.add(m,g,m),d.push(m)}return d};return IYe=c=\u003e{const l={center:[0,0],vertices:5,outerRadius:1,innerRadius:0,density:2,startAngle:0};let{center:u,vertices:g,outerRadius:h,innerRadius:d,density:p,startAngle:m}=Object.assign({},l,c);if(!r(u,2))throw new Error(\"center must be an array of X and Y values\");if(!i(g,2))throw new Error(\"vertices must be two or more\");if(!o(h,0))throw new Error(\"outerRadius must be greater than zero\");if(!i(d,0))throw new Error(\"innerRadius must be greater than zero\");if(!i(m,0))throw new Error(\"startAngle must be greater than zero\");if(g=Math.floor(g),p=Math.floor(p),m=m%t,d===0){if(!i(p,2))throw new Error(\"density must be two or more\");d=h*s(g,p)}const _=e.clone(u),f=a(g,h,m,_),I=a(g,d,m+Math.PI/g,_),C=[];for(let y=0;y\u003cg;y++)C.push(f[y]),C.push(I[y]);return n.fromPoints(C)},IYe}var CYe,Ten;function mX(){if(Ten)return CYe;Ten=1;const t=la(),e=Mu(),n=E6(),o=Ga(),i=Ra(),r=au(),s=(l,...u)=\u003e{const g={origin:[0,0,0],normal:[0,0,1]},{origin:h,normal:d}=Object.assign({},g,l);if(u=t(u),u.length===0)throw new Error(\"wrong number of arguments\");const p=n.fromNormalAndPoint(n.create(),d,h);if(Number.isNaN(p[0]))throw new Error(\"the given origin and normal do not define a proper plane\");const m=e.mirrorByPlane(e.create(),p),_=u.map(f=\u003er.isA(f)?r.transform(m,f):o.isA(f)?o.transform(m,f):i.isA(f)?i.transform(m,f):f);return _.length===1?_[0]:_};return CYe={mirror:s,mirrorX:(...l)=\u003es({normal:[1,0,0]},l),mirrorY:(...l)=\u003es({normal:[0,1,0]},l),mirrorZ:(...l)=\u003es({normal:[0,0,1]},l)},CYe}var yYe,ken;function Fen(){if(ken)return yYe;ken=1;const t=E6(),e=jr();return yYe=o=\u003e{const i=o.edges;if(i.length\u003c3)throw new Error(\"slices must have 3 or more edges to calculate a plane\");const r=i.reduce((c,l)=\u003ee.add(e.create(),c,l[0]),e.create());e.scale(r,r,1/i.length);let s,a=0;i.forEach(c=\u003e{if(!e.equals(c[0],c[1])){const l=e.squaredDistance(r,c[0]);l\u003ea\u0026\u0026(s=c,a=l)}});const A=i.find(c=\u003ee.equals(c[1],s[0]));return t.fromPoints(t.create(),A[0],s[0],s[1])},yYe}var xYe,Len;function tT(){return Len||(Len=1,xYe=e=\u003e(e||(e=[]),{edges:e})),xYe}var EYe,Hen;function zai(){if(Hen)return EYe;Hen=1;const t=tT(),e=jr();return EYe=(...o)=\u003e{let i,r;return o.length===1?(i=t(),r=o[0]):(i=o[0],r=o[1]),i.edges=r.edges.map(s=\u003e[e.clone(s[0]),e.clone(s[1])]),i},EYe}var BYe,Oen;function Jai(){if(Oen)return BYe;Oen=1;const t=jr();return BYe=(n,o)=\u003e{const i=n.edges,r=o.edges;return i.length!==r.length?!1:i.reduce((a,A,c)=\u003e{const l=r[c],u=t.squaredDistance(A[0],l[0]);return a\u0026\u0026u\u003cNumber.EPSILON},!0)},BYe}var bYe,Gen;function Wai(){if(Gen)return bYe;Gen=1;const t=jr(),e=tT();return bYe=o=\u003e{if(!Array.isArray(o))throw new Error(\"the given points must be an array\");if(o.length\u003c3)throw new Error(\"the given points must contain THREE or more points\");const i=[];let r=o[o.length-1];return o.forEach(s=\u003e{s.length===2\u0026\u0026i.push([t.fromVec2(t.create(),r),t.fromVec2(t.create(),s)]),s.length===3\u0026\u0026i.push([r,s]),r=s}),e(i)},bYe}var SYe,Yen;function jai(){if(Yen)return SYe;Yen=1;const t=jr(),e=tT();return SYe=o=\u003e{if(!Array.isArray(o))throw new Error(\"the given sides must be an array\");const i=[];return o.forEach(r=\u003e{i.push([t.fromVec2(t.create(),r[0]),t.fromVec2(t.create(),r[1])])}),e(i)},SYe}var QYe,Uen;function $ai(){return Uen||(Uen=1,QYe=e=\u003e!!(e\u0026\u0026typeof e==\"object\"\u0026\u0026\"edges\"in e\u0026\u0026Array.isArray(e.edges))),QYe}var vYe,Ken;function qai(){if(Ken)return vYe;Ken=1;const t=tT();return vYe=(...n)=\u003e{let o,i;return n.length===1?(o=t(),i=n[0]):(o=n[0],i=n[1]),o.edges=i.edges.map(r=\u003e[r[1],r[0]]),o},vYe}var wYe,Ven;function Xai(){return Ven||(Ven=1,wYe=e=\u003ee.edges),wYe}var PYe,zen;function Zai(){return zen||(zen=1,PYe=(e,n)=\u003e{let o,i,r,s,a,A=1;do{i=e,e=null;let c=null;for(a=0;i;){a++,r=i;let l=0;for(o=0;o\u003cA\u0026\u0026(l++,r=r.nextZ,!!r);o++);let u=A;for(;l\u003e0||u\u003e0\u0026\u0026r;)l!==0\u0026\u0026(u===0||!r||n(i)\u003c=n(r))?(s=i,i=i.nextZ,l--):(s=r,r=r.nextZ,u--),c?c.nextZ=s:e=s,s.prevZ=c,c=s;i=r}c.nextZ=null,A*=2}while(a\u003e1);return e}),PYe}var MYe,Jen;function Wen(){if(Jen)return MYe;Jen=1;const t=Zai();class e{constructor(r,s,a){this.i=r,this.x=s,this.y=a,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}}return MYe={Node:e,insertNode:(i,r,s,a)=\u003e{const A=new e(i,r,s);return a?(A.next=a.next,A.prev=a,a.next.prev=A,a.next=A):(A.prev=A,A.next=A),A},removeNode:i=\u003e{i.next.prev=i.prev,i.prev.next=i.next,i.prevZ\u0026\u0026(i.prevZ.nextZ=i.nextZ),i.nextZ\u0026\u0026(i.nextZ.prevZ=i.prevZ)},sortLinked:t},MYe}var DYe,jen;function NYe(){return jen||(jen=1,DYe={area:(n,o,i)=\u003e(o.y-n.y)*(i.x-o.x)-(o.x-n.x)*(i.y-o.y),pointInTriangle:(n,o,i,r,s,a,A,c)=\u003e(s-A)*(o-c)-(n-A)*(a-c)\u003e=0\u0026\u0026(n-A)*(r-c)-(i-A)*(o-c)\u003e=0\u0026\u0026(i-A)*(a-c)-(s-A)*(r-c)\u003e=0}),DYe}var RYe,$en;function qen(){if($en)return RYe;$en=1;const{Node:t,insertNode:e,removeNode:n}=Wen(),{area:o}=NYe(),i=(m,_,f,I,C)=\u003e{let y;if(C===d(m,_,f,I)\u003e0)for(let x=_;x\u003cf;x+=I)y=e(x,m[x],m[x+1],y);else for(let x=f-I;x\u003e=_;x-=I)y=e(x,m[x],m[x+1],y);return y\u0026\u0026p(y,y.next)\u0026\u0026(n(y),y=y.next),y},r=(m,_)=\u003e{if(!m)return m;_||(_=m);let f=m,I;do if(I=!1,!f.steiner\u0026\u0026(p(f,f.next)||o(f.prev,f,f.next)===0)){if(n(f),f=_=f.prev,f===f.next)break;I=!0}else f=f.next;while(I||f!==_);return _},s=(m,_,f)=\u003e{let I=m;do{const C=I.prev,y=I.next.next;!p(C,y)\u0026\u0026g(C,I,I.next,y)\u0026\u0026A(C,y)\u0026\u0026A(y,C)\u0026\u0026(_.push(C.i/f),_.push(I.i/f),_.push(y.i/f),n(I),n(I.next),I=m=y),I=I.next}while(I!==m);return r(I)},a=(m,_)=\u003e{let f=m;do{if(f.i!==m.i\u0026\u0026f.next.i!==m.i\u0026\u0026f.i!==_.i\u0026\u0026f.next.i!==_.i\u0026\u0026g(f,f.next,m,_))return!0;f=f.next}while(f!==m);return!1},A=(m,_)=\u003eo(m.prev,m,m.next)\u003c0?o(m,_,m.next)\u003e=0\u0026\u0026o(m,m.prev,_)\u003e=0:o(m,_,m.prev)\u003c0||o(m,m.next,_)\u003c0,c=(m,_)=\u003e{let f=m,I=!1;const C=(m.x+_.x)/2,y=(m.y+_.y)/2;do f.y\u003ey!=f.next.y\u003ey\u0026\u0026f.next.y!==f.y\u0026\u0026C\u003c(f.next.x-f.x)*(y-f.y)/(f.next.y-f.y)+f.x\u0026\u0026(I=!I),f=f.next;while(f!==m);return I},l=(m,_)=\u003e{const f=new t(m.i,m.x,m.y),I=new t(_.i,_.x,_.y),C=m.next,y=_.prev;return m.next=_,_.prev=m,f.next=C,C.prev=f,I.next=f,f.prev=I,y.next=I,I.prev=y,I},u=(m,_)=\u003em.next.i!==_.i\u0026\u0026m.prev.i!==_.i\u0026\u0026!a(m,_)\u0026\u0026(A(m,_)\u0026\u0026A(_,m)\u0026\u0026c(m,_)\u0026\u0026(o(m.prev,m,_.prev)||o(m,_.prev,_))||p(m,_)\u0026\u0026o(m.prev,m,m.next)\u003e0\u0026\u0026o(_.prev,_,_.next)\u003e0),g=(m,_,f,I)=\u003e{const C=Math.sign(o(m,_,f)),y=Math.sign(o(m,_,I)),x=Math.sign(o(f,I,m)),E=Math.sign(o(f,I,_));return!!(C!==y\u0026\u0026x!==E||C===0\u0026\u0026h(m,f,_)||y===0\u0026\u0026h(m,I,_)||x===0\u0026\u0026h(f,m,I)||E===0\u0026\u0026h(f,_,I))},h=(m,_,f)=\u003e_.x\u003c=Math.max(m.x,f.x)\u0026\u0026_.x\u003e=Math.min(m.x,f.x)\u0026\u0026_.y\u003c=Math.max(m.y,f.y)\u0026\u0026_.y\u003e=Math.min(m.y,f.y),d=(m,_,f,I)=\u003e{let C=0;for(let y=_,x=f-I;y\u003cf;y+=I)C+=(m[x]-m[y])*(m[y+1]+m[x+1]),x=y;return C},p=(m,_)=\u003em.x===_.x\u0026\u0026m.y===_.y;return RYe={cureLocalIntersections:s,filterPoints:r,isValidDiagonal:u,linkedPolygon:i,locallyInside:A,splitPolygon:l},RYe}var TYe,Xen;function eAi(){if(Xen)return TYe;Xen=1;const{filterPoints:t,linkedPolygon:e,locallyInside:n,splitPolygon:o}=qen(),{area:i,pointInTriangle:r}=NYe(),s=(u,g,h,d)=\u003e{const p=[];for(let m=0,_=g.length;m\u003c_;m++){const f=g[m]*d,I=m\u003c_-1?g[m+1]*d:u.length,C=e(u,f,I,d,!1);C===C.next\u0026\u0026(C.steiner=!0),p.push(l(C))}p.sort((m,_)=\u003em.x-_.x);for(let m=0;m\u003cp.length;m++)h=a(p[m],h),h=t(h,h.next);return h},a=(u,g)=\u003e{const h=A(u,g);if(!h)return g;const d=o(h,u),p=t(h,h.next);return t(d,d.next),g===h?p:g},A=(u,g)=\u003e{let h=g;const d=u.x,p=u.y;let m=-1/0,_;do{if(p\u003c=h.y\u0026\u0026p\u003e=h.next.y\u0026\u0026h.next.y!==h.y){const x=h.x+(p-h.y)*(h.next.x-h.x)/(h.next.y-h.y);if(x\u003c=d\u0026\u0026x\u003em){if(m=x,x===d){if(p===h.y)return h;if(p===h.next.y)return h.next}_=h.x\u003ch.next.x?h:h.next}}h=h.next}while(h!==g);if(!_)return null;if(d===m)return _;const f=_,I=_.x,C=_.y;let y=1/0;h=_;do{if(d\u003e=h.x\u0026\u0026h.x\u003e=I\u0026\u0026d!==h.x\u0026\u0026r(p\u003cC?d:m,p,I,C,p\u003cC?m:d,p,h.x,h.y)){const x=Math.abs(p-h.y)/(d-h.x);n(h,u)\u0026\u0026(x\u003cy||x===y\u0026\u0026(h.x\u003e_.x||h.x===_.x\u0026\u0026c(_,h)))\u0026\u0026(_=h,y=x)}h=h.next}while(h!==f);return _},c=(u,g)=\u003ei(u.prev,u,g.prev)\u003c0\u0026\u0026i(g.next,u,u.next)\u003c0,l=u=\u003e{let g=u,h=u;do(g.x\u003ch.x||g.x===h.x\u0026\u0026g.y\u003ch.y)\u0026\u0026(h=g),g=g.next;while(g!==u);return h};return TYe=s,TYe}var kYe,Zen;function tAi(){if(Zen)return kYe;Zen=1;const t=eAi(),{removeNode:e,sortLinked:n}=Wen(),{cureLocalIntersections:o,filterPoints:i,isValidDiagonal:r,linkedPolygon:s,splitPolygon:a}=qen(),{area:A,pointInTriangle:c}=NYe(),l=(_,f,I=2)=\u003e{const C=f\u0026\u0026f.length,y=C?f[0]*I:_.length;let x=s(_,0,y,I,!0);const E=[];if(!x||x.next===x.prev)return E;let B,S,Q,w,M;if(C\u0026\u0026(x=t(_,f,x,I)),_.length\u003e80*I){B=Q=_[0],S=w=_[1];for(let k=I;k\u003cy;k+=I){const R=_[k],F=_[k+1];R\u003cB\u0026\u0026(B=R),F\u003cS\u0026\u0026(S=F),R\u003eQ\u0026\u0026(Q=R),F\u003ew\u0026\u0026(w=F)}M=Math.max(Q-B,w-S),M=M!==0?1/M:0}return u(x,E,I,B,S,M),E},u=(_,f,I,C,y,x,E)=\u003e{if(!_)return;!E\u0026\u0026x\u0026\u0026p(_,C,y,x);let B=_,S,Q;for(;_.prev!==_.next;){if(S=_.prev,Q=_.next,x?h(_,C,y,x):g(_)){f.push(S.i/I),f.push(_.i/I),f.push(Q.i/I),e(_),_=Q.next,B=Q.next;continue}if(_=Q,_===B){E?E===1?(_=o(i(_),f,I),u(_,f,I,C,y,x,2)):E===2\u0026\u0026d(_,f,I,C,y,x):u(i(_),f,I,C,y,x,1);break}}},g=_=\u003e{const f=_.prev,I=_,C=_.next;if(A(f,I,C)\u003e=0)return!1;let y=_.next.next;for(;y!==_.prev;){if(c(f.x,f.y,I.x,I.y,C.x,C.y,y.x,y.y)\u0026\u0026A(y.prev,y,y.next)\u003e=0)return!1;y=y.next}return!0},h=(_,f,I,C)=\u003e{const y=_.prev,x=_,E=_.next;if(A(y,x,E)\u003e=0)return!1;const B=y.x\u003cx.x?y.x\u003cE.x?y.x:E.x:x.x\u003cE.x?x.x:E.x,S=y.y\u003cx.y?y.y\u003cE.y?y.y:E.y:x.y\u003cE.y?x.y:E.y,Q=y.x\u003ex.x?y.x\u003eE.x?y.x:E.x:x.x\u003eE.x?x.x:E.x,w=y.y\u003ex.y?y.y\u003eE.y?y.y:E.y:x.y\u003eE.y?x.y:E.y,M=m(B,S,f,I,C),k=m(Q,w,f,I,C);let R=_.prevZ,F=_.nextZ;for(;R\u0026\u0026R.z\u003e=M\u0026\u0026F\u0026\u0026F.z\u003c=k;){if(R!==_.prev\u0026\u0026R!==_.next\u0026\u0026c(y.x,y.y,x.x,x.y,E.x,E.y,R.x,R.y)\u0026\u0026A(R.prev,R,R.next)\u003e=0||(R=R.prevZ,F!==_.prev\u0026\u0026F!==_.next\u0026\u0026c(y.x,y.y,x.x,x.y,E.x,E.y,F.x,F.y)\u0026\u0026A(F.prev,F,F.next)\u003e=0))return!1;F=F.nextZ}for(;R\u0026\u0026R.z\u003e=M;){if(R!==_.prev\u0026\u0026R!==_.next\u0026\u0026c(y.x,y.y,x.x,x.y,E.x,E.y,R.x,R.y)\u0026\u0026A(R.prev,R,R.next)\u003e=0)return!1;R=R.prevZ}for(;F\u0026\u0026F.z\u003c=k;){if(F!==_.prev\u0026\u0026F!==_.next\u0026\u0026c(y.x,y.y,x.x,x.y,E.x,E.y,F.x,F.y)\u0026\u0026A(F.prev,F,F.next)\u003e=0)return!1;F=F.nextZ}return!0},d=(_,f,I,C,y,x)=\u003e{let E=_;do{let B=E.next.next;for(;B!==E.prev;){if(E.i!==B.i\u0026\u0026r(E,B)){let S=a(E,B);E=i(E,E.next),S=i(S,S.next),u(E,f,I,C,y,x),u(S,f,I,C,y,x);return}B=B.next}E=E.next}while(E!==_)},p=(_,f,I,C)=\u003e{let y=_;do y.z===null\u0026\u0026(y.z=m(y.x,y.y,f,I,C)),y.prevZ=y.prev,y.nextZ=y.next,y=y.next;while(y!==_);y.prevZ.nextZ=null,y.prevZ=null,n(y,x=\u003ex.z)},m=(_,f,I,C,y)=\u003e(_=32767*(_-I)*y,f=32767*(f-C)*y,_=(_|_\u003c\u003c8)\u002616711935,_=(_|_\u003c\u003c4)\u0026252645135,_=(_|_\u003c\u003c2)\u0026858993459,_=(_|_\u003c\u003c1)\u00261431655765,f=(f|f\u003c\u003c8)\u002616711935,f=(f|f\u003c\u003c4)\u0026252645135,f=(f|f\u003c\u003c2)\u0026858993459,f=(f|f\u003c\u003c1)\u00261431655765,_|f\u003c\u003c1);return kYe=l,kYe}var FYe,etn;function nAi(){if(etn)return FYe;etn=1;const{area:t}=hX(),{toOutlines:e}=Ga(),{arePointsInside:n}=zOe(),o=r=\u003e{const s=e(r),a=[],A=[];s.forEach((u,g)=\u003e{const h=t(u);h\u003c0?A.push(g):h\u003e0\u0026\u0026a.push(g)});const c=[],l=[];return a.forEach((u,g)=\u003e{const h=s[u];c[g]=[],A.forEach((d,p)=\u003e{const m=s[d];n([m[0]],{vertices:h})\u0026\u0026(c[g].push(d),l[p]||(l[p]=[]),l[p].push(g))})}),A.forEach((u,g)=\u003e{if(l[g]\u0026\u0026l[g].length\u003e1){const h=i(l[g],d=\u003ec[d].length);l[g].forEach((d,p)=\u003e{p!==h\u0026\u0026(c[d]=c[d].filter(m=\u003em!==u))})}}),c.map((u,g)=\u003e({solid:s[a[g]],holes:u.map(h=\u003es[h])}))},i=(r,s)=\u003e{let a,A;return r.forEach((c,l)=\u003e{const u=s(c);(A===void 0||u\u003cA)\u0026\u0026(a=l,A=u)}),a};return FYe=o,FYe}var LYe,ttn;function oAi(){if(ttn)return LYe;ttn=1;const t=Ga(),e=E6(),n=mA(),o=jr(),i=Fen(),r=nAi();class s{constructor(A){this.plane=i(A);const c=o.orthogonal(o.create(),this.plane),l=o.cross(o.create(),this.plane,c);this.v=o.normalize(l,l),this.u=o.cross(o.create(),this.v,this.plane),this.basisMap=new Map;const u=A.edges.map(h=\u003eh.map(d=\u003ethis.to2D(d))),g=t.create(u);this.roots=r(g)}to2D(A){const c=n.fromValues(o.dot(A,this.u),o.dot(A,this.v));return this.basisMap.set(c,A),c}to3D(A){const c=this.basisMap.get(A);if(c)return c;{console.log(\"Warning: point not in original slice\");const l=o.scale(o.create(),this.u,A[0]),u=o.scale(o.create(),this.v,A[1]),g=o.scale(o.create(),e,e[3]),h=o.add(l,l,g);return o.add(u,u,h)}}}return LYe=s,LYe}var HYe,ntn;function iAi(){if(ntn)return HYe;ntn=1;const t=qA(),e=tAi(),n=oAi();return HYe=i=\u003e{const r=new n(i),s=[];return r.roots.forEach(({solid:a,holes:A})=\u003e{let c=a.length;const l=[];A.forEach((p,m)=\u003e{l.push(c),c+=p.length});const u=[a,...A].flat(),g=u.flat(),h=p=\u003er.to3D(u[p]),d=e(g,l);for(let p=0;p\u003cd.length;p+=3){const m=d.slice(p,p+3).map(h);s.push(t.fromPointsAndPlane(m,r.plane))}}),s},HYe}var OYe,otn;function rAi(){if(otn)return OYe;otn=1;const t=jr(),e=o=\u003eo.reduce((i,r)=\u003ei+=`[${t.toString(r[0])}, ${t.toString(r[1])}], `,\"\");return OYe=o=\u003e`[${e(o.edges)}]`,OYe}var GYe,itn;function sAi(){if(itn)return GYe;itn=1;const t=jr(),e=tT();return GYe=(o,i)=\u003e{const r=i.edges.map(s=\u003e[t.transform(t.create(),s[0],o),t.transform(t.create(),s[1],o)]);return e(r)},GYe}var YYe,rtn;function bY(){return rtn||(rtn=1,YYe={calculatePlane:Fen(),clone:zai(),create:tT(),equals:Jai(),fromPoints:Wai(),fromSides:jai(),isA:$ai(),reverse:qai(),toEdges:Xai(),toPolygons:iAi(),toString:rAi(),transform:sAi()}),YYe}var UYe,stn;function aAi(){if(stn)return UYe;stn=1;const t=jr(),e=tT();return UYe=o=\u003e{if(!o.edges)return o;let i=o.edges;const r=new Map,s=new Map;i=i.filter(c=\u003e!t.equals(c[0],c[1])),i.forEach(c=\u003e{const l=c[0].toString(),u=c[1].toString();r.set(l,c[0]),r.set(u,c[1]),s.set(l,(s.get(l)||0)+1),s.set(u,(s.get(u)||0)-1)});const a=[],A=[];return s.forEach((c,l)=\u003e{c\u003c0\u0026\u0026a.push(l),c\u003e0\u0026\u0026A.push(l)}),a.forEach(c=\u003e{const l=r.get(c);let u=1/0,g;A.forEach(h=\u003e{const d=r.get(h),p=t.distance(l,d);p\u003cu\u0026\u0026(u=p,g=d)}),console.warn(`slice.repair: repairing vertex gap ${l} to ${g} distance ${u}`),i=i.map(h=\u003eh[0].toString()===c?[g,h[1]]:h[1].toString()===c?[h[0],g]:h)}),e(i)},UYe}var KYe,atn;function AAi(){if(atn)return KYe;atn=1;const{EPS:t}=pc(),e=jr(),n=qA(),o=bY(),i=(c,l)=\u003ec===l?c:c\u003cl?i(l,c):l===1?1:l===0?c:i(l,c%l),r=(c,l)=\u003ec*l/i(c,l),s=(c,l)=\u003e{const u=c/l.length;if(u===1)return l;const g=e.fromValues(u,u,u),h=e.create(),d=[];return l.forEach(p=\u003e{e.subtract(h,p[1],p[0]),e.divide(h,h,g);let m=p[0];for(let _=1;_\u003c=u;++_){const f=e.add(e.create(),m,h);d.push([m,f]),m=f}}),d},a=t*t/2*Math.sin(Math.PI/3);return KYe=(c,l)=\u003e{let u=o.toEdges(c),g=o.toEdges(l);if(u.length!==g.length){const d=r(u.length,g.length);d!==u.length\u0026\u0026(u=s(d,u)),d!==g.length\u0026\u0026(g=s(d,g))}const h=[];return u.forEach((d,p)=\u003e{const m=g[p],_=n.create([d[0],d[1],m[1]]),f=n.measureArea(_);Number.isFinite(f)\u0026\u0026f\u003ea\u0026\u0026h.push(_);const I=n.create([d[0],m[1],m[0]]),C=n.measureArea(I);Number.isFinite(C)\u0026\u0026C\u003ea\u0026\u0026h.push(I)}),h},KYe}var VYe,Atn;function Mhe(){if(Atn)return VYe;Atn=1;const t=Mu(),e=Ga(),n=Ra(),o=qA(),i=bY(),r=aAi(),s=AAi(),a=(c,l,u)=\u003e{let g=null;return e.isA(u)\u0026\u0026(g=i.fromSides(e.toSides(u))),o.isA(u)\u0026\u0026(g=i.fromPoints(o.toPoints(u))),c===0||c===1?i.transform(t.fromTranslation(t.create(),[0,0,c]),g):null};return VYe=(c,l)=\u003e{const u={numberOfSlices:2,capStart:!0,capEnd:!0,close:!1,repair:!0,callback:a},{numberOfSlices:g,capStart:h,capEnd:d,close:p,repair:m,callback:_}=Object.assign({},u,c);if(g\u003c2)throw new Error(\"numberOfSlices must be 2 or more\");m\u0026\u0026(l=r(l));const f=g-1;let I=null,C=null,y=null,x=[];for(let E=0;E\u003cg;E++){const B=_(E/f,E,l);if(B){if(!i.isA(B))throw new Error(\"the callback function must return slice objects\");if(i.toEdges(B).length===0)throw new Error(\"the callback function must return slices with one or more edges\");if(y){const Q=s(y,B);for(let w=0;w\u003cQ.length;w++)x.push(Q[w])}E===0\u0026\u0026(I=B),E===g-1\u0026\u0026(C=B),y=B}}if(d){const E=i.toPolygons(C);for(let B=0;B\u003cE.length;B++)x.push(E[B])}if(h){const E=i.toPolygons(I).map(o.invert);for(let B=0;B\u003cE.length;B++)x.push(E[B])}if(!h\u0026\u0026!d\u0026\u0026p\u0026\u0026!i.equals(C,I)){const E=s(C,I);for(let B=0;B\u003cE.length;B++)x.push(E[B])}return n.create(x)},VYe}var zYe,ctn;function ltn(){if(ctn)return zYe;ctn=1;const{TAU:t}=pc(),e=Mu(),{mirrorX:n}=mX(),o=Ga(),i=bY(),r=Mhe();return zYe=(a,A)=\u003e{const c={segments:12,startAngle:0,angle:t,overflow:\"cap\"};let{segments:l,startAngle:u,angle:g,overflow:h}=Object.assign({},c,a);if(l\u003c3)throw new Error(\"segments must be greater then 3\");u=Math.abs(u)\u003et?u%t:u,g=Math.abs(g)\u003et?g%t:g;let d=u+g;if(d=Math.abs(d)\u003et?d%t:d,d\u003cu){const w=u;u=d,d=w}let p=d-u;if(p\u003c=0\u0026\u0026(p=t),Math.abs(p)\u003ct){const w=t/l;l=Math.floor(Math.abs(p)/w),Math.abs(p)\u003el*w\u0026\u0026l++}let m=o.toSides(A);if(m.length===0)throw new Error(\"the given geometry cannot be empty\");const _=m.filter(w=\u003ew[0][0]\u003c0),f=m.filter(w=\u003ew[0][0]\u003e=0);_.length\u003e0\u0026\u0026f.length\u003e0\u0026\u0026h===\"cap\"\u0026\u0026(_.length\u003ef.length?(m=m.map(w=\u003e{let M=w[0],k=w[1];return M=[Math.min(M[0],0),M[1]],k=[Math.min(k[0],0),k[1]],[M,k]}),A=o.create(m),A=n(A)):f.length\u003e=_.length\u0026\u0026(m=m.map(w=\u003e{let M=w[0],k=w[1];return M=[Math.max(M[0],0),M[1]],k=[Math.max(k[0],0),k[1]],[M,k]}),A=o.create(m)));const C=p/l,y=Math.abs(p)\u003ct,x=i.fromSides(o.toSides(A));i.reverse(x,x);const E=e.create(),B=e.fromXRotation(e.create(),t/4),S=e.create(),Q=(w,M,k)=\u003e{let R=C*M+u;return p===t\u0026\u0026M===l\u0026\u0026(R=u),e.fromZRotation(S,R),e.multiply(E,S,B),i.transform(E,k)};return a={numberOfSlices:l+1,capStart:y,capEnd:y,close:!y,callback:Q},r(a,x)},zYe}var JYe,utn;function _X(){if(utn)return JYe;utn=1;const t=la(),e=Mu(),n=Ga(),o=Ra(),i=au(),r=(c,...l)=\u003e{if(!Array.isArray(c))throw new Error(\"angles must be an array\");if(l=t(l),l.length===0)throw new Error(\"wrong number of arguments\");for(c=c.slice();c.length\u003c3;)c.push(0);const u=c[2],g=c[1],h=c[0],d=e.fromTaitBryanRotation(e.create(),u,g,h),p=l.map(m=\u003ei.isA(m)?i.transform(d,m):n.isA(m)?n.transform(d,m):o.isA(m)?o.transform(d,m):m);return p.length===1?p[0]:p};return JYe={rotate:r,rotateX:(c,...l)=\u003er([c,0,0],l),rotateY:(c,...l)=\u003er([0,c,0],l),rotateZ:(c,...l)=\u003er([0,0,c],l)},JYe}var WYe,gtn;function nT(){if(gtn)return WYe;gtn=1;const t=la(),e=Mu(),n=Ga(),o=Ra(),i=au(),r=(c,...l)=\u003e{if(!Array.isArray(c))throw new Error(\"offset must be an array\");if(l=t(l),l.length===0)throw new Error(\"wrong number of arguments\");for(c=c.slice();c.length\u003c3;)c.push(0);const u=e.fromTranslation(e.create(),c),g=l.map(h=\u003ei.isA(h)?i.transform(u,h):n.isA(h)?n.transform(u,h):o.isA(h)?o.transform(u,h):h);return g.length===1?g[0]:g};return WYe={translate:r,translateX:(c,...l)=\u003er([c,0,0],l),translateY:(c,...l)=\u003er([0,c,0],l),translateZ:(c,...l)=\u003er([0,0,c],l)},WYe}var jYe,dtn;function cAi(){if(dtn)return jYe;dtn=1;const{TAU:t}=pc(),e=ltn(),{rotate:n}=_X(),{translate:o}=nT(),i=den(),{isGT:r,isGTE:s}=cf();return jYe=A=\u003e{const c={innerRadius:1,innerSegments:32,outerRadius:4,outerSegments:32,innerRotation:0,startAngle:0,outerRotation:t},{innerRadius:l,innerSegments:u,outerRadius:g,outerSegments:h,innerRotation:d,startAngle:p,outerRotation:m}=Object.assign({},c,A);if(!r(l,0))throw new Error(\"innerRadius must be greater than zero\");if(!s(u,3))throw new Error(\"innerSegments must be three or more\");if(!r(g,0))throw new Error(\"outerRadius must be greater than zero\");if(!s(h,3))throw new Error(\"outerSegments must be three or more\");if(!s(p,0))throw new Error(\"startAngle must be positive\");if(!r(m,0))throw new Error(\"outerRotation must be greater than zero\");if(l\u003e=g)throw new Error(\"inner circle is too large to rotate about the outer circle\");let _=i({radius:l,segments:u});return d!==0\u0026\u0026(_=n([0,0,d],_)),_=o([g,0],_),e({startAngle:p,angle:m,segments:h},_)},jYe}var $Ye,htn;function lAi(){if(htn)return $Ye;htn=1;const{NEPS:t}=pc(),e=mA(),n=Ga(),{isNumberArray:o}=cf(),i=(d,p,m)=\u003eMath.acos((d*d+p*p-m*m)/(2*d*p)),r=(d,p,m)=\u003ep\u003et?Math.sqrt(d*d+m*m-2*d*m*Math.cos(p)):Math.sqrt((d-m)*(d-m)+d*m*p*p*(1-p*p/12)),s=d=\u003e{if(Math.abs(d[0]+d[1]+d[2]-Math.PI)\u003et)throw new Error(\"AAA triangles require angles that sum to PI\");const m=d[0],_=d[1],f=Math.PI-m-_,I=1,C=I/Math.sin(f)*Math.sin(m),y=I/Math.sin(f)*Math.sin(_);return g(m,_,f,C,y,I)},a=d=\u003e{const p=d[0],m=d[1],_=Math.PI+t-p-m;if(_\u003ct)throw new Error(\"AAS triangles require angles that sum to PI\");const f=d[2],I=f/Math.sin(p)*Math.sin(m),C=f/Math.sin(p)*Math.sin(_);return g(p,m,_,f,I,C)},A=d=\u003e{const p=d[0],m=d[2],_=Math.PI+t-p-m;if(_\u003ct)throw new Error(\"ASA triangles require angles that sum to PI\");const f=d[1],I=f/Math.sin(_)*Math.sin(p),C=f/Math.sin(_)*Math.sin(m);return g(p,m,_,I,C,f)},c=d=\u003e{const p=d[0],m=d[1],_=d[2],f=r(p,m,_),I=i(f,p,_),C=Math.PI-I-m;return g(I,m,C,_,f,p)},l=d=\u003e{const p=d[0],m=d[1],_=d[2],f=Math.asin(m*Math.sin(_)/p),I=Math.PI-f-_,C=p/Math.sin(_)*Math.sin(I);return g(f,I,_,m,C,p)},u=d=\u003e{const p=d[1],m=d[2],_=d[0];if(p+m\u003c=_||m+_\u003c=p||_+p\u003c=m)throw new Error(\"SSS triangle is incorrect, as the longest side is longer than the sum of the other sides\");const f=i(m,_,p),I=i(_,p,m),C=Math.PI-f-I;return g(f,I,C,p,m,_)},g=(d,p,m,_,f,I)=\u003e{const C=e.fromValues(0,0),y=e.fromValues(I,0),x=e.fromValues(_,0);return e.add(x,e.rotate(x,x,[0,0],Math.PI-p),y),n.fromPoints([C,y,x])};return $Ye=d=\u003e{const p={type:\"SSS\",values:[1,1,1]};let{type:m,values:_}=Object.assign({},p,d);if(typeof m!=\"string\")throw new Error(\"triangle type must be a string\");if(m=m.toUpperCase(),!((m[0]===\"A\"||m[0]===\"S\")\u0026\u0026(m[1]===\"A\"||m[1]===\"S\")\u0026\u0026(m[2]===\"A\"||m[2]===\"S\")))throw new Error(\"triangle type must contain three letters; A or S\");if(!o(_,3))throw new Error(\"triangle values must contain three values\");if(!_.every(f=\u003ef\u003e0))throw new Error(\"triangle values must be greater than zero\");switch(m){case\"AAA\":return s(_);case\"AAS\":return a(_);case\"ASA\":return A(_);case\"SAS\":return c(_);case\"SSA\":return l(_);case\"SSS\":return u(_);default:throw new Error(\"invalid triangle type, try again\")}},$Ye}var qYe,ptn;function uAi(){return ptn||(ptn=1,qYe={arc:kai(),circle:den(),cube:Fai(),cuboid:oYe(),cylinder:Ien(),cylinderElliptic:_en(),ellipse:uen(),ellipsoid:yen(),geodesicSphere:Lai(),line:Hai(),polygon:Oai(),polyhedron:Een(),rectangle:dYe(),roundedCuboid:Gai(),roundedCylinder:Yai(),roundedRectangle:Uai(),sphere:Den(),square:Kai(),star:Vai(),torus:cAi(),triangle:lAi()}),qYe}var XYe,mtn;function gAi(){return mtn||(mtn=1,XYe={height:14,32:[16],33:[10,5,21,5,7,void 0,5,2,4,1,5,0,6,1,5,2],34:[16,4,21,4,14,void 0,12,21,12,14],35:[21,11,25,4,-7,void 0,17,25,10,-7,void 0,4,12,18,12,void 0,3,6,17,6],36:[20,8,25,8,-4,void 0,12,25,12,-4,void 0,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3],37:[24,21,21,3,0,void 0,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,void 0,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7],38:[26,23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2],39:[10,5,19,4,20,5,21,6,20,6,18,5,16,4,15],40:[14,11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7],41:[14,3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7],42:[16,8,21,8,9,void 0,3,18,13,12,void 0,13,18,3,12],43:[26,13,18,13,0,void 0,4,9,22,9],44:[10,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4],45:[26,4,9,22,9],46:[10,5,2,4,1,5,0,6,1,5,2],47:[22,20,25,2,-7],48:[20,9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21],49:[20,6,17,8,18,11,21,11,0],50:[20,4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0],51:[20,5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4],52:[20,13,21,3,7,18,7,void 0,13,21,13,0],53:[20,15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4],54:[20,16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7],55:[20,17,21,7,0,void 0,3,21,17,21],56:[20,8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21],57:[20,16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3],58:[10,5,14,4,13,5,12,6,13,5,14,void 0,5,2,4,1,5,0,6,1,5,2],59:[10,5,14,4,13,5,12,6,13,5,14,void 0,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4],60:[24,20,18,4,9,20,0],61:[26,4,12,22,12,void 0,4,6,22,6],62:[24,4,18,20,9,4,0],63:[18,3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,void 0,9,2,8,1,9,0,10,1,9,2],64:[27,18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,void 0,12,16,10,14,9,11,9,8,10,6,11,5,void 0,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,void 0,19,16,18,8,18,6,19,5],65:[18,9,21,1,0,void 0,9,21,17,0,void 0,4,7,14,7],66:[21,4,21,4,0,void 0,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,void 0,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0],67:[21,18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5],68:[21,4,21,4,0,void 0,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0],69:[19,4,21,4,0,void 0,4,21,17,21,void 0,4,11,12,11,void 0,4,0,17,0],70:[18,4,21,4,0,void 0,4,21,17,21,void 0,4,11,12,11],71:[21,18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,void 0,13,8,18,8],72:[22,4,21,4,0,void 0,18,21,18,0,void 0,4,11,18,11],73:[8,4,21,4,0],74:[16,12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7],75:[21,4,21,4,0,void 0,18,21,4,7,void 0,9,12,18,0],76:[17,4,21,4,0,void 0,4,0,16,0],77:[24,4,21,4,0,void 0,4,21,12,0,void 0,20,21,12,0,void 0,20,21,20,0],78:[22,4,21,4,0,void 0,4,21,18,0,void 0,18,21,18,0],79:[22,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21],80:[21,4,21,4,0,void 0,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10],81:[22,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,void 0,12,4,18,-2],82:[21,4,21,4,0,void 0,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,void 0,11,11,18,0],83:[20,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3],84:[16,8,21,8,0,void 0,1,21,15,21],85:[22,4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21],86:[18,1,21,9,0,void 0,17,21,9,0],87:[24,2,21,7,0,void 0,12,21,7,0,void 0,12,21,17,0,void 0,22,21,17,0],88:[20,3,21,17,0,void 0,17,21,3,0],89:[18,1,21,9,11,9,0,void 0,17,21,9,11],90:[20,17,21,3,0,void 0,3,21,17,21,void 0,3,0,17,0],91:[14,4,25,4,-7,void 0,5,25,5,-7,void 0,4,25,11,25,void 0,4,-7,11,-7],92:[14,0,21,14,-3],93:[14,9,25,9,-7,void 0,10,25,10,-7,void 0,3,25,10,25,void 0,3,-7,10,-7],94:[16,6,15,8,18,10,15,void 0,3,12,8,17,13,12,void 0,8,17,8,0],95:[16,0,-2,16,-2],96:[10,6,21,5,20,4,18,4,16,5,15,6,16,5,17],97:[19,15,14,15,0,void 0,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],98:[19,4,21,4,0,void 0,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3],99:[18,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],100:[19,15,21,15,0,void 0,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],101:[18,3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],102:[12,10,21,8,21,6,20,5,17,5,0,void 0,2,14,9,14],103:[19,15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,void 0,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],104:[19,4,21,4,0,void 0,4,10,7,13,9,14,12,14,14,13,15,10,15,0],105:[8,3,21,4,20,5,21,4,22,3,21,void 0,4,14,4,0],106:[10,5,21,6,20,7,21,6,22,5,21,void 0,6,14,6,-3,5,-6,3,-7,1,-7],107:[17,4,21,4,0,void 0,14,14,4,4,void 0,8,8,15,0],108:[8,4,21,4,0],109:[30,4,14,4,0,void 0,4,10,7,13,9,14,12,14,14,13,15,10,15,0,void 0,15,10,18,13,20,14,23,14,25,13,26,10,26,0],110:[19,4,14,4,0,void 0,4,10,7,13,9,14,12,14,14,13,15,10,15,0],111:[19,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14],112:[19,4,14,4,-7,void 0,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3],113:[19,15,14,15,-7,void 0,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3],114:[13,4,14,4,0,void 0,4,8,5,11,7,13,9,14,12,14],115:[17,14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3],116:[12,5,21,5,4,6,1,8,0,10,0,void 0,2,14,9,14],117:[19,4,14,4,4,5,1,7,0,10,0,12,1,15,4,void 0,15,14,15,0],118:[16,2,14,8,0,void 0,14,14,8,0],119:[22,3,14,7,0,void 0,11,14,7,0,void 0,11,14,15,0,void 0,19,14,15,0],120:[17,3,14,14,0,void 0,14,14,3,0],121:[16,2,14,8,0,void 0,14,14,8,0,6,-4,4,-6,2,-7,1,-7],122:[17,14,14,3,0,void 0,3,14,14,14,void 0,3,0,14,0],123:[14,9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,void 0,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,void 0,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7],124:[8,4,25,4,-7],125:[14,5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,void 0,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,void 0,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7],126:[24,3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,void 0,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]}),XYe}var ZYe,_tn;function ftn(){if(_tn)return ZYe;_tn=1;const e={xOffset:0,yOffset:0,input:\"?\",align:\"left\",font:gAi(),height:14,lineSpacing:2.142857142857143,letterSpacing:1,extrudeOffset:0};return ZYe=(o,i)=\u003e{!i\u0026\u0026typeof o==\"string\"\u0026\u0026(o={input:o}),o=o||{};const r=Object.assign({},e,o);return r.input=i||r.input,r},ZYe}var eUe,Itn;function Ctn(){if(Itn)return eUe;Itn=1;const t=ftn();return eUe=(n,o)=\u003e{const{xOffset:i,yOffset:r,input:s,font:a,height:A,extrudeOffset:c}=t(n,o);let l=s.charCodeAt(0);(!l||!a[l])\u0026\u0026(l=63);const u=[].concat(a[l]),g=(A-c)/a.height,h=c/2,d=u.shift()*g,p=[];let m=[];for(let _=0,f=u.length;_\u003cf;_+=2){const I=g*u[_]+i,C=g*u[_+1]+r+h;if(u[_]!==void 0){m.push([I,C]);continue}p.push(m),m=[],_--}return m.length\u0026\u0026p.push(m),{width:d,height:A,segments:p}},eUe}var tUe,ytn;function dAi(){if(ytn)return tUe;ytn=1;const t=Ctn(),e=ftn(),n=(i,r)=\u003e{const{x:s,y:a}=Object.assign({x:0,y:0},i||{}),A=r.segments;let c=null,l=null;for(let u=0,g=A.length;u\u003cg;u++){c=A[u];for(let h=0,d=c.length;h\u003cd;h++)l=c[h],c[h]=[l[0]+s,l[1]+a]}return r};return tUe=(i,r)=\u003e{const{xOffset:s,yOffset:a,input:A,font:c,height:l,align:u,extrudeOffset:g,lineSpacing:h,letterSpacing:d}=e(i,r);let[p,m]=[s,a],_,f,I,C,y,x,E={width:0,segments:[]};const B=[];let S=[],Q=0;const w=p,M=()=\u003e{B.push(E),Q=Math.max(Q,E.width),E={width:0,segments:[]}};for(_=0,f=A.length;_\u003cf;_++){if(I=A[_],C=t({xOffset:p,yOffset:m,font:c,height:l,extrudeOffset:g},I),I===`\n`){p=w,m-=C.height*h,M();continue}y=C.width*d,E.width+=y,p+=y,I!==\" \"\u0026\u0026(E.segments=E.segments.concat(C.segments))}for(E.segments.length\u0026\u0026M(),_=0,f=B.length;_\u003cf;_++)E=B[_],Q\u003eE.width\u0026\u0026(x=Q-E.width,u===\"right\"?E=n({x},E):u===\"center\"\u0026\u0026(E=n({x:x/2},E))),S=S.concat(E.segments);return S},tUe}var nUe,xtn;function hAi(){return xtn||(xtn=1,nUe={vectorChar:Ctn(),vectorText:dAi()}),nUe}var oUe,Etn;function fX(){if(Etn)return oUe;Etn=1;const t=Ga(),e=Ra(),n=au();return oUe=i=\u003e{let r;for(const s of i){let a=0;if(t.isA(s)\u0026\u0026(a=1),e.isA(s)\u0026\u0026(a=2),n.isA(s)\u0026\u0026(a=3),r\u0026\u0026a!==r)return!1;r=a}return!0},oUe}var iUe,Btn;function pAi(){return Btn||(Btn=1,iUe=e=\u003ee*.017453292519943295),iUe}var rUe,btn;function Stn(){return btn||(btn=1,rUe=(e,n)=\u003ee-n),rUe}var sUe,Qtn;function mAi(){return Qtn||(Qtn=1,sUe=(e,n,o)=\u003e{let i=0,r=e.length;for(;r\u003ei;){const s=Math.floor((i+r)/2),a=e[s];o(n,a)\u003e0?i=s+1:r=s}e.splice(i,0,n)}),sUe}var aUe,vtn;function _Ai(){if(vtn)return aUe;vtn=1;const{TAU:t}=pc();return aUe=(n,o,i)=\u003e{const r=o\u003e0?n*t/o:0,s=i\u003e0?t/i:0;return Math.ceil(Math.max(r,s,4))},aUe}var AUe,wtn;function fAi(){return wtn||(wtn=1,AUe=e=\u003ee*57.29577951308232),AUe}var cUe,Ptn;function Mtn(){return Ptn||(Ptn=1,cUe={areAllShapesTheSameType:fX(),degToRad:pAi(),flatten:la(),fnNumberSort:Stn(),insertSorted:mAi(),radiusToSegments:_Ai(),radToDeg:fAi()}),cUe}var lUe,Dtn;function uUe(){if(Dtn)return lUe;Dtn=1;const t=mA(),e=Ga(),n=(i,r)=\u003e{if(r.vertices.length\u003c4)return null;const s=[],a=r.vertices.filter((l,u)=\u003el[2]\u003e0?(s.push(u),!0):!1);if(a.length!==2)throw new Error(\"Assertion failed: fromFakePolygon: not enough points found\");const A=a.map(l=\u003e{const u=Math.round(l[0]/i)*i+0,g=Math.round(l[1]/i)*i+0;return t.fromValues(u,g)});if(t.equals(A[0],A[1]))return null;const c=s[1]-s[0];if(c===1||c===3)c===1\u0026\u0026A.reverse();else throw new Error(\"Assertion failed: fromFakePolygon: unknown index ordering\");return A};return lUe=(i,r)=\u003e{const s=r.map(a=\u003en(i,a)).filter(a=\u003ea!==null);return e.create(s)},lUe}var gUe,Ntn;function dUe(){if(Ntn)return gUe;Ntn=1;const t=jr(),e=Ga(),n=Ra(),o=qA(),i=(s,a,A)=\u003e{const c=[t.fromVec2(t.create(),A[0],s),t.fromVec2(t.create(),A[1],s),t.fromVec2(t.create(),A[1],a),t.fromVec2(t.create(),A[0],a)];return o.create(c)};return gUe=(s,a)=\u003e{const c=e.toSides(a).map(u=\u003ei(s.z0,s.z1,u));return n.create(c)},gUe}var hUe,Rtn;function IAi(){if(Rtn)return hUe;Rtn=1;const t=Mu(),e=mA(),n=jr(),o=function(i,r){arguments.length\u003c2\u0026\u0026(r=n.orthogonal(n.create(),i)),this.v=n.normalize(n.create(),n.cross(n.create(),i,r)),this.u=n.cross(n.create(),this.v,i),this.plane=i,this.planeorigin=n.scale(n.create(),i,i[3])};return o.prototype={getProjectionMatrix:function(){return t.fromValues(this.u[0],this.v[0],this.plane[0],0,this.u[1],this.v[1],this.plane[1],0,this.u[2],this.v[2],this.plane[2],0,0,0,-this.plane[3],1)},getInverseProjectionMatrix:function(){const i=n.scale(n.create(),this.plane,this.plane[3]);return t.fromValues(this.u[0],this.u[1],this.u[2],0,this.v[0],this.v[1],this.v[2],0,this.plane[0],this.plane[1],this.plane[2],0,i[0],i[1],i[2],1)},to2D:function(i){return e.fromValues(n.dot(i,this.u),n.dot(i,this.v))},to3D:function(i){const r=n.scale(n.create(),this.u,i[0]),s=n.scale(n.create(),this.v,i[1]),a=n.add(r,r,this.planeorigin);return n.add(s,s,a)}},hUe=o,hUe}var pUe,Ttn;function CAi(){if(Ttn)return pUe;Ttn=1;const{EPS:t}=pc(),e=IGe(),n=mA(),o=IAi(),i=pZt(),{insertSorted:r,fnNumberSort:s}=Mtn(),a=qA();return pUe=c=\u003e{if(c.length\u003c2)return c;const l=[],u=c.length,g=a.plane(c[0]),h=new o(g),d=[],p=[],m=new Map,_=new Map,f=new Map,I=10/t;for(let E=0;E\u003cu;E++){const B=c[E];let S=[],Q=B.vertices.length,w=-1;if(Q\u003e0){let M,k;for(let R=0;R\u003cQ;R++){let F=h.to2D(B.vertices[R]);const O=Math.floor(F[1]*I);let U;f.has(O)?U=f.get(O):f.has(O+1)?U=f.get(O+1):f.has(O-1)?U=f.get(O-1):(U=F[1],f.set(O,F[1])),F=n.fromValues(F[0],U),S.push(F);const Y=F[1];(R===0||Y\u003cM)\u0026\u0026(M=Y,w=R),(R===0||Y\u003ek)\u0026\u0026(k=Y);let W=_.get(Y);W||(W={},_.set(Y,W)),W[E]=!0}if(M\u003e=k)S=[],Q=0,w=-1;else{let R=m.get(M);R||(R=[],m.set(M,R)),R.push(E)}}S.reverse(),w=Q-w-1,d.push(S),p.push(w)}const C=[];_.forEach((E,B)=\u003eC.push(B)),C.sort(s);let y=[],x=[];for(let E=0;E\u003cC.length;E++){const B=[],S=C[E],Q=_.get(S);let w=0;for(let k=0;k\u003cy.length;++k){const R=y[k],F=R.polygonindex;if(Q[F]){const O=d[F],U=O.length;let Y=R.leftvertexindex,W=R.rightvertexindex;for(;;){let j=Y+1;if(j\u003e=U\u0026\u0026(j=0),O[j][1]!==S)break;Y=j}let te=W-1;if(te\u003c0\u0026\u0026(te=U-1),O[te][1]===S\u0026\u0026(W=te),Y!==R.leftvertexindex\u0026\u0026Y===W)R._remove=!0,w++;else{R.leftvertexindex=Y,R.rightvertexindex=W,R.topleft=O[Y],R.topright=O[W];let j=Y+1;j\u003e=U\u0026\u0026(j=0),R.bottomleft=O[j];let J=W-1;J\u003c0\u0026\u0026(J=U-1),R.bottomright=O[J]}}}w\u003e0\u0026\u0026(y=y.filter(k=\u003e!k._remove));let M;if(E\u003e=C.length-1)y=[],M=null;else{M=Number(C[E+1]);const k=.5*(S+M),R=m.get(S);for(const F in R){const O=R[F],U=d[O],Y=U.length,W=p[O];let te=W;for(;;){let ne=te+1;if(ne\u003e=Y\u0026\u0026(ne=0),U[ne][1]!==S||ne===W)break;te=ne}let j=W;for(;;){let ne=j-1;if(ne\u003c0\u0026\u0026(ne=Y-1),U[ne][1]!==S||ne===te)break;j=ne}let J=te+1;J\u003e=Y\u0026\u0026(J=0);let oe=j-1;oe\u003c0\u0026\u0026(oe=Y-1);const ie={polygonindex:O,leftvertexindex:te,rightvertexindex:j,topleft:U[te],topright:U[j],bottomleft:U[J],bottomright:U[oe]};r(y,ie,(ne,le)=\u003e{const ge=i(ne.topleft,ne.bottomleft,k),_e=i(le.topleft,le.bottomleft,k);return ge\u003e_e?1:ge\u003c_e?-1:0})}}for(const k in y){const R=y[k];let F=i(R.topleft,R.bottomleft,S);const O=n.fromValues(F,S);F=i(R.topright,R.bottomright,S);const U=n.fromValues(F,S);F=i(R.topleft,R.bottomleft,M);const Y=n.fromValues(F,M);F=i(R.topright,R.bottomright,M);const W=n.fromValues(F,M),te={topleft:O,topright:U,bottomleft:Y,bottomright:W,leftline:e.fromPoints(e.create(),O,Y),rightline:e.fromPoints(e.create(),W,U)};if(B.length\u003e0){const j=B[B.length-1],J=n.distance(te.topleft,j.topright),oe=n.distance(te.bottomleft,j.bottomright);J\u003ct\u0026\u0026oe\u003ct\u0026\u0026(te.topleft=j.topleft,te.leftline=j.leftline,te.bottomleft=j.bottomleft,B.splice(B.length-1,1))}B.push(te)}if(E\u003e0){const k=new Set,R=new Set;for(let F=0;F\u003cB.length;F++){const O=B[F];for(let U=0;U\u003cx.length;U++)if(!R.has(U)){const Y=x[U];if(n.distance(Y.bottomleft,O.topleft)\u003ct\u0026\u0026n.distance(Y.bottomright,O.topright)\u003ct){R.add(U);const W=e.direction(O.leftline),te=e.direction(Y.leftline),j=W[0]-te[0],J=e.direction(O.rightline),oe=e.direction(Y.rightline),ie=J[0]-oe[0],ne=Math.abs(j)\u003ct,le=Math.abs(ie)\u003ct,ge=ne||j\u003e=0,_e=le||ie\u003e=0;ge\u0026\u0026_e\u0026\u0026(O.outpolygon=Y.outpolygon,O.leftlinecontinues=ne,O.rightlinecontinues=le,k.add(U));break}}}for(let F=0;F\u003cx.length;F++)if(!k.has(F)){const O=x[F];O.outpolygon.rightpoints.push(O.bottomright),n.distance(O.bottomright,O.bottomleft)\u003et\u0026\u0026O.outpolygon.leftpoints.push(O.bottomleft),O.outpolygon.leftpoints.reverse();const Y=O.outpolygon.rightpoints.concat(O.outpolygon.leftpoints).map(te=\u003eh.to3D(te)),W=a.fromPointsAndPlane(Y,g);W.vertices.length\u0026\u0026l.push(W)}}for(let k=0;k\u003cB.length;k++){const R=B[k];R.outpolygon?(R.leftlinecontinues||R.outpolygon.leftpoints.push(R.topleft),R.rightlinecontinues||R.outpolygon.rightpoints.push(R.topright)):(R.outpolygon={leftpoints:[],rightpoints:[]},R.outpolygon.leftpoints.push(R.topleft),n.distance(R.topleft,R.topright)\u003et\u0026\u0026R.outpolygon.rightpoints.push(R.topright))}x=B}return l},pUe}var mUe,ktn;function IX(){if(ktn)return mUe;ktn=1;const t=Ra(),e=qA(),{NEPS:n}=pc(),o=CAi(),i=a=\u003e{if(a.isRetesselated)return a;const A=t.toPolygons(a).map((g,h)=\u003e({vertices:g.vertices,plane:e.plane(g),index:h})),c=r(A),l=[];c.forEach(g=\u003e{if(Array.isArray(g)){const h=o(g);for(let d=0;d\u003ch.length;d++)l.push(h[d])}else l.push(g)});const u=t.create(l);return u.isRetesselated=!0,u},r=a=\u003e{let A=[a];const c=[];for(let u=3;u\u003e=0;u--){const g=[],h=u===3?15e-9:n;A.forEach(d=\u003e{d.sort(s(u,h));let p=0;for(let m=1;m\u003cd.length;m++)d[m].plane[u]-d[p].plane[u]\u003eh\u0026\u0026(m-p===1?c.push(d[p]):g.push(d.slice(p,m)),p=m);d.length-p===1?c.push(d[p]):g.push(d.slice(p))}),A=g}const l=[];return A.forEach(u=\u003e{u[0]\u0026\u0026(l[u[0].index]=u)}),c.forEach(u=\u003e{l[u.index]=u}),l},s=(a,A)=\u003e(c,l)=\u003ec.plane[a]-l.plane[a]\u003eA?1:l.plane[a]-c.plane[a]\u003eA?-1:0;return mUe=i,mUe}var _Ue,Ftn;function fUe(){if(Ftn)return _Ue;Ftn=1;const{EPS:t}=pc(),e=eT();return _Ue=(o,i)=\u003e{if(o.polygons.length===0||i.polygons.length===0)return!1;const r=e(o),s=r[0],a=r[1],A=e(i),c=A[0],l=A[1];return!(c[0]-a[0]\u003et||s[0]-l[0]\u003et||c[1]-a[1]\u003et||s[1]-l[1]\u003et||c[2]-a[2]\u003et||s[2]-l[2]\u003et)},_Ue}var IUe,Ltn;function yAi(){if(Ltn)return IUe;Ltn=1;const t=E6(),e=qA();class n{constructor(i){this.plane=null,this.front=null,this.back=null,this.polygontreenodes=[],this.parent=i}invert(){const i=[this];let r;for(let s=0;s\u003ci.length;s++){r=i[s],r.plane\u0026\u0026(r.plane=t.flip(t.create(),r.plane)),r.front\u0026\u0026i.push(r.front),r.back\u0026\u0026i.push(r.back);const a=r.front;r.front=r.back,r.back=a}}clipPolygons(i,r){let s={node:this,polygontreenodes:i},a;const A=[];do{if(a=s.node,i=s.polygontreenodes,a.plane){const c=a.plane,l=[],u=[],g=r?l:u,h=i.length;for(let p=0;p\u003ch;p++){const m=i[p];m.isRemoved()||m.splitByPlane(c,g,l,u,l)}a.front\u0026\u0026u.length\u003e0\u0026\u0026A.push({node:a.front,polygontreenodes:u});const d=l.length;if(a.back\u0026\u0026d\u003e0)A.push({node:a.back,polygontreenodes:l});else for(let p=0;p\u003cd;p++)l[p].remove()}s=A.pop()}while(s!==void 0)}clipTo(i,r){let s=this;const a=[];do s.polygontreenodes.length\u003e0\u0026\u0026i.rootnode.clipPolygons(s.polygontreenodes,r),s.front\u0026\u0026a.push(s.front),s.back\u0026\u0026a.push(s.back),s=a.pop();while(s!==void 0)}addPolygonTreeNodes(i){let r={node:this,polygontreenodes:i};const s=[];do{const a=r.node,A=r.polygontreenodes;if(A.length===0){r=s.pop();continue}if(!a.plane){let g=0;g=Math.floor(A.length/2);const h=A[g].getPolygon();a.plane=e.plane(h)}const c=[],l=[],u=A.length;for(let g=0;g\u003cu;++g)A[g].splitByPlane(a.plane,a.polygontreenodes,l,c,l);c.length\u003e0\u0026\u0026(a.front||(a.front=new n(a)),u===c.length\u0026\u0026l.length===0?a.front.polygontreenodes=c:s.push({node:a.front,polygontreenodes:c})),l.length\u003e0\u0026\u0026(a.back||(a.back=new n(a)),u===l.length\u0026\u0026c.length===0?a.back.polygontreenodes=l:s.push({node:a.back,polygontreenodes:l})),r=s.pop()}while(r!==void 0)}}return IUe=n,IUe}var CUe,Htn;function xAi(){if(Htn)return CUe;Htn=1;const t=jr();return CUe=(n,o,i)=\u003e{const r=t.subtract(t.create(),i,o);let s=(n[3]-t.dot(n,o))/t.dot(n,r);return Number.isNaN(s)\u0026\u0026(s=0),s\u003e1\u0026\u0026(s=1),s\u003c0\u0026\u0026(s=0),t.scale(r,r,s),t.add(r,o,r),r},CUe}var yUe,Otn;function EAi(){if(Otn)return yUe;Otn=1;const{EPS:t}=pc(),e=E6(),n=jr(),o=qA(),i=xAi(),r=t*t,s=A=\u003e{const c=[];let l=A[A.length-1];for(let u=0;u\u003cA.length;u++){const g=A[u];n.squaredDistance(g,l)\u003e=r\u0026\u0026c.push(g),l=g}return c};return yUe=(A,c)=\u003e{const l={type:null,front:null,back:null},u=c.vertices,g=u.length,h=o.plane(c);if(e.equals(h,A))l.type=0;else{let d=!1,p=!1;const m=[],_=-t;for(let f=0;f\u003cg;f++){const I=n.dot(A,u[f])-A[3],C=I\u003c_;m.push(C),I\u003et\u0026\u0026(d=!0),I\u003c_\u0026\u0026(p=!0)}if(!d\u0026\u0026!p){const f=n.dot(A,h);l.type=f\u003e=0?0:1}else if(!p)l.type=2;else if(!d)l.type=3;else{l.type=4;const f=[],I=[];let C=m[0];for(let y=0;y\u003cg;y++){const x=u[y];let E=y+1;E\u003e=g\u0026\u0026(E=0);const B=m[E];if(C===B)C?I.push(x):f.push(x);else{const S=u[E],Q=i(A,x,S);C?(I.push(x),I.push(Q),f.push(Q)):(f.push(x),f.push(Q),I.push(Q))}C=B}if(f.length\u003e=3){const y=s(f);y.length\u003e=3\u0026\u0026(l.front=o.fromPointsAndPlane(y,h))}if(I.length\u003e=3){const y=s(I);y.length\u003e=3\u0026\u0026(l.back=o.fromPointsAndPlane(y,h))}}}return l},yUe}var xUe,Gtn;function BAi(){if(Gtn)return xUe;Gtn=1;const{EPS:t}=pc(),e=jr(),n=qA(),o=EAi();class i{constructor(s,a){this.parent=s,this.children=[],this.polygon=a,this.removed=!1}addPolygons(s){if(!this.isRootNode())throw new Error(\"Assertion failed\");const a=this;s.forEach(A=\u003e{a.addChild(A)})}remove(){this.removed||(this.removed=!0,this.polygon=null,this.parent.recursivelyInvalidatePolygon())}isRemoved(){return this.removed}isRootNode(){return!this.parent}invert(){if(!this.isRootNode())throw new Error(\"Assertion failed\");this.invertSub()}getPolygon(){if(!this.polygon)throw new Error(\"Assertion failed\");return this.polygon}getPolygons(s){if(this.isRootNode()\u0026\u0026this.children.length\u003e0){const h=[];for(let d=0;d\u003cthis.children.length;d++)this.children[d].removed||h.push(this.children[d]);this.children=h}let a=[this];const A=[a];let c,l,u,g;for(c=0;c\u003cA.length;++c)for(a=A[c],l=0,u=a.length;l\u003cu;l++)g=a[l],g.polygon?s.push(g.polygon):g.children.length\u003e0\u0026\u0026A.push(g.children)}splitByPlane(s,a,A,c,l){if(this.children.length){const u=[this.children];let g,h,d,p,m;for(g=0;g\u003cu.length;g++)for(m=u[g],h=0,d=m.length;h\u003cd;h++)p=m[h],p.children.length\u003e0?u.push(p.children):p._splitByPlane(s,a,A,c,l)}else this._splitByPlane(s,a,A,c,l)}_splitByPlane(s,a,A,c,l){const u=this.polygon;if(u){const g=n.measureBoundingSphere(u),h=g[3]+t,d=g,p=e.dot(s,d)-s[3];if(p\u003eh)c.push(this);else if(p\u003c-h)l.push(this);else{const m=o(s,u);switch(m.type){case 0:a.push(this);break;case 1:A.push(this);break;case 2:c.push(this);break;case 3:l.push(this);break;case 4:if(m.front){const _=this.addChild(m.front);c.push(_)}if(m.back){const _=this.addChild(m.back);l.push(_)}break}}}}addChild(s){const a=new i(this,s);return this.children.push(a),a}invertSub(){let s=[this];const a=[s];let A,c,l,u;for(A=0;A\u003ca.length;A++)for(s=a[A],c=0,l=s.length;c\u003cl;c++)u=s[c],u.polygon\u0026\u0026(u.polygon=n.invert(u.polygon)),u.children.length\u003e0\u0026\u0026a.push(u.children)}recursivelyInvalidatePolygon(){this.polygon=null,this.parent\u0026\u0026this.parent.recursivelyInvalidatePolygon()}clear(){let s=[this];const a=[s];for(let A=0;A\u003ca.length;++A){s=a[A];const c=s.length;for(let l=0;l\u003cc;l++){const u=s[l];u.polygon\u0026\u0026(u.polygon=null),u.parent\u0026\u0026(u.parent=null),u.children.length\u003e0\u0026\u0026a.push(u.children),u.children=[]}}}toString(){let s=\"\",a=[this];const A=[a];let c,l,u,g;for(c=0;c\u003cA.length;++c){a=A[c];const h=\" \".repeat(c);for(l=0,u=a.length;l\u003cu;l++)g=a[l],s+=`${h}PolygonTreeNode (${g.isRootNode()}): ${g.children.length}`,g.polygon?s+=`\n ${h}polygon: ${g.polygon.vertices}\n`:s+=`\n`,g.children.length\u003e0\u0026\u0026A.push(g.children)}return s}}return xUe=i,xUe}var EUe,Ytn;function bAi(){if(Ytn)return EUe;Ytn=1;const t=yAi(),e=BAi();class n{constructor(i){this.polygonTree=new e,this.rootnode=new t(null),i\u0026\u0026this.addPolygons(i)}invert(){this.polygonTree.invert(),this.rootnode.invert()}clipTo(i,r=!1){this.rootnode.clipTo(i,r)}allPolygons(){const i=[];return this.polygonTree.getPolygons(i),i}addPolygons(i){const r=new Array(i.length);for(let s=0;s\u003ci.length;s++)r[s]=this.polygonTree.addChild(i[s]);this.rootnode.addPolygonTreeNodes(r)}clear(){this.polygonTree.clear()}toString(){return\"Tree: \"+this.polygonTree.toString(\"\")}}return EUe=n,EUe}var BUe,Utn;function bUe(){return Utn||(Utn=1,BUe={Tree:bAi()}),BUe}var SUe,Ktn;function SAi(){if(Ktn)return SUe;Ktn=1;const t=Ra(),e=fUe(),{Tree:n}=bUe();return SUe=(i,r)=\u003e{if(!e(i,r))return t.create();const s=new n(t.toPolygons(i)),a=new n(t.toPolygons(r));s.invert(),a.clipTo(s),a.invert(),s.clipTo(a),a.clipTo(s),s.addPolygons(a.allPolygons()),s.invert();const A=s.allPolygons();return t.create(A)},SUe}var QUe,Vtn;function ztn(){if(Vtn)return QUe;Vtn=1;const t=la(),e=IX(),n=SAi();return QUe=(...i)=\u003e{i=t(i);let r=i.shift();return i.forEach(s=\u003e{r=n(r,s)}),r=e(r),r},QUe}var vUe,Jtn;function QAi(){if(Jtn)return vUe;Jtn=1;const t=la(),e=Ra(),n=rP(),o=uUe(),i=dUe(),r=ztn();return vUe=(...a)=\u003e{a=t(a);const A=a.map(u=\u003ei({z0:-1,z1:1},u)),c=r(A),l=n(c);return o(l,e.toPolygons(c))},vUe}var wUe,Wtn;function vAi(){if(Wtn)return wUe;Wtn=1;const t=la(),e=fX(),n=Ga(),o=Ra(),i=QAi(),r=ztn();return wUe=(...a)=\u003e{if(a=t(a),a.length===0)throw new Error(\"wrong number of arguments\");if(!e(a))throw new Error(\"only intersect of the types are supported\");const A=a[0];return n.isA(A)?i(a):o.isA(A)?r(a):A},wUe}var PUe,jtn;function MUe(){if(jtn)return PUe;jtn=1;const t=qA(),e=U$t();return PUe=o=\u003ee(o,{skipTriangulation:!0}).map(s=\u003e{const a=s.map(A=\u003eo[A]);return t.create(a)}),PUe}var DUe,$tn;function qtn(){if($tn)return DUe;$tn=1;const t=Ra(),e=fUe(),{Tree:n}=bUe(),o=(r,s)=\u003e{if(!e(r,s))return i(r,s);const a=new n(t.toPolygons(r)),A=new n(t.toPolygons(s));a.clipTo(A,!1),A.clipTo(a),A.invert(),A.clipTo(a),A.invert();const c=a.allPolygons().concat(A.allPolygons());return t.create(c)},i=(r,s)=\u003e{let a=t.toPolygons(r);return a=a.concat(t.toPolygons(s)),t.create(a)};return DUe=o,DUe}var NUe,Xtn;function RUe(){if(Xtn)return NUe;Xtn=1;const t=la(),e=IX(),n=qtn();return NUe=(...i)=\u003e{i=t(i);let r;for(r=1;r\u003ci.length;r+=2)i.push(n(i[r-1],i[r]));let s=i[r-1];return s=e(s),s},NUe}var TUe,Ztn;function enn(){if(Ztn)return TUe;Ztn=1;const t=la(),e=Ra(),n=qA(),o=MUe(),i=RUe(),r=(...u)=\u003e{if(u=t(u),u.length!==2)throw new Error(\"minkowskiSum requires exactly two geometries\");const[g,h]=u;if(!e.isA(g)||!e.isA(h))throw new Error(\"minkowskiSum requires geom3 geometries\");const d=e.isConvex(g),p=e.isConvex(h);if(d\u0026\u0026p)return c(g,h);if(!d\u0026\u0026p)return s(g,h);if(d\u0026\u0026!p)return s(h,g);throw new Error(\"minkowskiSum of two non-convex geometries is not yet supported\")},s=(u,g)=\u003e{const h=a(u);if(h.length===0)return e.create();const d=h.map(p=\u003ec(p,g));return d.length===1?d[0]:i(d)},a=u=\u003e{const g=e.toPolygons(u);if(g.length===0)return[];const h=[];for(let d=0;d\u003cg.length;d++){const p=g[d],m=p.vertices;let _=0,f=0,I=0;for(let Q=0;Q\u003cm.length;Q++)_+=m[Q][0],f+=m[Q][1],I+=m[Q][2];_/=m.length,f/=m.length,I/=m.length;const C=n.plane(p),y=C[0],x=C[1],E=C[2],B=.1,S=[_-y*B,f-x*B,I-E*B];for(let Q=1;Q\u003cm.length-1;Q++){const w=m[0],M=m[Q],k=m[Q+1],R=A(S,w,M,k);h.push(e.create(R))}}return h},A=(u,g,h,d)=\u003e[n.create([u,h,g]),n.create([u,g,d]),n.create([g,h,d]),n.create([h,u,d])],c=(u,g)=\u003e{const h=l(u),d=l(g);if(h.length===0||d.length===0)return e.create();const p=[];for(let _=0;_\u003ch.length;_++){const f=h[_];for(let I=0;I\u003cd.length;I++){const C=d[I];p.push([f[0]+C[0],f[1]+C[1],f[2]+C[2]])}}const m=o(p);return e.create(m)},l=u=\u003e{const g=new Set,h=[],d=e.toPolygons(u);for(let p=0;p\u003cd.length;p++){const m=d[p].vertices;for(let _=0;_\u003cm.length;_++){const f=m[_],I=`${f[0]},${f[1]},${f[2]}`;g.has(I)||(g.add(I),h.push(f))}}return h};return TUe=r,TUe}var kUe,tnn;function wAi(){if(tnn)return kUe;tnn=1;const t=jr(),e=rP(),n=Ra(),o=a=\u003ea.sort((A,c)=\u003eA-c).filter((A,c,l)=\u003e!c||A!==l[c-1]),i=(a,A,c)=\u003e{const l=`${A}`,u=a.get(l);u===void 0?a.set(l,[c]):u.push(c)},r=(a,A)=\u003e{const c=`${A}`;return a.get(c)};return kUe=a=\u003e{const A=e(a),c=n.toPolygons(a),l=c.length,u=new Map,g=t.create();c.forEach((_,f)=\u003e{_.vertices.forEach(I=\u003e{i(u,t.snap(g,I,A),f)})});const h=c.map(_=\u003e{let f=[];return _.vertices.forEach(I=\u003e{f=f.concat(r(u,t.snap(g,I,A)))}),{e:1,d:o(f)}});u.clear();let d=0;const p=h.length;for(let _=0;_\u003cp;_++){const f=h[_];if(f.e\u003e0){const I=new Array(l);I[_]=!0;do d=0,I.forEach((C,y)=\u003e{const x=h[y];if(x.e\u003e0){x.e=-1;for(let E=0;E\u003cx.d.length;E++)I[x.d[E]]=!0;d++}});while(d\u003e0);f.indexes=I}}const m=[];for(let _=0;_\u003cp;_++)if(h[_].indexes){const f=[];h[_].indexes.forEach((I,C)=\u003ef.push(c[C])),m.push(n.create(f))}return m},kUe}var FUe,nnn;function PAi(){if(nnn)return FUe;nnn=1;const t=la(),e=Ra(),n=wAi();return FUe=(...i)=\u003e{if(i=t(i),i.length===0)throw new Error(\"wrong number of arguments\");const r=i.map(s=\u003ee.isA(s)?n(s):s);return r.length===1?r[0]:r},FUe}var LUe,onn;function MAi(){if(onn)return LUe;onn=1;const t=Ra(),e=fUe(),{Tree:n}=bUe();return LUe=(i,r)=\u003e{if(!e(i,r))return t.clone(i);const s=new n(t.toPolygons(i)),a=new n(t.toPolygons(r));s.invert(),s.clipTo(a),a.clipTo(s,!0),s.addPolygons(a.allPolygons()),s.invert();const A=s.allPolygons();return t.create(A)},LUe}var HUe,inn;function rnn(){if(inn)return HUe;inn=1;const t=la(),e=IX(),n=MAi();return HUe=(...i)=\u003e{i=t(i);let r=i.shift();return i.forEach(s=\u003e{r=n(r,s)}),r=e(r),r},HUe}var OUe,snn;function DAi(){if(snn)return OUe;snn=1;const t=la(),e=Ra(),n=rP(),o=uUe(),i=dUe(),r=rnn();return OUe=(...a)=\u003e{a=t(a);const A=a.map(u=\u003ei({z0:-1,z1:1},u)),c=r(A),l=n(c);return o(l,e.toPolygons(c))},OUe}var GUe,ann;function NAi(){if(ann)return GUe;ann=1;const t=la(),e=fX(),n=Ga(),o=Ra(),i=DAi(),r=rnn();return GUe=(...a)=\u003e{if(a=t(a),a.length===0)throw new Error(\"wrong number of arguments\");if(!e(a))throw new Error(\"only subtract of the types are supported\");const A=a[0];return n.isA(A)?i(a):o.isA(A)?r(a):A},GUe}var YUe,Ann;function cnn(){if(Ann)return YUe;Ann=1;const t=la(),e=Ra(),n=rP(),o=uUe(),i=dUe(),r=RUe();return YUe=(...a)=\u003e{a=t(a);const A=a.map(u=\u003ei({z0:-1,z1:1},u)),c=r(A),l=n(c);return o(l,e.toPolygons(c))},YUe}var UUe,lnn;function KUe(){if(lnn)return UUe;lnn=1;const t=la(),e=fX(),n=Ga(),o=Ra(),i=cnn(),r=RUe();return UUe=(...a)=\u003e{if(a=t(a),a.length===0)throw new Error(\"wrong number of arguments\");if(!e(a))throw new Error(\"only unions of the same type are supported\");const A=a[0];return n.isA(A)?i(a):o.isA(A)?r(a):A},UUe}var VUe,unn;function RAi(){return unn||(unn=1,VUe={intersect:vAi(),minkowski:enn(),scission:PAi(),subtract:NAi(),union:KUe()}),VUe}var zUe,gnn;function Dhe(){if(gnn)return zUe;gnn=1;const{EPS:t,TAU:e}=pc(),n=_Zt(),o=IGe(),i=mA(),r=whe();return zUe=(a,A)=\u003e{const c={delta:1,corners:\"edge\",closed:!1,segments:16};let{delta:l,corners:u,closed:g,segments:h}=Object.assign({},c,a);if(Math.abs(l)\u003ct)return A;let d=a.closed?r(A):1;d===0\u0026\u0026(d=1);const p=d\u003e0\u0026\u0026l\u003e=0||d\u003c0\u0026\u0026l\u003c0;l=Math.abs(l);let m=null,_=[];const f=[],I=i.create(),C=A.length;for(let y=0;y\u003cC;y++){const x=(y+1)%C,E=A[y],B=A[x];p?i.subtract(I,E,B):i.subtract(I,B,E),i.normal(I,I),i.normalize(I,I),i.scale(I,I,l);const S=i.add(i.create(),E,I),Q=i.add(i.create(),B,I),w=[S,Q];if(m!=null\u0026\u0026(g||!g\u0026\u0026x!==0)){const M=n(m[0],m[1],w[0],w[1]);M?(_.pop(),w[0]=M):f.push({c:E,s0:m,s1:w})}m=[S,Q],!(x===0\u0026\u0026!g)\u0026\u0026(_.push(w[0]),_.push(w[1]))}if(g\u0026\u0026m!=null){const y=_[0],x=_[1],E=n(m[0],m[1],y,x);if(E)_[0]=E,_.pop();else{const B=A[0],S=[y,x];f.push({c:B,s0:m,s1:S})}}if(u===\"edge\"){const y=new Map;_.forEach((B,S)=\u003ey.set(B,S));const x=o.create(),E=o.create();f.forEach(B=\u003e{o.fromPoints(x,B.s0[0],B.s0[1]),o.fromPoints(E,B.s1[0],B.s1[1]);const S=o.intersectPointOfLines(x,E);if(Number.isFinite(S[0])\u0026\u0026Number.isFinite(S[1])){const Q=B.s0[1],w=y.get(Q);_[w]=S,_[(w+1)%_.length]=void 0}else{const Q=B.s1[0],w=y.get(Q);_[w]=void 0}}),_=_.filter(B=\u003eB!==void 0)}if(u===\"round\"){let y=Math.floor(h/4);const x=i.create();f.forEach(E=\u003e{let B=i.angle(i.subtract(x,E.s1[0],E.c));if(B-=i.angle(i.subtract(x,E.s0[1],E.c)),p\u0026\u0026B\u003c0\u0026\u0026(B=B+Math.PI,B\u003c0\u0026\u0026(B=B+Math.PI)),!p\u0026\u0026B\u003e0\u0026\u0026(B=B-Math.PI,B\u003e0\u0026\u0026(B=B-Math.PI)),B!==0){y=Math.floor(h*(Math.abs(B)/e));const S=B/y,Q=i.angle(i.subtract(x,E.s0[1],E.c)),w=[];for(let M=1;M\u003cy;M++){const k=Q+S*M,R=i.fromAngleRadians(i.create(),k);i.scale(R,R,l),i.add(R,R,E.c),w.push(R)}if(w.length\u003e0){const M=E.s0[1];let k=_.findIndex(R=\u003ei.equals(M,R));k=(k+1)%_.length,_.splice(k,0,...w)}}else{const S=E.s1[0],Q=_.findIndex(w=\u003ei.equals(S,w));_.splice(Q,1)}})}return _},zUe}var JUe,dnn;function TAi(){if(dnn)return JUe;dnn=1;const t=Ga(),e=Dhe();return JUe=(o,i)=\u003e{const r={delta:1,corners:\"edge\",segments:16},{delta:s,corners:a,segments:A}=Object.assign({},r,o);if(!(a===\"edge\"||a===\"chamfer\"||a===\"round\"))throw new Error('corners must be \"edge\", \"chamfer\", or \"round\"');const u=t.toOutlines(i).map(g=\u003e(o={delta:s,corners:a,closed:!0,segments:A},e(o,g))).reduce((g,h)=\u003eg.concat(t.toSides(t.fromPoints(h))),[]);return t.create(u)},JUe}var WUe,hnn;function kAi(){if(hnn)return WUe;hnn=1;const t=Mu(),e=jr(),n=Ra(),o=qA();return WUe=(r,s)=\u003e{e.dot(o.plane(s),r)\u003e0\u0026\u0026(s=o.invert(s));const A=[s],c=o.transform(t.fromTranslation(t.create(),r),s),l=s.vertices.length;for(let u=0;u\u003cl;u++){const g=u\u003cl-1?u+1:0,h=o.create([s.vertices[u],c.vertices[u],c.vertices[g],s.vertices[g]]);A.push(h)}return A.push(o.invert(c)),n.create(A)},WUe}var jUe,pnn;function FAi(){if(pnn)return jUe;pnn=1;const{EPS:t,TAU:e}=pc(),n=Mu(),o=jr(),i=Stn(),r=Ra(),s=qA(),a=Den(),A=IX(),c=qtn(),l=kAi(),u=(p,m,_)=\u003e{const f=m.toString();if(p.has(f))p.get(f)[1].push(_);else{const I=[m,[_]];p.set(f,I)}},g=(p,m,_)=\u003e{const f=m[0].toString(),I=m[1].toString(),C=f\u003cI?`${f},${I}`:`${I},${f}`;if(p.has(C))p.get(C)[1].push(_);else{const y=[m,[_]];p.set(C,y)}},h=(p,m)=\u003e{p.findIndex(f=\u003ef===m)\u003c0\u0026\u0026p.push(m)};return jUe=(p,m)=\u003e{const _={delta:1,segments:12},{delta:f,segments:I}=Object.assign({},_,p);let C=r.create();const y=new Map,x=new Map,E=o.create(),B=o.create();return r.toPolygons(m).forEach((Q,w)=\u003e{const M=o.scale(o.create(),s.plane(Q),2*f),k=s.transform(n.fromTranslation(n.create(),o.scale(o.create(),M,-.5)),Q),R=l(M,k);C=c(C,R);const F=Q.vertices;for(let O=0;O\u003cF.length;O++){u(y,F[O],s.plane(Q));const U=(O+1)%F.length,Y=[F[O],F[U]];g(x,Y,s.plane(Q))}}),x.forEach(Q=\u003e{const w=Q[0],M=Q[1],k=w[0],R=w[1],F=o.subtract(o.create(),R,k);o.normalize(F,F);const O=M[0],U=o.cross(o.create(),O,F);let Y=[];for(let le=0;le\u003cI;le++)h(Y,le*e/I);for(let le=0,ge=M.length;le\u003cge;le++){const _e=M[le],ue=o.dot(U,_e),fe=o.dot(O,_e);let pe=Math.atan2(ue,fe);pe\u003c0\u0026\u0026(pe+=e),h(Y,pe),pe=Math.atan2(-ue,-fe),pe\u003c0\u0026\u0026(pe+=e),h(Y,pe)}Y=Y.sort(i);const W=Y.length;let te,j;const J=[],oe=[],ie=[];for(let le=-1;le\u003cW;le++){const ge=Y[le\u003c0?le+W:le],_e=Math.sin(ge),ue=Math.cos(ge);o.scale(E,O,ue*f),o.scale(B,U,_e*f),o.add(E,E,B);const fe=o.add(o.create(),k,E),pe=o.add(o.create(),R,E);let ye=!1;if(le\u003e=0\u0026\u0026o.distance(fe,te)\u003ct\u0026\u0026(ye=!0),!ye){if(le\u003e=0){J.push(fe),oe.push(pe);const Me=[j,pe,fe,te],ve=s.create(Me);ie.push(ve)}te=fe,j=pe}}oe.reverse(),ie.push(s.create(J)),ie.push(s.create(oe));const ne=r.create(ie);C=c(C,ne)}),y.forEach(Q=\u003e{const w=Q[0],M=Q[1],k=M[0];let R=null,F=0;for(let W=1;W\u003cM.length;W++){const te=M[W],j=o.cross(E,k,te),J=o.length(j);J\u003e.05\u0026\u0026J\u003eF\u0026\u0026(F=J,R=te)}R||(R=o.orthogonal(E,k));const O=o.cross(E,k,R);o.normalize(O,O);const U=o.cross(B,O,k),Y=a({center:[w[0],w[1],w[2]],radius:f,segments:I,axes:[k,O,U]});C=c(C,Y)}),A(C)},jUe}var $Ue,mnn;function LAi(){if(mnn)return $Ue;mnn=1;const t=Ra(),e=KUe(),n=FAi();return $Ue=(i,r)=\u003e{const s={delta:1,corners:\"round\",segments:12},{delta:a,corners:A,segments:c}=Object.assign({},s,i);if(A!==\"round\")throw new Error('corners must be \"round\" for 3D geometries');if(t.toPolygons(r).length===0)throw new Error(\"the given geometry cannot be empty\");i={delta:a,corners:A,segments:c};const u=n(i,r);return e(r,u)},$Ue}var qUe,_nn;function HAi(){if(_nn)return qUe;_nn=1;const t=whe(),e=mA(),n=Ga(),o=au(),i=Dhe(),r=A=\u003e{let{external:c,internal:l}=A;t(c)\u003c0?c=c.reverse():l=l.reverse();const u=o.fromPoints({closed:!0},c),g=o.fromPoints({closed:!0},l),h=n.toSides(n.fromPoints(o.toPoints(u))),d=n.toSides(n.fromPoints(o.toPoints(g)));return h.push(...d),n.create(h)},s=(A,c,l,u)=\u003e{const{points:g,external:h,internal:d}=A,p=Math.floor(c/2),m=[],_=[];if(l===\"round\"\u0026\u0026p\u003e0){const I=Math.PI/p,C=g[g.length-1],y=e.angle(e.subtract(e.create(),h[h.length-1],C)),x=g[0],E=e.angle(e.subtract(e.create(),d[0],x));for(let B=1;B\u003cp;B++){let S=y+I*B,Q=e.fromAngleRadians(e.create(),S);e.scale(Q,Q,u),e.add(Q,Q,C),m.push(Q),S=E+I*B,Q=e.fromAngleRadians(e.create(),S),e.scale(Q,Q,u),e.add(Q,Q,x),_.push(Q)}}const f=[];return f.push(...h,...m,...d.reverse(),..._),n.fromPoints(f)};return qUe=(A,c)=\u003e{A=Object.assign({},{delta:1,corners:\"edge\",segments:16},A);const{delta:u,corners:g,segments:h}=A;if(u\u003c=0)throw new Error(\"the given delta must be positive for paths\");if(!(g===\"edge\"||g===\"chamfer\"||g===\"round\"))throw new Error('corners must be \"edge\", \"chamfer\", or \"round\"');const d=c.isClosed,p=o.toPoints(c);if(p.length===0)throw new Error(\"the given geometry cannot be empty\");const m={points:p,external:i({delta:u,corners:g,segments:h,closed:d},p),internal:i({delta:-u,corners:g,segments:h,closed:d},p)};return c.isClosed?r(m):s(m,h,g,u)},qUe}var XUe,fnn;function ZUe(){if(fnn)return XUe;fnn=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=TAi(),r=LAi(),s=HAi();return XUe=(A,...c)=\u003e{if(c=t(c),c.length===0)throw new Error(\"wrong number of arguments\");const l=c.map(u=\u003eo.isA(u)?s(A,u):e.isA(u)?i(A,u):n.isA(u)?r(A,u):u);return l.length===1?l[0]:l},XUe}var eKe,Inn;function OAi(){if(Inn)return eKe;Inn=1;const t=Ga(),e=zOe(),n=Dhe();return eKe=(i,r)=\u003e{const s={delta:1,corners:\"edge\",segments:0},{delta:a,corners:A,segments:c}=Object.assign({},s,i);if(!(A===\"edge\"||A===\"chamfer\"||A===\"round\"))throw new Error('corners must be \"edge\", \"chamfer\", or \"round\"');const l=t.toOutlines(r),g=l.map(h=\u003e(i={delta:l.reduce((m,_)=\u003em+e.arePointsInside(h,e.create(_)),0)%2===0?a:-a,corners:A,closed:!0,segments:c},n(i,h))).reduce((h,d)=\u003eh.concat(t.toSides(t.fromPoints(d))),[]);return t.create(g)},eKe}var tKe,Cnn;function GAi(){if(Cnn)return tKe;Cnn=1;const t=au(),e=Dhe();return tKe=(o,i)=\u003e{const r={delta:1,corners:\"edge\",closed:i.isClosed,segments:16},{delta:s,corners:a,closed:A,segments:c}=Object.assign({},r,o);if(!(a===\"edge\"||a===\"chamfer\"||a===\"round\"))throw new Error('corners must be \"edge\", \"chamfer\", or \"round\"');o={delta:s,corners:a,closed:A,segments:c};const l=e(o,t.toPoints(i));return t.fromPoints({closed:A},l)},tKe}var nKe,ynn;function YAi(){if(ynn)return nKe;ynn=1;const t=la(),e=Ga(),n=au(),o=OAi(),i=GAi();return nKe=(s,...a)=\u003e{if(a=t(a),a.length===0)throw new Error(\"wrong number of arguments\");const A=a.map(c=\u003en.isA(c)?i(s,c):e.isA(c)?o(s,c):c);return A.length===1?A[0]:A},nKe}var oKe,xnn;function UAi(){return xnn||(xnn=1,oKe={expand:ZUe(),offset:YAi()}),oKe}var iKe,Enn;function Nhe(){if(Enn)return iKe;Enn=1;const t=Mu(),e=jr(),n=Ga(),o=bY(),i=Mhe();return iKe=(s,a)=\u003e{const A={offset:[0,0,1],twistAngle:0,twistSteps:12,repair:!0};let{offset:c,twistAngle:l,twistSteps:u,repair:g}=Object.assign({},A,s);if(u\u003c1)throw new Error(\"twistSteps must be 1 or more\");l===0\u0026\u0026(u=1);const h=e.clone(c),d=n.toSides(a);if(d.length===0)throw new Error(\"the given geometry cannot be empty\");const p=o.fromSides(d);h[2]\u003c0\u0026\u0026o.reverse(p,p);const m=t.create(),_=(f,I,C)=\u003e{const y=I/u*l,x=e.scale(e.create(),h,I/u);return t.multiply(m,t.fromZRotation(m,y),t.fromTranslation(t.create(),x)),o.transform(m,C)};return s={numberOfSlices:u+1,capStart:!0,capEnd:!0,repair:g,callback:_},i(s,p)},iKe}var rKe,Bnn;function KAi(){if(Bnn)return rKe;Bnn=1;const t=Ga(),e=au(),n=Nhe();return rKe=(i,r)=\u003e{if(!r.isClosed)throw new Error(\"extruded path must be closed\");const s=e.toPoints(r),a=t.fromPoints(s);return n(i,a)},rKe}var sKe,bnn;function VAi(){if(bnn)return sKe;bnn=1;const t=la(),e=Ga(),n=au(),o=Nhe(),i=KAi();return sKe=(s,...a)=\u003e{const A={height:1,twistAngle:0,twistSteps:1,repair:!0},{height:c,twistAngle:l,twistSteps:u,repair:g}=Object.assign({},A,s);if(a=t(a),a.length===0)throw new Error(\"wrong number of arguments\");s={offset:[0,0,c],twistAngle:l,twistSteps:u,repair:g};const h=a.map(d=\u003en.isA(d)?i(s,d):e.isA(d)?o(s,d):d);return h.length===1?h[0]:h},sKe}var aKe,Snn;function zAi(){if(Snn)return aKe;Snn=1;const t=au(),e=ZUe(),n=Nhe();return aKe=(i,r)=\u003e{const s={size:1,height:1},{size:a,height:A}=Object.assign({},s,i);if(i.delta=a,i.offset=[0,0,A],t.toPoints(r).length===0)throw new Error(\"the given geometry cannot be empty\");const l=e(i,r);return n(i,l)},aKe}var AKe,Qnn;function JAi(){if(Qnn)return AKe;Qnn=1;const{area:t}=hX(),e=Ga(),n=au(),o=ZUe(),i=Nhe();return AKe=(s,a)=\u003e{const A={size:1,height:1},{size:c,height:l}=Object.assign({},A,s);s.delta=c,s.offset=[0,0,l];const u=e.toOutlines(a);if(u.length===0)throw new Error(\"the given geometry cannot be empty\");const h=u.map(p=\u003e(t(p)\u003c0\u0026\u0026p.reverse(),o(s,n.fromPoints({closed:!0},p)))).reduce((p,m)=\u003ep.concat(e.toSides(m)),[]),d=e.create(h);return i(s,d)},AKe}var cKe,vnn;function WAi(){if(vnn)return cKe;vnn=1;const t=la(),e=Ga(),n=au(),o=zAi(),i=JAi();return cKe=(s,...a)=\u003e{const A={size:1,height:1},{size:c,height:l}=Object.assign({},A,s);if(a=t(a),a.length===0)throw new Error(\"wrong number of arguments\");if(c\u003c=0)throw new Error(\"size must be positive\");if(l\u003c=0)throw new Error(\"height must be positive\");const u=a.map(g=\u003en.isA(g)?o(s,g):e.isA(g)?i(s,g):g);return u.length===1?u[0]:u},cKe}var lKe,wnn;function jAi(){if(wnn)return lKe;wnn=1;const{TAU:t}=pc(),e=Mu(),n=Ga(),o=Mhe(),i=bY();return lKe=(s,a)=\u003e{const A={angle:t,startAngle:0,pitch:10,height:0,endOffset:0,segmentsPerRotation:32};let{angle:c,startAngle:l,pitch:u,height:g,endOffset:h,segmentsPerRotation:d}=Object.assign({},A,s);if(g!=0\u0026\u0026(u=g/(c/t)),d\u003c3)throw new Error(\"The number of segments per rotation needs to be at least 3.\");const m=n.toSides(a);if(m.length===0)throw new Error(\"The given geometry cannot be empty\");const _=m.filter(B=\u003eB[0][0]\u003e=0);let f=i.fromSides(m);_.length===0\u0026\u0026(f=i.reverse(f));const I=Math.round(d/t*Math.abs(c)),C=I\u003e=2?I:2,y=e.create(),x=e.create(),E=(B,S,Q)=\u003e{const w=l+c/C*S,M=h/C*S,k=(w-l)/t*u;return e.multiply(y,e.fromTranslation(e.create(),[M,0,k*Math.sign(c)]),e.fromXRotation(e.create(),-t/4*Math.sign(c))),e.multiply(x,e.fromZRotation(e.create(),w),y),i.transform(x,Q)};return o({numberOfSlices:C+1,callback:E},f)},lKe}var uKe,Pnn;function $Ai(){if(Pnn)return uKe;Pnn=1;const t=la(),e=AGe(),n=E6(),o=Mu(),i=Ga(),r=Ra(),s=qA(),a=rP(),A=cnn(),c=(u,g)=\u003e{const h=n.fromNormalAndPoint(n.create(),u.axis,u.origin);if(Number.isNaN(h[0])||Number.isNaN(h[1])||Number.isNaN(h[2])||Number.isNaN(h[3]))throw new Error(\"project: invalid axis or origin\");const d=a(g),p=d*d*Math.sqrt(3)/4;if(d===0)return i.create();const m=r.toPolygons(g);let _=[];for(let I=0;I\u003cm.length;I++){const C=m[I].vertices.map(E=\u003en.projectionOfPoint(h,E)),y=s.create(C),x=s.plane(y);e(h,x)\u0026\u0026(s.measureArea(y)\u003cp||_.push(y))}if(!e(h,[0,0,1])){const I=o.fromVectorRotation(o.create(),h,[0,0,1]);_=_.map(C=\u003es.transform(I,C))}_=_.sort((I,C)=\u003es.measureArea(C)-s.measureArea(I));const f=_.map(I=\u003ei.fromPoints(I.vertices));return A(f)};return uKe=(u,...g)=\u003e{const h={axis:[0,0,1],origin:[0,0,0]},{axis:d,origin:p}=Object.assign({},h,u);if(g=t(g),g.length===0)throw new Error(\"wrong number of arguments\");u={axis:d,origin:p};const m=g.map(_=\u003er.isA(_)?c(u,_):_);return m.length===1?m[0]:m},uKe}var gKe,Mnn;function qAi(){return Mnn||(Mnn=1,gKe={extrudeFromSlices:Mhe(),extrudeLinear:VAi(),extrudeRectangular:WAi(),extrudeRotate:ltn(),extrudeHelical:jAi(),project:$Ai(),slice:bY()}),gKe}var dKe,Dnn;function hKe(){if(Dnn)return dKe;Dnn=1;const t=mA(),e=i=\u003e{let r=t.fromValues(1/0,1/0);i.forEach(A=\u003e{(A[1]\u003cr[1]||A[1]===r[1]\u0026\u0026A[0]\u003cr[0])\u0026\u0026(r=A)});const s=[];i.forEach(A=\u003e{const c=o(A[1]-r[1],A[0]-r[0]),l=t.squaredDistance(A,r);s.push({point:A,angle:c,distSq:l})}),s.sort((A,c)=\u003eA.angle!==c.angle?A.angle-c.angle:A.distSq-c.distSq);const a=[];return s.forEach(A=\u003e{let c=a.length;for(;c\u003e1\u0026\u0026n(a[c-2],a[c-1],A.point)\u003c=Number.EPSILON;)a.pop(),c=a.length;a.push(A.point)}),a},n=(i,r,s)=\u003e(r[0]-i[0])*(s[1]-i[1])-(r[1]-i[1])*(s[0]-i[0]),o=(i,r)=\u003ei===0\u0026\u0026r===0?-1/0:-r/i;return dKe=e,dKe}var pKe,Nnn;function mKe(){if(Nnn)return pKe;Nnn=1;const t=Ga(),e=Ra(),n=au();return pKe=i=\u003e{const r=new Set,s=[],a=A=\u003e{const c=A.toString();r.has(c)||(s.push(A),r.add(c))};return i.forEach(A=\u003e{t.isA(A)?t.toPoints(A).forEach(a):e.isA(A)?e.toPoints(A).forEach(c=\u003ec.forEach(a)):n.isA(A)\u0026\u0026n.toPoints(A).forEach(a)}),s},pKe}var _Ke,Rnn;function XAi(){if(Rnn)return _Ke;Rnn=1;const t=la(),e=au(),n=hKe(),o=mKe();return _Ke=(...r)=\u003e{r=t(r);const s=o(r),a=n(s);return e.fromPoints({closed:!0},a)},_Ke}var fKe,Tnn;function ZAi(){if(Tnn)return fKe;Tnn=1;const t=la(),e=Ga(),n=hKe(),o=mKe();return fKe=(...r)=\u003e{r=t(r);const s=o(r),a=n(s);return a.length\u003c3?e.create():e.fromPoints(a)},fKe}var IKe,knn;function eci(){if(knn)return IKe;knn=1;const t=la(),e=Ra(),n=mKe(),o=MUe();return IKe=(...r)=\u003e{r=t(r);const s=n(r);return s.length===0?e.create():e.create(o(s))},IKe}var CKe,Fnn;function Lnn(){if(Fnn)return CKe;Fnn=1;const t=la(),e=fX(),n=Ga(),o=Ra(),i=au(),r=XAi(),s=ZAi(),a=eci();return CKe=(...c)=\u003e{if(c=t(c),c.length===0)throw new Error(\"wrong number of arguments\");if(!e(c))throw new Error(\"only hulls of the same type are supported\");const l=c[0];return i.isA(l)?r(c):n.isA(l)?s(c):o.isA(l)?a(c):l},CKe}var yKe,Hnn;function tci(){if(Hnn)return yKe;Hnn=1;const t=la(),e=KUe(),n=Lnn();return yKe=(...i)=\u003e{if(i=t(i),i.length\u003c2)throw new Error(\"wrong number of arguments\");const r=[];for(let s=1;s\u003ci.length;s++)r.push(n(i[s-1],i[s]));return e(r)},yKe}var xKe,Onn;function nci(){return Onn||(Onn=1,xKe={hull:Lnn(),hullChain:tci(),hullPoints2:hKe(),hullPoints3:MUe()}),xKe}var EKe,Gnn;function oci(){return Gnn||(Gnn=1,EKe={minkowskiSum:enn()}),EKe}var BKe,Ynn;function Unn(){if(Ynn)return BKe;Ynn=1;const t=jr(),e=qA(),n=(i,r)=\u003e{const s=Math.abs(e.measureArea(r));return Number.isFinite(s)\u0026\u0026s\u003ei};return BKe=(i,r)=\u003e{let s=r.map(A=\u003e{const c=A.vertices.map(g=\u003et.snap(t.create(),g,i)),l=[];for(let g=0;g\u003cc.length;g++){const h=(g+1)%c.length;t.equals(c[g],c[h])||l.push(c[g])}const u=e.create(l);return A.color\u0026\u0026(u.color=A.color),u});const a=i*i*Math.sqrt(3)/4;return s=s.filter(A=\u003en(a,A)),s},BKe}var bKe,Knn;function ici(){if(Knn)return bKe;Knn=1;const t=AGe(),e=jr(),n=qA(),o=p=\u003e{const m=n.toPoints(p),_=[];for(let f=0;f\u003cm.length;f++){const I=(f+1)%m.length,C={v1:m[f],v2:m[I]};_.push(C)}for(let f=0;f\u003c_.length;f++){const I=(f+1)%m.length;_[f].next=_[I],_[I].prev=_[f]}return _},i=(p,m)=\u003e{const _=`${m.v1}:${m.v2}`;p.set(_,m)},r=(p,m)=\u003e{const _=`${m.v1}:${m.v2}`;p.delete(_)},s=(p,m)=\u003e{const _=`${m.v2}:${m.v1}`;return p.get(_)},a=(p,m,_)=\u003e{let f=p.prev.v1,I=p.prev.v2,C=m.next.v2;const y=l(f,I,C,_);f=m.prev.v1,I=m.prev.v2,C=p.next.v2;const x=l(f,I,C,_);return[y,x]},A=e.create(),c=e.create(),l=(p,m,_,f)=\u003e{const I=e.subtract(A,m,p),C=e.subtract(c,_,m);return e.cross(I,I,C),e.dot(I,f)},u=p=\u003e{let m;const _=[];for(;p.next;){const f=p.next;_.push(p.v1),p.v1=null,p.v2=null,p.next=null,p.prev=null,p=f}return _.length\u003e0\u0026\u0026(m=n.create(_)),m},g=p=\u003e{if(p.length\u003c2)return p;const m=p[0].plane,_=p.slice(),f=new Map;for(;_.length\u003e0;){const C=_.shift(),y=o(C);for(let x=0;x\u003cy.length;x++){const E=y[x],B=s(f,E);if(B){const S=a(E,B,m);if(S[0]\u003e=0\u0026\u0026S[1]\u003e=0){const Q=B.next,w=E.next;E.prev.next=B.next,E.next.prev=B.prev,B.prev.next=E.next,B.next.prev=E.prev,E.v1=null,E.v2=null,E.next=null,E.prev=null,r(f,B),B.v1=null,B.v2=null,B.next=null,B.prev=null;const M=(k,R,F)=\u003e{const O={v1:F.v1,v2:R.v2,next:R.next,prev:F.prev};F.prev.next=O,R.next.prev=O,r(k,R),R.v1=null,R.v2=null,R.next=null,R.prev=null,r(k,F),F.v1=null,F.v2=null,F.next=null,F.prev=null};S[0]===0\u0026\u0026M(f,Q,Q.prev),S[1]===0\u0026\u0026M(f,w,w.prev)}}else E.next\u0026\u0026i(f,E)}}const I=[];return f.forEach(C=\u003e{const y=u(C);y\u0026\u0026I.push(y)}),f.clear(),I},h=(p,m)=\u003eMath.abs(p[3]-m[3])\u003c15e-8?t(p,m):!1;return bKe=(p,m)=\u003e{const _=[];m.forEach(I=\u003e{const C=_.find(y=\u003eh(y[0],n.plane(I)));C?C[1].push(I):_.push([n.plane(I),[I]])});let f=[];return _.forEach(I=\u003e{const C=I[1],y=g(C);f=f.concat(y)}),f},bKe}var SKe,Vnn;function rci(){if(Vnn)return SKe;Vnn=1;const t=pc(),e=jr(),n=qA(),o=a=\u003e`${a}`,i=(a,A,c,l,u,g)=\u003e{const h=o(l),d=o(u),p=`${h}/${d}`,m=`${d}/${h}`;if(a.has(m))return r(a,A,c,u,l,null),null;const _={vertex0:l,vertex1:u,polygonindex:g};return a.has(p)?a.get(p).push(_):a.set(p,[_]),A.has(h)?A.get(h).push(p):A.set(h,[p]),c.has(d)?c.get(d).push(p):c.set(d,[p]),p},r=(a,A,c,l,u,g)=\u003e{const h=o(l),d=o(u),p=`${h}/${d}`;let m=-1;const _=a.get(p);for(let f=0;f\u003c_.length;f++){const I=_[f];let C=o(I.vertex0);if(C===h\u0026\u0026(C=o(I.vertex1),C===d\u0026\u0026!(g!==null\u0026\u0026I.polygonindex!==g))){m=f;break}}_.splice(m,1),_.length===0\u0026\u0026a.delete(p),m=A.get(h).indexOf(p),A.get(h).splice(m,1),A.get(h).length===0\u0026\u0026A.delete(h),m=c.get(d).indexOf(p),c.get(d).splice(m,1),c.get(d).length===0\u0026\u0026c.delete(d)};return SKe=a=\u003e{const A=new Map;for(let c=0;c\u003ca.length;c++){const l=a[c],u=l.vertices.length;if(u\u003e=3){let g=l.vertices[0],h=o(g);for(let d=0;d\u003cu;d++){let p=d+1;p===u\u0026\u0026(p=0);const m=l.vertices[p],_=o(m),f=`${h}/${_}`,I=`${_}/${h}`;if(A.has(I)){const C=A.get(I);C.splice(-1,1),C.length===0\u0026\u0026A.delete(I)}else{const C={vertex0:g,vertex1:m,polygonindex:c};A.has(f)?A.get(f).push(C):A.set(f,[C])}g=m,h=_}}else console.warn(\"warning: invalid polygon found during insertTjunctions\")}if(A.size\u003e0){const c=new Map,l=new Map,u=new Map;for(const[h,d]of A)u.set(h,!0),d.forEach(p=\u003e{const m=o(p.vertex0),_=o(p.vertex1);c.has(m)?c.get(m).push(h):c.set(m,[h]),l.has(_)?l.get(_).push(h):l.set(_,[h])});const g=a.slice(0);for(;A.size!==0;){for(const d of A.keys())u.set(d,!0);let h=!1;for(;;){const d=Array.from(u.keys());if(d.length===0)break;const p=d[0];let m=!0;if(A.has(p)){const f=A.get(p)[0];for(let I=0;I\u003c2;I++){const C=I===0?f.vertex0:f.vertex1,y=I===0?f.vertex1:f.vertex0,x=o(C),E=o(y);let B=[];I===0?l.has(x)\u0026\u0026(B=l.get(x)):c.has(x)\u0026\u0026(B=c.get(x));for(let S=0;S\u003cB.length;S++){const Q=B[S],w=A.get(Q)[0],M=I===0?w.vertex0:w.vertex1;if(I===0?w.vertex1:w.vertex0,o(M)===E){r(A,c,l,C,y,null),r(A,c,l,y,C,null),m=!1,I=2,h=!0;break}else{const R=C,F=y,O=M,U=e.subtract(e.create(),O,R),Y=e.dot(e.subtract(e.create(),F,R),U)/e.dot(U,U);if(Y\u003e0\u0026\u0026Y\u003c1){const W=e.scale(e.create(),U,Y);if(e.add(W,W,R),e.squaredDistance(W,F)\u003ct.EPS*t.EPS){const j=w.polygonindex,J=g[j],oe=o(w.vertex1);let ie=-1;for(let ue=0;ue\u003cJ.vertices.length;ue++)if(o(J.vertices[ue])===oe){ie=ue;break}const ne=J.vertices.slice(0);ne.splice(ie,0,y);const le=n.create(ne);g[j]=le,r(A,c,l,w.vertex0,w.vertex1,j);const ge=i(A,c,l,w.vertex0,y,j),_e=i(A,c,l,y,w.vertex1,j);ge!==null\u0026\u0026u.set(ge,!0),_e!==null\u0026\u0026u.set(_e,!0),m=!1,I=2,h=!0;break}}}}}}m\u0026\u0026u.delete(p)}if(!h)break}a=g}return A.clear(),a},SKe}var QKe,znn;function sci(){if(znn)return QKe;znn=1;const t=jr(),e=qA(),n=(i,r,s)=\u003e{const a=r.vertices.length;if(a\u003e3){if(a\u003e4){const l=[0,0,0];r.vertices.forEach(u=\u003et.add(l,l,u)),t.snap(l,t.divide(l,l,[a,a,a]),i);for(let u=0;u\u003ca;u++){const g=e.create([l,r.vertices[u],r.vertices[(u+1)%a]]);r.color\u0026\u0026(g.color=r.color),s.push(g)}return}const A=e.create([r.vertices[0],r.vertices[1],r.vertices[2]]),c=e.create([r.vertices[0],r.vertices[2],r.vertices[3]]);r.color\u0026\u0026(A.color=r.color,c.color=r.color),s.push(A,c);return}s.push(r)};return QKe=(i,r)=\u003e{const s=[];return r.forEach(a=\u003e{n(i,a,s)}),s},QKe}var vKe,Jnn;function aci(){if(Jnn)return vKe;Jnn=1;const t=la(),e=rP(),n=Ga(),o=Ra(),i=au(),r=Unn(),s=ici(),a=rci(),A=sci(),c=(h,d)=\u003ed,l=(h,d)=\u003ed,u=(h,d)=\u003e{const p={snap:!1,simplify:!1,triangulate:!1},{snap:m,simplify:_,triangulate:f}=Object.assign({},p,h),I=e(d);let C=o.toPolygons(d);m\u0026\u0026(C=r(I,C)),_\u0026\u0026(C=s(I,C)),f\u0026\u0026(C=a(C),C=A(I,C));const y=Object.assign({},d);return y.polygons=C,y};return vKe=(h,...d)=\u003e{if(d=t(d),d.length===0)throw new Error(\"wrong number of arguments\");const p=d.map(m=\u003e{if(i.isA(m))return c(h,m);if(n.isA(m))return l(h,m);if(o.isA(m))return u(h,m);throw new Error(\"invalid geometry\")});return p.length===1?p[0]:p},vKe}var wKe,Wnn;function Aci(){if(Wnn)return wKe;Wnn=1;const t=la(),e=mA(),n=Ga(),o=Ra(),i=au(),r=rP(),s=Unn(),a=u=\u003e{const g=r(u),d=i.toPoints(u).map(p=\u003ee.snap(e.create(),p,g));return i.create(d)},A=u=\u003e{const g=r(u);let d=n.toSides(u).map(p=\u003e[e.snap(e.create(),p[0],g),e.snap(e.create(),p[1],g)]);return d=d.filter(p=\u003e!e.equals(p[0],p[1])),n.create(d)},c=u=\u003e{const g=r(u),h=o.toPolygons(u),d=s(g,h);return o.create(d)};return wKe=(...u)=\u003e{if(u=t(u),u.length===0)throw new Error(\"wrong number of arguments\");const g=u.map(h=\u003ei.isA(h)?a(h):n.isA(h)?A(h):o.isA(h)?c(h):h);return g.length===1?g[0]:g},wKe}var PKe,jnn;function cci(){return jnn||(jnn=1,PKe={generalize:aci(),snap:Aci(),retessellate:IX()}),PKe}var MKe,$nn;function lci(){return $nn||($nn=1,MKe=(e,n,o)=\u003e{for(e=e.slice();e.length\u003co;)e.push(n);return e}),MKe}var DKe,qnn;function uci(){if(qnn)return DKe;qnn=1;const t=la(),e=lci(),n=GGe(),{translate:o}=nT(),i=A=\u003e{if(!Array.isArray(A.modes)||A.modes.length\u003e3)throw new Error(\"align(): modes must be an array of length \u003c= 3\");if(A.modes=e(A.modes,\"none\",3),A.modes.filter(c=\u003e[\"center\",\"max\",\"min\",\"none\"].includes(c)).length!==3)throw new Error('align(): all modes must be one of \"center\", \"max\" or \"min\"');if(!Array.isArray(A.relativeTo)||A.relativeTo.length\u003e3)throw new Error(\"align(): relativeTo must be an array of length \u003c= 3\");if(A.relativeTo=e(A.relativeTo,0,3),A.relativeTo.filter(c=\u003eNumber.isFinite(c)||c==null).length!==3)throw new Error(\"align(): all relativeTo values must be a number, or null.\");if(typeof A.grouped!=\"boolean\")throw new Error(\"align(): grouped must be a boolean value.\");return A},r=(A,c,l)=\u003e{for(let u=0;u\u003c3;u++)A[u]==null\u0026\u0026(c[u]===\"center\"?A[u]=(l[0][u]+l[1][u])/2:c[u]===\"max\"?A[u]=l[1][u]:c[u]===\"min\"\u0026\u0026(A[u]=l[0][u]));return A},s=(A,c,l)=\u003e{const u=n(A),g=[0,0,0];for(let h=0;h\u003c3;h++)c[h]===\"center\"?g[h]=l[h]-(u[0][h]+u[1][h])/2:c[h]===\"max\"?g[h]=l[h]-u[1][h]:c[h]===\"min\"\u0026\u0026(g[h]=l[h]-u[0][h]);return o(g,A)};return DKe=(A,...c)=\u003e{A=Object.assign({},{modes:[\"center\",\"center\",\"min\"],relativeTo:[0,0,0],grouped:!1},A),A=i(A);let{modes:u,relativeTo:g,grouped:h}=A;if(c=t(c),c.length===0)throw new Error(\"align(): No geometries were provided to act upon\");if(g.filter(d=\u003ed==null).length){const d=n(c);g=r(g,u,d)}return h?c=s(c,u,g):c=c.map(d=\u003es(d,u,g)),c.length===1?c[0]:c},DKe}var NKe,Xnn;function Rhe(){if(Xnn)return NKe;Xnn=1;const t=la(),e=Ga(),n=Ra(),o=au(),i=eT(),{translate:r}=nT(),s=(u,g)=\u003e{const h={axes:[!0,!0,!0],relativeTo:[0,0,0]},{axes:d,relativeTo:p}=Object.assign({},h,u),m=i(g),_=[0,0,0];return d[0]\u0026\u0026(_[0]=p[0]-(m[0][0]+(m[1][0]-m[0][0])/2)),d[1]\u0026\u0026(_[1]=p[1]-(m[0][1]+(m[1][1]-m[0][1])/2)),d[2]\u0026\u0026(_[2]=p[2]-(m[0][2]+(m[1][2]-m[0][2])/2)),r(_,g)},a=(u,...g)=\u003e{const h={axes:[!0,!0,!0],relativeTo:[0,0,0]},{axes:d,relativeTo:p}=Object.assign({},h,u);if(g=t(g),g.length===0)throw new Error(\"wrong number of arguments\");if(p.length!==3)throw new Error(\"relativeTo must be an array of length 3\");u={axes:d,relativeTo:p};const m=g.map(_=\u003eo.isA(_)||e.isA(_)||n.isA(_)?s(u,_):_);return m.length===1?m[0]:m};return NKe={center:a,centerX:(...u)=\u003ea({axes:[!0,!1,!1]},u),centerY:(...u)=\u003ea({axes:[!1,!0,!1]},u),centerZ:(...u)=\u003ea({axes:[!1,!1,!0]},u)},NKe}var RKe,Znn;function The(){if(Znn)return RKe;Znn=1;const t=la(),e=Mu(),n=Ga(),o=Ra(),i=au(),r=(c,...l)=\u003e{if(!Array.isArray(c))throw new Error(\"factors must be an array\");if(l=t(l),l.length===0)throw new Error(\"wrong number of arguments\");for(c=c.slice();c.length\u003c3;)c.push(1);if(c[0]\u003c=0||c[1]\u003c=0||c[2]\u003c=0)throw new Error(\"factors must be positive\");const u=e.fromScaling(e.create(),c),g=l.map(h=\u003ei.isA(h)?i.transform(u,h):n.isA(h)?n.transform(u,h):o.isA(h)?o.transform(u,h):h);return g.length===1?g[0]:g};return RKe={scale:r,scaleX:(c,...l)=\u003er([c,1,1],l),scaleY:(c,...l)=\u003er([1,c,1],l),scaleZ:(c,...l)=\u003er([1,1,c],l)},RKe}var TKe,eon;function gci(){if(eon)return TKe;eon=1;const t=la(),e=Ga(),n=Ra(),o=au();return TKe=(r,...s)=\u003e{if(s=t(s),s.length===0)throw new Error(\"wrong number of arguments\");const a=s.map(A=\u003eo.isA(A)?o.transform(r,A):e.isA(A)?e.transform(r,A):n.isA(A)?n.transform(r,A):A);return a.length===1?a[0]:a},TKe}var kKe,ton;function dci(){return ton||(ton=1,kKe={align:uci(),center:Rhe().center,centerX:Rhe().centerX,centerY:Rhe().centerY,centerZ:Rhe().centerZ,mirror:mX().mirror,mirrorX:mX().mirrorX,mirrorY:mX().mirrorY,mirrorZ:mX().mirrorZ,rotate:_X().rotate,rotateX:_X().rotateX,rotateY:_X().rotateY,rotateZ:_X().rotateZ,scale:The().scale,scaleX:The().scaleX,scaleY:The().scaleY,scaleZ:The().scaleZ,transform:gci(),translate:nT().translate,translateX:nT().translateX,translateY:nT().translateY,translateZ:nT().translateZ}),kKe}var FKe,non;function LKe(){return non||(non=1,FKe={colors:$si(),curves:nai(),geometries:WOe(),maths:Qai(),measurements:Tai(),primitives:uAi(),text:hAi(),utils:Mtn(),booleans:RAi(),expansions:UAi(),extrusions:qAi(),hulls:nci(),minkowski:oci(),modifiers:cci(),transforms:dci()}),FKe}var HKe,oon;function hci(){if(oon)return HKe;oon=1;const t=e=\u003ee.reduce((n,o)=\u003eArray.isArray(o)?n.concat(t(o)):n.concat(o),[]);return HKe=t,HKe}var OKe,ion;function pci(){return ion||(ion=1,OKe=(e,n)=\u003ee-n),OKe}var GKe,ron;function mci(){return ron||(ron=1,GKe=e=\u003e{if(!(!Array.isArray(e)||e.length===0))return e[0]}),GKe}var YKe,son;function _ci(){return son||(son=1,YKe=(e,n,o)=\u003e{let i=0,r=e.length;for(;r\u003ei;){const s=Math.floor((i+r)/2),a=e[s];o(n,a)\u003e0?i=s+1:r=s}return e.splice(i,0,n),e}),YKe}var UKe,aon;function fci(){return aon||(aon=1,UKe=(e,n)=\u003e{if(!(!Array.isArray(e)||e.length\u003cn))return e[n]}),UKe}var KKe,Aon;function Ici(){return Aon||(Aon=1,KKe=(e,n,o)=\u003e{for(e=e.slice();e.length\u003co;)e.push(n);return e}),KKe}var VKe,con;function Cci(){return con||(con=1,VKe=e=\u003eArray.isArray(e)?e:e==null?[]:[e]),VKe}var zKe,lon;function yci(){return lon||(lon=1,zKe={flatten:hci(),fnNumberSort:pci(),head:mci(),insertSorted:_ci(),nth:fci(),padToLength:Ici(),toArray:Cci()}),zKe}var JKe,uon;function xci(){if(uon)return JKe;uon=1;const{geometries:t}=LKe();return JKe={serializeBinary:(n,o)=\u003e{o.statusCallback\u0026\u0026o.statusCallback({progress:0});const i=new ArrayBuffer(4),r=new Int32Array(i,0,1),s=new Int8Array(i,0,4);if(r[0]=287454020,s[0]!==68)throw new Error(\"Binary STL output is currently only supported on little-endian (Intel) processors\");let a=0,A=0;n.forEach((f,I)=\u003e{t.geom3.toPolygons(f).forEach(y=\u003e{const x=y.vertices.length,E=x\u003e=3?x-2:0;a+=E,A+=1})});const c=new Uint8Array(80);for(let f=0;f\u003c80;f++)c[f]=65;const l=new Uint32Array(1);l[0]=a;const u=new ArrayBuffer(50*a),g=new Int8Array(u),h=new ArrayBuffer(50),d=new Int8Array(h),p=new Float32Array(h,0,12),m=new Uint16Array(h,48,1);let _=0;return n.forEach(f=\u003e{t.geom3.toPolygons(f).forEach((C,y)=\u003e{const x=C.vertices,E=x.length,B=t.poly3.plane(C);for(let S=0;S\u003cE-2;S++){p[0]=B[0],p[1]=B[1],p[2]=B[2];let Q=3;for(let w=0;w\u003c3;w++){const M=w+(w\u003e0?S:0),k=x[M];p[Q++]=k[0],p[Q++]=k[1],p[Q++]=k[2]}m[0]=0,g.set(d,_),_+=50}o.statusCallback\u0026\u0026o.statusCallback({progress:100*y/A})})}),o.statusCallback\u0026\u0026o.statusCallback({progress:100}),[c.buffer,l.buffer,u]}},JKe}var WKe,gon;function Eci(){if(gon)return WKe;gon=1;const{geometries:t}=LKe(),e=(a,A)=\u003e{A.statusCallback\u0026\u0026A.statusCallback({progress:0});const c=`solid JSCAD\n${n(a,A)}\nendsolid JSCAD\n`;return A.statusCallback\u0026\u0026A.statusCallback({progress:100}),[c]},n=(a,A)=\u003e{const c=[];return a.forEach((l,u)=\u003e{c.push(o(l)),A.statusCallback\u0026\u0026A.statusCallback({progress:100*u/a.length})}),c.join(`\n`)},o=(a,A)=\u003e{const c=[];return t.geom3.toPolygons(a).forEach((u,g)=\u003e{c.push(s(u))}),c.join(`\n`)},i=a=\u003e`${a[0]} ${a[1]} ${a[2]}`,r=a=\u003e`vertex ${i(a)}`,s=a=\u003e{const A=[];if(a.vertices.length\u003e=3){const c=r(a.vertices[0]);for(let l=0;l\u003ca.vertices.length-2;l++){const u=`facet normal ${i(t.poly3.plane(a))}\nouter loop\n${c}\n${r(a.vertices[l+1])}\n${r(a.vertices[l+2])}\nendloop\nendfacet`;A.push(u)}}return A.join(`\n`)};return WKe={serializeText:e},WKe}var jKe,don;function Bci(){if(don)return jKe;don=1;const{geometries:t,modifiers:e}=LKe(),{flatten:n,toArray:o}=yci(),{serializeBinary:i}=xci(),{serializeText:r}=Eci();return jKe={mimeType:\"application/sla\",serialize:(A,...c)=\u003e{A=Object.assign({},{binary:!0,statusCallback:null},A),c=n(c);let u=c.filter(g=\u003et.geom3.isA(g));if(u.length===0)throw new Error(\"only 3D geometries can be serialized to STL\");return c.length!==u.length\u0026\u0026console.warn(\"some objects could not be serialized to STL\"),u=o(e.generalize({snap:!0,triangulate:!0},u)),A.binary?i(u,A):r(u,A)}},jKe}var bci=Bci();const Sci=_y(bci);var Qci={0:[[{x:.019944796633211075,y:.35828068632415006},{x:.020222641007547733,y:.3550960892473839},{x:.020327535068617307,y:.3519011161217302},{x:.02060526835904108,y:.3507104904820116},{x:.02071153113201321,y:.34949252766745387},{x:.047065531132013214,y:.20882352766745393},{x:.047989939967683706,y:.20564918300405605},{x:.04875673163473768,y:.20243312543665407},{x:.04922094308839032,y:.20142201853303832},{x:.04953201774467938,y:.20035381349539033},{x:.05105794824635218,y:.1974208061920286},{x:.05243742793298141,y:.1944161379022362},{x:.1205174279329814,y:.07784313790223615},{x:.1216536619223176,y:.07627409360623287},{x:.12261018498510404,y:.07458945972562232},{x:.1242345189777056,y:.07271014544101197},{x:.12569143736362237,y:.07069826276137084},{x:.12711194429242206,y:.06938103546641537},{x:.12837874379901673,y:.06791537974577894},{x:.130338502698373,y:.06638906779986004},{x:.132159925645859,y:.06470007355882942},{x:.13381011622947792,y:.06368528357115737},{x:.13533850978527173,y:.062494930337889824},{x:.2330665097852717,y:.000743930337889824},{x:.2364974226485404,y:-.000978818921256936},{x:.23988324554357096,y:-.0027885789630079164},{x:.24043487144166406,y:-.0029559128497863825},{x:.24095002304009888,y:-.0032145836671228292},{x:.2446511035824589,y:-.0042348928870151745},{x:.24832493550927423,y:-.005349337618145378},{x:.24889860729226898,y:-.005405839357118937},{x:.2494543245702404,y:-.005559038796006631},{x:.2532833423420387,y:-.0058376980655201055},{x:.257104,y:-.006214000000000011},{x:.344948,y:-.006214000000000011},{x:.34876845169289644,y:-.005837718351308385},{x:.352597265623821,y:-.005559109487024962},{x:.35315318526669126,y:-.00540585978827806},{x:.3537270644907258,y:-.005349337618145378},{x:.3574006983675983,y:-.004234952964808514},{x:.36110158881940224,y:-.0032147329490055873},{x:.36161692908913895,y:-.0029559733581057666},{x:.36216875445642904,y:-.0027885789630079164},{x:.36555439482758706,y:-.000978916482299381},{x:.3689851386556908,y:.0007437082019616584},{x:.4667151386556908,y:.06249470820196166},{x:.46824382031514195,y:.0636852631221029},{x:.4698943035897058,y:.06470024765114774},{x:.4717154585013725,y:.06638901501054441},{x:.47367495473362387,y:.0679150932923645},{x:.4749419974608878,y:.0693810030307532},{x:.47636275350351887,y:.0706984782301942},{x:.4778194532662604,y:.07271008609647399},{x:.47944357522443626,y:.07458911996296573},{x:.4804002872780698,y:.07627405043044727},{x:.48153671723081914,y:.07784338646721853},{x:.5496157172308191,y:.19441638646721857},{x:.5509951179002539,y:.19742093333312605},{x:.5525209822553206,y:.20035381349539033},{x:.5528320971760705,y:.20142215679791795},{x:.5532963622471587,y:.2024333975455826},{x:.5540631001039363,y:.20564932060673602},{x:.5549874688679868,y:.20882352766745393},{x:.5813414688679868,y:.34949252766745387},{x:.5814477200321959,y:.3507103574246747},{x:.581725430046729,y:.351900851345405},{x:.5818303474337426,y:.35509595676374855},{x:.5821082033667889,y:.35828068632415006},{x:.5819748261451739,y:.3594958443979094},{x:.5820149461972951,y:.36071764184793353},{x:.5710349461972951,y:.5284976418479336},{x:.5705756858728281,y:.5312810757499365},{x:.5703149436633981,y:.5340900680661724},{x:.5698592272920282,y:.5356233082419208},{x:.5695988288779222,y:.5372015019922555},{x:.5686053720955593,y:.5398418557477263},{x:.5678016327590553,y:.5425460057826548},{x:.5216826327590552,y:.6556800057826547},{x:.5211943471023096,y:.656605995281004},{x:.5208498728309648,y:.6575945381025444},{x:.5191405880551111,y:.6605007631972294},{x:.5175679428069421,y:.6634831423933323},{x:.5169083878327574,y:.664296079457111},{x:.5163776774005638,y:.665198424109003},{x:.5141342596628157,y:.6677153419860701},{x:.5120099990343735,y:.6703336077343061},{x:.511204521070525,y:.6710022516480534},{x:.510507969381766,y:.6717837215313657},{x:.425955969381766,y:.7497057215313657},{x:.4243831978740034,y:.750892537075826},{x:.42294870744900304,y:.7522432326643229},{x:.4208707687817478,y:.7535430209032156},{x:.4189143183619635,y:.7550193610827685},{x:.4171402309909699,y:.7558765397994217},{x:.4154697962599445,y:.7569214269519826},{x:.41317820849544135,y:.7577908544006052},{x:.41097133104084405,y:.7588571425751742},{x:.40906410498936707,y:.7593517435666508},{x:.4072219198222394,y:.7600506678559823},{x:.3127869198222394,y:.7856226678559822},{x:.3097655669518694,y:.7861297177594856},{x:.3067801557646532,y:.7868174624905968},{x:.3054245519856559,y:.7868582361795984},{x:.30408703940192616,y:.7870827004032797},{x:.3010248204508113,y:.7869905707806608},{x:.2979626007613803,y:.7870826758597451},{x:.29662508997676323,y:.7868582009159747},{x:.29526948652460844,y:.786817416361878},{x:.2922840808497275,y:.7861296477028675},{x:.28926273204343433,y:.7856225735833884},{x:.19483073204343437,y:.7600505735833885},{x:.19298859701529922,y:.7593516514268194},{x:.1910814199885863,y:.7588570511522524},{x:.1888745059729717,y:.757790729268721},{x:.18658288068670334,y:.7569212665731724},{x:.18491249471518256,y:.7558763912940257},{x:.18313845528709377,y:.7550192228447639},{x:.18118197558509466,y:.7535428424712565},{x:.17910400699337814,y:.7522430123425641},{x:.17766956207459372,y:.7508923379118444},{x:.17609683558545802,y:.7497055417906873},{x:.09154583558545802,y:.6717835417906872},{x:.09084937681091164,y:.6710021668773223},{x:.09004400096562647,y:.6703336077343061},{x:.087919657143162,y:.6677152394449524},{x:.08567616637982708,y:.6651982097729843},{x:.0851455285488078,y:.6642959763928821},{x:.08448605719305789,y:.6634831423933323},{x:.08291335035419628,y:.6605006463960624},{x:.08120401576602496,y:.6575942974079984},{x:.08085959099279398,y:.6566058778839782},{x:.08037136724094471,y:.6556800057826547},{x:.03425236724094472,y:.5425460057826548},{x:.03344866581310472,y:.5398419832899659},{x:.03245524021837327,y:.537201759963462},{x:.0321948107181119,y:.5356234361255728},{x:.03173905633660196,y:.5340900680661724},{x:.03147832642517492,y:.5312812082371015},{x:.031019071243648687,y:.5284979083423142},{x:.020038071243648682,y:.36071790834231426},{x:.020078188427320915,y:.3594959771633442},{x:.019944796633211075,y:.35828068632415006}],[{x:.11021604810185967,y:.3604951889884744},{x:.12035004420691338,y:.5153337161267963},{x:.1599220965290545,y:.612407472440097},{x:.22898846858521874,y:.6760588762479813},{x:.301025186831377,y:.6955662779655215},{x:.373064807645506,y:.6760587099720985},{x:.44213195602343713,y:.6124073435241713},{x:.48170390405887986,y:.5153338430353971},{x:.49183697687726113,y:.3604953223188204},{x:.4679633532090146,y:.23306575687188358},{x:.4093572783633461,y:.13271343144136735},{x:.3319224534250481,y:.08378599999999999},{x:.27012977192577264,y:.08378599999999999},{x:.19269670382412518,y:.13271332265415062},{x:.13408961949133952,y:.23306590258843124},{x:.11021604810185967,y:.3604951889884744}]],1:[[{x:.17556757075794932,y:.5951166967821685},{x:.17573368487361973,y:.586296718297643},{x:.17761729959585784,y:.5776786204828649},{x:.18114602866723137,y:.5695935920037709},{x:.1861842650084615,y:.5623523359706766},{x:.19253839202243023,y:.5562331297919906},{x:.19996422417142623,y:.5514711311294693},{x:.20817639089041826,y:.548249340921154},{x:.21685930321783156,y:.5466915707579493},{x:.225679281702357,y:.5468576848736197},{x:.2342973795171352,y:.5487412995958578},{x:.24238240799622912,y:.5522700286672314},{x:.24962366402932343,y:.5573082650084615},{x:.33662600000000004,y:.6314944876419193},{x:.33662600000000004,y:.051034000000000024},{x:.33749066238185466,y:.042254935509274234},{x:.3400514210369921,y:.033813245543570986},{x:.3442098674463855,y:.026033339514117928},{x:.34980619484660536,y:.019214194846605387},{x:.35662533951411796,y:.013617867446385483},{x:.364405245543571,y:.00945942103699212},{x:.3728469355092743,y:.006898662381854659},{x:.381626,y:.0060340000000000255},{x:.3904050644907258,y:.006898662381854659},{x:.3988467544564291,y:.00945942103699212},{x:.40662666048588214,y:.01361786744638549},{x:.4134458051533947,y:.019214194846605387},{x:.41904213255361455,y:.026033339514117928},{x:.42320057896300795,y:.033813245543570986},{x:.4257613376181454,y:.042254935509274255},{x:.426626,y:.051034000000000024},{x:.426626,y:.729004},{x:.42636789988195944,y:.7316245344755278},{x:.4263183151263803,y:.7342572817023569},{x:.42593657376816557,y:.7360038620015019},{x:.4257613376181454,y:.7377830644907257},{x:.42499695590681574,y:.7403028932959718},{x:.4244347004041422,y:.7428753795171351},{x:.42371955318609683,y:.744513925721078},{x:.42320057896300795,y:.746224754456429},{x:.4219592904188853,y:.7485470419835442},{x:.42090597133276864,y:.7509604079962291},{x:.419884900961423,y:.7524279516932593},{x:.41904213255361455,y:.7540046604858821},{x:.41737163919932724,y:.7560401625275525},{x:.41586773499153856,y:.7582016640293234},{x:.4145799806286405,y:.7594418083381722},{x:.4134458051533947,y:.7608238051533946},{x:.41141030311172405,y:.7624942985076821},{x:.4095136079775698,y:.7643208702080094},{x:.40800865730110464,y:.7652859570783687},{x:.40662666048588214,y:.7664201325536145},{x:.40430437295876726,y:.767661421097737},{x:.4020877758285738,y:.7690828688705307},{x:.4004234632490515,y:.7697358105551997},{x:.3988467544564291,y:.7705785789630079},{x:.39632692565118355,y:.7713429606743374},{x:.3938756091095818,y:.772304659078846},{x:.39211589322607654,y:.7726203633950566},{x:.3904050644907258,y:.7731393376181454},{x:.3877845300151986,y:.7733974377361859},{x:.3851926967821685,y:.7738624292420507},{x:.38340520248922366,y:.7738287638499798},{x:.381626,y:.774004},{x:.37900546552447173,y:.7737458998819594},{x:.376372718297643,y:.7736963151263803},{x:.37462613799849803,y:.7733145737681656},{x:.3728469355092743,y:.7731393376181454},{x:.3703271067040287,y:.7723749559068158},{x:.36775462048286484,y:.7718127004041422},{x:.3661160742789217,y:.7710975531860966},{x:.364405245543571,y:.7705785789630079},{x:.3620829580164563,y:.7693372904188854},{x:.3596695920037709,y:.7682839713327686},{x:.35820204830674063,y:.7672629009614229},{x:.35662533951411796,y:.7664201325536145},{x:.3545898374724472,y:.7647496391993269},{x:.35242833597067663,y:.7632457349915385},{x:.1912283359706766,y:.6257917349915385},{x:.18510912979199054,y:.6194376079775697},{x:.18034713112946932,y:.6120117758285738},{x:.17712534092115398,y:.6037996091095817},{x:.17556757075794932,y:.5951166967821685}]],2:[[{x:.034589999999999996,y:.05195499999999997},{x:.034692251306008066,y:.05091682506774448},{x:.03463809526377374,y:.04987503351343359},{x:.03512383076438082,y:.04653492529109402},{x:.03545466238185463,y:.043175935509274184},{x:.03575748683953214,y:.042177657057450094},{x:.03590761484026801,y:.04114531791601493},{x:.0370356398580977,y:.03796415123181852},{x:.03801542103699209,y:.034734245543570935},{x:.03850718127225641,y:.0338142268532408},{x:.03885582398108696,y:.03283101233894428},{x:.040582789147307716,y:.02993103764454602},{x:.04217386744638545,y:.02695433951411788},{x:.04283566538917773,y:.026147936387598623},{x:.04336942466232366,y:.025251630882832152},{x:.04562896367409083,y:.022744292579413156},{x:.04777019484660536,y:.020135194846605337},{x:.04857659797312457,y:.019473396903813094},{x:.04927496174105457,y:.01869844492647086},{x:.0519802417813102,y:.01668009861889986},{x:.05458933951411791,y:.014538867446385433},{x:.055509358204447995,y:.01404710721112114},{x:.05634548873920743,y:.013423289731094336},{x:.05939254741314285,y:.011971499336069797},{x:.062369245543570956,y:.01038042103699207},{x:.0633675239953951,y:.010077596579314544},{x:.06430928926944049,y:.00962888655251979},{x:.06758102982102647,y:.008799443560749052},{x:.07081093550927423,y:.007819662381854608},{x:.0718491104415297,y:.007717411075846537},{x:.07286031894352762,y:.007461052176974015},{x:.07623101021818018,y:.0072858316174737835},{x:.07959,y:.006954999999999975},{x:.522462,y:.006954999999999975},{x:.5312410644907257,y:.007819662381854608},{x:.539682754456429,y:.01038042103699207},{x:.5474626604858821,y:.014538867446385433},{x:.5542818051533946,y:.020135194846605337},{x:.5598781325536145,y:.02695433951411788},{x:.5640365789630079,y:.034734245543570935},{x:.5665973376181453,y:.043175935509274205},{x:.567462,y:.05195499999999997},{x:.5665973376181453,y:.06073406449072574},{x:.5640365789630079,y:.06917575445642901},{x:.5598781325536145,y:.07695566048588207},{x:.5542818051533946,y:.08377480515339461},{x:.5474626604858821,y:.08937113255361451},{x:.539682754456429,y:.09352957896300787},{x:.5312410644907257,y:.09609033761814534},{x:.522462,y:.09695499999999997},{x:.1815000359059797,y:.09695499999999997},{x:.2783905550735291,y:.2032469617410546},{x:.2792807818102756,y:.20444017254595384},{x:.28031851181367967,y:.20550758629318672},{x:.43775551181367967,y:.4029575862931866},{x:.4393581707982963,y:.4054309283363016},{x:.4411189018513206,y:.4077943501865292},{x:.5036359018513206,y:.5115903501865292},{x:.5044316302389797,y:.5132634494776924},{x:.5054127007337849,y:.5148350555317778},{x:.5063216043693862,y:.5172373109446714},{x:.5074247535047713,y:.5195567934026113},{x:.5078787867151084,y:.5213529834674229},{x:.5085344010842773,y:.5230857889106145},{x:.5229384010842772,y:.5764717889106146},{x:.5230947969602031,y:.5774089507908463},{x:.5233933154704733,y:.5783109589719573},{x:.5238196553887738,y:.5817524776504878},{x:.5243904806061233,y:.5851730002877248},{x:.5243610401661515,y:.586122666187007},{x:.5244778496604383,y:.5870655806061408},{x:.5252778496604383,y:.6189585806061408},{x:.525154398698275,y:.6206444560860672},{x:.5252359209411441,y:.6223328785443973},{x:.5248330095087286,y:.6250334227224941},{x:.5246336028763079,y:.6277565667648055},{x:.5241836259995084,y:.6293859645321488},{x:.5239341869342451,y:.6310578486269935},{x:.5118811869342451,y:.6790048486269935},{x:.5115474759395316,y:.6799350391147754},{x:.5113589931552627,y:.6809051378786065},{x:.5100605296725933,y:.6840797730170447},{x:.5089023081582834,y:.6873082151493771},{x:.5083935381649621,y:.6881554285023456},{x:.5080194201443183,y:.6890701159233712},{x:.5061265656819337,y:.6919304336788418},{x:.5043607612540449,y:.6948708843926746},{x:.5036964840076373,y:.6956025626767983},{x:.5031511078963445,y:.6964266878303904},{x:.4695951078963445,y:.7376876878303904},{x:.46829294792790443,y:.7390014838193654},{x:.46714904955699066,y:.7404551608815331},{x:.46519525859727806,y:.7421268539092958},{x:.4633851429208498,y:.7439531446668906},{x:.4618516947085211,y:.7449876576267703},{x:.4604461776978856,y:.7461902391902692},{x:.4582037971525157,y:.7474486453977692},{x:.45607217068925404,y:.7488867084403534},{x:.4543663637878686,y:.7496021826182516},{x:.45275324136800726,y:.7505074541480116},{x:.3913892413680073,y:.7774134541480116},{x:.3883140702117422,y:.7784156528007931},{x:.3852957573995619,y:.7795779210778271},{x:.3841283231887951,y:.779779788263216},{x:.3830018757962646,y:.7801468976050565},{x:.3797902739335826,y:.7805299031606142},{x:.3766032098633093,y:.781080995160135},{x:.2948022098633093,y:.7870669951601349},{x:.29450281220893076,y:.7870594704966325},{x:.2942070489499988,y:.7871065838776864},{x:.29009611613079095,y:.7869487184427649},{x:.2859834519838158,y:.7868453561974301},{x:.28569127516043946,y:.7867795665334233},{x:.28539200354491423,y:.7867680740946454},{x:.2381110035449142,y:.7802710740946455},{x:.2365476307297285,y:.7798972084805876},{x:.2349498387179436,y:.7797212234138579},{x:.23226739693423346,y:.7788736316211718},{x:.2295313767481002,y:.7782193386355017},{x:.22807098126622102,y:.7775476578384392},{x:.22653822336325463,y:.7770633405173258},{x:.15287222336325462,y:.7455503405173259},{x:.15277120515837472,y:.7454948388638573},{x:.15266147866932564,y:.7454595513468599},{x:.14890641990559073,y:.7433714396994592},{x:.14514076206912752,y:.7413025033471496},{x:.1450525127361761,y:.7412283604682699},{x:.14495177886390068,y:.7411723444149347},{x:.14167624287507044,y:.7383917796239132},{x:.1383865705572421,y:.7356279539035645},{x:.138314481468594,y:.7355380190685297},{x:.13822661135931125,y:.7354634271443719},{x:.09327661135931127,y:.6889934271443718},{x:.09215967204365061,y:.6875853345117547},{x:.09088652507606766,y:.6863167230283468},{x:.0894249598835053,y:.6841377631074377},{x:.0877944205712414,y:.6820821900242812},{x:.08697364817646357,y:.6804832494460014},{x:.08597245819367963,y:.6789906353246448},{x:.0849640705590952,y:.6765684062835642},{x:.08376588401722862,y:.6742342280213215},{x:.08327282036617045,y:.6725058858871059},{x:.08258206253775009,y:.6708466294514168},{x:.06737006253775008,y:.6210196294514168},{x:.06563362911198059,y:.61237067498716},{x:.06561788807912042,y:.6035491464015462},{x:.0673234443582347,y:.5948940500909503},{x:.07068475437800403,y:.5867379965527546},{x:.07557264487941309,y:.5793944183504645},{x:.08179927697165325,y:.5731455250760676},{x:.08912536467535526,y:.5682314581936796},{x:.09726937054858317,y:.56484106253775},{x:.10591832501283995,y:.5631046291119806},{x:.11473985359845373,y:.5630888880791204},{x:.12339494990904962,y:.5647944443582347},{x:.13155100344724535,y:.568155754378004},{x:.13889458164953555,y:.5730436448794131},{x:.14514347492393234,y:.5792702769716532},{x:.15005754180632036,y:.5865963646753553},{x:.1534479374622499,y:.5947403705485832},{x:.16549687462406137,y:.6342067386764809},{x:.19660916323298405,y:.666371100226128},{x:.2563653288901179,y:.6919337213587163},{x:.29295461470925055,y:.696961546277117},{x:.3623268316838737,y:.6918850546595318},{x:.40664087103378327,y:.672454875030618},{x:.4270299373286165,y:.6473841495451277},{x:.4351521014718352,y:.6150740687208592},{x:.4346413299816387,y:.5947115247998124},{x:.4232850296720603,y:.5526213103922067},{x:.3655461500158852,y:.45675834907300783},{x:.21087613207581168,y:.2627785664153893},{x:.04633344492647088,y:.0822700382589454},{x:.04431509861889995,y:.07956475821868986},{x:.04217386744638545,y:.07695566048588207},{x:.04168210721112112,y:.0760356417955519},{x:.04105828973109435,y:.07519951126079251},{x:.03960649933606985,y:.07215245258685718},{x:.03801542103699209,y:.06917575445642901},{x:.037712596579314576,y:.0681774760046049},{x:.037263886552519804,y:.06723571073055948},{x:.036434443560749034,y:.06396397017897336},{x:.03545466238185463,y:.06073406449072574},{x:.03535241107584656,y:.059695889558470286},{x:.035096052176974035,y:.05868468105647236},{x:.03492083161747381,y:.05531398978181981},{x:.034589999999999996,y:.05195499999999997}]],3:[[{x:.02624429558875499,y:.07454886751538828},{x:.02628189246403191,y:.06572740500388341},{x:.028039748887915363,y:.057082779207475086},{x:.03145031142385274,y:.04894719824755728},{x:.036382514066253493,y:.04163330793793327},{x:.042646815033581253,y:.035422176981524986},{x:.05000248075272204,y:.030552495657744837},{x:.05816683711519421,y:.027211403088916904},{x:.11448783711519421,y:.010388403088916982},{x:.11753114712885143,y:.009796523380387901},{x:.12053464064709668,y:.009027703431080128},{x:.20267064064709667,y:-.0035892965689199724},{x:.20562630159751,y:-.003749783589053152},{x:.20856537842676282,y:-.004101230781641964},{x:.30947437842676284,y:-.00620423078164193},{x:.31075400531193675,y:-.006105070212514369},{x:.31203499449415534,y:-.0061847225744922005},{x:.3151428517207607,y:-.005764970678224511},{x:.3182695531731509,y:-.005522677007230838},{x:.31950524711917533,y:-.005175778959545043},{x:.3207771618583987,y:-.005003992231664048},{x:.3829651618583987,y:.009716007768336019},{x:.3849642059743718,y:.010402067561162992},{x:.38702295869345676,y:.010879972006216251},{x:.389126076828856,y:.011830396347599064},{x:.3913090018652735,y:.012579562954916447},{x:.3931357912831918,y:.013642434461507345},{x:.39506175111398195,y:.014512798837572657},{x:.47719975111398194,y:.06182779883757265},{x:.47924722409526294,y:.06329195880211928},{x:.48141099047099317,y:.06457804786673271},{x:.4828265323572166,y:.06585154318044145},{x:.484375351035892,y:.06695911252196202},{x:.4860978389589892,y:.06879458122658251},{x:.48796912564078,y:.07047808832945178},{x:.54077112564078,y:.12830608832945176},{x:.5409949120745448,y:.12860551518367325},{x:.5412686389329152,y:.1288600940829806},{x:.5436334835107667,y:.13213593090859313},{x:.5460522072884215,y:.13537218987116906},{x:.5462132784472015,y:.1357095218897727},{x:.546432079841298,y:.13601261058785885},{x:.5481124005325159,y:.13968686141763526},{x:.5498532864078638,y:.14333280617235186},{x:.5499454524173568,y:.14369507987504085},{x:.5501009199323095,y:.14403503084321223},{x:.5735679199323094,y:.2123790308432122},{x:.5742003382158373,y:.21504899342087444},{x:.5750294951185407,y:.21766455299430504},{x:.5752146521018063,y:.21933125436759},{x:.575601167738761,y:.22096305773765262},{x:.575700550423256,y:.22370509641963415},{x:.5760035049491392,y:.22643215923642232},{x:.5758599468852712,y:.22810295774565637},{x:.5759206866877095,y:.2297788119316045},{x:.5754832145523405,y:.2324875517091097},{x:.575248324328873,y:.23522131827456078},{x:.563515324328873,y:.2983063182745607},{x:.5624930457986839,y:.30183400865706583},{x:.561587550163308,y:.3053934651440046},{x:.5612670272694029,y:.3060647673464004},{x:.5610599744254687,y:.30677926765590185},{x:.5593691204378909,y:.31003973780923805},{x:.5577866081350055,y:.3133541469027738},{x:.5573412794357957,y:.31395001930700017},{x:.5569988129587381,y:.31461039668740554},{x:.5547043620842722,y:.317478348572073},{x:.5525056481741942,y:.32042033938948294},{x:.4997036481741942,y:.378250339389483},{x:.4970091109540712,y:.38067456957783247},{x:.49440132723244246,y:.38319188697894757},{x:.4937347452782226,y:.3836204617554604},{x:.49314561461057166,y:.3841504927896343},{x:.49002990831948917,y:.38600246394071897},{x:.48698112816844114,y:.387962658427834},{x:.4171684643874312,y:.4237087345514058},{x:.48487098803351525,y:.4540412587201935},{x:.4882241875669253,y:.4559584413246188},{x:.4916233115558361,y:.4577929691542233},{x:.4920492459188098,y:.45814540790983926},{x:.4925291804180174,y:.45841980913886743},{x:.49544392539098053,y:.4609543303938907},{x:.49841983754054403,y:.46341674447922576},{x:.545354837540544,y:.5107317444792258},{x:.5454749496657809,y:.5108793107625336},{x:.5456205162109946,y:.5110018387655073},{x:.548258239278959,y:.5142987798858712},{x:.5509236260451226,y:.5175733969812307},{x:.5510126414958236,y:.5177415605329735},{x:.5511315069931322,y:.5178901328189077},{x:.5530753456471339,y:.5216383183828395},{x:.5550506716503533,y:.525370005791429},{x:.5551051696126684,y:.5255523041806199},{x:.555192766127671,y:.525721211199887},{x:.5563680197383496,y:.5297766005381628},{x:.5575773743081012,y:.5338219516056334},{x:.5575952604559016,y:.5340113792074108},{x:.557648221703651,y:.5341941299579837},{x:.569382221703651,y:.5972801299579837},{x:.5696549699390315,y:.6004540423597167},{x:.5701008412017201,y:.6036082951002054},{x:.5700318821169291,y:.6048400880993865},{x:.5701375119403227,y:.6060692795769916},{x:.5697858198023349,y:.6092354166829699},{x:.5696077595908724,y:.6124160465097288},{x:.5692998146426919,y:.6136107177017713},{x:.5691636114574624,y:.614836897966064},{x:.5682009942777376,y:.6178735869028962},{x:.5674058453461934,y:.6209583639953996},{x:.5668707486862845,y:.622070002836373},{x:.5664979467044567,y:.623246050467446},{x:.5649613973213707,y:.6260365929822823},{x:.5635797167972587,y:.6289069710868302},{x:.5283787167972587,y:.6867359710868302},{x:.526364685994031,y:.6894131274243959},{x:.524479650893362,y:.6921826271628648},{x:.5237177195860089,y:.6929316152663909},{x:.5230754099184859,y:.6937854072711274},{x:.5205777908604191,y:.6960182048823972},{x:.5181886735848373,y:.6983667373551676},{x:.4595186735848373,y:.7456807373551677},{x:.45627545779875317,y:.7478078267647688},{x:.4530837115337172,y:.7500113951823929},{x:.4525909707504246,y:.7502243275150239},{x:.4521421155924859,y:.7505187128152536},{x:.44854624273044896,y:.7519722107862162},{x:.4449859301027389,y:.7535107594479447},{x:.362848930102739,y:.7797967594479446},{x:.36158078031831586,y:.7800691142952486},{x:.3603625229719573,y:.7805143446587972},{x:.35727696699365546,y:.7809934249999153},{x:.35422405316989464,y:.781649085623381},{x:.352927136733123,y:.7816688034988555},{x:.3516454277250751,y:.7818678086678129},{x:.2577774277250751,y:.7871168086678129},{x:.2534831925795917,y:.7869349938938289},{x:.24918809681378723,y:.7867747925856998},{x:.2490774333618657,y:.786748457272228},{x:.24896378128970398,y:.7867436453266514},{x:.24478752897123962,y:.7857275603552258},{x:.2406062159909945,y:.7847325056542677},{x:.16433721599099446,y:.7584545056542678},{x:.1612047546311144,y:.7570179671101032},{x:.15801334200327716,y:.7557176430739929},{x:.09817134200327716,y:.7241756430739928},{x:.09479788711775466,y:.721949723610623},{x:.09138819905405325,y:.7197797137879894},{x:.05384019905405325,y:.6903397137879895},{x:.04746503339724546,y:.6842424293748122},{x:.0424018859405069,y:.677018569451043},{x:.0388453306011542,y:.6689457429023652},{x:.036932043806339465,y:.6603341839257509},{x:.036735552094603836,y:.6515148299032538},{x:.03826340653223549,y:.6428266036640077},{x:.041456892530026886,y:.6346033888699733},{x:.046193286212010486,y:.6271611990540533},{x:.05229057062518783,y:.6207860333972455},{x:.05951443054895701,y:.615722885940507},{x:.06758725709763488,y:.6121663306011542},{x:.07619881607424907,y:.6102530438063395},{x:.08501817009674617,y:.6100565520946039},{x:.09370639633599236,y:.6115844065322356},{x:.1019296111300268,y:.6147778925300269},{x:.10937180094594674,y:.6195142862120105},{x:.14372643260130716,y:.6464504840370294},{x:.1969218011618275,y:.6744891243755197},{x:.2615721948597163,y:.6967640072977177},{x:.3408866683163358,y:.6923288252210377},{x:.40955721054777616,y:.6703524458415177},{x:.4555820596629536,y:.6332360369266462},{x:.477752059875079,y:.596814658492312},{x:.4716998550115053,y:.5642759337587675},{x:.44042564505409965,y:.532748518309004},{x:.3700728058889163,y:.5012285825754976},{x:.28267158635688694,y:.4816496665818946},{x:.2026156257994338,y:.47140070238604853},{x:.19958923290487823,y:.4707064281346213},{x:.19652752938874105,y:.4701896668089735},{x:.19529880233776667,y:.46972217540403877},{x:.1940174323454584,y:.4694282207777866},{x:.19118463692903986,y:.4681568668470777},{x:.18828257832087977,y:.4670527262205195},{x:.18716866396437967,y:.46635450477580015},{x:.18596926283986664,y:.4658162155208443},{x:.1834389276407875,y:.4640166393294268},{x:.18080803842542348,y:.46236755090702814},{x:.17985174386742717,y:.4614654316810775},{x:.17878040392329292,y:.4607034939516098},{x:.17664976830422657,y:.45844485220330683},{x:.1743911520787843,y:.45631418952832026},{x:.17362922718285934,y:.45524284045707714},{x:.17272711941234267,y:.45428653509274164},{x:.17107806250525512,y:.45165562612327925},{x:.16927851662463225,y:.44912526936741537},{x:.1687402417372368,y:.44792586179486843},{x:.1680420336360506,y:.4468119390745141},{x:.1669379277730794,y:.44390986724015796},{x:.1656666077762714,y:.4410770565945043},{x:.16537266849946,y:.43979568308103084},{x:.16490519181337332,y:.438566950430106},{x:.16438846716364272,y:.4355052407239498},{x:.16369422916516244,y:.43247883951296023},{x:.16365592142049992,y:.43116474252408066},{x:.16343714101639506,y:.42986841944927895},{x:.1635276550184117,y:.4267647316583033},{x:.16343717819520762,y:.42366104278329114},{x:.1636559741278381,y:.4223647223293339},{x:.1636942976139514,y:.42105062579943375},{x:.1643885718653787,y:.41802423290487795},{x:.16490533319102646,y:.414962529388741},{x:.1653728245959611,y:.41373380233776696},{x:.1656667792222133,y:.41245243234545836},{x:.1669381331529224,y:.40961963692903947},{x:.16804227377948042,y:.40671757832087974},{x:.16874049522419982,y:.4056036639643795},{x:.16927878447915568,y:.4044042628398666},{x:.17107836067057278,y:.40187392764078794},{x:.1727274490929718,y:.3992430384254234},{x:.17362956831892262,y:.3982867438674269},{x:.17439150604839013,y:.3972154039232929},{x:.1766501477966929,y:.39508476830422673},{x:.1787808104716797,y:.39282615207878424},{x:.17985215954292283,y:.39206422718285927},{x:.18080846490725827,y:.39116211941234263},{x:.18343937387672077,y:.38951306250525497},{x:.18596973063258454,y:.3877135166246322},{x:.18716913820513145,y:.3871752417372368},{x:.1882830609254858,y:.38647703363605057},{x:.19118513275984234,y:.3853729277730792},{x:.19401794340549564,y:.3841016077762714},{x:.19529931691896882,y:.38380766849946},{x:.19652804956989395,y:.38334019181337325},{x:.19958975927605035,y:.38282346716364263},{x:.20261616048703973,y:.3821292291651624},{x:.28149235433605535,y:.37203226198800626},{x:.3678476199052635,y:.34785057975990136},{x:.4387239808422848,y:.31155986033736477},{x:.4773813812672204,y:.26922136053481893},{x:.48460036747312013,y:.2304069273293995},{x:.4680118822440525,y:.1820955353962423},{x:.4262197745588727,y:.1363254129914362},{x:.35583608100487274,y:.09578139608686695},{x:.3056218275014876,y:.083895601213743},{x:.2134048551529998,y:.08581745449589688},{x:.13726972612583144,y:.09751265420048184},{x:.0839251628848058,y:.11344659691108305},{x:.0752658675153883,y:.11513070441124498},{x:.06644440500388343,y:.11509310753596806},{x:.05779977920747511,y:.11333525111208462},{x:.0496641982475573,y:.10992468857614723},{x:.04235030793793329,y:.10499248593374648},{x:.036139176981525016,y:.09872818496641873},{x:.03126949565774486,y:.09137251924727793},{x:.027928403088916927,y:.08320816288480577},{x:.02624429558875499,y:.07454886751538828}]],4:[[{x:.003828000000000005,y:.27580099999999996},{x:.0040512821902059844,y:.2735339778783202},{x:.004058111165048277,y:.2712559968420181},{x:.004482570943879651,y:.26915502967601196},{x:.004692662381854638,y:.26702193550927417},{x:.005353928343121064,y:.26484203377636983},{x:.005805038155045426,y:.26260915577382815},{x:.0066312204192078995,y:.26063136609773396},{x:.0072534210369921,y:.25858024554357095},{x:.008327258689269697,y:.2565712366005347},{x:.009205313441189196,y:.2544692698811785},{x:.010401468469599332,y:.25269066304309135},{x:.011411867446385462,y:.25080033951411784},{x:.01285700981091242,y:.2490394284479652},{x:.014128266351129452,y:.24714915041402313},{x:.01564842657685691,y:.24563807727727646},{x:.017008194846605366,y:.24398119484660533},{x:.018769105912757822,y:.24253605248207852},{x:.020384710565360974,y:.24093010545831445},{x:.022170457083446928,y:.23974463571613375},{x:.023827339514117918,y:.23838486744638543},{x:.025836348457154004,y:.2373110297941079},{x:.027734214441385185,y:.2360511294240198},{x:.029716922014597604,y:.23523682001377813},{x:.031607245543570965,y:.23422642103699207},{x:.03378714727647517,y:.23356515507572567},{x:.03589434066689576,y:.23269971862397582},{x:.03799781495511128,y:.23228786299963877},{x:.040048935509274235,y:.2316656623818546},{x:.04231595763095386,y:.23144238019164864},{x:.0445515001672978,y:.23100466589573537},{x:.046694905833262405,y:.23101109143797494},{x:.048828,y:.23080099999999998},{x:.36918100000000004,y:.23080099999999998},{x:.36918100000000004,y:.05103000000000002},{x:.37004566238185466,y:.04225093550927423},{x:.3726064210369921,y:.03380924554357098},{x:.3767648674463855,y:.026029339514117924},{x:.38236119484660536,y:.019210194846605383},{x:.38918033951411796,y:.013613867446385479},{x:.396960245543571,y:.009455421036992116},{x:.4054019355092743,y:.006894662381854655},{x:.414181,y:.0060300000000000215},{x:.4229600644907258,y:.006894662381854655},{x:.4314017544564291,y:.009455421036992116},{x:.43918166048588214,y:.013613867446385486},{x:.4460008051533947,y:.019210194846605383},{x:.45159713255361456,y:.026029339514117924},{x:.45575557896300795,y:.03380924554357098},{x:.4583163376181454,y:.04225093550927425},{x:.459181,y:.05103000000000002},{x:.459181,y:.23080099999999998},{x:.553224,y:.23080099999999998},{x:.5620030644907258,y:.2316656623818546},{x:.5704447544564291,y:.23422642103699207},{x:.5782246604858822,y:.23838486744638543},{x:.5850438051533947,y:.24398119484660533},{x:.5906401325536146,y:.25080033951411784},{x:.5947985789630079,y:.25858024554357095},{x:.5973593376181454,y:.26702193550927417},{x:.5982240000000001,y:.27580099999999996},{x:.5973593376181454,y:.28458006449072576},{x:.5947985789630079,y:.293021754456429},{x:.5906401325536146,y:.3008016604858821},{x:.5850438051533947,y:.3076208051533946},{x:.5782246604858822,y:.3132171325536145},{x:.5704447544564291,y:.3173755789630079},{x:.5620030644907258,y:.31993633761814533},{x:.553224,y:.32080099999999995},{x:.459181,y:.32080099999999995},{x:.459181,y:.421833},{x:.4583163376181454,y:.4306120644907258},{x:.45575557896300795,y:.439053754456429},{x:.45159713255361456,y:.4468336604858821},{x:.4460008051533947,y:.4536528051533947},{x:.43918166048588214,y:.45924913255361455},{x:.4314017544564291,y:.4634075789630079},{x:.4229600644907258,y:.4659683376181454},{x:.414181,y:.466833},{x:.4054019355092743,y:.4659683376181454},{x:.396960245543571,y:.4634075789630079},{x:.38918033951411796,y:.45924913255361455},{x:.38236119484660536,y:.4536528051533947},{x:.3767648674463855,y:.4468336604858821},{x:.3726064210369921,y:.439053754456429},{x:.37004566238185466,y:.4306120644907258},{x:.36918100000000004,y:.421833},{x:.36918100000000004,y:.32080099999999995},{x:.1436046917940101,y:.32080099999999995},{x:.4533648945416855,y:.700560710565361},{x:.45824387057598015,y:.7079102144413851},{x:.4615952813760241,y:.7160703406668958},{x:.46329033410426457,y:.7247275001672978},{x:.46326388883495173,y:.7335490031579818},{x:.46151696184495455,y:.7421958442261718},{x:.45811668655881077,y:.7503357301188214},{x:.4531937336488705,y:.7576558495859769},{x:.446937289434639,y:.7638748945416856},{x:.4395877855586148,y:.7687538705759801},{x:.43142765933310423,y:.7721052813760241},{x:.42277049983270215,y:.7738003341042645},{x:.41394899684201814,y:.7737738888349517},{x:.40530215577382817,y:.7720269618449546},{x:.39716226988117853,y:.7686266865588108},{x:.38984215041402315,y:.7637037336488706},{x:.38362310545831446,y:.757447289434639},{x:.013957105458314502,y:.304244289434639},{x:.012771635716133971,y:.30245854291655333},{x:.011411867446385462,y:.3008016604858821},{x:.010338029794107799,y:.29879265154284573},{x:.009078129424019837,y:.29689478555861476},{x:.008263820013778204,y:.2949120779854024},{x:.0072534210369921,y:.293021754456429},{x:.006592155075725704,y:.29084185272352475},{x:.005726718623975863,y:.2887346593331042},{x:.0053148629996388475,y:.28663118504488877},{x:.004692662381854638,y:.28458006449072576},{x:.00446938019164866,y:.282313042369046},{x:.00403166589573542,y:.2800774998327022},{x:.00403809143797499,y:.27793409416673776},{x:.003828000000000005,y:.27580099999999996}]],5:[[{x:.029951000000000005,y:.38529899999999995},{x:.030026331329377584,y:.3845341481773043},{x:.029977079633894697,y:.38376717530271315},{x:.030458063889865227,y:.38015069392879464},{x:.03081566238185464,y:.37651993550927415},{x:.03103876142924568,y:.3757844765131909},{x:.03114008507636279,y:.3750226322781917},{x:.0323173678705276,y:.3715694759531816},{x:.0333764210369921,y:.36807824554357094},{x:.033738714231120716,y:.3674004426508694},{x:.033986719409902104,y:.366673004302166},{x:.03581505842470893,y:.3635158758870829},{x:.03753486744638546,y:.3602983395141178},{x:.03802243206297786,y:.35970424030984804},{x:.03840758807348568,y:.3590391628952293},{x:.04081672126593952,y:.35629938906452685},{x:.04313119484660537,y:.3534791948466053},{x:.04372529405087513,y:.3529916302300129},{x:.04423279956362368,y:.3524144723015426},{x:.04713014529619686,y:.3501973410270508},{x:.04995033951411792,y:.3478828674463854},{x:.05062814240681941,y:.3475205742522568},{x:.05123849426956635,y:.347053515665452},{x:.054512709170605814,y:.34544423005866864},{x:.057730245543570965,y:.343724421036992},{x:.05846570453965444,y:.3435013219896009},{x:.05915544727260316,y:.34316231154402344},{x:.06268070509966306,y:.34222271554831923},{x:.06617193550927424,y:.3411636623818546},{x:.0669367873319697,y:.34108833105247705},{x:.06767941450870582,y:.34089039672943083},{x:.07132024158048059,y:.34065659849198926},{x:.074951,y:.34029899999999996},{x:.0757158518226955,y:.3403743313293775},{x:.07648282469728679,y:.34032507963389463},{x:.08009930607120508,y:.3408060638898651},{x:.08373006449072577,y:.3411636623818546},{x:.0844655234868091,y:.3413867614292456},{x:.08522736772180821,y:.34148808507636275},{x:.2701097088502776,y:.3848544225750548},{x:.39095673206080095,y:.3699215697302287},{x:.4312208460684155,y:.34735587040502247},{x:.4569274445394237,y:.3179203076157562},{x:.4808881134259603,y:.2201177906149206},{x:.47151862074291284,y:.1781066999956386},{x:.4461217481742335,y:.14395206669668215},{x:.3876788357927069,y:.10680533743499816},{x:.3169820044514503,y:.08634947983662909},{x:.2505487358362677,y:.08307118781270932},{x:.19638270317906092,y:.09339965838335124},{x:.15518503458472022,y:.11245499400015477},{x:.1051531598037562,y:.15775209985578706},{x:.09806479623887651,y:.16300326318775482},{x:.09008818244690309,y:.16677065575830224},{x:.0815298552225249,y:.16890949878372125},{x:.07271870628140957,y:.16933759772602197},{x:.06399334313601493,y:.16803850098293246},{x:.05568907659877849,y:.16506213211374782},{x:.04812503497563989,y:.16052287130494386},{x:.041591900144212934,y:.15459515980375618},{x:.03634073681224515,y:.1475067962388765},{x:.03257334424169774,y:.13953018244690307},{x:.03043450121627874,y:.13097185522252489},{x:.03000640227397801,y:.12216070628140954},{x:.031305499017067515,y:.1134353431360149},{x:.034281867886252176,y:.10513107659877846},{x:.03882112869505611,y:.09756703497563987},{x:.044748840196243804,y:.09103390014421289},{x:.09986584019624378,y:.041132900144212926},{x:.10178680031290575,y:.03970982481314967},{x:.10357183338498165,y:.03811957700249835},{x:.10532248536915285,y:.037090537646117014},{x:.10695420376112348,y:.035881736812245144},{x:.10911588139237749,y:.0348607662023731},{x:.11117685751196796,y:.03364931723433351},{x:.16362485751196798,y:.009390317234333478},{x:.1646572774363771,y:.009030847933342759},{x:.16562545909873666,y:.008523173483185618},{x:.16881529925253239,y:.0075831025339957205},{x:.1719558576504946,y:.006489618860012841},{x:.17303856889723523,y:.006338471796353147},{x:.17408718959239433,y:.0060294350406820685},{x:.23897018959239436,y:-.00634256495931787},{x:.2399001168767359,y:-.006426714843400178},{x:.24080591100583193,y:-.006653392925378379},{x:.24428588214420577,y:-.0068235863462415185},{x:.247755834543085,y:-.007137585190079683},{x:.24868431036339586,y:-.007038698344381461},{x:.24961692261229596,y:-.007084309202250054},{x:.32666292261229596,y:-.003282309202250082},{x:.32746661284147915,y:-.0031629125067284265},{x:.32827905619988357,y:-.00317336931171093},{x:.3318231917274382,y:-.002515696572186591},{x:.33538870069659477,y:-.001986002452099067},{x:.33615365510360457,y:-.0017121077449900682},{x:.3369525276121403,y:-.0015638637889859724},{x:.4188855276121403,y:.02214313621101406},{x:.4207304127428032,y:.02287964098341223},{x:.42264402370761556,y:.023412682727046455},{x:.4248170355152836,y:.024511079778651145},{x:.4270783417525648,y:.02541382586724525},{x:.42874409297954025,y:.02649609814118395},{x:.43051694316083267,y:.027392224616519634},{x:.5014129431608326,y:.07245422461651957},{x:.5044011686844615,y:.0747943741105689},{x:.5074525565132345,y:.07705154573740032},{x:.5078697672823866,y:.07751071502587484},{x:.5083582165656543,y:.07789323111579813},{x:.5108324836553944,y:.0807713891731658},{x:.5133848875831327,y:.08358048611421783},{x:.5494628875831328,y:.1320994861142178},{x:.5497798823390716,y:.1326268676033582},{x:.5501811109693575,y:.13309337858567127},{x:.5520495631508493,y:.13640291633591076},{x:.5540074974944301,y:.13966031511116345},{x:.5542155142604781,y:.14023940572188273},{x:.5545180216173755,y:.1407752286491667},{x:.5557049132287019,y:.14438569149730107},{x:.5569897394368822,y:.14796247431004633},{x:.5570807842453774,y:.1485710199149322},{x:.5572729451408087,y:.14915556341258465},{x:.5710219451408087,y:.2108035634125847},{x:.5712046210163666,y:.21230267395853206},{x:.5715791512667351,y:.2137656948046034},{x:.571736996194895,y:.21667155541097086},{x:.5720890113736304,y:.2195603313107129},{x:.5719757152243157,y:.2210662751632623},{x:.5720576277729665,y:.2225742517011615},{x:.5716455344736617,y:.2254550710286549},{x:.5714272135589309,y:.2283570146640783},{x:.5710222992922247,y:.22981191924551903},{x:.5708084462858501,y:.23130690078257787},{x:.5417354462858501,y:.3499769007825779},{x:.5411002871662289,y:.3517814599872898},{x:.540669734049328,y:.3536454570484658},{x:.5396393400617131,y:.355932176655931},{x:.5388066121493867,y:.3582980512419798},{x:.5378316053978042,y:.3599440229503987},{x:.537045677451414,y:.361688207084494},{x:.5355889653307644,y:.36372996812105773},{x:.5343106788169316,y:.36588792593376723},{x:.5330332933960605,y:.36731205637621067},{x:.5319221933904076,y:.36886939956510134},{x:.49389619339040763,y:.4124113995651013},{x:.49150876583293945,y:.41465677330496736},{x:.4892379705562563,y:.41702003426923534},{x:.48830169237996507,y:.41767302336482964},{x:.48747017448549057,y:.4184550652905171},{x:.4846905699931398,y:.420191530792605},{x:.4820023580684325,y:.4220663721783498},{x:.4272473580684325,y:.4527533721783498},{x:.42330567688981036,y:.45447898255061825},{x:.4193723578126433,y:.45622356923745777},{x:.4192660752068488,y:.4562474610875831},{x:.4191662841579818,y:.4562911481493166},{x:.41496369139475175,y:.45721461755172516},{x:.4107655979622113,y:.4581583300092093},{x:.27317359796221125,y:.47516033000920926},{x:.26964530070808584,y:.4752477446385603},{x:.2661231753027132,y:.4754739203661053},{x:.26524270860794985,y:.4753568201865933},{x:.26435476148695686,y:.47537881934450843},{x:.2608772057270339,y:.4747762176787918},{x:.2573786322781918,y:.4743109149236372},{x:.119951,y:.44207564006371447},{x:.119951,y:.684004},{x:.527101,y:.684004},{x:.5358800644907258,y:.6848686623818546},{x:.544321754456429,y:.6874294210369921},{x:.5521016604858822,y:.6915878674463855},{x:.5589208051533947,y:.6971841948466053},{x:.5645171325536146,y:.7040033395141179},{x:.5686755789630079,y:.711783245543571},{x:.5712363376181454,y:.7202249355092742},{x:.5721010000000001,y:.729004},{x:.5712363376181454,y:.7377830644907257},{x:.5686755789630079,y:.746224754456429},{x:.5645171325536146,y:.7540046604858821},{x:.5589208051533947,y:.7608238051533946},{x:.5521016604858822,y:.7664201325536145},{x:.544321754456429,y:.7705785789630079},{x:.5358800644907258,y:.7731393376181454},{x:.527101,y:.774004},{x:.074951,y:.774004},{x:.06617193550927424,y:.7731393376181454},{x:.05773024554357094,y:.7705785789630079},{x:.04995033951411792,y:.7664201325536145},{x:.04313119484660537,y:.7608238051533946},{x:.03753486744638546,y:.7540046604858821},{x:.0333764210369921,y:.746224754456429},{x:.03081566238185464,y:.7377830644907257},{x:.029951000000000005,y:.729004},{x:.029951000000000005,y:.38529899999999995}]],6:[[{x:.01994450211145162,y:.2755194646798348},{x:.020758274672659796,y:.26806396163938684},{x:.0201773643330274,y:.24423363638780976},{x:.020440223451033163,y:.2406784570189078},{x:.020568639264984916,y:.237115887070161},{x:.02076496657089406,y:.23628629421823594},{x:.02082782677693791,y:.23543610758842642},{x:.021779216218601925,y:.23200052126419074},{x:.022600187477202785,y:.22853145778054884},{x:.04459918747720279,y:.16442145778054884},{x:.04602253566469808,y:.16130748249724527},{x:.047307319174730654,y:.15813382633120915},{x:.06831231917473066,y:.11806482633120913},{x:.06934150993632018,y:.11649740482650416},{x:.07018719324152095,y:.11482382676006757},{x:.07175673818837072,y:.11281909673987861},{x:.07315419088510985,y:.11069082519836773},{x:.0744693948008918,y:.10935430641546007},{x:.07562532742241568,y:.1078778703106287},{x:.1253733274224157,y:.055788870310628645},{x:.12585541612958862,y:.055374327647901005},{x:.12626130847256478,y:.0548849335871293},{x:.1291958120945167,y:.0525019586891126},{x:.1320620582603259,y:.05003730581521479},{x:.13261575702973094,y:.04972477931463493},{x:.1331093263100589,y:.049323974491408525},{x:.1861743263100589,y:.014262974491408516},{x:.18683955107784095,y:.013911818906951787},{x:.187438960697758,y:.013457349607970202},{x:.1907349034619545,y:.011855559414887177},{x:.19397565070571454,y:.010144849670490022},{x:.19469660042216425,y:.009930220356283175},{x:.19537315511619574,y:.009601422573216056},{x:.19891826102894206,y:.008673416864759805},{x:.2024304811380398,y:.007627816351770726},{x:.20317945010986724,y:.007557961391993223},{x:.20390715026053782,y:.0073674706392518954},{x:.2857161502605378,y:-.005654529360748083},{x:.2860775594607644,y:-.005676122674759226},{x:.28642923596273784,y:-.0057621838110407525},{x:.2904772893795591,y:-.005938995755027237},{x:.2945219894833068,y:-.006180656673914681},{x:.2948806669536751,y:-.006131327641200151},{x:.2952423757850646,y:-.006147126454864343},{x:.38700037578506463,y:-.001139126454864331},{x:.39074801870473747,y:-.000562375362895672},{x:.3945101708776463,y:-8942684208443352e-20},{x:.395102371884912,y:.00010774663253235539},{x:.3957192721812796,y:.00020268575218489876},{x:.39928238663684656,y:.0014994835976446027},{x:.4028799824314506,y:.002697304024131271},{x:.47474098243145063,y:.03475230402413133},{x:.4764407459001163,y:.03572046389197228},{x:.4782361407270164,y:.03649705052245801},{x:.48026428101539703,y:.03789829234877595},{x:.4824063061811086,y:.03911835786940705},{x:.4838845305509628,y:.04039952221931584},{x:.48549392283388365,y:.041511451110380196},{x:.5363469228338836,y:.08458545111038014},{x:.5369424578291695,y:.08519979361043255},{x:.5376274627831791,y:.08571247952886965},{x:.5400078699953618,y:.08836201411598918},{x:.5424869876672573,y:.09091942444541115},{x:.5429512273484354,y:.09163814564059086},{x:.5435230500634102,y:.09227461827992436},{x:.5453408198626901,y:.09533763721244376},{x:.5472733759789791,y:.0983295594844189},{x:.5475884798754501,y:.09912503932225875},{x:.5480251455251356,y:.09986083939589693},{x:.5756631455251356,y:.15896283939589692},{x:.5756676990332947,y:.1589757429605767},{x:.575674675284325,y:.15898751446598428},{x:.5771354507402345,y:.1631350040011944},{x:.5785987361645655,y:.16728160865370237},{x:.5786006848177536,y:.16729515262537814},{x:.5786052305152959,y:.16730805894366996},{x:.5792288025114348,y:.17166083878445604},{x:.5798550088797246,y:.1760132404159827},{x:.5798542777922926,y:.17602690430741857},{x:.5798562182477396,y:.17604044945602063},{x:.5820672182477395,y:.2261264494560206},{x:.5819074721227447,y:.22907858468741052},{x:.5819395990078049,y:.232034864293962},{x:.5816696541741431,y:.23347350033714379},{x:.5815905637246603,y:.23493510513282764},{x:.580857954063737,y:.2377993509905685},{x:.5803127220992973,y:.2407050941577823},{x:.5648357220992973,y:.2937960941577823},{x:.5632290277642941,y:.2977974374258546},{x:.5616400226499054,y:.30180583827676916},{x:.5384240226499054,y:.3468838382767692},{x:.5373215489467563,y:.3485896803397862},{x:.5364060617863755,y:.35040275195151915},{x:.5349331318310961,y:.3522852445680167},{x:.5336357086983223,y:.35429272914301846},{x:.5322216254408594,y:.35575071197935654},{x:.5309700163849885,y:.3573503432435408},{x:.49559401638498846,y:.39441334324354077},{x:.4926979475395651,y:.39690515537305066},{x:.48986855873600776,y:.3994724304741097},{x:.48935820160472765,y:.3997787125549045},{x:.48890701524930746,y:.4001669186691625},{x:.48558046512393155,y:.4020458563236817},{x:.4823045917066957,y:.404011815580751},{x:.4336605917066957,y:.42705181558075106},{x:.43309173356321873,y:.4272557130907893},{x:.4325654489917744,y:.42755269513041455},{x:.42894434743018467,y:.4287422729922158},{x:.4253563740806812,y:.43002832091195864},{x:.42475866795602985,y:.4301173218701226},{x:.42418455747331046,y:.430305924456616},{x:.35674655747331047,y:.44533192445661596},{x:.3529000911149492,y:.4457998510145922},{x:.3490659246900917,y:.4463596961147396},{x:.28494592469009167,y:.4493636961147396},{x:.2805873413475358,y:.449139645094856},{x:.27622830276644406,y:.44892463285807194},{x:.20879130276644411,y:.4389076328580719},{x:.2058686377582091,y:.4381749274884603},{x:.2029059705898912,y:.4376259000221244},{x:.2015992206546876,y:.4371045944779896},{x:.20023455588710068,y:.4367624761715421},{x:.19751099279397463,y:.4354736658725529},{x:.19471236238975773,y:.4343572001231398},{x:.1250653623897577,y:.39829620012313977},{x:.12281565387932818,y:.3968352958512946},{x:.12046004217050754,y:.3955521266688945},{x:.11912493361112,y:.39443863469229795},{x:.1176668837895426,y:.39349181371392206},{x:.11574541108214431,y:.3916200839502759},{x:.11440461043594556,y:.3905018447245139},{x:.11499744675527566,y:.4076710597897629},{x:.14015918883207887,y:.48309781218266834},{x:.17625691985197756,y:.5624688107059582},{x:.22079283681825793,y:.6049160879451294},{x:.2812243215554422,y:.6473094683632384},{x:.35529887985725983,y:.6721340784004237},{x:.44197867319461825,y:.699237682451455},{x:.450099621980826,y:.7026829408131323},{x:.45739239245003865,y:.7076463180152294},{x:.4635767275229571,y:.7139370742553635},{x:.4684149666709443,y:.7213134592991232},{x:.47172117907685873,y:.729492002806001},{x:.4733683088520865,y:.7381584079356077},{x:.4732930577230865,y:.7469796295989887},{x:.471498317548545,y:.7556166731946181},{x:.4680530591868676,y:.7637376219808258},{x:.4630896819847706,y:.7710303924500386},{x:.4567989257446365,y:.7772147275229571},{x:.4494225407008768,y:.7820529666709441},{x:.4412439971939989,y:.7853591790768587},{x:.43257759206439217,y:.7870063088520864},{x:.4237563704010112,y:.7869310577230865},{x:.41511932680538177,y:.7851363175485448},{x:.32800332680538175,y:.7578963175485449},{x:.32758097645219697,y:.7577171382279785},{x:.32713377373466446,y:.7576146941984534},{x:.2464307737346645,y:.7305686941984535},{x:.24453959681011464,y:.7297206474805041},{x:.2425703892464572,y:.7290741531131611},{x:.24052462272791658,y:.727920241844807},{x:.2383814751569417,y:.7269592057619036},{x:.2366920823739949,y:.725758503708645},{x:.23488683737580707,y:.7247402582115807},{x:.16634483737580705,y:.6766572582115807},{x:.16379281785599412,y:.6744641039532857},{x:.16114120086592887,y:.6723924725748345},{x:.10785520086592887,y:.6216054725748346},{x:.10512406158167997,y:.61843588774195},{x:.10236095541706475,y:.6152941312068447},{x:.10224621895073822,y:.6150960484276141},{x:.1020967920615373,y:.6149226331776604},{x:.10003648617852028,y:.6112811321861437},{x:.09793939861820375,y:.6076606883504815},{x:.057256398618203745,y:.5182076883504814},{x:.05649445644348035,y:.515973451082899},{x:.055531562043165734,y:.5138181769891187},{x:.02756156204316574,y:.4299731769891187},{x:.02710606704062858,y:.4279720709807987},{x:.026442901166776424,y:.42602987841114226},{x:.0261294707087366,y:.42368163359604843},{x:.025603668479436986,y:.4213716499642221},{x:.02554732210120287,y:.4193201319800137},{x:.025275801747494525,y:.4172858808521062},{x:.022290801747494524,y:.3308368808521062},{x:.022305383523873214,y:.330608131273329},{x:.022277364333027405,y:.33038063638780973},{x:.021194122115214913,y:.2859434614650037},{x:.02071653916751727,y:.2843071590959475},{x:.01994450211145162,y:.2755194646798348}],[{x:.11034731747482908,y:.25010871966048204},{x:.11054573733688708,y:.2582483748303443},{x:.14138614929871246,y:.28974619429248377},{x:.17280436841728808,y:.32166563054627706},{x:.2294333737827033,y:.3509863272379111},{x:.2851142784460479,y:.35925709287120927},{x:.3409693478959939,y:.3566403020317264},{x:.39969116147327427,y:.34355637352239615},{x:.43624565447916347,y:.3262425111990739},{x:.46138408324665353,y:.29990528863548604},{x:.47964461062187336,y:.2644492215688011},{x:.49182659739178797,y:.22266115801633354},{x:.4903391577658353,y:.18896604218391924},{x:.47066764412974615,y:.14689983627465894},{x:.4322187986209955,y:.11433252320671945},{x:.3738017517723872,y:.08827446060346957},{x:.29512698962943984,y:.08398052210424463},{x:.22766698305582697,y:.09471851188045},{x:.18695506157646963,y:.1216176107024183},{x:.1450838647757246,y:.1654591474507099},{x:.12861258258928074,y:.1968796571354811},{x:.11034731747482908,y:.25010871966048204}]],7:[[{x:.026534000000000002,y:.729004},{x:.027398662381854635,y:.7202249355092742},{x:.029959421036992097,y:.711783245543571},{x:.03411786744638546,y:.7040033395141179},{x:.039714194846605363,y:.6971841948466053},{x:.046533339514117915,y:.6915878674463855},{x:.05431324554357096,y:.6874294210369921},{x:.06275493550927423,y:.6848686623818546},{x:.071534,y:.684004},{x:.4019606654607806,y:.684004},{x:.4004737160341744,y:.6825246433416329},{x:.3773547160341744,y:.6545006433416328},{x:.37631768094411194,y:.6529571778549935},{x:.37511206403824765,y:.6515414747212956},{x:.3516100640382476,y:.6177174747212957},{x:.35070717908442606,y:.6160998190359583},{x:.34962595461558005,y:.6145955036421288},{x:.32637595461558006,y:.5744575036421288},{x:.32562538351875275,y:.5728072168885044},{x:.3246890272988689,y:.5712547864166106},{x:.3023170272988689,y:.5242907864166106},{x:.3017220252289498,y:.5226423026482856},{x:.3009361907094137,y:.5210757809262708},{x:.2800741907094137,y:.4667717809262708},{x:.2796297795277362,y:.4651572895546526},{x:.27899211910181604,y:.46360891205912846},{x:.26027511910181605,y:.40145091205912853},{x:.2599700482242006,y:.399900691568321},{x:.2594722021762355,y:.3984012246220316},{x:.2435242021762355,y:.3278752246220315},{x:.24329560198997774,y:.32604433113097486},{x:.24285939794168837,y:.32425152465814894},{x:.22552039794168838,y:.201651524658149},{x:.22543629437721757,y:.19966542745190077},{x:.2251384028560513,y:.1976999971774209},{x:.21759140285605127,y:.0533799971774209},{x:.2179964236931644,y:.04456775725283754},{x:.22011284489303193,y:.03600385769296016},{x:.22385933357584556,y:.028017404355184638},{x:.22909191428257988,y:.020915312162427036},{x:.23560950187114016,y:.014970510534755857},{x:.24316162910560324,y:.010411454864839347},{x:.25145807197163045,y:.007413347105324521},{x:.2601800028225791,y:.006091402856051323},{x:.26899224274716244,y:.0064964236931644576},{x:.27755614230703984,y:.008612844893031955},{x:.2855425956448154,y:.0123593335758456},{x:.29264468783757297,y:.017591914282579925},{x:.29858948946524416,y:.02410950187114019},{x:.30314854513516065,y:.03166162910560326},{x:.30614665289467546,y:.03995807197163046},{x:.3074685971439487,y:.04868000282257914},{x:.3149118365119932,y:.19101580586964154},{x:.33171443080019297,y:.3098230069615897},{x:.3469078029209317,y:.3770118558572018},{x:.3646876244488305,y:.43605754408347375},{x:.3843219343355222,y:.48716585412502805},{x:.40516196826036527,y:.5309139031705462},{x:.42657620329737017,y:.5678827017045378},{x:.4479617026009278,y:.5986606409626235},{x:.4682073320853445,y:.6232016470905397},{x:.5069453480603512,y:.6602460238293135},{x:.5211069187127709,y:.670919967941474},{x:.553634852004927,y:.6903949675582732},{x:.5545334052571363,y:.6910607030437311},{x:.5555196604858821,y:.6915878674463855},{x:.5580709875097788,y:.6936816874233654},{x:.5607229359621996,y:.6956465083018619},{x:.5614743452153894,y:.6964747509099635},{x:.5623388051533946,y:.6971841948466053},{x:.5644326251303754,y:.699735521870503},{x:.5666502995990071,y:.7021799587443133},{x:.5672256886169725,y:.7031388795761127},{x:.5679351325536145,y:.7040033395141179},{x:.5694909811561905,y:.7069141275182039},{x:.5711891576548912,y:.709744242049125},{x:.5715664145603537,y:.7107969903148255},{x:.5720935789630078,y:.711783245543571},{x:.5730516658019124,y:.7149416345772374},{x:.5741650843601849,y:.7180486670509921},{x:.5743297113818354,y:.7191547862251302},{x:.5746543376181453,y:.7202249355092742},{x:.574977843953461,y:.7235095504532041},{x:.5754637165205229,y:.7267740993542682},{x:.5754093871342436,y:.7278910818973009},{x:.575519,y:.729004},{x:.5751954936646845,y:.7322886149439295},{x:.5750351484302645,y:.735585225488817},{x:.5747639504839017,y:.7366701463880269},{x:.5746543376181453,y:.7377830644907257},{x:.5736962507792408,y:.7409414535243923},{x:.5728958497207748,y:.7441434388186243},{x:.5724182051993175,y:.7451546051722857},{x:.5720935789630078,y:.746224754456429},{x:.570537730360432,y:.749135542460515},{x:.5691280324417267,y:.752119852004927},{x:.5684622969562688,y:.7530184052571364},{x:.5679351325536145,y:.7540046604858821},{x:.5658413125766343,y:.756555987509779},{x:.563876491698138,y:.7592079359621996},{x:.5630482490900365,y:.7599593452153895},{x:.5623388051533946,y:.7608238051533946},{x:.5597874781294971,y:.7629176251303754},{x:.5573430412556867,y:.7651352995990072},{x:.5563841204238874,y:.7657106886169726},{x:.5555196604858821,y:.7664201325536145},{x:.5526088724817957,y:.7679759811561907},{x:.5497787579508749,y:.7696741576548912},{x:.5487260096851745,y:.7700514145603538},{x:.547739754456429,y:.7705785789630079},{x:.5445813654227618,y:.7715366658019126},{x:.5414743329490078,y:.7726500843601849},{x:.5403682137748697,y:.7728147113818356},{x:.5392980644907257,y:.7731393376181454},{x:.5360134495467959,y:.773462843953461},{x:.5327489006457318,y:.7739487165205229},{x:.531631918102699,y:.7738943871342436},{x:.530519,y:.774004},{x:.071534,y:.774004},{x:.06275493550927423,y:.7731393376181454},{x:.054313245543570934,y:.7705785789630079},{x:.046533339514117915,y:.7664201325536145},{x:.039714194846605363,y:.7608238051533946},{x:.03411786744638546,y:.7540046604858821},{x:.029959421036992097,y:.746224754456429},{x:.027398662381854635,y:.7377830644907257},{x:.026534000000000002,y:.729004}]],8:[[{x:.018998734783549534,y:.19034712298183487},{x:.01918983868826437,y:.187136446932327},{x:.01920952916989005,y:.18392014879903562},{x:.019451409422642358,y:.18274188004279768},{x:.019522877627479743,y:.18154116541629586},{x:.0203366813486396,y:.1784294641291047},{x:.020983462121705806,y:.17527880768498513},{x:.021450563544301488,y:.17417036752890672},{x:.021754906310756543,y:.17300666705236456},{x:.02316013582774355,y:.17011352146289485},{x:.024409151469860245,y:.16714958466818597},{x:.06244715146986025,y:.097021584668186},{x:.06364531823888224,y:.0952519506947441},{x:.06465809579443724,y:.09337006609963419},{x:.0661122558858275,y:.09160840391706095},{x:.06739294989385258,y:.08971688123025286},{x:.06891333268610705,y:.08821500101819715},{x:.07027378747657535,y:.08656685940733966},{x:.07204368953204261,y:.0851227396301211},{x:.07366879313388441,y:.08351741302778071},{x:.0754529644913056,y:.08234100299139627},{x:.07710881500204132,y:.08098994152260804},{x:.14910981500204132,y:.03317594152260801},{x:.1504928100364302,y:.03244176283843531},{x:.15177178054792087,y:.031538475488709236},{x:.15438005907773164,y:.030378172358910993},{x:.15690151209615905,y:.029039630272177964},{x:.1584011644246711,y:.028589367572161194},{x:.15983178249634203,y:.027952951404511282},{x:.24949378249634205,y:-.0017990485954887184},{x:.251605077566582,y:-.002276091838878668},{x:.25365804064979064,y:-.002962007073194259},{x:.2558970148670134,y:-.0032458471890824472},{x:.2580984148155577,y:-.003743249464233246},{x:.2602622084630055,y:-.003799233220341744},{x:.26240953986016613,y:-.0040714555567724145},{x:.33848653986016614,y:-.006196455556772458},{x:.34211630259529946,y:-.0059410451417675775},{x:.3457527120689106,y:-.005810898556388326},{x:.34651004211407876,y:-.005631877045722989},{x:.3472863241290845,y:-.005577253499755554},{x:.35079651389094996,y:-.004618619143417753},{x:.3543376604369356,y:-.0037815449929937683},{x:.4535096604369356,y:.03022045500700621},{x:.45591274590665615,y:.03131812424947078},{x:.4583949217344816,y:.03222283453480715},{x:.45991547545056405,y:.03314647083206772},{x:.461533744189149,y:.033885655452327273},{x:.46367651039942226,y:.035431052006208004},{x:.4659344916938285,y:.03680262701864639},{x:.5338604916938285,y:.08780462701864639},{x:.5368034713408607,y:.09050382186837246},{x:.5397962541268131,y:.09314768896709699},{x:.5400513850489728,y:.09348269124727963},{x:.5403617177400871,y:.09376731720532937},{x:.5427215620660051,y:.09698879462990716},{x:.5451410464862535,y:.10016572352111452},{x:.5453259194365666,y:.1005440624001799},{x:.5455747614022292,y:.10088376225489704},{x:.547260782913003,y:.10450372268352329},{x:.5490139895381407,y:.10809162577156875},{x:.5802599895381407,y:.1920326257715688},{x:.5808621946470703,y:.19431314395649216},{x:.5816704362178704,y:.19652903198349428},{x:.5819856183913868,y:.19856748893015458},{x:.5825122482529622,y:.20056180773987195},{x:.5826579751325236,y:.20291599079595712},{x:.5830183882594349,y:.20524698126417715},{x:.5829298310737253,y:.20730775882392333},{x:.5830572695913885,y:.20936649774620245},{x:.5827409180393249,y:.21170387573884492},{x:.582639652248002,y:.21406038999182395},{x:.570412652248002,y:.30012638999182395},{x:.5703409363500996,y:.30042034316527866},{x:.5703238989157716,y:.30072243812390526},{x:.5692961437829783,y:.3047027979582916},{x:.5683217827960937,y:.30869656381164773},{x:.5681940974797931,y:.30897087767968473},{x:.5681184516122305,y:.3092638441298401},{x:.5663339148242972,y:.3129672173863048},{x:.5645991308441736,y:.31669415574996157},{x:.5644203829845738,y:.31693828858446854},{x:.5642890357120441,y:.31721086798977133},{x:.5618162960169492,y:.32049493611094637},{x:.5593877558190667,y:.3238118228336772},{x:.5591648145961691,y:.32401639274673566},{x:.5589828135206953,y:.3242581100335041},{x:.5032838135206953,y:.3848241100335041},{x:.5011622073766187,y:.38671918495638496},{x:.4991781602202921,y:.38875783119234486},{x:.4978799327840818,y:.3896509997457094},{x:.496704700181234,y:.39070074870143656},{x:.4942541493273608,y:.39214550546522026},{x:.4919105049301597,y:.39375791128677606},{x:.42072451102124153,y:.4330589294870645},{x:.4777200661568854,y:.4633968522602595},{x:.4805213378044988,y:.46526159042857346},{x:.48340658539474834,y:.46699355971902134},{x:.4841865730327025,y:.4677014480666941},{x:.48506339053858555,y:.46828512408085676},{x:.487447044167244,y:.4706605328159332},{x:.4899389620874836,y:.4729221066835925},{x:.4905658603159866,y:.4737685611946159},{x:.49131196047780046,y:.47451208064740324},{x:.493186393615322,y:.4773068743236967},{x:.4951892188573616,y:.48001114175313947},{x:.5250762188573616,y:.5299501417531395},{x:.5263287500632193,y:.5326029758232522},{x:.5277533683388757,y:.5351675080991},{x:.5282078804872482,y:.5365829335183069},{x:.5288425912810938,y:.5379272372855163},{x:.5295535131980511,y:.5407734546091212},{x:.5304504424054924,y:.5435666393545394},{x:.5306200854295579,y:.5450435386925929},{x:.5309803397786421,y:.5464858379730204},{x:.5311223320761199,y:.5494160600145488},{x:.5314571037289079,y:.5523305567062068},{x:.5328161037289079,y:.6362725567062067},{x:.5325682225912138,y:.6392892202473488},{x:.5325070847315841,y:.6423154334158161},{x:.5322077563487247,y:.6436760218476847},{x:.5320936668790056,y:.6450644677251389},{x:.5312620268462096,y:.647974807711247},{x:.530611678831884,y:.6509309456375182},{x:.530052664324664,y:.6522069946735811},{x:.5296698946987799,y:.6535465042014387},{x:.5282864552309536,y:.656238677898982},{x:.5270718895714029,y:.659011137860374},{x:.493108889571403,y:.7195761378603741},{x:.49086599866607616,y:.7227903647520136},{x:.4886941713149356,y:.7260530293196586},{x:.4883443495413535,y:.7264040725827037},{x:.48806074906628455,y:.7268104928286833},{x:.4852338901214668,y:.7295253929429124},{x:.4824672795427586,y:.7323016638284542},{x:.4820556943532359,y:.7325777150511769},{x:.48169825452511067,y:.7329209983380867},{x:.4783960621447291,y:.7350322395860499},{x:.4751409876314614,y:.737215426256307},{x:.4058559876314614,y:.774404426256307},{x:.40535390944732597,y:.7746134197603937},{x:.4048950878292554,y:.7749053846735706},{x:.40128606998249994,y:.7763066859700772},{x:.39771184087056327,y:.7777944834687843},{x:.3971786373679402,y:.7779015106266721},{x:.3966716723496766,y:.778098353858693},{x:.39285862044769176,y:.7787686450898307},{x:.3890628142527955,y:.7795305574683767},{x:.38851897614326597,y:.7795315052864096},{x:.3879833501061526,y:.7796256622622586},{x:.29017035010615255,y:.7870576622622585},{x:.28883979914978264,y:.7870279344512828},{x:.28751770557027906,y:.7871806372910648},{x:.2844390802539456,y:.7869296114679608},{x:.28135100845003463,y:.7868606162788429},{x:.2800518232654171,y:.7865718820648824},{x:.2787253424971381,y:.7864637231002555},{x:.20264834249713812,y:.7726567231002556},{x:.20090732012312768,y:.7721604024311715},{x:.19912055356042774,y:.7718689262507037},{x:.1966754417776232,y:.7709540028332816},{x:.19416478523538352,y:.7702382792713757},{x:.19255404347725652,y:.7694118386491953},{x:.19085847331495095,y:.7687773822377194},{x:.12157447331495094,y:.7347753822377193},{x:.11864840230662128,y:.7329636093328938},{x:.1156466869822177,y:.7312801255296781},{x:.11490452792065226,y:.7306454666247165},{x:.11407427694169714,y:.7301313894804525},{x:.11155788892673538,y:.7277835811487093},{x:.10894228211787771,y:.7255468394054793},{x:.1083381992447159,y:.7247795872431081},{x:.10762419278113186,y:.7241134140161837},{x:.10561419113974596,y:.7213197952150451},{x:.1034852091492498,y:.7186157522626143},{x:.05457920914924981,y:.6421127522626143},{x:.05400544809690788,y:.6409849569633866},{x:.05327967340990527,y:.639948436299892},{x:.05200937551205521,y:.6370614399018406},{x:.05057918033015655,y:.6342502218929852},{x:.050236465883645505,y:.633032161635733},{x:.04972685190376166,y:.6318739658087451},{x:.04904418748077848,y:.6287946194110116},{x:.04818991452487371,y:.6257584009293389},{x:.04809141700817653,y:.6244968850866522},{x:.047817547914863534,y:.6232615229122788},{x:.04774875137767971,y:.6201081640700103},{x:.04750322987838258,y:.6169636252890404},{x:.04765273449582791,y:.6157071332072875},{x:.04762513492475421,y:.6144420789610904},{x:.04817285008571219,y:.6113358894861711},{x:.048545515296550656,y:.608203873267779},{x:.04893727666953319,y:.607000691233013},{x:.04915700725673716,y:.6057545602402229},{x:.06817600725673716,y:.537751560240223},{x:.0695259178796919,y:.5342803033966695},{x:.07076883034011841,y:.5307693133112962},{x:.07112252784165454,y:.530174666206544},{x:.07137329591617819,y:.5295298232221028},{x:.07337447700044117,y:.5263886201035727},{x:.07527846743280868,y:.5231875729003385},{x:.0757413786311829,y:.522673354732434},{x:.07611313089295507,y:.5220898246495332},{x:.07868867817173447,y:.5193993899302627},{x:.08118057729149615,y:.5166313000580217},{x:.13823757729149616,y:.46456630005802163},{x:.1415344063491032,y:.46210392848613274},{x:.14479841194755694,y:.45959821041612353},{x:.17870395742216458,y:.4385038845164132},{x:.16590813892329467,y:.43401753680148847},{x:.1630836262780146,y:.43270367241359486},{x:.16018787852971583,y:.4315553012665589},{x:.15909238677042803,y:.43084708753997614},{x:.15790960896480868,y:.43029690071741367},{x:.15539569076452509,y:.4284572467838155},{x:.15277962009410193,y:.4267660089056696},{x:.07398562009410191,y:.3640750089056696},{x:.07334669706368892,y:.36345515994886657},{x:.07261876409580822,y:.3629427646304707},{x:.07018582297292754,y:.3603886489381779},{x:.067654053855944,y:.3579324619307791},{x:.06714833408498834,y:.3571998754981266},{x:.06653435151263618,y:.35655531303498644},{x:.06464644192410274,y:.3535756306924294},{x:.06264249835499126,y:.3506727149773525},{x:.06228941637067996,y:.3498555439546183},{x:.061812979199786275,y:.3491035845207174},{x:.026491979199786284,y:.27897658452071744},{x:.026206182636496978,y:.2782362375154344},{x:.02580526951533789,y:.27755135647970497},{x:.024619992088609113,y:.2741272608068926},{x:.023315086847465263,y:.27074694483548933},{x:.02317921632066564,y:.26996506724675395},{x:.022919620294515476,y:.2692151317381758},{x:.022425125568608657,y:.2656255929487299},{x:.02180476064715109,y:.2620556544171705},{x:.02182403758498896,y:.26126229336223583},{x:.021715734783549545,y:.26047612298183487},{x:.018998734783549534,y:.19034712298183487}],[{x:.10940940002433477,y:.19920410482166873},{x:.1112697837122767,y:.2472228194523932},{x:.137749803196691,y:.2997967648781603},{x:.20286290613296581,y:.3516028102138205},{x:.27392321813344717,y:.3765172983642545},{x:.30180455045059645,y:.38547932587505673},{x:.3589974388819276,y:.364332623176267},{x:.44199758150171664,y:.31850914110336725},{x:.48327372240847105,y:.27362627516037924},{x:.4919267227459848,y:.21271770175329152},{x:.46927072007314496,y:.15185335046477932},{x:.41758736799183827,y:.11304708595854013},{x:.33285528741119674,y:.08399594043457195},{x:.2715476841223936,y:.0857083982994813},{x:.19388634557978268,y:.1114782912788902},{x:.13622191473335832,y:.14977174687660325},{x:.10940940002433477,y:.19920410482166873}],[{x:.1412545940070051,y:.610603192179028},{x:.17253143522148345,y:.6595291354872365},{x:.22488466829434647,y:.6852221473073319},{x:.28911227954018853,y:.6968786351876549},{x:.37167628924266627,y:.6906052797020977},{x:.4210229734590171,y:.664118250196117},{x:.4426312796779887,y:.6255849325813003},{x:.4416638895166663,y:.5658316839266069},{x:.4243877259953326,y:.5369644730960824},{x:.3411654121752423,y:.49266641996418925},{x:.3038587353431559,y:.48067475972705925},{x:.2482367446999157,y:.5012406330709052},{x:.1958501022844071,y:.5338329684082593},{x:.1513751879049268,y:.5744167077770947},{x:.1412545940070051,y:.610603192179028}]],9:[[{x:.04617702144416433,y:.5785043710151274},{x:.046308257010348054,y:.5777836867379841},{x:.04632014162646953,y:.5770512474182771},{x:.047097404355444614,y:.5734500590446777},{x:.04775742235616295,y:.5698255492446179},{x:.06775742235616294,y:.499825549244618},{x:.06870401207934061,y:.497431122678351},{x:.06945142103699212,y:.4949672455435709},{x:.07032179921115676,y:.4933388825112154},{x:.07100061044171635,y:.4916218095236955},{x:.07239614115864691,y:.4894580616864063},{x:.07360986744638548,y:.48718733951411786},{x:.07478119941633177,y:.4857600673791044},{x:.07578195180149752,y:.48420841696912487},{x:.07757279404935197,y:.4823584994767568},{x:.07920619484660538,y:.4803681948466053},{x:.1292061948466054,y:.43036819484660543},{x:.1324047212320044,y:.4277432320802026},{x:.1355710052680468,y:.42507946670648067},{x:.13581237417673697,y:.4249466435819557},{x:.13602533951411794,y:.4247718674463855},{x:.13967451194327588,y:.422821344145996},{x:.14329963156393744,y:.42082647364918746},{x:.21329963156393744,y:.39082647364918743},{x:.21510775104315333,y:.39025382151681987},{x:.2168404136401385,y:.3894823898342746},{x:.21930272871556003,y:.3889252240779052},{x:.22170947225776405,y:.3881629808537447},{x:.22359456811709633,y:.38795407868297094},{x:.22544443694348562,y:.38753549554788497},{x:.30544443694348566,y:.37753549554788496},{x:.30933066171136914,y:.37743373006124875},{x:.3132134481214367,y:.3772411973248817},{x:.31373545479679327,y:.3773183852372503},{x:.314262956584918,y:.37730457196617717},{x:.3180943620951528,y:.37796292671622445},{x:.321940103126635,y:.37853158749346005},{x:.39912055139763536,y:.39782669956121014},{x:.3920145202755848,y:.3793136184800785},{x:.3919728818872528,y:.3791621799808353},{x:.39190347676812315,y:.3790212888743934},{x:.33928123709710245,y:.23902627390054626},{x:.29593066247424293,y:.13853176000209894},{x:.2601678276974797,y:.06104561798577861},{x:.25727396725620644,y:.05271224015242973},{x:.25606147289685455,y:.04397442167208486},{x:.2565769400976792,y:.035167952008718584},{x:.2588005597432301,y:.02663125885276897},{x:.2626468793775489,y:.018692402534786497},{x:.2679680870941297,y:.011656468850909336},{x:.274559691864592,y:.005793844786811796},{x:.2821683820142214,y:.0013298276974796769},{x:.29050175984757026,y:-.0015640327437935753},{x:.29923957832791515,y:-.002776527103145486},{x:.30804604799128144,y:-.002261059902320825},{x:.31658274114723106,y:-3744025676995222e-20},{x:.32452159746521353,y:.003808879377548882},{x:.3315575311490907,y:.009130087094129706},{x:.33742015521318824,y:.015721691864591977},{x:.34188417230252033,y:.023330382014221395},{x:.3778841723025203,y:.10133038201422136},{x:.3780704961344211,y:.10186693411204945},{x:.37834550457920557,y:.10236389998544072},{x:.42234550457920556,y:.2043638999854408},{x:.4226728981736059,y:.20538920106595157},{x:.42314852323187685,y:.20635471112560658},{x:.47609350933819694,y:.3472083534084579},{x:.5496013805841499,y:.5387157021808093},{x:.5512752235949963,y:.542063388202502},{x:.5520259437659378,y:.5440252139743784},{x:.5529745491659372,y:.5458993775022888},{x:.553598518494472,y:.5481347580495968},{x:.5544279630456541,y:.5503023109672317},{x:.5547815251174404,y:.5523728990468965},{x:.5553462721645,y:.554396114781092},{x:.555522150986547,y:.5567102734952235},{x:.5559127893965689,y:.5589979940959194},{x:.5558556061770612,y:.5610977729446709},{x:.5560147919588762,y:.5631922898391183},{x:.5557358213499382,y:.5654962948984841},{x:.5556726416037749,y:.5678162673625252},{x:.5552069106120301,y:.5698645436567753},{x:.5549544177082778,y:.5719498706018395},{x:.5349544177082779,y:.6619498706018395},{x:.5345092452033302,y:.663307558548854},{x:.5342480120020212,y:.6647122835522489},{x:.5331378863550271,y:.6674899313564284},{x:.5322058990004909,y:.6703323081518522},{x:.5315044085816177,y:.6715770596583215},{x:.5309741466497647,y:.6729038291953012},{x:.5293434595512297,y:.6754115305058349},{x:.5278748598680685,y:.6780174701150343},{x:.5269440094186665,y:.6791014500786302},{x:.5261650964249364,y:.6802992771399491},{x:.4861650964249363,y:.7302992771399491},{x:.4855393928217795,y:.7309407996522789},{x:.48502142797480674,y:.7316720783612058},{x:.48246447922773295,y:.7340934525762789},{x:.48000567043073006,y:.7366144244690945},{x:.4792668347133476,y:.7371215515888083},{x:.4786161570168623,y:.7377377290536072},{x:.47563595264764597,y:.7396137412876539},{x:.4727325719538572,y:.7416065836124539},{x:.4719089971645242,y:.7419598267287414},{x:.4711506117974981,y:.7424372235949962},{x:.4111506117974981,y:.7724372235949962},{x:.40814803697660645,y:.7735862009991664},{x:.4052110607504687,y:.7748937847545917},{x:.4040364518244048,y:.77515955677446},{x:.40291168903276836,y:.7755899630456542},{x:.39974265347336024,y:.7761310898824948},{x:.39660701348596056,y:.7768405731449995},{x:.3166070134859606,y:.7868395731449994},{x:.31542693671630134,y:.7868704603456931},{x:.31426350899694466,y:.7870703881908964},{x:.3110259999999998,y:.7869856499834279},{x:.3077884910030554,y:.7870703881908964},{x:.3066250632836987,y:.7868704603456931},{x:.30544498651403945,y:.7868395731449994},{x:.22544498651403946,y:.7768405731449995},{x:.22359484289355938,y:.7764219517671516},{x:.22170947225776405,y:.7762130191462554},{x:.21930299190993624,y:.775450859278766},{x:.2168409392495313,y:.7748937847545917},{x:.21510801459933976,y:.7741222619544408},{x:.21329963156393744,y:.7735495263508126},{x:.14329963156393744,y:.7435495263508126},{x:.1396745119432796,y:.741554655854006},{x:.13602533951411788,y:.7396041325536146},{x:.13581237417673678,y:.7394293564180442},{x:.1355710052680468,y:.7392965332935194},{x:.13240472123200803,y:.7366327679198006},{x:.12920619484660534,y:.7340078051533947},{x:.07920619484660535,y:.6840078051533947},{x:.07757279404935197,y:.6820175005232432},{x:.0757819518014975,y:.6801675830308751},{x:.07478119941633177,y:.6786159326208956},{x:.07360986744638545,y:.6771886604858821},{x:.07239614115864686,y:.6749179383135936},{x:.07100061044171635,y:.6727541904763045},{x:.07032179921115676,y:.6710371174887846},{x:.06945142103699209,y:.669408754456429},{x:.06870401207934061,y:.666944877321649},{x:.06775742235616294,y:.664550450755382},{x:.04775742235616295,y:.5945504507553819},{x:.0470974043554446,y:.590925940955322},{x:.04632014162646953,y:.5873247525817227},{x:.046308257010348054,y:.5865923132620157},{x:.04617702144416433,y:.5858716289848723},{x:.0462367922883029,y:.5821879999999999},{x:.04617702144416433,y:.5785043710151274}],[{x:.13782670643108905,y:.5821879999999999},{x:.15109114488080894,y:.6286135345740196},{x:.18671787059591238,y:.6642402602891231},{x:.24291204200407931,y:.688323476606909},{x:.311026,y:.696836869931924},{x:.377796042530131,y:.6884914492411893},{x:.4220611757635009,y:.6663588826245044},{x:.4493630453483168,y:.6322315456434845},{x:.46363172164975686,y:.5680225022870041},{x:.4540425513192988,y:.5488441616260881},{x:.42235697647551157,y:.5171585867823008},{x:.37255000597497323,y:.48395393978194207},{x:.30826669745594837,y:.4678831126521858},{x:.24291230161158606,y:.4760524121327311},{x:.1867178705959123,y:.500135739710877},{x:.15109114488080894,y:.5357624654259804},{x:.13782670643108905,y:.5821879999999999}]],\"!\":[[{x:.20646600000000004,y:.05103000000000002},{x:.20733066238185466,y:.04225093550927423},{x:.20989142103699213,y:.03380924554357098},{x:.2140498674463855,y:.026029339514117927},{x:.21964619484660539,y:.019210194846605383},{x:.22646533951411793,y:.013613867446385479},{x:.23424524554357098,y:.009455421036992116},{x:.24268693550927425,y:.006894662381854655},{x:.251466,y:.0060300000000000215},{x:.350587,y:.0060300000000000215},{x:.3593660644907258,y:.006894662381854655},{x:.36780775445642905,y:.009455421036992116},{x:.3755876604858821,y:.013613867446385479},{x:.38240680515339465,y:.019210194846605383},{x:.3880031325536145,y:.026029339514117927},{x:.3921615789630079,y:.03380924554357098},{x:.39472233761814535,y:.04225093550927425},{x:.39558699999999997,y:.05103000000000002},{x:.39472233761814535,y:.05980906449072579},{x:.3921615789630079,y:.06825075445642906},{x:.3880031325536145,y:.07603066048588211},{x:.38240680515339465,y:.08284980515339466},{x:.3755876604858821,y:.08844613255361455},{x:.36780775445642905,y:.09260457896300792},{x:.3593660644907258,y:.09516533761814538},{x:.350587,y:.09603000000000002},{x:.251466,y:.09603000000000002},{x:.24268693550927425,y:.09516533761814538},{x:.23424524554357098,y:.09260457896300792},{x:.22646533951411793,y:.08844613255361455},{x:.21964619484660539,y:.08284980515339466},{x:.2140498674463855,y:.07603066048588211},{x:.20989142103699213,y:.06825075445642906},{x:.20733066238185466,y:.05980906449072579},{x:.20646600000000004,y:.05103000000000002}],[{x:.25602600000000003,y:.25043400000000005},{x:.25689066238185465,y:.24165493550927428},{x:.2594514210369921,y:.233213245543571},{x:.2636098674463855,y:.22543333951411795},{x:.26920619484660535,y:.2186141948466054},{x:.27602533951411795,y:.2130178674463855},{x:.283805245543571,y:.20885942103699215},{x:.2922469355092743,y:.20629866238185468},{x:.301026,y:.20543400000000006},{x:.3098050644907258,y:.20629866238185468},{x:.3182467544564291,y:.20885942103699215},{x:.32602666048588214,y:.2130178674463855},{x:.3328458051533947,y:.2186141948466054},{x:.33844213255361455,y:.22543333951411795},{x:.34260057896300794,y:.233213245543571},{x:.3451613376181454,y:.24165493550927428},{x:.346026,y:.25043400000000005},{x:.346026,y:.729004},{x:.3451613376181454,y:.7377830644907257},{x:.34260057896300794,y:.746224754456429},{x:.33844213255361455,y:.7540046604858821},{x:.3328458051533947,y:.7608238051533946},{x:.32602666048588214,y:.7664201325536145},{x:.3182467544564291,y:.7705785789630079},{x:.3098050644907258,y:.7731393376181454},{x:.301026,y:.774004},{x:.2922469355092743,y:.7731393376181454},{x:.283805245543571,y:.7705785789630079},{x:.27602533951411795,y:.7664201325536145},{x:.26920619484660535,y:.7608238051533946},{x:.2636098674463855,y:.7540046604858821},{x:.2594514210369921,y:.746224754456429},{x:.25689066238185465,y:.7377830644907257},{x:.25602600000000003,y:.729004},{x:.25602600000000003,y:.25043400000000005}]],'\"':[[{x:.12004,y:.476978},{x:.12090466238185463,y:.4681989355092742},{x:.1234654210369921,y:.459757245543571},{x:.12762386744638546,y:.4519773395141179},{x:.13322019484660536,y:.44515819484660535},{x:.1400393395141179,y:.4395618674463855},{x:.14781924554357095,y:.4354034210369921},{x:.15626093550927422,y:.43284266238185465},{x:.16504,y:.43197800000000003},{x:.17381906449072576,y:.43284266238185465},{x:.18226075445642903,y:.4354034210369921},{x:.19004066048588208,y:.4395618674463855},{x:.19685980515339463,y:.44515819484660535},{x:.20245613255361453,y:.4519773395141179},{x:.2066145789630079,y:.459757245543571},{x:.20917533761814536,y:.4681989355092742},{x:.21004,y:.476978},{x:.21004,y:.729004},{x:.20917533761814536,y:.7377830644907257},{x:.2066145789630079,y:.746224754456429},{x:.20245613255361453,y:.7540046604858821},{x:.19685980515339463,y:.7608238051533946},{x:.19004066048588208,y:.7664201325536145},{x:.18226075445642903,y:.7705785789630079},{x:.17381906449072576,y:.7731393376181454},{x:.16504,y:.774004},{x:.15626093550927422,y:.7731393376181454},{x:.14781924554357095,y:.7705785789630079},{x:.1400393395141179,y:.7664201325536145},{x:.13322019484660536,y:.7608238051533946},{x:.12762386744638546,y:.7540046604858821},{x:.1234654210369921,y:.746224754456429},{x:.12090466238185463,y:.7377830644907257},{x:.12004,y:.729004},{x:.12004,y:.476978}],[{x:.392013,y:.476978},{x:.3928776623818546,y:.4681989355092742},{x:.39543842103699206,y:.459757245543571},{x:.39959686744638545,y:.4519773395141179},{x:.4051931948466053,y:.44515819484660535},{x:.4120123395141179,y:.4395618674463855},{x:.419792245543571,y:.4354034210369921},{x:.42823393550927424,y:.43284266238185465},{x:.437013,y:.43197800000000003},{x:.4457920644907258,y:.43284266238185465},{x:.45423375445642905,y:.4354034210369921},{x:.4620136604858821,y:.4395618674463855},{x:.46883280515339465,y:.44515819484660535},{x:.4744291325536145,y:.4519773395141179},{x:.4785875789630079,y:.459757245543571},{x:.48114833761814535,y:.4681989355092742},{x:.48201299999999997,y:.476978},{x:.48201299999999997,y:.729004},{x:.48114833761814535,y:.7377830644907257},{x:.4785875789630079,y:.746224754456429},{x:.4744291325536145,y:.7540046604858821},{x:.46883280515339465,y:.7608238051533946},{x:.4620136604858821,y:.7664201325536145},{x:.45423375445642905,y:.7705785789630079},{x:.4457920644907258,y:.7731393376181454},{x:.437013,y:.774004},{x:.42823393550927424,y:.7731393376181454},{x:.419792245543571,y:.7705785789630079},{x:.4120123395141179,y:.7664201325536145},{x:.4051931948466053,y:.7608238051533946},{x:.39959686744638545,y:.7540046604858821},{x:.39543842103699206,y:.746224754456429},{x:.3928776623818546,y:.7377830644907257},{x:.392013,y:.729004},{x:.392013,y:.476978}]],\"#\":[[{x:-.04343582416242281,y:.17932596542766122},{x:-.043155600373289436,y:.1705088746946064},{x:-.04116063193533153,y:.16191587083690517},{x:-.037527584366828626,y:.15387717817379684},{x:-.03239607364840174,y:.1467017191561739},{x:-.025963300859175642,y:.14066524265003977},{x:-.01847647384989975,y:.13599972706223024},{x:-.010223307183879607,y:.1328844655403335},{x:-.0015209654276611437,y:.13143917583757725},{x:.007296125305393629,y:.13171939962671061},{x:.11028337660265361,y:.14517801654688708},{x:.10171449233133083,y:.05447855391336175},{x:.10174959121806887,y:.04565708110917159},{x:.10350499965956604,y:.03701195788446062},{x:.10691325829386003,y:.02887541147651351},{x:.11184338965300836,y:.02156012480075985},{x:.11810593155372849,y:.015347220221688843},{x:.1254602180228497,y:.01047545617803717},{x:.13362362795569505,y:.007132051829885598},{x:.14228244608663826,y:.005445492331330834},{x:.15110391889082841,y:.0054805912180688685},{x:.1597490421155394,y:.0072359996595660475},{x:.1678855885234865,y:.010644258293860037},{x:.17520087519924016,y:.015574389653008364},{x:.18141377977831116,y:.02183693155372849},{x:.18628554382196283,y:.029191218022849703},{x:.18962894817011441,y:.03735462795569504},{x:.19131550766866917,y:.04601344608663827},{x:.2018142041879224,y:.1571394809935999},{x:.36570083500909,y:.17855657247605955},{x:.35397849233133083,y:.05447855391336175},{x:.35401359121806886,y:.04565708110917159},{x:.35576899965956604,y:.03701195788446062},{x:.35917725829386,y:.02887541147651351},{x:.3641073896530084,y:.02156012480075985},{x:.3703699315537285,y:.015347220221688843},{x:.37772421802284967,y:.01047545617803717},{x:.38588762795569503,y:.007132051829885598},{x:.39454644608663825,y:.005445492331330834},{x:.4033679188908284,y:.0054805912180688685},{x:.4120130421155394,y:.0072359996595660475},{x:.4201495885234865,y:.010644258293860037},{x:.42746487519924015,y:.015574389653008364},{x:.4336777797783111,y:.02183693155372849},{x:.4385495438219628,y:.029191218022849703},{x:.44189294817011443,y:.03735462795569504},{x:.44357950766866916,y:.04601344608663827},{x:.45723166259435877,y:.19051803692277236},{x:.5748861253053936,y:.20589339962671058},{x:.5834791291630949,y:.20788836806466848},{x:.5915178218262032,y:.2115214156331714},{x:.5986932808438261,y:.21665292635159827},{x:.6047297573499603,y:.22308569914082438},{x:.6093952729377698,y:.23057252615010027},{x:.6125105344596665,y:.2388256928161204},{x:.6139558241624228,y:.24752803457233888},{x:.6136756003732894,y:.25634512530539366},{x:.6116806319353315,y:.2649381291630949},{x:.6080475843668286,y:.2729768218262032},{x:.6029160736484017,y:.2801522808438262},{x:.5964833008591757,y:.2861887573499603},{x:.5889964738498997,y:.29085427293776983},{x:.5807433071838796,y:.29396953445966656},{x:.5720409654276611,y:.2954148241624228},{x:.5632238746946063,y:.2951346003732895},{x:.4659139564059225,y:.28241791072205386},{x:.48521785958998953,y:.48674482074743597},{x:.6064180682130128,y:.5025833921657807},{x:.6150110746232834,y:.5045783496089273},{x:.6230497719348954,y:.5082113868918628},{x:.6302252375183169,y:.5133428884292346},{x:.6362617222552247,y:.5197756534947408},{x:.640927247422479,y:.5272624745344501},{x:.6440425195043586,y:.5355156372144642},{x:.645487820341822,y:.544217977121417},{x:.6452076078342193,y:.5530350682130128},{x:.6432126503910727,y:.5616280746232835},{x:.6395796131081373,y:.5696667719348955},{x:.6344481115707654,y:.576842237518317},{x:.6280153465052593,y:.5828787222552247},{x:.6205285254655499,y:.587544247422479},{x:.6122753627855358,y:.5906595195043587},{x:.603573022878583,y:.592104820341822},{x:.5947559317869872,y:.5918246078342193},{x:.493900150869001,y:.5786446677402959},{x:.5066445076686692,y:.7135404460866382},{x:.5066094087819312,y:.7223619188908285},{x:.5048540003404339,y:.7310070421155394},{x:.50144574170614,y:.7391435885234865},{x:.4965156103469916,y:.7464588751992401},{x:.4902530684462715,y:.7526717797783111},{x:.4828987819771503,y:.7575435438219629},{x:.47473537204430494,y:.7608869481701144},{x:.4660765539133617,y:.7625735076686692},{x:.45725508110917157,y:.7625384087819311},{x:.44860995788446056,y:.760783000340434},{x:.4404734114765135,y:.7573747417061399},{x:.43315812480075977,y:.7524446103469916},{x:.4269452202216888,y:.7461820684462716},{x:.42207345617803715,y:.7388277819771503},{x:.41873005182988554,y:.730664372044305},{x:.4170434923313308,y:.7220055539133617},{x:.40236933467780645,y:.5666833238969633},{x:.23848272425781383,y:.5452664483557571},{x:.25438050766866915,y:.7135404460866382},{x:.2543454087819311,y:.7223619188908285},{x:.25259000034043394,y:.7310070421155394},{x:.24918174170614,y:.7391435885234865},{x:.2442516103469916,y:.7464588751992401},{x:.23798906844627152,y:.7526717797783111},{x:.2306347819771503,y:.7575435438219629},{x:.22247137204430495,y:.7608869481701144},{x:.21381255391336174,y:.7625735076686692},{x:.20499108110917158,y:.7625384087819311},{x:.1963459578844606,y:.760783000340434},{x:.18820941147651346,y:.7573747417061399},{x:.1808941248007598,y:.7524446103469916},{x:.17468122022168883,y:.7461820684462716},{x:.16980945617803714,y:.7388277819771503},{x:.16646605182988555,y:.730664372044305},{x:.16477949233133082,y:.7220055539133617},{x:.14695190806661926,y:.5333051045124245},{x:.02716793178698713,y:.5176516078342193},{x:.01857492537671658,y:.5156566503910727},{x:.01053622806510461,y:.5120236131081373},{x:.0033607624816830023,y:.5068921115707654},{x:-.0026757222552247634,y:.5004593465052593},{x:-.0073412474224789775,y:.4929725254655499},{x:-.010456519504358698,y:.48471936278553585},{x:-.011901820341822023,y:.476017022878583},{x:-.011621607834219276,y:.4671999317869871},{x:-.00962665039107264,y:.45860692537671655},{x:-.005993613108137223,y:.45056822806510455},{x:-.0008621115707654614,y:.44339276248168297},{x:.005570653494740684,y:.4373562777447752},{x:.013057474534450029,y:.432690752577521},{x:.02131063721446411,y:.42957548049564126},{x:.03001297712141698,y:.42813017965817796},{x:.03883006821301287,y:.4284103921657807},{x:.13826961678760774,y:.4414052575195645},{x:.1189656704142173,y:.23707789034616855},{x:-.004366125305393629,y:.2209606003732895},{x:-.012959129163094893,y:.21896563193533158},{x:-.0209978218262032,y:.2153325843668287},{x:-.028173280843826164,y:.2102010736484018},{x:-.034209757349960276,y:.2037683008591757},{x:-.03887527293776982,y:.1962814738498998},{x:-.041990534459666565,y:.18802830718387967},{x:-.04343582416242281,y:.17932596542766122}],[{x:.2104964979994861,y:.24903935479288136},{x:.22980043297880234,y:.4533666013628972},{x:.39368704339879496,y:.4747834769041034},{x:.3743831288206537,y:.27045644627534104},{x:.2104964979994861,y:.24903935479288136}]],$:[[{x:.030517420733400163,y:.165091535964518},{x:.03086584266660257,y:.1562768767808978},{x:.032927224468652025,y:.14769956254897784},{x:.06950822446865203,y:.04228956254897785},{x:.0704003940010533,y:.04035550336969822},{x:.07109145007989037,y:.03834080913001754},{x:.07224350295250744,y:.03635998272422403},{x:.073203348392932,y:.034279214644477654},{x:.0744556913660193,y:.03255637151138059},{x:.07552651634405921,y:.03071520740954014},{x:.07704287290513265,y:.02899719639360223},{x:.07839021289928177,y:.02714366624511229},{x:.07995460247492134,y:.0256982470536212},{x:.08136404514878363,y:.02410136799351792},{x:.08318643266605391,y:.022712194567306505},{x:.08486948969354943,y:.02115713247420773},{x:.0866858072576693,y:.0200446838732511},{x:.08837970353582197,y:.01875345702162473},{x:.17373770353582196,y:-.03394954297837521},{x:.17475219432147746,y:-.03444582628601368},{x:.17568351020275566,y:-.03508468417701866},{x:.17870701554383397,y:-.03638050305696308},{x:.18166188368778688,y:-.037826008286632525},{x:.18275370138776084,y:-.03811483831561822},{x:.18379175728720304,y:-.038559730016208084},{x:.18700996854351615,y:-.03924079346911771},{x:.19019006380536974,y:-.04008205754340442},{x:.19131725047775072,y:-.0401523347177012},{x:.19242215448928965,y:-.04038616328932037},{x:.262121,y:-.048110644533924524},{x:.262121,y:-.08350199999999997},{x:.2629856623818546,y:-.09228106449072573},{x:.26554642103699205,y:-.100722754456429},{x:.26970486744638544,y:-.10850266048588206},{x:.2753011948466053,y:-.1153218051533946},{x:.2821203395141179,y:-.1209181325536145},{x:.28990024554357097,y:-.12507657896300786},{x:.29834193550927424,y:-.12763733761814533},{x:.307121,y:-.12850199999999995},{x:.3159000644907258,y:-.12763733761814533},{x:.32434175445642904,y:-.12507657896300786},{x:.3321216604858821,y:-.1209181325536145},{x:.33894080515339464,y:-.1153218051533946},{x:.3445371325536145,y:-.10850266048588206},{x:.3486955789630079,y:-.100722754456429},{x:.35125633761814534,y:-.09228106449072573},{x:.35212099999999996,y:-.08350199999999997},{x:.35212099999999996,y:-.05796857189257534},{x:.3537665284657676,y:-.05798865052825875},{x:.3565834008023822,y:-.05822276473922817},{x:.35816715833059226,y:-.05804234673933715},{x:.35976104048452195,y:-.05806179518994546},{x:.3625398346041163,y:-.05754422155704884},{x:.36534825494544937,y:-.05722429279787242},{x:.3668663832111493,y:-.05673836571308556},{x:.3684334335709129,y:-.056446489484502926},{x:.37105786033397337,y:-.05539674504422484},{x:.37374990266128777,y:-.05453506799769968},{x:.49568890266128773,y:-.0018330679976996528},{x:.4995437197067623,y:.0003036028478311586},{x:.5033988605511543,y:.0024396894158641644},{x:.5034014762743246,y:.0024419030290919073},{x:.503404473339876,y:.00244356426035406},{x:.5067683773534712,y:.005291217073469004},{x:.510132712931077,y:.008138360005776092},{x:.5101348465393426,y:.008141041387321917},{x:.510137461926978,y:.00814325539697476},{x:.5128811799638975,y:.011592456477016289},{x:.5156254207452635,y:.015041241667436683},{x:.5156269902452553,y:.015044287773311453},{x:.5156291234470946,y:.015046969478205698},{x:.5176472159618929,y:.018965167962033513},{x:.519665902312761,y:.02288306052976895},{x:.5684429023127611,y:.1458620605297689},{x:.5688122064775901,y:.14714915498994666},{x:.5693537919217377,y:.14837377040805427},{x:.5700262192706007,y:.15138021786244946},{x:.5708758841928585,y:.15434145989163614},{x:.5709869926090132,y:.15567587086110493},{x:.5712792610244494,y:.1569826137160382},{x:.5713522390683521,y:.16006247719363653},{x:.5716078682563359,y:.16313258119086366},{x:.5714565110896938,y:.16446302800441426},{x:.5714882307651191,y:.1658016809010868},{x:.5709589549987614,y:.16883660297565092},{x:.5706107247661352,y:.1718975865660398},{x:.570202718587728,y:.17317294089875004},{x:.5699726705538047,y:.1744920601570685},{x:.5455836705538047,y:.26233106015706853},{x:.5448796820390573,y:.26415145628779163},{x:.5443792359109676,y:.2660379863232085},{x:.5432925447356423,y:.2682555269445408},{x:.5424018225194911,y:.2705587850827968},{x:.5413562192793141,y:.27220686146627543},{x:.5404973453311464,y:.27395951015977},{x:.5389989139081434,y:.2759224384285429},{x:.5376759632977357,y:.2780076688235372},{x:.5363289272782685,y:.2794200908086057},{x:.5351446315541886,y:.28097150485378414},{x:.5332920437627642,y:.28260438653745124},{x:.5315877050081386,y:.28439145495451523},{x:.529991002048182,y:.2855139439563835},{x:.528526796368706,y:.2868045033815319},{x:.4553637963687061,y:.3395095033815319},{x:.4552094954443409,y:.33959910378534747},{x:.4550747122553104,y:.3397160246969866},{x:.45139660000367776,y:.341813199213456},{x:.44773515946955245,y:.3439393468807752},{x:.44756634322254935,y:.3439971230209339},{x:.4474113397164003,y:.34408550243429054},{x:.4433947629085852,y:.34542481622689836},{x:.43938888509457313,y:.34679579895012297},{x:.43921204103863115,y:.34681953052195974},{x:.439042773913178,y:.34687597206574233},{x:.35212099999999996,y:.3666493043587998},{x:.35212099999999996,y:.6320956693586206},{x:.3838005126074005,y:.6288356018928482},{x:.4577579663937751,y:.5527249728659002},{x:.46449612147708186,y:.5470313904751531},{x:.47221556762189953,y:.5427617575185425},{x:.48061965084199804,y:.5400801535961528},{x:.48938540693229315,y:.5390896312428609},{x:.49817597280212744,y:.5398282556772123},{x:.5066535319349293,y:.5422676419764202},{x:.5144922964874953,y:.5463140458930298},{x:.5213910271340998,y:.551811966393775},{x:.5270846095248467,y:.5585501214770818},{x:.5313542424814575,y:.5662695676218995},{x:.534035846403847,y:.5746736508419981},{x:.535026368757139,y:.5834394069322931},{x:.5342877443227877,y:.5922299728021274},{x:.5318483580235798,y:.6007075319349293},{x:.5278019541069703,y:.6085462964874953},{x:.5223040336062249,y:.6154450271340998},{x:.4369490336062249,y:.7032850271340998},{x:.435089451582588,y:.7048563301588934},{x:.43337550685970433,y:.706585327551969},{x:.43172842132509603,y:.7076963215886295},{x:.4302108785229181,y:.7089786095248467},{x:.4280804818333404,y:.7101569339468108},{x:.4260621594195314,y:.7115183351118896},{x:.4242299779872524,y:.7122866512623272},{x:.42249143237810044,y:.7132482424814575},{x:.4201720909726226,y:.7139883059538676},{x:.4179269538663623,y:.7149297930076584},{x:.4159800862413552,y:.7153259053130885},{x:.41408734915800194,y:.715929846403847},{x:.4116681940261354,y:.716203208702491},{x:.4092825215873294,y:.7166886008255086},{x:.35212099999999996,y:.7225709645831306},{x:.35212099999999996,y:.7597659999999999},{x:.35125633761814534,y:.7685450644907257},{x:.3486955789630079,y:.776986754456429},{x:.3445371325536145,y:.7847666604858821},{x:.33894080515339464,y:.7915858051533946},{x:.3321216604858821,y:.7971821325536145},{x:.32434175445642904,y:.8013405789630078},{x:.3159000644907258,y:.8039013376181453},{x:.307121,y:.804766},{x:.29834193550927424,y:.8039013376181453},{x:.28990024554357097,y:.8013405789630078},{x:.2821203395141179,y:.7971821325536145},{x:.2753011948466053,y:.7915858051533946},{x:.26970486744638544,y:.7847666604858821},{x:.26554642103699205,y:.776986754456429},{x:.2629856623818546,y:.7685450644907257},{x:.262121,y:.7597659999999999},{x:.262121,y:.7318326623736131},{x:.23856652158732947,y:.7342566008255086},{x:.23743405616423266,y:.7342615520061975},{x:.23631438427367413,y:.7344313675125375},{x:.2330314335362298,y:.7342808004350606},{x:.22974506326706257,y:.734295168567351},{x:.22863339192208898,y:.7340790915684273},{x:.22750210485113245,y:.7340272069677483},{x:.2243116092711877,y:.7332390610779145},{x:.22108558260167874,y:.7326120140964958},{x:.22003742624118275,y:.7321832126358507},{x:.21893799871753236,y:.7319116218242595},{x:.21596256725097532,y:.7305161851266182},{x:.21292085857685591,y:.729271820095334},{x:.21197649726195836,y:.7286467727726252},{x:.21095117966878213,y:.7281659128327016},{x:.2083051564782311,y:.7262168111769735},{x:.20556465695803808,y:.7244029483461277},{x:.204760381964467,y:.7236056753794367},{x:.20384857668186554,y:.7229340254890024},{x:.10629557668186554,y:.6350940254890024},{x:.10393291169686979,y:.6325042238563513},{x:.10146752815288923,y:.6300120075116347},{x:.10096488682836192,y:.6292508655939548},{x:.10035013880638408,y:.6285770182897039},{x:.09853811700104832,y:.6255760458964971},{x:.09660631239978806,y:.6226507443205297},{x:.09626182060918942,y:.6218061670735107},{x:.09579034588565258,y:.6210253361666956},{x:.09459860224176168,y:.6177285186990383},{x:.0932746147506803,y:.6144825495908574},{x:.056695614750680294,y:.49150554959085735},{x:.05654965816703397,y:.490750439567249},{x:.05628361804350595,y:.49002883224693095},{x:.05571374572525952,y:.48642582571377374},{x:.055021470477783566,y:.4828443224653027},{x:.055025633066628665,y:.4820752469521588},{x:.05490548343396577,y:.4813156032607913},{x:.055049472757300266,y:.47767065091379934},{x:.05506921600663437,y:.4740229090450286},{x:.05522333780201598,y:.4732694231830167},{x:.05525369594322076,y:.472500935801646},{x:.05610601347919053,y:.46895411111540136},{x:.056837016503334954,y:.46538031130067065},{x:.05713517469108906,y:.46467137112890816},{x:.05731487395982006,y:.46392357259662753},{x:.08169987395982006,y:.39365157259662753},{x:.08192222202041206,y:.3931695328553223},{x:.08205835369770847,y:.3926564352635495},{x:.08376780756696771,y:.3891683934837906},{x:.08539480756850773,y:.3856411369034641},{x:.08570692456181836,y:.38521173737536313},{x:.08594054088151196,y:.3847350567827023},{x:.08829763126802886,y:.38164753465350854},{x:.09058150254284453,y:.37850546527353984},{x:.0909713939878581,y:.378145207541698},{x:.09129351720579659,y:.37772326251599964},{x:.09420766244788897,y:.3751549117812935},{x:.09706063710369874,y:.372518777565862},{x:.09751331969083687,y:.37224150613287915},{x:.09791157079240381,y:.3718905117848512},{x:.17107757079240382,y:.3191875117848513},{x:.17123114354048857,y:.3190983419119289},{x:.17136528774468962,y:.3189819753030134},{x:.17504412834709762,y:.3168843854977816},{x:.17870637355344754,y:.314757953928811},{x:.1788743916234626,y:.3147004579868701},{x:.17902866028359976,y:.31461249756570947},{x:.183046032465951,y:.31327291855818423},{x:.1870527548771027,y:.3119018143721617},{x:.18722876142884332,y:.31187820189800686},{x:.18739722608682208,y:.3118220279342577},{x:.262121,y:.2948235482063542},{x:.262121,y:.04244038202745839},{x:.212402420161311,y:.04795051974434915},{x:.14928483997433578,y:.08692151049617265},{x:.11795277553134796,y:.17720643745102208},{x:.114257651607068,y:.18521678535552225},{x:.10907078710071823,y:.1923523337548876},{x:.10259151030645056,y:.1983388675257922},{x:.09506881619784838,y:.20294632753270694},{x:.08679179769072982,y:.20599765167145945},{x:.07807853596451803,y:.20737557926659977},{x:.06926387678089782,y:.20702715733339738},{x:.0606865625489779,y:.20496577553134793},{x:.052676214644477706,y:.20127065160706795},{x:.04554066624511235,y:.1960837871007182},{x:.039554132474207776,y:.18960451030645054},{x:.034946672467293015,y:.18208181619784836},{x:.03189534832854049,y:.1738047976907298},{x:.030517420733400163,y:.165091535964518}],[{x:.14709211773983194,y:.4797371545422716},{x:.17592903295677773,y:.5766856037244347},{x:.24922570721126042,y:.6426843927572041},{x:.262121,y:.6413573671491031},{x:.262121,y:.3871228845247169},{x:.21626819752335621,y:.3975536737173561},{x:.16206100150816494,y:.4366002507010456},{x:.14709211773983194,y:.4797371545422716}],[{x:.35212099999999996,y:.034163101195078524},{x:.35212099999999996,y:.2743499680404371},{x:.4101709471377665,y:.26114452085874473},{x:.4630938273127818,y:.2230200535785049},{x:.47920731446793274,y:.1649859973145621},{x:.44287681685863156,y:.07338773859643172},{x:.35212099999999996,y:.034163101195078524}]],\"'\":[[{x:.25602600000000003,y:.476978},{x:.25689066238185465,y:.4681989355092742},{x:.2594514210369921,y:.459757245543571},{x:.2636098674463855,y:.4519773395141179},{x:.26920619484660535,y:.44515819484660535},{x:.27602533951411795,y:.4395618674463855},{x:.283805245543571,y:.4354034210369921},{x:.2922469355092743,y:.43284266238185465},{x:.301026,y:.43197800000000003},{x:.3098050644907258,y:.43284266238185465},{x:.3182467544564291,y:.4354034210369921},{x:.32602666048588214,y:.4395618674463855},{x:.3328458051533947,y:.44515819484660535},{x:.33844213255361455,y:.4519773395141179},{x:.34260057896300794,y:.459757245543571},{x:.3451613376181454,y:.4681989355092742},{x:.346026,y:.476978},{x:.346026,y:.729004},{x:.3451613376181454,y:.7377830644907257},{x:.34260057896300794,y:.746224754456429},{x:.33844213255361455,y:.7540046604858821},{x:.3328458051533947,y:.7608238051533946},{x:.32602666048588214,y:.7664201325536145},{x:.3182467544564291,y:.7705785789630079},{x:.3098050644907258,y:.7731393376181454},{x:.301026,y:.774004},{x:.2922469355092743,y:.7731393376181454},{x:.283805245543571,y:.7705785789630079},{x:.27602533951411795,y:.7664201325536145},{x:.26920619484660535,y:.7608238051533946},{x:.2636098674463855,y:.7540046604858821},{x:.2594514210369921,y:.746224754456429},{x:.25689066238185465,y:.7377830644907257},{x:.25602600000000003,y:.729004},{x:.25602600000000003,y:.476978}]],\"(\":[[{x:.14398102142772873,y:.343473372436119},{x:.14438344127795402,y:.34024506484177663},{x:.14461855620935057,y:.33700027938992067},{x:.15480555620935058,y:.27783527938992064},{x:.15553530200183258,y:.27518493680242373},{x:.1560666158259812,y:.2724877993619115},{x:.1764416158259812,y:.20487079936191147},{x:.17757136816824137,y:.2021290142392397},{x:.17852197521392682,y:.19932008699588913},{x:.2090839752139268,y:.13170208699588917},{x:.21040800505224358,y:.12940389577393302},{x:.21154775445201235,y:.12700896170152925},{x:.25229575445201236,y:.05939296170152925},{x:.2531150427152032,y:.05829379345186112},{x:.2537782786760274,y:.05709399256856861},{x:.29452927867602746,y:-.0020700074314313824},{x:.29560111146026063,y:-.0033391000809501682},{x:.29650963843516415,y:-.004729783512322571},{x:.3372576384351641,y:-.05544378351232261},{x:.3386866074193021,y:-.05690267270426387},{x:.3399537097957662,y:-.05850416001284604},{x:.38070370979576623,y:-.10073716001284601},{x:.38742176905533504,y:-.10645444032360908},{x:.3951261287468799,y:-.11075123635207199},{x:.40352071464810957,y:-.11346242463653189},{x:.41228292753057777,y:-.11448381573166892},{x:.42107604046711683,y:-.11377615815049966},{x:.4295621390588101,y:-.11136664677700951},{x:.4374151072958377,y:-.10734787778201216},{x:.444333160012846,y:-.10187429020423372},{x:.4500504403236091,y:-.09515623094466494},{x:.45434723635207197,y:-.08745187125312004},{x:.4570584246365319,y:-.07905728535189037},{x:.45807981573166895,y:-.07029507246942218},{x:.4573721581504997,y:-.06150195953288313},{x:.45496264677700954,y:-.053015860941189874},{x:.45094387778201217,y:-.04516289270416226},{x:.44547029020423373,y:-.03824483998715393},{x:.4061377413616867,y:.0025191240684850026},{x:.3677075745656829,y:.050348403515145926},{x:.3286739379437331,y:.10701906379590062},{x:.2900025757951927,y:.1711891536907596},{x:.2617573982317254,y:.23368121626802973},{x:.24303344075060918,y:.2958190240226623},{x:.23462816944303005,y:.34463593546989096},{x:.24303340667749923,y:.39345182392970596},{x:.26175739639474455,y:.45558881969516635},{x:.2900026404789191,y:.5180819536434618},{x:.328674029726828,y:.5822520885061939},{x:.36770768599197223,y:.6389237351633864},{x:.4061420841180472,y:.6867582808236831},{x:.4454798975405431,y:.7275528000242046},{x:.45095135740921277,y:.7344725356602282},{x:.45496771125722263,y:.7423267393839987},{x:.45737461285859093,y:.7508135785511003},{x:.458079566334583,y:.759606908691815},{x:.4570554807184589,y:.768368807060192},{x:.4543417110461325,y:.7767625588156633},{x:.4500425459642118,y:.7844655967855365},{x:.4443231999757953,y:.791181897540543},{x:.4374034643397718,y:.7966533574092127},{x:.4295492606160011,y:.8006697112572226},{x:.42106242144889966,y:.8030766128585909},{x:.41226909130818484,y:.803781566334583},{x:.403507192939808,y:.8027574807184589},{x:.39511344118433667,y:.8000437110461325},{x:.3874104032144634,y:.7957445459642117},{x:.38069410245945684,y:.7900251999757952},{x:.33994410245945683,y:.7477661999757953},{x:.338681775527778,y:.7461697396410558},{x:.3372576384351641,y:.7447157835123226},{x:.29650963843516415,y:.6940017835123226},{x:.2956010143988682,y:.6926109515089496},{x:.29452907712829884,y:.6913417148135671},{x:.2537780771282988,y:.6321767148135672},{x:.25311493656839296,y:.6309770641401381},{x:.25229575445201236,y:.6298780382984708},{x:.21154775445201235,y:.5622620382984707},{x:.21040795156345282,y:.5598669918310725},{x:.2090838723444427,y:.5575686854051248},{x:.17852187234444272,y:.48994968540512485},{x:.17757135012625538,y:.48714095747585867},{x:.17644166886939822,y:.4843993766680373},{x:.1560666688693982,y:.4167833766680374},{x:.15553533856931018,y:.4140862136984408},{x:.15480557779123924,y:.4114358459543075},{x:.14461857779123924,y:.3522718459543075},{x:.14438345368873493,y:.3490270611669966},{x:.14398102471397584,y:.3457987547100726},{x:.14406527252602844,y:.3446360634540339},{x:.14398102142772873,y:.343473372436119}]],\")\":[[{x:.14397318426833106,y:-.07029507246942218},{x:.14499457536346808,y:-.07905728535189037},{x:.14770576364792798,y:-.08745187125312004},{x:.1520025596763909,y:-.09515623094466495},{x:.15771983998715397,y:-.10187429020423372},{x:.16463789270416226,y:-.10734787778201214},{x:.1724908609411899,y:-.11136664677700951},{x:.18097695953288315,y:-.11377615815049966},{x:.1897700724694222,y:-.11448381573166892},{x:.19853228535189038,y:-.11346242463653189},{x:.20692687125312006,y:-.11075123635207199},{x:.21463123094466496,y:-.10645444032360907},{x:.22134929020423375,y:-.10073716001284601},{x:.2620992902042337,y:-.05850416001284604},{x:.2633660586938147,y:-.05690309470300352},{x:.26479468609075496,y:-.05544462417080616},{x:.30554468609075497,y:-.004730624170806122},{x:.3064541047100432,y:-.003338648753719708},{x:.307526891803669,y:-.002068307996824087},{x:.348273891803669,y:.05709569200317591},{x:.3489362195699084,y:.058293979727073175},{x:.3497544895549002,y:.059391707275619196},{x:.39050548955490016,y:.12700770727561922},{x:.39164563057902163,y:.12940326331913213},{x:.3929700247860732,y:.13170208699588917},{x:.42353202478607316,y:.19932008699588913},{x:.4244827292530259,y:.20212930210713742},{x:.4256125601984483,y:.2048713835354543},{x:.4459865601984483,y:.27248838353545435},{x:.4465177787005257,y:.27518522990297933},{x:.4472474437906494,y:.27783527938992064},{x:.4574344437906494,y:.33700027938992067},{x:.45766955872204595,y:.3402450648417768},{x:.4580719785722712,y:.34347337243611903},{x:.45798772747397154,y:.3446360634540339},{x:.4580719752860241,y:.3457987547100726},{x:.45766954631126505,y:.34902706116699656},{x:.45743442220876074,y:.3522718459543075},{x:.44724742220876074,y:.4114358459543075},{x:.4465177421348676,y:.414085920594514},{x:.44598650715958776,y:.4167827924880124},{x:.42561250715958776,y:.4843987924880123},{x:.42448274729464536,y:.48714066960378194},{x:.42353212765555726,y:.48994968540512485},{x:.3929701276555573,y:.5575686854051248},{x:.39164568407140216,y:.5598676242877579},{x:.39050548955490016,y:.5622632927243807},{x:.3497544895549002,y:.6298792927243808},{x:.3489363257182038,y:.6309768778726063},{x:.34827409333092635,y:.6321750153799588},{x:.3075270933309263,y:.6913400153799587},{x:.3064542017711834,y:.692610500189881},{x:.30554468609075497,y:.6940026241708062},{x:.26479468609075496,y:.7447166241708062},{x:.26337089070969094,y:.7461701617493295},{x:.2621088975405431,y:.7477661999757953},{x:.2213588975405431,y:.7900251999757952},{x:.21464259678553657,y:.7957445459642117},{x:.20693955881566328,y:.8000437110461325},{x:.19854580706019195,y:.8027574807184589},{x:.1897839086918151,y:.803781566334583},{x:.1809905785511003,y:.8030766128585909},{x:.17250373938399882,y:.8006697112572226},{x:.16464953566022822,y:.7966533574092127},{x:.15772980002420467,y:.791181897540543},{x:.15201045403578817,y:.7844655967855365},{x:.14771128895386743,y:.7767625588156633},{x:.14499751928154103,y:.7683688070601918},{x:.14397343366541698,y:.759606908691815},{x:.14467838714140904,y:.7508135785511002},{x:.14708528874277732,y:.7423267393839987},{x:.1511016425907872,y:.7344725356602282},{x:.15657310245945688,y:.7275528000242046},{x:.19591129092993145,y:.6867578918874246},{x:.23434697314436972,y:.6389240958672278},{x:.27337685298529213,y:.5822523693404118},{x:.3120516621801016,y:.518081284004684},{x:.34029647741491703,y:.4555890988936643},{x:.35901954136421654,y:.39345212569273014},{x:.36742483055696995,y:.344635935469891},{x:.359019507292604,y:.29581872226323463},{x:.3402964755778617,y:.23368093707349602},{x:.3120517268674457,y:.17118982332763816},{x:.27337694476991303,y:.10701878295300266},{x:.23434708457036935,y:.05034804280413771},{x:.1959156338111051,y:.0025195128948044543},{x:.15658270979576625,y:-.03824483998715393},{x:.1511091222179878,y:-.045162892704162266},{x:.14709035322299047,y:-.053015860941189874},{x:.1446808418495003,y:-.06150195953288312},{x:.14397318426833106,y:-.07029507246942218}]],\"*\":[[{x:.03611444520266741,y:.4654782574484574},{x:.03652686631141767,y:.45666636076295464},{x:.038650478626155074,y:.4481042415682919},{x:.04240367291655979,y:.4401209373034283},{x:.04764221603086716,y:.4330232418741738},{x:.05416479369500318,y:.42708391573544136},{x:.06172074690723879,y:.42253120385992987},{x:.07001970462305517,y:.4195400644118251},{x:.0787427425515426,y:.41822544520266736},{x:.08755463923704532,y:.41863786631141764},{x:.09611675843170807,y:.42076147862615504},{x:.25602600000000003,y:.47756000598755177},{x:.25602600000000003,y:.31805799999999995},{x:.25689066238185465,y:.30927893550927416},{x:.2594514210369921,y:.30083724554357094},{x:.2636098674463855,y:.29305733951411783},{x:.26920619484660535,y:.2862381948466053},{x:.27602533951411795,y:.2806418674463854},{x:.283805245543571,y:.276483421036992},{x:.2922469355092743,y:.2739226623818546},{x:.301026,y:.27305799999999997},{x:.3098050644907258,y:.2739226623818546},{x:.3182467544564291,y:.276483421036992},{x:.32602666048588214,y:.2806418674463854},{x:.3328458051533947,y:.2862381948466053},{x:.33844213255361455,y:.29305733951411783},{x:.34260057896300794,y:.30083724554357094},{x:.3451613376181454,y:.30927893550927416},{x:.346026,y:.31805799999999995},{x:.346026,y:.47756000598755177},{x:.505935241568292,y:.42076147862615504},{x:.5144973607629547,y:.41863786631141764},{x:.5233092574484575,y:.41822544520266736},{x:.5320322953769449,y:.4195400644118251},{x:.5403312530927612,y:.42253120385992987},{x:.5478872063049969,y:.42708391573544136},{x:.5544097839691329,y:.4330232418741738},{x:.5596483270834403,y:.4401209373034283},{x:.5634015213738449,y:.4481042415682919},{x:.5655251336885824,y:.45666636076295464},{x:.5659375547973327,y:.4654782574484574},{x:.5646229355881749,y:.4742012953769448},{x:.5616317961400701,y:.4825002530927612},{x:.5570790842645587,y:.4900562063049968},{x:.5511397581258262,y:.4965787839691328},{x:.5440420626965717,y:.5018173270834402},{x:.5360587584317081,y:.5055705213738448},{x:.37146215609131306,y:.5640339630732496},{x:.47696549129035026,y:.7165911114148321},{x:.48124783600971727,y:.7243035129909579},{x:.48394328176908086,y:.732703166943666},{x:.4849482440995321,y:.7414672792821342},{x:.48422410286230105,y:.7502590500841659},{x:.48179868639903156,y:.758740616528321},{x:.47776520210421775,y:.7665860367726678},{x:.4722786545173053,y:.7734938157169785},{x:.4655498885851679,y:.7791984912903502},{x:.45783748700904214,y:.7834808360097172},{x:.449437833056334,y:.7861762817690807},{x:.4406737207178658,y:.7871812440995319},{x:.431881949915834,y:.786457102862301},{x:.4234003834716789,y:.7840316863990314},{x:.4155549632273321,y:.7799982021042177},{x:.40864718428302144,y:.7745116545173052},{x:.40294250870964976,y:.7677828885851677},{x:.301026,y:.6204122684209616},{x:.19910949129035027,y:.7677828885851677},{x:.19340481571697854,y:.7745116545173052},{x:.18649703677266788,y:.7799982021042177},{x:.17865161652832107,y:.7840316863990314},{x:.17017005008416597,y:.786457102862301},{x:.1613782792821342,y:.7871812440995319},{x:.15261416694366597,y:.7861762817690807},{x:.14421451299095783,y:.7834808360097172},{x:.13650211141483212,y:.7791984912903502},{x:.12977334548269473,y:.7734938157169785},{x:.12428679789578226,y:.7665860367726678},{x:.12025331360096844,y:.758740616528321},{x:.11782789713769894,y:.7502590500841659},{x:.11710375590046794,y:.7414672792821342},{x:.11810871823091917,y:.732703166943666},{x:.12080416399028275,y:.7243035129909579},{x:.1250865087096497,y:.7165911114148321},{x:.23058984390868703,y:.5640339630732496},{x:.06599324156829194,y:.5055705213738448},{x:.058009937303428294,y:.5018173270834402},{x:.05091224187417384,y:.4965787839691328},{x:.04497291573544139,y:.4900562063049968},{x:.04042020385992993,y:.4825002530927612},{x:.03742906441182516,y:.4742012953769448},{x:.03611444520266741,y:.4654782574484574}]],\"+\":[[{x:-.002030999999999998,y:.33155},{x:-.0011663376181453647,y:.3227709355092742},{x:.0013944210369920967,y:.314329245543571},{x:.005552867446385459,y:.3065493395141179},{x:.011149194846605363,y:.29973019484660535},{x:.017968339514117915,y:.2941338674463855},{x:.025748245543570962,y:.2899754210369921},{x:.03418993550927423,y:.28741466238185465},{x:.042969,y:.28655},{x:.256023,y:.28655},{x:.256023,y:.09133899999999995},{x:.2568876623818546,y:.08255993550927418},{x:.25944842103699206,y:.07411824554357091},{x:.26360686744638545,y:.06633833951411786},{x:.2692031948466054,y:.05951919484660531},{x:.2760223395141179,y:.053922867446385414},{x:.2838022455435709,y:.049764421036992045},{x:.2922439355092742,y:.04720366238185458},{x:.301023,y:.04633899999999995},{x:.3098020644907258,y:.04720366238185458},{x:.31824375445642905,y:.049764421036992045},{x:.3260236604858821,y:.053922867446385414},{x:.3328428051533946,y:.05951919484660531},{x:.3384391325536145,y:.06633833951411786},{x:.3425975789630079,y:.07411824554357091},{x:.34515833761814535,y:.08255993550927418},{x:.34602299999999997,y:.09133899999999995},{x:.34602299999999997,y:.28655},{x:.559083,y:.28655},{x:.5678620644907257,y:.28741466238185465},{x:.576303754456429,y:.2899754210369921},{x:.5840836604858821,y:.2941338674463855},{x:.5909028051533947,y:.29973019484660535},{x:.5964991325536145,y:.3065493395141179},{x:.6006575789630079,y:.314329245543571},{x:.6032183376181454,y:.3227709355092742},{x:.604083,y:.33155},{x:.6032183376181454,y:.3403290644907258},{x:.6006575789630079,y:.348770754456429},{x:.5964991325536145,y:.35655066048588213},{x:.5909028051533947,y:.3633698051533947},{x:.5840836604858821,y:.36896613255361455},{x:.576303754456429,y:.37312457896300794},{x:.5678620644907257,y:.3756853376181454},{x:.559083,y:.37655},{x:.34602299999999997,y:.37655},{x:.34602299999999997,y:.571777},{x:.34515833761814535,y:.5805560644907257},{x:.3425975789630079,y:.588997754456429},{x:.3384391325536145,y:.5967776604858821},{x:.3328428051533946,y:.6035968051533946},{x:.3260236604858821,y:.6091931325536145},{x:.31824375445642905,y:.6133515789630078},{x:.3098020644907258,y:.6159123376181453},{x:.301023,y:.616777},{x:.2922439355092742,y:.6159123376181453},{x:.2838022455435709,y:.6133515789630078},{x:.2760223395141179,y:.6091931325536145},{x:.2692031948466054,y:.6035968051533946},{x:.26360686744638545,y:.5967776604858821},{x:.25944842103699206,y:.588997754456429},{x:.2568876623818546,y:.5805560644907257},{x:.256023,y:.571777},{x:.256023,y:.37655},{x:.042969,y:.37655},{x:.03418993550927421,y:.3756853376181454},{x:.025748245543570934,y:.37312457896300794},{x:.017968339514117904,y:.36896613255361455},{x:.011149194846605356,y:.3633698051533947},{x:.005552867446385459,y:.35655066048588213},{x:.0013944210369920967,y:.348770754456429},{x:-.0011663376181453647,y:.3403290644907258},{x:-.002030999999999998,y:.33155}]],\",\":[[{x:.1703425796668749,y:-.03158948169003215},{x:.1707557440557006,y:-.035050650253961146},{x:.17102563140319493,y:-.03852592771911176},{x:.17127771326913271,y:-.039423300660751795},{x:.17138819577001116,y:-.0403488367651378},{x:.1724686618106471,y:-.0436628955719719},{x:.1734113563482083,y:-.04701874414557815},{x:.1738336633079298,y:-.04784969558537063},{x:.17412258605517572,y:-.048735893706360625},{x:.1758288320436127,y:-.05177548533469908},{x:.17740810654883146,y:-.054882941638058576},{x:.177984409582707,y:-.05561553857817519},{x:.17844066943717352,y:-.05642834261896521},{x:.18070712529694977,y:-.05907665726715373},{x:.18286228913625774,y:-.06181630349720979},{x:.26855428913625773,y:-.1511263034972098},{x:.27525630293239317,y:-.15686238451505874},{x:.2829485933055849,y:-.16118075031492074},{x:.2913355498506774,y:-.16391544852087458},{x:.3000948665311021,y:-.16496138621450188},{x:.3088899277191117,y:-.1642783685968051},{x:.3173827441455781,y:-.16189264365179173},{x:.3252469416380585,y:-.15789589345116858},{x:.33218030349720973,y:-.1524417108637423},{x:.3379163845150587,y:-.14573969706760687},{x:.3422347503149207,y:-.13804740669441512},{x:.3449694485208745,y:-.12966045014932262},{x:.3460153862145018,y:-.12090113346889794},{x:.34533236859680505,y:-.11210607228088836},{x:.34294664365179167,y:-.10361325585442197},{x:.33894989345116855,y:-.09574905836194152},{x:.33349571086374225,y:-.08881569650279031},{x:.277697993368333,y:-.03066214483501502},{x:.41918956700521515,y:.11679250439324337},{x:.42464400414059766,y:.12372566600271688},{x:.42864104306488354,y:.1315897167531037},{x:.43102707981377775,y:.14008244558427704},{x:.4317104203331251,y:.14887748169003212},{x:.4306648042299889,y:.15763683676513773},{x:.4279304139448243,y:.1660238937063606},{x:.4236123305628265,y:.17371634261896518},{x:.41787649560675666,y:.1804185670052151},{x:.41094333399728317,y:.18587300414059763},{x:.4030792832468963,y:.18987004306488353},{x:.39458655441572293,y:.19225607981377774},{x:.3857915183099679,y:.19293942033312508},{x:.37703216323486227,y:.19189380422998883},{x:.36864510629363945,y:.18915941394482427},{x:.3609526573810348,y:.18484133056282648},{x:.35425043299478487,y:.17910549560675662},{x:.18286343299478489,y:.000495495606756581},{x:.18070816857348473,y:-.0022440714967103576},{x:.1784416154849413,y:-.004892302932393237},{x:.17798532578947307,y:-.005705090221499034},{x:.17740899585940237,y:-.006437666002716908},{x:.1758296072680145,y:-.009545064322455634},{x:.1741232496850793,y:-.012584593305585},{x:.17383429440212667,y:-.013470780818460306},{x:.1734119569351165,y:-.014301716753103766},{x:.1724691391914766,y:-.01765753071433596},{x:.17138855147912546,y:-.02097154985067746},{x:.17127803499816427,y:-.02189708189818214},{x:.17102592018622226,y:-.022794445584277102},{x:.17075590524748027,y:-.02626971313843455},{x:.17034261378549817,y:-.029730866531102167},{x:.17041478319291342,y:-.03066017543569507},{x:.1703425796668749,y:-.03158948169003215}]],\"-\":[[{x:.12882900000000003,y:.31396500000000005},{x:.12969366238185465,y:.30518593550927425},{x:.13225442103699211,y:.29674424554357104},{x:.13641286744638548,y:.28896433951411793},{x:.14200919484660537,y:.2821451948466054},{x:.14882833951411792,y:.2765488674463855},{x:.15660824554357097,y:.2723904210369921},{x:.16504993550927424,y:.2698296623818547},{x:.173829,y:.26896500000000007},{x:.428224,y:.26896500000000007},{x:.4370030644907258,y:.2698296623818547},{x:.44544475445642906,y:.2723904210369921},{x:.4532246604858821,y:.2765488674463855},{x:.4600438051533946,y:.2821451948466054},{x:.4656401325536145,y:.28896433951411793},{x:.4697985789630079,y:.29674424554357104},{x:.47235933761814536,y:.30518593550927425},{x:.473224,y:.31396500000000005},{x:.47235933761814536,y:.32274406449072585},{x:.4697985789630079,y:.33118575445642906},{x:.4656401325536145,y:.33896566048588217},{x:.4600438051533946,y:.3457848051533947},{x:.4532246604858821,y:.3513811325536146},{x:.44544475445642906,y:.355539578963008},{x:.4370030644907258,y:.3581003376181454},{x:.428224,y:.35896500000000003},{x:.173829,y:.35896500000000003},{x:.16504993550927424,y:.3581003376181454},{x:.15660824554357097,y:.355539578963008},{x:.14882833951411792,y:.3513811325536146},{x:.14200919484660537,y:.3457848051533947},{x:.13641286744638548,y:.33896566048588217},{x:.13225442103699211,y:.33118575445642906},{x:.12969366238185465,y:.32274406449072585},{x:.12882900000000003,y:.31396500000000005}]],\".\":[[{x:.19450299999999998,y:.148926},{x:.19536766238185463,y:.14014693550927423},{x:.1979284210369921,y:.13170524554357096},{x:.20208686744638546,y:.12392533951411791},{x:.20768319484660536,y:.11710619484660537},{x:.2145023395141179,y:.11150986744638547},{x:.22228224554357093,y:.1073514210369921},{x:.2307239355092742,y:.10479066238185464},{x:.239503,y:.103926},{x:.362549,y:.103926},{x:.3713280644907258,y:.10479066238185464},{x:.3797697544564291,y:.1073514210369921},{x:.38754966048588213,y:.11150986744638547},{x:.3943688051533947,y:.11710619484660537},{x:.39996513255361454,y:.12392533951411791},{x:.40412357896300793,y:.13170524554357096},{x:.4066843376181454,y:.14014693550927423},{x:.407549,y:.148926},{x:.4066843376181454,y:.1577050644907258},{x:.40412357896300793,y:.16614675445642904},{x:.39996513255361454,y:.1739266604858821},{x:.3943688051533947,y:.18074580515339464},{x:.38754966048588213,y:.18634213255361454},{x:.3797697544564291,y:.1905005789630079},{x:.3713280644907258,y:.19306133761814537},{x:.362549,y:.193926},{x:.239503,y:.193926},{x:.2307239355092742,y:.19306133761814537},{x:.22228224554357093,y:.1905005789630079},{x:.2145023395141179,y:.18634213255361454},{x:.20768319484660536,y:.18074580515339464},{x:.20208686744638546,y:.1739266604858821},{x:.1979284210369921,y:.16614675445642904},{x:.19536766238185463,y:.1577050644907258},{x:.19450299999999998,y:.148926}]],\"/\":[[{x:.017522651058219416,y:-.036644753012328966},{x:.01865919532569161,y:-.04539277458837648},{x:.02148055556003016,y:-.053750976595687026},{x:.02587830846966649,y:-.06139815801845333},{x:.031683450876571484,y:-.06804044196318723},{x:.038672894413609195,y:-.07342256918292836},{x:.04657803868537635,y:-.0773377075469538},{x:.0550950934307649,y:-.07963540048356893},{x:.0638967530123289,y:-.08022734894178067},{x:.07264477458837641,y:-.07909080467430848},{x:.08100297659568695,y:-.07626944443996993},{x:.08865015801845323,y:-.0718716915303336},{x:.09529244196318715,y:-.0660665491234286},{x:.10067456918292828,y:-.059077105586390885},{x:.5777245691829282,y:.7051758944136092},{x:.5816397075469537,y:.7130810386853763},{x:.5839374004835688,y:.7215980934307649},{x:.5845293489417805,y:.7303997530123288},{x:.5833928046743084,y:.7391477745883763},{x:.5805714444399699,y:.747505976595687},{x:.5761736915303335,y:.7551531580184532},{x:.5703685491234285,y:.7617954419631872},{x:.5633791055863908,y:.7671775691829282},{x:.5554739613146237,y:.7710927075469537},{x:.5469569065692351,y:.7733904004835688},{x:.5381552469876711,y:.7739823489417805},{x:.5294072254116237,y:.7728458046743084},{x:.521049023404313,y:.7700244444399699},{x:.5134018419815468,y:.7656266915303335},{x:.5067595580368128,y:.7598215491234285},{x:.5013774308170718,y:.7528321055863908},{x:.024327430817071727,y:-.011420894413609283},{x:.020412292453046287,y:-.019326038685376436},{x:.018114599516431164,y:-.027843093430764996},{x:.017522651058219416,y:-.036644753012328966}]],\"\u003c\":[[{x:-.002019645490236678,y:.32959917016575135},{x:-.0016099914284145765,y:.3262199732716625},{x:-.0013526191024594778,y:.3228257800560043},{x:-.001080072865731869,y:.3218487260950263},{x:-.0009579981642362373,y:.3208417436418168},{x:.00010303311987996846,y:.3176073966113462},{x:.0010176343561875828,y:.3143286327165328},{x:.0014755574652736251,y:.31342352370653337},{x:.001791739066671412,y:.3124597057316259},{x:.003463372735866293,y:.309494502707312},{x:.00500005526992945,y:.3064571691910689},{x:.005625757523098081,y:.30565878796371126},{x:.0061238953427729045,y:.3047751734513664},{x:.008341891452602095,y:.3021930655225286},{x:.010441601436418424,y:.2995138854085287},{x:.011211037446978121,y:.298852913306643},{x:.011871988327878901,y:.29808345906703315},{x:.014551110531708777,y:.29598367519331337},{x:.017133157288130564,y:.2937656078708368},{x:.01801675806170013,y:.2932674456816211},{x:.018815122032139454,y:.29264172140965955},{x:.021852413166145952,y:.29110495510775264},{x:.024817570086352318,y:.28943323966009543},{x:.5409315700863523,y:.06192123966009548},{x:.5493135321567164,y:.059171271257023414},{x:.5580709293975171,y:.05810938240515066},{x:.5668672199439956,y:.058776380897540545},{x:.5753643672834672,y:.061146634356187606},{x:.583235830808931,y:.06512905526992949},{x:.5901791145914712,y:.07057060143641844},{x:.5959273921291632,y:.07726215728813057},{x:.6002597603399046,y:.08494657008635234},{x:.6030097287429766,y:.09332853215671641},{x:.6040716175948494,y:.10208592939751719},{x:.6034046191024595,y:.11088221994399564},{x:.6010343656438124,y:.11937936728346718},{x:.5970519447300705,y:.12725083080893104},{x:.5916103985635816,y:.13419411459147126},{x:.5849188427118694,y:.1399423921291632},{x:.5772344299136477,y:.14427476033990455},{x:.15453394878652635,y:.33060846154195217},{x:.577233294268374,y:.5169277390666714},{x:.5849178265486336,y:.521259895342773},{x:.5916095409329668,y:.527007988327879},{x:.5970512785903404,y:.5339511220321395},{x:.6010339165943431,y:.5418224757210541},{x:.6034044043999703,y:.5503195576866639},{x:.6040716454902366,y:.5591158298342486},{x:.6030099981642363,y:.5678732563581832},{x:.6002602609333286,y:.5762552942683741},{x:.5959281046572271,y:.5839398265486336},{x:.5901800116721211,y:.5906315409329669},{x:.5832368779678606,y:.5960732785903404},{x:.5753655242789459,y:.6000559165943432},{x:.5668684423133362,y:.6024264043999704},{x:.5580721701657515,y:.6030936454902367},{x:.5493147436418169,y:.6020319981642364},{x:.540932705731626,y:.5992822609333287},{x:.024818705731625975,y:.37178726093332853},{x:.02185350270731245,y:.3701156272641339},{x:.018816169191068974,y:.3685789447300705},{x:.01801778796371134,y:.36795324247690187},{x:.01713417345136639,y:.367455104657227},{x:.01455206552252819,y:.3652371085473975},{x:.011872885408528756,y:.3631373985635815},{x:.011211913306643135,y:.3623679625530219},{x:.010442459067033207,y:.36170701167212105},{x:.008342675193313383,y:.3590278894682912},{x:.006124607870836803,y:.3564458427118694},{x:.005626445681621026,y:.3555622419382997},{x:.005000721409659611,y:.3547638779678605},{x:.0034639551077528313,y:.3517265868338544},{x:.0017922396600954515,y:.3487614299136476},{x:.0014760314771086122,y:.3477976206592673},{x:.0010180834056568513,y:.3468925242789459},{x:.00010339174271701993,y:.34361378560971106},{x:-.0009577287429766018,y:.3403794678432836},{x:-.0010798312165939596,y:.33937248875722786},{x:-.0013524043999703778,y:.33839544231333624},{x:-.001609870336301571,y:.33500125619719334},{x:-.0020196175948493655,y:.3316220706024828},{x:-.001942922029511974,y:.3306106193263084},{x:-.002019645490236678,y:.32959917016575135}]],\"=\":[[{x:-.002030999999999998,y:.19162999999999997},{x:-.0011663376181453647,y:.1828509355092742},{x:.0013944210369920967,y:.17440924554357093},{x:.005552867446385459,y:.16662933951411787},{x:.011149194846605363,y:.15981019484660533},{x:.017968339514117915,y:.15421386744638543},{x:.025748245543570962,y:.15005542103699207},{x:.03418993550927423,y:.1474946623818546},{x:.042969,y:.14662999999999998},{x:.559083,y:.14662999999999998},{x:.5678620644907257,y:.1474946623818546},{x:.576303754456429,y:.15005542103699207},{x:.5840836604858821,y:.15421386744638543},{x:.5909028051533947,y:.15981019484660533},{x:.5964991325536145,y:.16662933951411787},{x:.6006575789630079,y:.17440924554357093},{x:.6032183376181454,y:.1828509355092742},{x:.604083,y:.19162999999999997},{x:.6032183376181454,y:.20040906449072574},{x:.6006575789630079,y:.208850754456429},{x:.5964991325536145,y:.21663066048588206},{x:.5909028051533947,y:.2234498051533946},{x:.5840836604858821,y:.2290461325536145},{x:.576303754456429,y:.23320457896300786},{x:.5678620644907257,y:.23576533761814533},{x:.559083,y:.23662999999999995},{x:.042969,y:.23662999999999995},{x:.03418993550927421,y:.23576533761814533},{x:.025748245543570934,y:.23320457896300786},{x:.017968339514117904,y:.2290461325536145},{x:.011149194846605356,y:.2234498051533946},{x:.005552867446385459,y:.21663066048588206},{x:.0013944210369920967,y:.208850754456429},{x:-.0011663376181453647,y:.20040906449072574},{x:-.002030999999999998,y:.19162999999999997}],[{x:-.002030999999999998,y:.454102},{x:-.0011663376181453647,y:.4453229355092742},{x:.0013944210369920967,y:.436881245543571},{x:.005552867446385459,y:.4291013395141179},{x:.011149194846605363,y:.42228219484660534},{x:.017968339514117915,y:.41668586744638547},{x:.025748245543570962,y:.4125274210369921},{x:.03418993550927423,y:.40996666238185464},{x:.042969,y:.409102},{x:.559083,y:.409102},{x:.5678620644907257,y:.40996666238185464},{x:.576303754456429,y:.4125274210369921},{x:.5840836604858821,y:.41668586744638547},{x:.5909028051533947,y:.42228219484660534},{x:.5964991325536145,y:.4291013395141179},{x:.6006575789630079,y:.436881245543571},{x:.6032183376181454,y:.4453229355092742},{x:.604083,y:.454102},{x:.6032183376181454,y:.4628810644907258},{x:.6006575789630079,y:.471322754456429},{x:.5964991325536145,y:.4791026604858821},{x:.5909028051533947,y:.48592180515339467},{x:.5840836604858821,y:.49151813255361454},{x:.576303754456429,y:.49567657896300793},{x:.5678620644907257,y:.49823733761814537},{x:.559083,y:.499102},{x:.042969,y:.499102},{x:.03418993550927421,y:.49823733761814537},{x:.025748245543570934,y:.49567657896300793},{x:.017968339514117904,y:.49151813255361454},{x:.011149194846605356,y:.48592180515339467},{x:.005552867446385459,y:.4791026604858821},{x:.0013944210369920967,y:.471322754456429},{x:-.0011663376181453647,y:.4628810644907258},{x:-.002030999999999998,y:.454102}]],\"\u003e\":[[{x:-.002019645490236678,y:.5591158298342487},{x:-.0013524043999703708,y:.5503195576866637},{x:.0010180834056568513,y:.5418224757210541},{x:.005000721409659611,y:.5339511220321396},{x:.01044245906703322,y:.527007988327879},{x:.01713417345136643,y:.521259895342773},{x:.024818705731625975,y:.5169277390666714},{x:.44751805121347366,y:.33060846154195217},{x:.024817570086352318,y:.14427476033990455},{x:.017133157288130554,y:.1399423921291632},{x:.01044160143641841,y:.13419411459147126},{x:.00500005526992945,y:.12725083080893107},{x:.0010176343561875828,y:.11937936728346718},{x:-.0013526191024594778,y:.11088221994399562},{x:-.0020196175948493655,y:.10208592939751718},{x:-.0009577287429766018,y:.0933285321567164},{x:.0017922396600954585,y:.08494657008635234},{x:.00612460787083681,y:.07726215728813059},{x:.011872885408528759,y:.07057060143641844},{x:.018816169191068984,y:.06512905526992947},{x:.02668763271653284,y:.061146634356187606},{x:.03518478005600438,y:.058776380897540545},{x:.04398107060248284,y:.05810938240515066},{x:.052738467843283614,y:.05917127125702342},{x:.06112042991364768,y:.06192123966009548},{x:.5772344299136477,y:.28943323966009543},{x:.5801995868338548,y:.29110495510775297},{x:.5832368779678606,y:.2926417214096596},{x:.5840352419382998,y:.29326744568162105},{x:.5849188427118694,y:.2937656078708368},{x:.5875008894682915,y:.29598367519331353},{x:.5901800116721211,y:.29808345906703315},{x:.5908409625530218,y:.2988529133066429},{x:.5916103985635817,y:.29951388540852875},{x:.5937101085473976,y:.3021930655225282},{x:.5959281046572271,y:.3047751734513664},{x:.5964262424769022,y:.30565878796371176},{x:.5970519447300705,y:.30645716919106897},{x:.5985886272641329,y:.3094945027073105},{x:.6002602609333286,y:.31245970573162596},{x:.6005764425347265,y:.31342352370653376},{x:.6010343656438124,y:.31432863271653283},{x:.6019489668801197,y:.31760739661134507},{x:.6030099981642363,y:.32084174364181683},{x:.6031320728657319,y:.3218487260950267},{x:.6034046191024595,y:.3228257800560044},{x:.6036619914284146,y:.3262199732716634},{x:.6040716454902366,y:.32959917016575135},{x:.603994922029512,y:.330610619326308},{x:.6040716175948494,y:.33162207060248283},{x:.6036618703363014,y:.3350012561971954},{x:.6034044043999703,y:.33839544231333624},{x:.6031318312165941,y:.33937248875722736},{x:.6030097287429766,y:.3403794678432836},{x:.6019486082572825,y:.3436137856097129},{x:.6010339165943431,y:.3468925242789459},{x:.6005759685228916,y:.3477976206592668},{x:.6002597603399046,y:.34876142991364767},{x:.5985880448922466,y:.3517265868338553},{x:.5970512785903404,y:.3547638779678605},{x:.596425554318379,y:.35556224193829966},{x:.5959273921291631,y:.35644584271186947},{x:.5937093248066866,y:.3590278894682911},{x:.5916095409329668,y:.36170701167212105},{x:.5908400866933569,y:.3623679625530219},{x:.5901791145914712,y:.36313739856358157},{x:.5874999344774714,y:.3652371085473978},{x:.5849178265486336,y:.367455104657227},{x:.5840342120362888,y:.36795324247690175},{x:.583235830808931,y:.3685789447300705},{x:.5801984972926872,y:.37011562726413405},{x:.577233294268374,y:.37178726093332853},{x:.06111929426837402,y:.5992822609333287},{x:.05273725635818315,y:.6020319981642364},{x:.04397982983424857,y:.6030936454902367},{x:.035183557686663716,y:.6024264043999704},{x:.02668647572105406,y:.6000559165943432},{x:.018815122032139416,y:.5960732785903404},{x:.011871988327878898,y:.5906315409329669},{x:.006123895342772898,y:.5839398265486336},{x:.001791739066671405,y:.5762552942683741},{x:-.0009579981642362442,y:.5678732563581832},{x:-.002019645490236678,y:.5591158298342487}]],A:[[{x:-.026930267425517032,y:.05053409251215203},{x:-.025968910797820398,y:.041765089843587025},{x:-.02331527881378681,y:.03335213247651147},{x:-.019071349062388714,y:.025618525644501258},{x:-.013400213383949137,y:.018861467521053887},{x:-.006519810342180955,y:.013340628060451547},{x:.0013054500325951415,y:.009268170027042777},{x:.009774847372633092,y:.006800595699190677},{x:.018562907487847988,y:.006032732574482988},{x:.02733191015641301,y:.006994089202179622},{x:.035744867523488544,y:.00964772118621321},{x:.043478474355498745,y:.013891650937611293},{x:.05023553247894613,y:.019562786616050876},{x:.055756371939548466,y:.02644318965781906},{x:.05982882997295724,y:.03426845003259516},{x:.15465984441872488,y:.2705423452957767},{x:.155303,y:.27047899999999997},{x:.433548,y:.27047899999999997},{x:.439584057854266,y:.2710734998088117},{x:.5426964027293978,y:.03313672871631684},{x:.5469805748198717,y:.025425342079263714},{x:.5526868446471364,y:.018697928086846893},{x:.559595923461843,y:.013213017486017727},{x:.5674422992397985,y:.009181392315192764},{x:.5759244401601543,y:.006757985668725375},{x:.5847163823041805,y:.006035927704977205},{x:.5934802562658602,y:.007042966706560308},{x:.6018792712836831,y:.009740402729397836},{x:.6095906579207363,y:.01402457481987169},{x:.6163180719131531,y:.019730844647136342},{x:.6218029825139822,y:.026639923461843008},{x:.6258346076848073,y:.03448629923979854},{x:.6282580143312746,y:.042968440160154345},{x:.6289800722950228,y:.05176038230418057},{x:.6279730332934397,y:.060524256265860256},{x:.6252755972706022,y:.0689232712836832},{x:.3314685972706022,y:.7468972712836831},{x:.3293831787279993,y:.7506509647260751},{x:.32731734906238874,y:.7544154743554987},{x:.32724162770964893,y:.7545056950115825},{x:.32718442518012836,y:.7546086579207363},{x:.324406768107635,y:.7578833802211685},{x:.32164621338394916,y:.7611725324789461},{x:.3215543458189217,y:.761246247067332},{x:.32147815535286367,y:.7613360719131531},{x:.3181150035540548,y:.764005977330098},{x:.314765810342181,y:.7666933719395485},{x:.31466132698386995,y:.7667477476499444},{x:.314569076538157,y:.7668209825139822},{x:.31074967405057474,y:.7687834680795742},{x:.3069405499674049,y:.7707658299729572},{x:.30682746605267575,y:.7707987771773066},{x:.30672270076020147,y:.7708526076848072},{x:.3025938250794972,y:.7720322561793334},{x:.29847115262736695,y:.7732334043008093},{x:.2983538139076442,y:.7732436568565263},{x:.29824055983984565,y:.7732760143312747},{x:.29396088134293,y:.7736274925246428},{x:.289683092512152,y:.774001267425517},{x:.28956600824863027,y:.7739884313326351},{x:.2894486176958195,y:.7739980722950228},{x:.2851826020272766,y:.773507873077374},{x:.280914089843587,y:.7730399107978204},{x:.2808017595188513,y:.7730044793401902},{x:.28068474373413976,y:.7729910332934397},{x:.2765963314836881,y:.7716779947458032},{x:.2725011324765115,y:.7703862788137869},{x:.27239787288194656,y:.7703296136024552},{x:.27228572871631684,y:.7702935972706022},{x:.26853203527393116,y:.7682081787280027},{x:.2647675256445013,y:.7661423490623888},{x:.26467730498841713,y:.7660666277096486},{x:.2645743420792637,y:.7660094251801283},{x:.2612996197788366,y:.7632317681076393},{x:.2580104675210539,y:.7604712133839491},{x:.2579367529326681,y:.7603793458189217},{x:.2578469280868469,y:.7603031553528636},{x:.25517702266989234,y:.7569400035540427},{x:.25248962806045155,y:.7535908103421809},{x:.2524352523500559,y:.7534863269838704},{x:.2523620174860177,y:.753394076538157},{x:.2503995319204231,y:.7495746740505695},{x:.24841717002704278,y:.7457655499674049},{x:-.023694829972957243,y:.06779154996740488},{x:-.026162404300809343,y:.05932215262736691},{x:-.026930267425517032,y:.05053409251215203}],[{x:.19075686729109992,y:.36047899999999994},{x:.2917712201653896,y:.6121588409316518},{x:.4008392655839541,y:.36047899999999994},{x:.19075686729109992,y:.36047899999999994}]],B:[[{x:.018964999999999996,y:.05103000000000002},{x:.018993157630992935,y:.05074411077481729},{x:.01896863696544404,y:.050457886669927884},{x:.019425235762019696,y:.046357147889743},{x:.01982966238185463,y:.04225093550927423},{x:.019913053192865363,y:.04197603284668677},{x:.019944843237820968,y:.04169052471317667},{x:.02119268306568244,y:.037757658485048945},{x:.02239042103699209,y:.03380924554357098},{x:.0225258403659196,y:.03355589379873479},{x:.022612719447780122,y:.03328207355405998},{x:.02460384652213923,y:.029668217721559587},{x:.026548867446385453,y:.026029339514117924},{x:.02673111120436309,y:.02580727485250577},{x:.026869740608734982,y:.025555665255108946},{x:.029527637032761178,y:.022399698271204867},{x:.03214519484660536,y:.019210194846605383},{x:.03236725950821749,y:.019027951088627763},{x:.03255231178483501,y:.01880822135423258},{x:.03577483608951879,y:.016231425260229353},{x:.03896433951411791,y:.013613867446385479},{x:.03921769125895406,y:.013478448117457993},{x:.03944205495260531,y:.013299042336531411},{x:.04310536733612953,y:.011400441961238211},{x:.046744245543570956,y:.009455421036992116},{x:.04701914820615845,y:.009372030225981372},{x:.047274201145921,y:.009239842862072495},{x:.051237522567796415,y:.008092400353164256},{x:.055185935509274225,y:.006894662381854655},{x:.05547182473445692,y:.006866504750861718},{x:.05574776537889109,y:.006786615690234012},{x:.05985878761953148,y:.006434426619834929},{x:.063965,y:.0060300000000000215},{x:.06425088922518268,y:.006058157630992957},{x:.06453711333007213,y:.00603363696544406},{x:.4241221133300721,y:.01060563696544408},{x:.4260098351414485,y:.010815826288282449},{x:.4279092214657345,y:.010813640036582327},{x:.43038314701987823,y:.011302774871886453},{x:.43288947528682337,y:.011581843237821021},{x:.43469991915024053,y:.012156270087817089},{x:.43656323581544765,y:.012524677733968342},{x:.4388942001112364,y:.013487052913568918},{x:.44129792644594007,y:.014249719447780182},{x:.4429615180190356,y:.01516630892323094},{x:.4447171588106798,y:.015891152767997317},{x:.5224141588106799,y:.0573061527679973},{x:.525028554951968,y:.05904868699814221},{x:.5277374225537912,y:.06064039332865708},{x:.5286915199232336,y:.06149010807639827},{x:.529754639763497,y:.06219869339105244},{x:.5319788494519322,y:.06441778869965879},{x:.5343251404217865,y:.06650738469209135},{x:.5350951339540482,y:.06752690757225652},{x:.5359995881074716,y:.06842928201075814},{x:.5377481362120787,y:.07103965980959966},{x:.5396416839038074,y:.07354684346181917},{x:.5707946839038074,y:.12450984346181915},{x:.5718407730360667,y:.12667263757185424},{x:.573076251912317,y:.12873311634664666},{x:.5737567016649755,y:.13063382885667474},{x:.5746357412153917,y:.13245124718509382},{x:.57523978983892,y:.1347765656784282},{x:.576049549867314,y:.13703848290314058},{x:.576346114353134,y:.13903542291661675},{x:.5768537026781452,y:.1409894121704204},{x:.5769924975430949,y:.14338789436140983},{x:.5773454200998597,y:.14576432582559334},{x:.5830324200998597,y:.2611263258255933},{x:.5829003037879823,y:.26382496142481277},{x:.5829742287592172,y:.2665258175697889},{x:.5826851199428378,y:.2682203519457296},{x:.5826010630436497,y:.26993731586400416},{x:.5819450076216034,y:.2725583233230625},{x:.5814906012502021,y:.27522170532098544},{x:.5808764603215925,y:.2768272773619606},{x:.5804590555084463,y:.278494851612457},{x:.5793042728181804,y:.28093750708458076},{x:.5783389976861617,y:.283461062658912},{x:.5774234257367941,y:.284915971131802},{x:.5766887136425759,y:.2864700717712602},{x:.575079581335268,y:.2886405053765124},{x:.5736405324246225,y:.2909272557017569},{x:.5044305324246225,y:.38012925570175693},{x:.5017223718437749,y:.38298983800955333},{x:.499075053174031,y:.3859068173944946},{x:.49869279401231464,y:.38618992769627897},{x:.4983657648506557,y:.38653536283797296},{x:.49515156889241035,y:.38881264393905274},{x:.49198604326106643,y:.39115710813128307},{x:.4915558970220145,y:.39136020348505085},{x:.4911677605809681,y:.39163520096290155},{x:.48757104899345777,y:.3932416662216644},{x:.4840089657752798,y:.3949235187770668},{x:.3737297002329455,y:.43429966367120415},{x:.4408630401939032,y:.4733794631163462},{x:.44336631106573315,y:.475186847643908},{x:.4459719275146733,y:.476843279595192},{x:.4469351296354233,y:.4777635673817196},{x:.4480152047486495,y:.4785433915190981},{x:.45011777274311354,y:.48080441158023823},{x:.45235016915983667,y:.4829373462081214},{x:.4531153243813002,y:.4840278623347861},{x:.4540225100120052,y:.48500341457167107},{x:.4556435746202097,y:.4876311804334344},{x:.4574169612623637,y:.4901586502563309},{x:.45795466509848404,y:.4913774867999537},{x:.45865409861163536,y:.4925112772109775},{x:.4597313632297904,y:.4954048053049642},{x:.460977589843244,y:.49822968107500176},{x:.46126717863714684,y:.4995299988307428},{x:.46173198119508085,y:.5007784564862466},{x:.46222404714804793,y:.5038265501505143},{x:.4628952219429378,y:.5068402734760588},{x:.4768502219429378,y:.6216502734760588},{x:.47694604753136066,y:.6258560133977795},{x:.4770801736029929,y:.6300607061367898},{x:.47704647561686464,y:.6302637547476413},{x:.47705116403527437,y:.6304695272224051},{x:.47632464920624185,y:.6346131496757303},{x:.47563590322258376,y:.6387632171212809},{x:.475563239914934,y:.6389557900590453},{x:.4755276940283349,y:.6391585233384632},{x:.47400675833929046,y:.6430807912362932},{x:.4725216084222428,y:.647016748623825},{x:.4724127722032346,y:.6471914454185},{x:.4723383580201142,y:.6473833485763381},{x:.4700814501766401,y:.6509335313629835},{x:.46785696980463054,y:.6545041220574128},{x:.46771614318912413,y:.6546542292091504},{x:.46760572040480797,y:.6548279275146733},{x:.4646995721096373,y:.6578695936566139},{x:.4618212468158623,y:.6609376018599591},{x:.3721282468158623,y:.739463601859959},{x:.3693406873548985,y:.7414576112446344},{x:.36664335021940475,y:.7435720694617842},{x:.36575927454484214,y:.7440194833243711},{x:.36495338890552403,y:.7445959530105889},{x:.3618303796850022,y:.746007822191186},{x:.35877236079175173,y:.7475554273162446},{x:.35781798626885214,y:.7478217696388809},{x:.3569151218394033,y:.7482299421328396},{x:.35357667835226414,y:.7490054137685334},{x:.3502754956523681,y:.7499266922044516},{x:.21714549565236804,y:.7733246922044517},{x:.2164184100494338,y:.7733799121498203},{x:.21571010443589486,y:.773553134187072},{x:.21202614434596675,y:.7737134914026773},{x:.20834928456346336,y:.7739927377465721},{x:.20762539682958886,y:.7739050492917646},{x:.20689690716677497,y:.7739367593459113},{x:.061505907166774995,y:.7659797593459113},{x:.05835682356136361,y:.7654946428322841},{x:.055185935509274225,y:.7651823376181454},{x:.05400593378019863,y:.7648243880069794},{x:.05278721145616079,y:.7646366437616691},{x:.0497932781460736,y:.7635464928911877},{x:.046744245543570956,y:.7626215789630079},{x:.045656749721751114,y:.7620403003359452},{x:.0444980718907103,y:.7616184026130197},{x:.04177434405403643,y:.7599651112722733},{x:.03896433951411791,y:.7584631325536145},{x:.03801114145411163,y:.7576808631223083},{x:.03695703545532078,y:.7570410252146568},{x:.03460818442533898,y:.7548881284626934},{x:.03214519484660536,y:.7528668051533947},{x:.03136292541529926,y:.7519136070933885},{x:.03045389995114224,y:.7510804176129765},{x:.02857019075568381,y:.7485106500646154},{x:.026548867446385453,y:.7460476604858821},{x:.025967588819322866,y:.7449601646640625},{x:.025238577228599887,y:.7439656426153641},{x:.023892399755650346,y:.7410777589963466},{x:.02239042103699209,y:.738267754456429},{x:.022032471425826126,y:.7370877527273536},{x:.021511489215134356,y:.7359701170349662},{x:.02075457631003429,y:.7328750970932278},{x:.01982966238185463,y:.7298260644907257},{x:.019708797589401895,y:.7285989036590902},{x:.01941586581292807,y:.7274011044358949},{x:.019277305214138767,y:.7242178880520896},{x:.018964999999999996,y:.721047},{x:.018964999999999996,y:.05103000000000002}],[{x:.10896499999999999,y:.09660579683225357},{x:.10896499999999999,y:.37786028838708235},{x:.29722384626437015,y:.36605169579422814},{x:.44137514989764515,y:.3145812530901673},{x:.49232133133007555,y:.24891875813083103},{x:.48801965008125897,y:.1616582425292873},{x:.46925190911582665,y:.130956211173677},{x:.41203782454012283,y:.1004592638951106},{x:.10896499999999999,y:.09660579683225357}],[{x:.10896499999999999,y:.47257215902605326},{x:.10896499999999999,y:.6784424315209651},{x:.20665565807681563,y:.6837888736412973},{x:.32230778354311135,y:.6634626629325134},{x:.3846372425734713,y:.608893375476212},{x:.3762519660226853,y:.5399063743443061},{x:.2981741908903496,y:.4944555775409729},{x:.10896499999999999,y:.47257215902605326}]],C:[[{x:.028007484408327545,y:.4010798543150725},{x:.028340096336253087,y:.39680461654123217},{x:.028649292669517497,y:.39252762152779447},{x:.06572429266951751,y:.1769866215277945},{x:.0657499934516808,y:.17689321918606288},{x:.06575739253020782,y:.1767966283931179},{x:.06691993730130205,y:.17264138379230456},{x:.0680646634579554,y:.1684811950870131},{x:.0681080922997215,y:.16839460141895576},{x:.06813419313592875,y:.16830131007962543},{x:.07008504794245551,y:.16445270857242494},{x:.07201939106115751,y:.16059578172109576},{x:.07207887901649253,y:.16051932447281397},{x:.0721226785698821,y:.1604329177209502},{x:.1274306785698821,y:.07363491772095027},{x:.13009575906138268,y:.07023973030268985},{x:.13274648275581225,y:.06683332229320074},{x:.13281865262016482,y:.06677089175108791},{x:.13287757357360944,y:.06669582922279092},{x:.1361538134974972,y:.06388581079003605},{x:.13941816151489866,y:.0610619864944041},{x:.19692016151489866,y:.020443986494404057},{x:.19808425112310213,y:.019782383965415776},{x:.19914710087537263,y:.01896802966513257},{x:.20191114759162085,y:.01760739299916557},{x:.20458957759683996,y:.01608512525217841},{x:.2058603718000633,y:.015663337846789194},{x:.20706167183504787,y:.015071982836463577},{x:.21003805521400143,y:.014276729186446702},{x:.2129619996426652,y:.013306247159584957},{x:.21429066253234816,y:.013140483931242813},{x:.21558424756339917,y:.01279485365228588},{x:.32760524756339915,y:-.005618146347714133},{x:.32775803960473765,y:-.005628051859015257},{x:.32790622767465843,y:-.005666572281957827},{x:.3321581535063009,y:-.005913311337168391},{x:.3364083102547015,y:-.006188849089881349},{x:.3365600989091985,y:-.006168756021014132},{x:.33671295454862427,y:-.006177626226551311},{x:.34093131721939995,y:-.005590114680318674},{x:.3451535631465426,y:-.005031193603710363},{x:.34529851526132993,y:-.004981874120043047},{x:.3454501643137599,y:-.004960753231150514},{x:.44307616431375996,y:.01857424676884946},{x:.4458503498549469,y:.019539172468847843},{x:.4486819664572553,y:.020319643122350156},{x:.45000735163266253,y:.02098507354168687},{x:.45140809089867484,y:.021472282957461515},{x:.45394072357704407,y:.022959884631265325},{x:.4565656691892177,y:.024277779754777677},{x:.4577357684253341,y:.0251889939358613},{x:.459014543037309,y:.025940112433793877},{x:.4612082951993476,y:.027893222383335445},{x:.4635256946335971,y:.029697896006345384},{x:.5358116946335971,y:.09837789600634546},{x:.5383578959705028,y:.10132350300922108},{x:.5409714489909738,y:.10420951799057969},{x:.5412394420583803,y:.10465705806338507},{x:.5415805729157932,y:.10505169984914184},{x:.5435031902892489,y:.10843744707814906},{x:.545503491029224,y:.11177788699125937},{x:.5456790239480676,y:.11226911056087577},{x:.5459366092786453,y:.11272272074420048},{x:.5471617575812067,y:.11641849583208026},{x:.548471935605029,y:.12008498944441898},{x:.572709935605029,y:.21701898944441894},{x:.5740007070580636,y:.2257455880614603},{x:.5735642017652605,y:.23455632455146336},{x:.571417194380227,y:.24311260725223527},{x:.5676421931927146,y:.25108562301800397},{x:.5623842693813143,y:.2581689733242098},{x:.5558454820094204,y:.2640904489909738},{x:.5482771130087407,y:.26862249102922403},{x:.539970010555581,y:.27159093560502906},{x:.5312434119385397,y:.2728817070580635},{x:.5224326754485367,y:.2724452017652604},{x:.5138763927477648,y:.270298194380227},{x:.5059033769819961,y:.26652319319271456},{x:.49882002667579023,y:.2612652693813142},{x:.49289855100902624,y:.25472648200942033},{x:.488366508970776,y:.24715811300874066},{x:.48539806439497096,y:.23885101055558106},{x:.46433420621000654,y:.15461122058523102},{x:.4102697826671089,y:.10324381045150927},{x:.3332137540403124,y:.08466767669890593},{x:.24039332695070226,y:.09992465997883551},{x:.1985742470214596,y:.12946463056361485},{x:.15288732813236672,y:.2011637190451272},{x:.11884238546013813,y:.39908903228895243},{x:.16184523767713488,y:.5942488915238071},{x:.2166399992296726,y:.6603981208316636},{x:.2708106585112101,y:.6880654725502051},{x:.33167151101531583,y:.6962265900331734},{x:.41875307675349,y:.6679697644015699},{x:.4604926982936834,y:.628705384802963},{x:.487421989657252,y:.5630715564186946},{x:.49155436139101494,y:.5552777692634718},{x:.49712782320648147,y:.5484399232752638},{x:.5039281900917167,y:.5428207930406891},{x:.5116941277610109,y:.5386363185834178},{x:.5201271955849208,y:.5360473069101626},{x:.5289033154962927,y:.5351532522875923},{x:.5376852261286371,y:.5359885127334604},{x:.5461354435813054,y:.5385209896572519},{x:.5539292307365281,y:.5426533613910148},{x:.5607670767247361,y:.5482268232064814},{x:.5663862069593109,y:.5550271900917166},{x:.5705706814165822,y:.5627931277610108},{x:.5731596930898373,y:.5712261955849207},{x:.5740537477124077,y:.5800023154962926},{x:.5732184872665396,y:.588784226128637},{x:.570686010342748,y:.5972344435813053},{x:.540057010342748,y:.6718854435813053},{x:.5396985836895672,y:.6725614478775368},{x:.539454213118803,y:.6732865233897278},{x:.5376352487491008,y:.6764529645154376},{x:.5359246386089851,y:.679679230736528},{x:.5354412171276051,y:.6802723202285732},{x:.5350600868536766,y:.680935789284769},{x:.5326583313554347,y:.6836865257875079},{x:.5303511767935185,y:.686517076724736},{x:.5297613381003629,y:.6870044593160238},{x:.5292580947459566,y:.687580825172473},{x:.47307109474595666,y:.7404358251724731},{x:.4722065860115991,y:.7411021817697292},{x:.4714497622811152,y:.7418887085063782},{x:.4687194058651613,y:.7437900730587934},{x:.46608420409854834,y:.7458212660502541},{x:.46510630693397415,y:.746306161504971},{x:.46421058160492856,y:.7469299263656303},{x:.4611617503991064,y:.748262090618912},{x:.45818091720073817,y:.7497401524453693},{x:.45712721164557074,y:.7500249524971546},{x:.4561270069400303,y:.7504619845480405},{x:.3497190069400303,y:.7849899845480404},{x:.34852117258500637,y:.7852523061157466},{x:.34737251112679673,y:.7856814874310271},{x:.34422084285321763,y:.7861940634064482},{x:.3411016855274714,y:.7868771480384597},{x:.33987569082458696,y:.7869007432807547},{x:.3386653714532072,y:.7870975852636362},{x:.3354742629896646,y:.786985452257037},{x:.33228177619648713,y:.7870468942022847},{x:.3310747354346284,y:.7868308563672394},{x:.32984927004476555,y:.7867877944907101},{x:.25121827004476555,y:.7762437944907102},{x:.24809780050166644,y:.7755083028870222},{x:.24494229970605153,y:.7749416523797719},{x:.24381291428322105,y:.7744983594176508},{x:.24263200473447152,y:.7742200201979198},{x:.2397149814324578,y:.772889887451158},{x:.2367306607297473,y:.771718517308175},{x:.16743766072974728,y:.7363275173081749},{x:.16716950847174827,y:.7361554960544541},{x:.16687461978467572,y:.7360349240533984},{x:.16345937419922074,y:.733775423054901},{x:.16001260855282193,y:.7315643025810339},{x:.15978316844705134,y:.7313432727571054},{x:.15951746839392553,y:.7311674875843215},{x:.15660865257214304,y:.7282851209029094},{x:.15365948376641753,y:.7254440558690711},{x:.15347757306746915,y:.725182511527114},{x:.15325127235232486,y:.7249582685082102},{x:.08558827235232488,y:.6432742685082102},{x:.0845522070982367,y:.6417389136031936},{x:.0833480194008015,y:.6403315480201149},{x:.08209078724421986,y:.6380913122274521},{x:.0806538380596292,y:.6359618836319892},{x:.07993721339171088,y:.6342539038369039},{x:.07903072722802115,y:.632638655023214},{x:.07823470075697891,y:.6301961909068614},{x:.07724079305844417,y:.627827343805619},{x:.07687114846079628,y:.6260123758261444},{x:.07629719958575912,y:.6242513168879111},{x:.02905219958575911,y:.40983931688791114},{x:.028544362954760993,y:.4055813372409792},{x:.028013217832748447,y:.4013262022752188},{x:.028022142274708197,y:.401202753871557},{x:.028007484408327545,y:.4010798543150725}]],D:[[{x:.019456783112310236,y:.0515304721392918},{x:.019516560837245702,y:.0508455251733057},{x:.019462408649259272,y:.05016011050819538},{x:.01989956114396584,y:.04645701928180655},{x:.020223754746627687,y:.042742334175020345},{x:.02041601038349858,y:.04208221032853139},{x:.020496616482350807,y:.04139940114622653},{x:.021647806474261868,y:.03785274800035644},{x:.022690469901424933,y:.03427268656062632},{x:.023007815173924504,y:.033662754022853354},{x:.023220081912440925,y:.03300879029730612},{x:.025041069815762075,y:.029754871123364675},{x:.026762134096652887,y:.026447013104097812},{x:.027192373603928278,y:.025910711240413317},{x:.027528143690388265,y:.025310724430849408},{x:.029948949961216734,y:.02247458551787214},{x:.03228227556070457,y:.019566050047680916},{x:.03280887543977226,y:.01912398863794477},{x:.03325524541805519,y:.01860103590097925},{x:.03618283982900684,y:.01629166847686688},{x:.03903875835284746,y:.013894228942745224},{x:.03964148166567549,y:.013563396159022682},{x:.0401812977878431,y:.013137574275061882},{x:.04350317452751879,y:.011443726034814963},{x:.04677193462845869,y:.0096495146935595},{x:.04742761905614622,y:.009442624254195854},{x:.048040136491355995,y:.009130297319436702},{x:.05162863769958001,y:.008117061901006828},{x:.05518462276008175,y:.0069950292882567724},{x:.05586807071778482,y:.006920031876811272},{x:.05652975076450537,y:.006733202440201605},{x:.060246972352300414,y:.0064395179124900545},{x:.06395352786070822,y:.006032783112310258},{x:.06463847482669428,y:.006092560837245719},{x:.06532388949180462,y:.006038408649259287},{x:.22607288949180462,y:.009146408649259287},{x:.22716730592225892,y:.009275605270020776},{x:.2282688262216939,y:.009242558031150067},{x:.23153975417198444,y:.00979177582685766},{x:.23483359885377353,y:.010180616482350843},{x:.23588178136904675,y:.010520840680108605},{x:.23696858346127098,y:.010703324384590318},{x:.374121583461271,y:.04785532438459028},{x:.3763172878682137,y:.048688585594252994},{x:.37858028056243914,y:.049316523610364836},{x:.3804311803743379,y:.05024979166335608},{x:.3823691959266467,y:.050985260963484026},{x:.38436014929137596,y:.0522308719724549},{x:.38645715458576285,y:.05328823230909956},{x:.47004915458576285,y:.1063032323090996},{x:.47296331256678825,y:.10858070495130694},{x:.47594842000778254,y:.11076435600861785},{x:.476434095048061,y:.11129319075325024},{x:.4769998347544389,y:.11173532762855881},{x:.47941368513584726,y:.11453756329148114},{x:.48191542538645477,y:.11726162167794474},{x:.5445294253864548,y:.20053762167794476},{x:.5457907389554543,y:.20261097926106453},{x:.5472304508598836,y:.2045646816997861},{x:.5480776582474705,y:.2063702359380903},{x:.54911422277829,y:.20807414921008693},{x:.5499468085621922,y:.21035373787896267},{x:.5509777083681839,y:.21255077433219424},{x:.570480708368184,y:.26758877433219413},{x:.5715324066676154,y:.27184261440989077},{x:.5725895850614416,y:.2760950958693092},{x:.5821235850614417,y:.3411630958693092},{x:.5823063349967632,y:.3450227385412275},{x:.5825832689280143,y:.34887676846995497},{x:.5805752689280143,y:.424797768469955},{x:.5800798101377765,y:.42875301375722},{x:.5796594372976747,y:.43271694253692033},{x:.5588164372976746,y:.5335539425369203},{x:.5581925601051908,y:.535556542700639},{x:.5577783377379867,y:.5376127649642906},{x:.5568838034059929,y:.5397575559956548},{x:.5561926080991778,y:.5419762423834013},{x:.555190030621201,y:.5438186507441294},{x:.5543826183570809,y:.5457545524985521},{x:.5020956183570809,y:.6430055524985521},{x:.5018901867095668,y:.6433113858234256},{x:.5017428412228655,y:.6436490624319612},{x:.4994325691935421,y:.6469701275279692},{x:.4971767628200625,y:.6503284258808291},{x:.4969156133622187,y:.650588304977856},{x:.4967052216394318,y:.6508907475465959},{x:.49379143318032753,y:.6536972875938759},{x:.49092379998669317,y:.6565509711937552},{x:.49061696854573045,y:.6567549090549786},{x:.49035161582277553,y:.657010494885618},{x:.39890061582277553,y:.7292364948856179},{x:.3986791836579038,y:.7293785203585265},{x:.39848760231040037,y:.7295587979940886},{x:.39496847203231433,y:.7317585520660096},{x:.39147518928128755,y:.7339991259907827},{x:.39123030407812903,y:.7340952232117042},{x:.391007233490524,y:.7342346611962726},{x:.3871265715837099,y:.7357055993513507},{x:.38326329699273004,y:.7372216156196327},{x:.3830043695523095,y:.737268091626259},{x:.38275838220218455,y:.7373613314362847},{x:.25909638220218456,y:.7708063314362847},{x:.2580664240588666,y:.7709788511982676},{x:.2570738325025125,y:.7713034106651087},{x:.2537238261308602,y:.7717062438265866},{x:.2503960471743838,y:.7722636525302581},{x:.2493522224520667,y:.7722319225075465},{x:.24831538485324267,y:.7723566006488801},{x:.17218438485324267,y:.7739936006488801},{x:.16854768223369815,y:.7737142062783378},{x:.16490357022768087,y:.7735589167265521},{x:.06552457022768086,y:.7594769167265522},{x:.06454980411013514,y:.759239472501363},{x:.06355033417502035,y:.7591522452533723},{x:.06027159361314519,y:.7581973390517399},{x:.056953647958865025,y:.7573891174476861},{x:.056043934769293216,y:.7569660682109414},{x:.05508068656062633,y:.7566855300985751},{x:.05205123903764884,y:.7551093215998242},{x:.04895472299174925,y:.7536693306611393},{x:.04814502249785432,y:.7530769339577588},{x:.0472550131040978,y:.7526138659033472},{x:.04459127858939255,y:.7504769279161366},{x:.04183518952697092,y:.7484605056870383},{x:.041156618064647085,y:.7477215269901124},{x:.040374050047680896,y:.7470937244392954},{x:.03817839436480973,y:.744478178292066},{x:.035868647242901154,y:.7419628147479951},{x:.03534728193289863,y:.7411056525944231},{x:.03470222894274521,y:.7403372416471526},{x:.03305902990826266,y:.7373436013115269},{x:.03128438701344127,y:.73442596046285},{x:.030940263632238257,y:.7334835551134912},{x:.030457514693559486,y:.7326040653715413},{x:.029429919524844063,y:.7293473747667649},{x:.028258579388326675,y:.7261395799150647},{x:.028104922404476318,y:.7251481474789881},{x:.02780302928825676,y:.7241913772399183},{x:.02743052789135989,y:.7207967891595589},{x:.026907504457698045,y:.7174221140620348},{x:.02695021882291786,y:.7164197547317572},{x:.026840783112310238,y:.7154224721392919},{x:.019456783112310236,y:.0515304721392918}],[{x:.1099671672449683,y:.09691838411671685},{x:.1164055200593884,y:.675787686211921},{x:.17390769441284104,y:.6839357418297609},{x:.2408956143230629,y:.6824953400894312},{x:.35035782392371695,y:.652890743688808},{x:.42724604872976657,y:.5921661050862587},{x:.4720072878873445,y:.5089126143655517},{x:.4907125333997566,y:.41841792349882906},{x:.4925121994894803,y:.35037387509349616},{x:.4841787199640398,y:.2934992321564965},{x:.4684498534661817,y:.24911194023683725},{x:.41491413338319044,y:.1779099626338861},{x:.34401115658372555,y:.1329424859013802},{x:.21878934362335548,y:.0990224054430332},{x:.1099671672449683,y:.09691838411671685}]],E:[[{x:.035078,y:.05103000000000002},{x:.03594266238185463,y:.04225093550927423},{x:.03850342103699209,y:.03380924554357098},{x:.042661867446385456,y:.026029339514117924},{x:.04825819484660536,y:.019210194846605383},{x:.05507733951411791,y:.013613867446385479},{x:.06285724554357096,y:.009455421036992116},{x:.07129893550927423,y:.006894662381854655},{x:.080078,y:.0060300000000000215},{x:.521974,y:.0060300000000000215},{x:.5307530644907258,y:.006894662381854655},{x:.5391947544564291,y:.009455421036992116},{x:.5469746604858822,y:.013613867446385479},{x:.5537938051533947,y:.019210194846605383},{x:.5593901325536146,y:.026029339514117924},{x:.5635485789630079,y:.03380924554357098},{x:.5661093376181454,y:.04225093550927425},{x:.5669740000000001,y:.05103000000000002},{x:.5661093376181454,y:.05980906449072579},{x:.5635485789630079,y:.06825075445642906},{x:.5593901325536146,y:.07603066048588211},{x:.5537938051533947,y:.08284980515339466},{x:.5469746604858822,y:.08844613255361455},{x:.5391947544564291,y:.09260457896300792},{x:.5307530644907258,y:.09516533761814538},{x:.521974,y:.09603000000000002},{x:.125078,y:.09603000000000002},{x:.125078,y:.345019},{x:.389405,y:.345019},{x:.3981840644907258,y:.34588366238185464},{x:.40662575445642907,y:.3484444210369921},{x:.4144056604858821,y:.35260286744638547},{x:.42122480515339467,y:.35819919484660534},{x:.42682113255361454,y:.3650183395141179},{x:.4309795789630079,y:.372798245543571},{x:.43354033761814537,y:.3812399355092742},{x:.434405,y:.390019},{x:.43354033761814537,y:.3987980644907258},{x:.4309795789630079,y:.407239754456429},{x:.42682113255361454,y:.4150196604858821},{x:.42122480515339467,y:.42183880515339467},{x:.4144056604858821,y:.42743513255361454},{x:.40662575445642907,y:.43159357896300793},{x:.3981840644907258,y:.43415433761814537},{x:.389405,y:.435019},{x:.125078,y:.435019},{x:.125078,y:.684004},{x:.521974,y:.684004},{x:.5307530644907258,y:.6848686623818546},{x:.5391947544564291,y:.6874294210369921},{x:.5469746604858822,y:.6915878674463855},{x:.5537938051533947,y:.6971841948466053},{x:.5593901325536146,y:.7040033395141179},{x:.5635485789630079,y:.711783245543571},{x:.5661093376181454,y:.7202249355092742},{x:.5669740000000001,y:.729004},{x:.5661093376181454,y:.7377830644907257},{x:.5635485789630079,y:.746224754456429},{x:.5593901325536146,y:.7540046604858821},{x:.5537938051533947,y:.7608238051533946},{x:.5469746604858822,y:.7664201325536145},{x:.5391947544564291,y:.7705785789630079},{x:.5307530644907258,y:.7731393376181454},{x:.521974,y:.774004},{x:.080078,y:.774004},{x:.07129893550927423,y:.7731393376181454},{x:.06285724554357093,y:.7705785789630079},{x:.05507733951411791,y:.7664201325536145},{x:.04825819484660536,y:.7608238051533946},{x:.042661867446385456,y:.7540046604858821},{x:.03850342103699209,y:.746224754456429},{x:.03594266238185463,y:.7377830644907257},{x:.035078,y:.729004},{x:.035078,y:.05103000000000002}]],F:[[{x:.041426000000000004,y:.05103000000000002},{x:.04229066238185464,y:.04225093550927423},{x:.0448514210369921,y:.03380924554357098},{x:.04900986744638546,y:.026029339514117924},{x:.054606194846605366,y:.019210194846605383},{x:.06142533951411792,y:.013613867446385479},{x:.06920524554357096,y:.009455421036992116},{x:.07764693550927423,y:.006894662381854655},{x:.086426,y:.0060300000000000215},{x:.09520506449072577,y:.006894662381854655},{x:.10364675445642904,y:.009455421036992116},{x:.11142666048588211,y:.013613867446385486},{x:.11824580515339464,y:.019210194846605383},{x:.12384213255361454,y:.026029339514117924},{x:.1280005789630079,y:.03380924554357098},{x:.13056133761814537,y:.04225093550927425},{x:.131426,y:.05103000000000002},{x:.131426,y:.347323},{x:.447344,y:.347323},{x:.4561230644907258,y:.3481876623818546},{x:.4645647544564291,y:.35074842103699205},{x:.47234466048588214,y:.35490686744638544},{x:.47916380515339463,y:.3605031948466053},{x:.48476013255361455,y:.36732233951411786},{x:.48891857896300794,y:.37510224554357097},{x:.4914793376181454,y:.3835439355092742},{x:.492344,y:.392323},{x:.4914793376181454,y:.4011020644907258},{x:.48891857896300794,y:.409543754456429},{x:.48476013255361455,y:.4173236604858821},{x:.47916380515339463,y:.42414280515339464},{x:.47234466048588214,y:.4297391325536145},{x:.4645647544564291,y:.4338975789630079},{x:.4561230644907258,y:.43645833761814534},{x:.447344,y:.43732299999999996},{x:.131426,y:.43732299999999996},{x:.131426,y:.679393},{x:.515626,y:.679393},{x:.5244050644907258,y:.6802576623818547},{x:.532846754456429,y:.6828184210369922},{x:.5406266604858821,y:.6869768674463855},{x:.5474458051533947,y:.6925731948466054},{x:.5530421325536146,y:.6993923395141179},{x:.5572005789630079,y:.707172245543571},{x:.5597613376181454,y:.7156139355092743},{x:.5606260000000001,y:.7243930000000001},{x:.5597613376181454,y:.7331720644907258},{x:.5572005789630079,y:.7416137544564291},{x:.5530421325536146,y:.7493936604858822},{x:.5474458051533947,y:.7562128051533947},{x:.5406266604858821,y:.7618091325536146},{x:.532846754456429,y:.7659675789630079},{x:.5244050644907258,y:.7685283376181454},{x:.515626,y:.7693930000000001},{x:.10586481668800227,y:.7693930000000001},{x:.10364675445642904,y:.7705785789630079},{x:.09520506449072577,y:.7731393376181454},{x:.086426,y:.774004},{x:.0776469355092742,y:.7731393376181454},{x:.06920524554357094,y:.7705785789630079},{x:.06142533951411792,y:.7664201325536145},{x:.054606194846605366,y:.7608238051533946},{x:.04900986744638546,y:.7540046604858821},{x:.0448514210369921,y:.746224754456429},{x:.04229066238185464,y:.7377830644907257},{x:.041426000000000004,y:.729004},{x:.041426000000000004,y:.05103000000000002}]],G:[[{x:.011397831509003739,y:.41623356008285023},{x:.011618856500496228,y:.4138403978921803},{x:.011624876992355357,y:.4114370583257866},{x:.031979876992355355,y:.20994505832578658},{x:.0322125865037964,y:.20879027461506633},{x:.03227702681480045,y:.2076140405475535},{x:.033082276634523504,y:.2044745765152392},{x:.033722542929381774,y:.20129735748690203},{x:.034176068118796386,y:.2002101619949014},{x:.03446874211029117,y:.19906910061620064},{x:.03587099832954512,y:.19614705695158466},{x:.03711880677043453,y:.1931557970536144},{x:.03777571891913337,y:.19217797009338475},{x:.03828537929375919,y:.19111593175236494},{x:.08239837929375919,y:.11845093175236496},{x:.08400149586436068,y:.11631468084865614},{x:.08543403702225794,y:.1140604899753128},{x:.08664282877724949,y:.11279494315419919},{x:.08769326713863865,y:.11139516977529508},{x:.08968234215056696,y:.10961271886167734},{x:.09152712825517066,y:.10768131654967852},{x:.15960912825517065,y:.049144316549678456},{x:.16129904644183068,y:.0479582081853546},{x:.16285577619764602,y:.04660201166682107},{x:.1649006360722032,y:.045430348778213794},{x:.16682965744636918,y:.04407642028337947},{x:.16871850259167306,y:.043242789341903884},{x:.17050990103726027,y:.04221635466854622},{x:.25257090103726026,y:.005359354668546305},{x:.2555014876285109,y:.004375276469579791},{x:.2583690572759664,y:.003220377345201267},{x:.25967433471463813,y:.0029740526131209386},{x:.2609335532503684,y:.0025512125194529015},{x:.2639998135747395,y:.0021577721889240492},{x:.26703759331756605,y:.0015844992133087973},{x:.35309859331756605,y:-.006038500786691249},{x:.3541123404679588,y:-.006028536718703998},{x:.3551159915981175,y:-.006171599559831674},{x:.3585153812714738,y:-.005985259459774228},{x:.361919709861342,y:-.005951798491220829},{x:.36291203425126567,y:-.00574425362199294},{x:.3639243106821295,y:-.005688764928569123},{x:.3672220288859873,y:-.004842817275250554},{x:.37055441634545594,y:-.004145847688979236},{x:.3714871835051078,y:-.003748697851442632},{x:.37246918402112983,y:-.003496790022837183},{x:.4525501840211298,y:.02567020997716287},{x:.4548144879103283,y:.026756908839544704},{x:.45716266717941917,y:.02764799841997529},{x:.45878159595452606,y:.02866082810547922},{x:.4605032369247208,y:.02948708879101062},{x:.4625120284186098,y:.03099465081435172},{x:.46464124512829075,y:.032326725408117304},{x:.4660314733714444,y:.03363593119127184},{x:.46755883802994086,y:.034782191000688294},{x:.46923492039795345,y:.03665268142188218},{x:.47106334994415,y:.038374550149380404},{x:.53517534994415,y:.11188255014938031},{x:.5366918789074028,y:.11401106513419482},{x:.5383741006891446,y:.11601120663268963},{x:.5392453250303639,y:.11759493887966013},{x:.5402941837404813,y:.11906705813061697},{x:.5413663203511413,y:.12145053442062861},{x:.5426260104640281,y:.12374042895017842},{x:.5431715236397763,y:.1254636976633839},{x:.5439130326051668,y:.12711215273922669},{x:.5444995752545472,y:.12965899467727895},{x:.5452883245139833,y:.13215064287530112},{x:.5896823245139834,y:.3420786428753011},{x:.5897067631627176,y:.34229945557802055},{x:.5897717252277992,y:.3425119065778641},{x:.5901917436343531,y:.346681442891342},{x:.5906527316031134,y:.3508466486034176},{x:.590633622248786,y:.3510679861958218},{x:.5906558889520306,y:.35128902847947113},{x:.590254400640623,y:.3554603898480228},{x:.5898939395311937,y:.3596354965915505},{x:.5898320165355749,y:.3598488531940917},{x:.589810732180064,y:.3600699922305474},{x:.5886031661213459,y:.3640828755761044},{x:.5874351082520124,y:.3681074363403587},{x:.5873327512810971,y:.3683046127784522},{x:.5872687338126765,y:.3685173503185603},{x:.5853014960930706,y:.3722175427846122},{x:.5833707292727002,y:.37593689595641405},{x:.5832318718474782,y:.3761103148501221},{x:.583127581421558,y:.3763064755095204},{x:.5804762718833937,y:.37955178077467916},{x:.577856994398102,y:.38282299369748307},{x:.5776869727315521,y:.38296599065597503},{x:.5775464171707139,y:.38313803609053093},{x:.5743129241526703,y:.3858037388934479},{x:.5711057933673104,y:.38850110068914456},{x:.5709111412967293,y:.38860818041949885},{x:.5707397220723512,y:.3887494990196469},{x:.5670483068977423,y:.3907331578965531},{x:.5633765710498215,y:.39275301046402805},{x:.5631647689451196,y:.3928200579522583},{x:.5629690736018615,y:.39292521892344706},{x:.5589615952856832,y:.39415060297614785},{x:.5549663571246989,y:.39541532451398326},{x:.5547455444219794,y:.39543976316271745},{x:.5545330934221359,y:.39550472522779906},{x:.5503635571086607,y:.3959247436343527},{x:.5461983513965825,y:.39638573160311336},{x:.5459770138041778,y:.396366622248786},{x:.5457559715205288,y:.3963888889520305},{x:.32969497152052885,y:.39686888895203054},{x:.32091400776945256,y:.3960237321800639},{x:.31246664968143967,y:.39348173381267654},{x:.3046775244904796,y:.389340581421558},{x:.29784596390946905,y:.3837594171707138},{x:.2922345009803531,y:.3769527220723512},{x:.2880587810765529,y:.3691820736018615},{x:.2854792747722009,y:.3607460934221358},{x:.2845951110479695,y:.3519689715205288},{x:.2854402678199361,y:.3431880077694525},{x:.2879822661873235,y:.33474064968143963},{x:.29212341857844204,y:.32695152449047954},{x:.29770458282928614,y:.320119963909469},{x:.3045112779276488,y:.31450850098035305},{x:.31228192639813845,y:.3103327810765529},{x:.3207179065778642,y:.3077532747722009},{x:.3294950284794712,y:.30686911104796943},{x:.49017057214072013,y:.30651215509128404},{x:.45965681956734333,y:.16222033524572274},{x:.4108567628008364,y:.10626833604444391},{x:.35107150330533127,y:.0844934248457151},{x:.2825297162303303,y:.09056463065174497},{x:.21333680545064249,y:.12164203785622632},{x:.15562253329738823,y:.17126485077351794},{x:.1205010051965362,y:.2291186770707186},{x:.10185989085514695,y:.41364510354456796},{x:.13655871914038514,y:.5827099362211221},{x:.190187982415082,y:.6526649281775241},{x:.2569251189377254,y:.6872526727450867},{x:.3715857772516941,y:.6967797369989467},{x:.4883723057362636,y:.6711064406866752},{x:.49713228125159653,y:.6700660353148682},{x:.5059269093127409,y:.6707546074846872},{x:.5144182172953911,y:.6731456957538017},{x:.5222798889957544,y:.6771474119409674},{x:.529209804779262,y:.6826059723372997},{x:.5349416518686954,y:.6893116075279637},{x:.5392551585948644,y:.6970066237131456},{x:.5419845593133248,y:.7053953057362636},{x:.5430249646851317,y:.7141552812515966},{x:.5423363925153128,y:.722949909312741},{x:.5399453042461984,y:.7314412172953911},{x:.5359435880590326,y:.7393028889957545},{x:.5304850276627003,y:.7462328047792621},{x:.5237793924720363,y:.7519646518686954},{x:.5160843762868544,y:.7562781585948645},{x:.5076956942637364,y:.7590075593133249},{x:.38428269426373635,y:.7861375593133247},{x:.3819812519937546,y:.7864108971664274},{x:.3797153389243004,y:.7868977113667894},{x:.37761181025895013,y:.7869298473215656},{x:.37552271874840343,y:.7871779646851318},{x:.3732121724765259,y:.7869970613144796},{x:.370894825552222,y:.7870324638061055},{x:.24049282555222196,y:.7761974638061055},{x:.24043595887820252,y:.7761870527203061},{x:.24037815170992255,y:.776187787986971},{x:.2360978388350013,y:.7753928346522221},{x:.2318155069745089,y:.7746088302209789},{x:.231761764079766,y:.7745875250435272},{x:.2317049242166051,y:.7745769685631748},{x:.227661944055434,y:.7729622424167508},{x:.22361484767780643,y:.7713578609091699},{x:.22356629387164592,y:.7713264803860874},{x:.22351260563766895,y:.7713050378383375},{x:.13987060563766895,y:.7279560378383374},{x:.13900257424615298,y:.727391873258006},{x:.13805978359276902,y:.7269641982011581},{x:.13531067905832161,y:.7249923788161832},{x:.13247402218179744,y:.7231487342752945},{x:.13173273281971745,y:.7224260654354895},{x:.1308914928889356,y:.7218226787027751},{x:.128579894506033,y:.7193524235854973},{x:.12615742040314795,y:.7169907998540069},{x:.12557136040496888,y:.7161373985129647},{x:.12486399957555622,y:.7153814879181388},{x:.05884299957555622,y:.6292624879181389},{x:.05814177883495547,y:.6281337214080167},{x:.057292540659828396,y:.62711165542026},{x:.05581896837632758,y:.6243946553718145},{x:.05418793684040681,y:.6217691571968414},{x:.05372040128165289,y:.6205252782386133},{x:.05308687616260495,y:.6193571728131668},{x:.052171678571706244,y:.6164048994674943},{x:.051084196133809955,y:.613511651036194},{x:.05086831288622884,y:.6122004612006492},{x:.05047484683830003,y:.6109312059739318},{x:.012315846838300032,y:.4250072059739319},{x:.012065742114142504,y:.42261690788694145},{x:.011602778634016861,y:.4202585732767163},{x:.011607833784388823,y:.41824059149262255},{x:.011397831509003739,y:.41623356008285023}]],H:[[{x:.021894999999999998,y:.05103000000000002},{x:.02275966238185463,y:.04225093550927423},{x:.025320421036992093,y:.03380924554357098},{x:.029478867446385455,y:.026029339514117924},{x:.03507519484660536,y:.019210194846605383},{x:.04189433951411791,y:.013613867446385479},{x:.04967424554357096,y:.009455421036992116},{x:.05811593550927423,y:.006894662381854655},{x:.066895,y:.0060300000000000215},{x:.07567406449072576,y:.006894662381854655},{x:.08411575445642903,y:.009455421036992116},{x:.0918956604858821,y:.013613867446385486},{x:.09871480515339463,y:.019210194846605383},{x:.10431113255361453,y:.026029339514117924},{x:.1084695789630079,y:.03380924554357098},{x:.11103033761814536,y:.04225093550927425},{x:.111895,y:.05103000000000002},{x:.111895,y:.359342},{x:.490157,y:.359342},{x:.490157,y:.05103000000000002},{x:.49102166238185463,y:.04225093550927423},{x:.49358242103699207,y:.03380924554357098},{x:.49774086744638546,y:.026029339514117924},{x:.5033371948466053,y:.019210194846605383},{x:.5101563395141179,y:.013613867446385479},{x:.517936245543571,y:.009455421036992116},{x:.5263779355092743,y:.006894662381854655},{x:.535157,y:.0060300000000000215},{x:.5439360644907257,y:.006894662381854655},{x:.552377754456429,y:.009455421036992116},{x:.5601576604858821,y:.013613867446385486},{x:.5669768051533947,y:.019210194846605383},{x:.5725731325536145,y:.026029339514117924},{x:.5767315789630079,y:.03380924554357098},{x:.5792923376181454,y:.04225093550927425},{x:.580157,y:.05103000000000002},{x:.580157,y:.729004},{x:.5792923376181454,y:.7377830644907257},{x:.5767315789630079,y:.746224754456429},{x:.5725731325536145,y:.7540046604858821},{x:.5669768051533947,y:.7608238051533946},{x:.5601576604858821,y:.7664201325536145},{x:.552377754456429,y:.7705785789630079},{x:.5439360644907257,y:.7731393376181454},{x:.535157,y:.774004},{x:.5263779355092743,y:.7731393376181454},{x:.517936245543571,y:.7705785789630079},{x:.5101563395141179,y:.7664201325536145},{x:.5033371948466053,y:.7608238051533946},{x:.49774086744638546,y:.7540046604858821},{x:.49358242103699207,y:.746224754456429},{x:.49102166238185463,y:.7377830644907257},{x:.490157,y:.729004},{x:.490157,y:.44934199999999996},{x:.111895,y:.44934199999999996},{x:.111895,y:.729004},{x:.11103033761814536,y:.7377830644907257},{x:.10846957896300788,y:.746224754456429},{x:.10431113255361453,y:.7540046604858821},{x:.09871480515339463,y:.7608238051533946},{x:.09189566048588207,y:.7664201325536145},{x:.08411575445642903,y:.7705785789630079},{x:.07567406449072576,y:.7731393376181454},{x:.066895,y:.774004},{x:.05811593550927421,y:.7731393376181454},{x:.04967424554357093,y:.7705785789630079},{x:.04189433951411791,y:.7664201325536145},{x:.03507519484660536,y:.7608238051533946},{x:.029478867446385455,y:.7540046604858821},{x:.025320421036992093,y:.746224754456429},{x:.02275966238185463,y:.7377830644907257},{x:.021894999999999998,y:.729004},{x:.021894999999999998,y:.05103000000000002}]],I:[[{x:.25602600000000003,y:.05103000000000002},{x:.25689066238185465,y:.04225093550927423},{x:.2594514210369921,y:.03380924554357098},{x:.2636098674463855,y:.026029339514117924},{x:.26920619484660535,y:.019210194846605383},{x:.27602533951411795,y:.013613867446385479},{x:.283805245543571,y:.009455421036992116},{x:.2922469355092743,y:.006894662381854655},{x:.301026,y:.0060300000000000215},{x:.3098050644907258,y:.006894662381854655},{x:.3182467544564291,y:.009455421036992116},{x:.32602666048588214,y:.013613867446385486},{x:.3328458051533947,y:.019210194846605383},{x:.33844213255361455,y:.026029339514117924},{x:.34260057896300794,y:.03380924554357098},{x:.3451613376181454,y:.04225093550927425},{x:.346026,y:.05103000000000002},{x:.346026,y:.729004},{x:.3451613376181454,y:.7377830644907257},{x:.34260057896300794,y:.746224754456429},{x:.33844213255361455,y:.7540046604858821},{x:.3328458051533947,y:.7608238051533946},{x:.32602666048588214,y:.7664201325536145},{x:.3182467544564291,y:.7705785789630079},{x:.3098050644907258,y:.7731393376181454},{x:.301026,y:.774004},{x:.2922469355092743,y:.7731393376181454},{x:.283805245543571,y:.7705785789630079},{x:.27602533951411795,y:.7664201325536145},{x:.26920619484660535,y:.7608238051533946},{x:.2636098674463855,y:.7540046604858821},{x:.2594514210369921,y:.746224754456429},{x:.25689066238185465,y:.7377830644907257},{x:.25602600000000003,y:.729004},{x:.25602600000000003,y:.05103000000000002}]],J:[[{x:.0492700034030052,y:.22191686675397743},{x:.05066400340300519,y:.18438286675397747},{x:.05116783173382979,y:.18068175768771486},{x:.05155979864248331,y:.17696713613904605},{x:.05874879864248331,y:.14209513613904604},{x:.05880353678004782,y:.1419191061579158},{x:.05882437610196882,y:.14173594355086241},{x:.060112741823836933,y:.13770889095133898},{x:.06136821695472819,y:.13367146342030908},{x:.0614562450600313,y:.133509494686791},{x:.06151241721221637,y:.13333391704789688},{x:.07511841721221638,y:.10184091704789687},{x:.07557207470549994,y:.10102219111224012},{x:.07589401217340325,y:.10014328637013822},{x:.07770640675364808,y:.09717031380613761},{x:.07939396242231754,y:.09412474393402119},{x:.07999862852050488,y:.09341025377409445},{x:.08048584585939292,y:.09261104382444658},{x:.10112984585939291,y:.06520804382444652},{x:.10197173470408774,y:.06429305686105671},{x:.10267645797068833,y:.06326868237508665},{x:.10495244591663212,y:.06105354143298789},{x:.10710291637241387,y:.058716353519649434},{x:.10810713366035453,y:.05798319214000915},{x:.10899816141532707,y:.05711598541156246},{x:.1373061614153271,y:.03451898541156248},{x:.13912164740426522,y:.03334117545586675},{x:.1408101373903697,y:.03198757757075004},{x:.14281300361792376,y:.03094638082514127},{x:.14470672673278473,y:.029717813955661344},{x:.1467171079910441,y:.028916819034200267},{x:.14863722796281134,y:.027918638208003034},{x:.20683022796281134,y:.004592638208003076},{x:.20850921914024034,y:.004104279923540699},{x:.2101185278310492,y:.0034204446176558795},{x:.21273469892125257,y:.0028752394826936905},{x:.21530073387518742,y:.0021288719943945503},{x:.21704273768291169,y:.0019774523068977427},{x:.21875453360851305,y:.0016207172553791283},{x:.2976895336085131,y:-.0068802827446208525},{x:.29850402526559744,y:-.006887701289741747},{x:.2993068957135494,y:-.007024999279811796},{x:.30290822222422875,y:-.006927815554356645},{x:.3065107103471747,y:-.0069606277022222565},{x:.30731099906181086,y:-.006809004262418785},{x:.30812522808832776,y:-.0067870318558802545},{x:.3663632280883278,y:.0005399681441197179},{x:.367446910459264,y:.0007860908462292888},{x:.3685549625674647,y:.000870733572342984},{x:.37174033606180384,y:.0017612008405818037},{x:.37496569353784953,y:.0024937343933679954},{x:.37598053709868623,y:.002946543859479297},{x:.3770507853196353,y:.0032457304419443098},{x:.4423997853196353,y:.028649730441944292},{x:.44339023767510893,y:.0291515261148112},{x:.4444435524779453,y:.029502699422305954},{x:.4473177196266577,y:.03114131738307233},{x:.45026902431580135,y:.03263654520916596},{x:.4511425499275847,y:.03332192668785485},{x:.4521071150681948,y:.03387184382278591},{x:.4818761150681948,y:.0549598438227859},{x:.482276572000261,y:.05530719927286456},{x:.48273081061614365,y:.05558049186877649},{x:.48560514894853896,y:.05819439949693127},{x:.48854004666413575,y:.060740123232255375},{x:.48886504324193186,y:.061158929616590856},{x:.48925723704963914,y:.06151558852974905},{x:.5141262370496392,y:.08904658852974903},{x:.5149956342421861,y:.09022293690705172},{x:.5160117353213701,y:.09127516577002369},{x:.5176116053111659,y:.0937625081737249},{x:.5193693801104602,y:.0961408866071265},{x:.519992577896003,y:.09746424275846524},{x:.5207838752101566,y:.09869448482562238},{x:.5385188752101566,y:.1333154848256224},{x:.5396070973995049,y:.13607819549886616},{x:.5408707323766272,y:.1387652058155645},{x:.5412201620380835,y:.14017334347255597},{x:.5417518824254063,y:.14152324205357814},{x:.5422802166156467,y:.1444451696332536},{x:.5429953614930656,y:.1473270727547606},{x:.5523413614930656,y:.2113020727547606},{x:.5524962602601196,y:.21460328519222147},{x:.5528139181508881,y:.2178928278123641},{x:.5518389181508881,y:.7290898278123641},{x:.5509575131661891,y:.7378672271777721},{x:.5483806584624608,y:.7463040176932935},{x:.5442073811208505,y:.7540759782308231},{x:.5385980578491955,y:.7608844367054697},{x:.5317682517950807,y:.7664677478762799},{x:.5239804285749665,y:.7706113482261165},{x:.5155338698677402,y:.7731560015172932},{x:.5067531721876358,y:.7740039181508881},{x:.4979757728222279,y:.7731225131661891},{x:.4895389823067066,y:.7705456584624607},{x:.48176702176917696,y:.7663723811208505},{x:.4749585632945304,y:.7607630578491954},{x:.46937525212372017,y:.7539332517950806},{x:.4652316517738835,y:.7461454285749665},{x:.46268699848270683,y:.7376988698677401},{x:.461839081849112,y:.7289181721876359},{x:.462807763438783,y:.22103394388498027},{x:.45501827222953295,y:.16771351802238937},{x:.44337725180090903,y:.14498874958374325},{x:.42579959063650114,y:.12552955984883984},{x:.4046143325842134,y:.11052217895574154},{x:.34961801160788414,y:.08914271579513207},{x:.3021031758959219,y:.08316481131246532},{x:.2345584384824393,y:.09043912324952764},{x:.18827433696976265,y:.10899157718530504},{x:.16959144206995366,y:.1239052897771866},{x:.155605251275173,y:.14247066404328695},{x:.14596289111822178,y:.16478926233983734},{x:.14046290234137151,y:.19146830095804884},{x:.13920799659699482,y:.22525713324602253},{x:.1380181031040591,y:.23399805813086086},{x:.13514580323043823,y:.24233889189031887},{x:.13070147784947123,y:.24995910096061402},{x:.12485591989314217,y:.25656584498063745},{x:.11783377087548613,y:.26190523048280423},{x:.10990488804518514,y:.26577206787662816},{x:.10137397392283892,y:.2680177567696118},{x:.09256886675397746,y:.2685559965969948},{x:.08382794186913914,y:.26736610310405906},{x:.07548710810968112,y:.26449380323043825},{x:.06786689903938595,y:.2600494778494712},{x:.06126015501936256,y:.2542039198931421},{x:.055920769517195726,y:.24718177087548612},{x:.052053932123371845,y:.23925288804518513},{x:.04980824323038816,y:.2307219739228389},{x:.0492700034030052,y:.22191686675397743}]],K:[[{x:-.009598999999999996,y:.05103000000000002},{x:-.008734337618145363,y:.04225093550927423},{x:-.006173578963007902,y:.03380924554357098},{x:-.002015132553614539,y:.026029339514117924},{x:.003581194846605365,y:.019210194846605383},{x:.010400339514117916,y:.013613867446385479},{x:.018180245543570964,y:.009455421036992116},{x:.026621935509274233,y:.006894662381854655},{x:.035401,y:.0060300000000000215},{x:.04418006449072578,y:.006894662381854655},{x:.05262175445642904,y:.009455421036992116},{x:.06040166048588211,y:.013613867446385486},{x:.06722080515339464,y:.019210194846605383},{x:.07281713255361454,y:.026029339514117924},{x:.07697557896300791,y:.03380924554357098},{x:.07953633761814537,y:.04225093550927425},{x:.080401,y:.05103000000000002},{x:.080401,y:.29048154892126793},{x:.18934433769134518,y:.3772029724897202},{x:.5349508182082354,y:.03415901207017739},{x:.5417907398770268,y:.02858809778868676},{x:.5495860658299886,y:.024458629583942203},{x:.5580372260624178,y:.02192930060321959},{x:.5668194472260474,y:.021097311540784057},{x:.5755952334866855,y:.021994635269720175},{x:.5840273362998535,y:.024586788142349852},{x:.5917917146832189,y:.028774155177474024},{x:.5985899879298227,y:.03439581820823536},{x:.6041609022113132,y:.04123573987702663},{x:.6082903704160578,y:.04903106582998847},{x:.6108196993967804,y:.05748222606241771},{x:.6116516884592159,y:.06626444722604735},{x:.6107543647302798,y:.07504023348668547},{x:.6081622118576502,y:.08347233629985339},{x:.603974844822526,y:.0912367146832188},{x:.5983531817917647,y:.09803498792982254},{x:.26024203797571366,y:.43363918627462555},{x:.5302838206406747,y:.648598708462355},{x:.5366139141989896,y:.654742773070568},{x:.5416237292416561,y:.6620037211908337},{x:.545120741386121,y:.6701025186588768},{x:.5469705624168195,y:.6787279332298585},{x:.5471021047489336,y:.6875484950590041},{x:.5455103132844098,y:.6962252349018474},{x:.542256359676543,y:.7044247105121999},{x:.537465291537645,y:.7118318206406747},{x:.531321226929432,y:.7181619141989897},{x:.5240602788091663,y:.7231717292416562},{x:.5159614813411232,y:.726668741386121},{x:.5073360667701415,y:.7285185624168196},{x:.498515504940996,y:.7286501047489337},{x:.48983876509815266,y:.7270583132844098},{x:.48163928948780005,y:.723804359676543},{x:.47423217935932527,y:.719013291537645},{x:.080401,y:.4055145384845117},{x:.080401,y:.729004},{x:.07953633761814537,y:.7377830644907257},{x:.07697557896300788,y:.746224754456429},{x:.07281713255361454,y:.7540046604858821},{x:.06722080515339464,y:.7608238051533946},{x:.06040166048588208,y:.7664201325536145},{x:.052621754456429054,y:.7705785789630079},{x:.04418006449072578,y:.7731393376181454},{x:.035401,y:.774004},{x:.026621935509274212,y:.7731393376181454},{x:.018180245543570936,y:.7705785789630079},{x:.010400339514117906,y:.7664201325536145},{x:.003581194846605358,y:.7608238051533946},{x:-.002015132553614539,y:.7540046604858821},{x:-.006173578963007902,y:.746224754456429},{x:-.008734337618145363,y:.7377830644907257},{x:-.009598999999999996,y:.729004},{x:-.009598999999999996,y:.05103000000000002}]],L:[[{x:.030439999999999995,y:.05103000000000002},{x:.03130466238185463,y:.04225093550927423},{x:.03386542103699209,y:.03380924554357098},{x:.03802386744638545,y:.026029339514117924},{x:.043620194846605356,y:.019210194846605383},{x:.05043933951411791,y:.013613867446385479},{x:.058219245543570955,y:.009455421036992116},{x:.06666093550927422,y:.006894662381854655},{x:.07544,y:.0060300000000000215},{x:.526613,y:.0060300000000000215},{x:.5353920644907257,y:.006894662381854655},{x:.543833754456429,y:.009455421036992116},{x:.5516136604858821,y:.013613867446385479},{x:.5584328051533947,y:.019210194846605383},{x:.5640291325536145,y:.026029339514117924},{x:.5681875789630079,y:.03380924554357098},{x:.5707483376181454,y:.04225093550927425},{x:.571613,y:.05103000000000002},{x:.5707483376181454,y:.05980906449072579},{x:.5681875789630079,y:.06825075445642906},{x:.5640291325536145,y:.07603066048588211},{x:.5584328051533947,y:.08284980515339466},{x:.5516136604858821,y:.08844613255361455},{x:.543833754456429,y:.09260457896300792},{x:.5353920644907257,y:.09516533761814538},{x:.526613,y:.09603000000000002},{x:.12043999999999999,y:.09603000000000002},{x:.12043999999999999,y:.729004},{x:.11957533761814536,y:.7377830644907257},{x:.11701457896300788,y:.746224754456429},{x:.11285613255361453,y:.7540046604858821},{x:.10725980515339463,y:.7608238051533946},{x:.10044066048588207,y:.7664201325536145},{x:.09266075445642903,y:.7705785789630079},{x:.08421906449072576,y:.7731393376181454},{x:.07544,y:.774004},{x:.06666093550927422,y:.7731393376181454},{x:.05821924554357093,y:.7705785789630079},{x:.05043933951411791,y:.7664201325536145},{x:.043620194846605356,y:.7608238051533946},{x:.03802386744638545,y:.7540046604858821},{x:.03386542103699209,y:.746224754456429},{x:.03130466238185463,y:.7377830644907257},{x:.030439999999999995,y:.729004},{x:.030439999999999995,y:.05103000000000002}]],M:[[{x:-.0025190000000000004,y:.05103000000000002},{x:-.001654337618145367,y:.04225093550927423},{x:.0009064210369920944,y:.03380924554357098},{x:.005064867446385457,y:.026029339514117924},{x:.010661194846605361,y:.019210194846605383},{x:.017480339514117912,y:.013613867446385479},{x:.02526024554357096,y:.009455421036992116},{x:.03370193550927423,y:.006894662381854655},{x:.042481,y:.0060300000000000215},{x:.051260064490725774,y:.006894662381854655},{x:.05970175445642904,y:.009455421036992116},{x:.06748166048588208,y:.013613867446385486},{x:.07430080515339463,y:.019210194846605383},{x:.07989713255361454,y:.026029339514117924},{x:.0840555789630079,y:.03380924554357098},{x:.08661633761814536,y:.04225093550927425},{x:.087481,y:.05103000000000002},{x:.087481,y:.5631122522964573},{x:.26219554141599577,y:.26476777519375044},{x:.26376288989624813,y:.2626088267569117},{x:.2651577075441738,y:.2603345964826191},{x:.26634817172230724,y:.2590477232579252},{x:.26737807478439135,y:.2576290804774607},{x:.2693364970488442,y:.25581739014918375},{x:.271148193983327,y:.2538589739959976},{x:.27256684023788735,y:.25282907571933333},{x:.27385371747828813,y:.25163861588213104},{x:.27612795245761435,y:.25024380590572387},{x:.27828690618147356,y:.24867646470811877},{x:.2798792167324836,y:.24794311979268302},{x:.28137361418054185,y:.2470265916026687},{x:.2838762642998919,y:.24610226374330602},{x:.28629950743227456,y:.24498622954453103},{x:.28800429067823724,y:.24457762002415934},{x:.28964877947809164,y:.24397024514568044},{x:.29228366929688115,y:.24355192080462856},{x:.2948780779631802,y:.2429300821730634},{x:.29662982004000654,y:.24286191068247276},{x:.29836120340931876,y:.24258703019148947},{x:.3010270755894747,y:.24269078533857608},{x:.3036929481196057,y:.24258703918410057},{x:.30542433056167173,y:.24286192551544342},{x:.30717607240852984,y:.24293010291506947},{x:.3097704789772072,y:.24355195029817853},{x:.3124053673848756,y:.24397028352732772},{x:.31404985413590314,y:.24457766395304856},{x:.3157546360035206,y:.24498627922405064},{x:.3181778753712451,y:.24610232159698525},{x:.32068052237260675,y:.24702665789836697},{x:.32217491672899246,y:.24794319112932822},{x:.32376722480624953,y:.2486765414159958},{x:.3259261732430879,y:.2502438898962479},{x:.3282004035173809,y:.2516387075441738},{x:.329487276742075,y:.2528291717223074},{x:.3309059195225393,y:.2538590747843914},{x:.3327176098508159,y:.2558174970488439},{x:.33467602600400237,y:.257629193983327},{x:.3357059242806667,y:.2590478402378874},{x:.33689638411786893,y:.2603347174782881},{x:.3382911940942761,y:.2626089524576143},{x:.3398585352918812,y:.26476790618147356},{x:.514571,y:.5631111449291359},{x:.514571,y:.05103000000000002},{x:.5154356623818547,y:.04225093550927423},{x:.5179964210369922,y:.03380924554357098},{x:.5221548674463855,y:.026029339514117924},{x:.5277511948466054,y:.019210194846605383},{x:.5345703395141179,y:.013613867446385479},{x:.542350245543571,y:.009455421036992116},{x:.5507919355092743,y:.006894662381854655},{x:.559571,y:.0060300000000000215},{x:.5683500644907258,y:.006894662381854655},{x:.576791754456429,y:.009455421036992116},{x:.5845716604858822,y:.013613867446385486},{x:.5913908051533947,y:.019210194846605383},{x:.5969871325536146,y:.026029339514117924},{x:.6011455789630079,y:.03380924554357098},{x:.6037063376181454,y:.04225093550927425},{x:.6045710000000001,y:.05103000000000002},{x:.6045710000000001,y:.729004},{x:.6044399806971988,y:.7303342613054065},{x:.6044919608158994,y:.7316699481196056},{x:.6040085293496043,y:.7347148603514975},{x:.6037063376181454,y:.7377830644907257},{x:.6033183147080721,y:.7390622046001841},{x:.6031087164726723,y:.7403823673848756},{x:.6020405410986152,y:.7432744596816038},{x:.6011455789630079,y:.746224754456429},{x:.6005154639484909,y:.7474036167328832},{x:.600052342101633,y:.7486575223726067},{x:.5984404722003996,y:.7512856532491108},{x:.5969871325536146,y:.7540046604858821},{x:.596139140401289,y:.7550379419131618},{x:.5954402924558263,y:.7561774035173808},{x:.5933466712837743,y:.758440575377949},{x:.5913908051533947,y:.7608238051533946},{x:.5903575237261146,y:.7616717973057207},{x:.589449806016673,y:.7626530260040023},{x:.5869548902613284,y:.7644642664232344},{x:.5845716604858822,y:.7664201325536145},{x:.5833927982094276,y:.7670502475681318},{x:.5823110938185264,y:.7678355352918812},{x:.579510761693201,y:.7691252393162225},{x:.576791754456429,y:.7705785789630079},{x:.5755126143469705,y:.7709666018730812},{x:.5742984925677255,y:.7715257704554689},{x:.5713003592655512,y:.772244375482538},{x:.5683500644907258,y:.7731393376181454},{x:.5670198031853202,y:.7732703569209465},{x:.5657199220368199,y:.7735819178269366},{x:.5626392041392276,y:.7737018082685412},{x:.559571,y:.774004},{x:.5582407386945936,y:.7738729806971988},{x:.5569050518803944,y:.7739249608158993},{x:.5538601396485026,y:.7734415293496042},{x:.5507919355092743,y:.7731393376181454},{x:.5495127953998159,y:.772751314708072},{x:.5481926326151244,y:.7725417164726722},{x:.5453005403183963,y:.7714735410986151},{x:.542350245543571,y:.7705785789630079},{x:.5411713832671168,y:.7699484639484908},{x:.5399174776273933,y:.769485342101633},{x:.5372893467508892,y:.7678734722003996},{x:.5345703395141179,y:.7664201325536145},{x:.5335370580868383,y:.765572140401289},{x:.5323975964826192,y:.7648732924558262},{x:.5301344246220511,y:.7627796712837742},{x:.5277511948466054,y:.7608238051533946},{x:.5269032026942794,y:.7597905237261146},{x:.5259219739959977,y:.7588828060166729},{x:.5241107335767656,y:.7563878902613284},{x:.5221548674463855,y:.7540046604858821},{x:.5215247524318682,y:.7528257982094275},{x:.5207394647081188,y:.7517440938185264},{x:.30102684980758887,y:.3765575080608823},{x:.08131245858400418,y:.7517442248062496},{x:.0805272117946797,y:.752825865136849},{x:.07989713255361454,y:.7540046604858821},{x:.07794121846393844,y:.7563879486998997},{x:.0761299252156086,y:.7588829195225393},{x:.07514874916275306,y:.7597905823884902},{x:.07430080515339463,y:.7608238051533946},{x:.0719175169393771,y:.7627797192430708},{x:.06965428252171184,y:.764873384117869},{x:.06851488325078628,y:.7655721885442563},{x:.06748166048588208,y:.7664201325536145},{x:.06476258657702469,y:.7678735078373721},{x:.06213438581945812,y:.7694854083973313},{x:.06088054980546198,y:.7699484997219428},{x:.05970175445642904,y:.7705785789630079},{x:.056751387338174995,y:.7714735630437544},{x:.05385922052190834,y:.7725417548543195},{x:.05253913197970031,y:.7727513367372549},{x:.051260064490725774,y:.7731393376181454},{x:.04819178511684276,y:.773441536759571},{x:.0451467965906812,y:.7739249698085104},{x:.04381118578262464,y:.7738729881355436},{x:.042481,y:.774004},{x:.039412720626117295,y:.7737018008585744},{x:.03633192759147018,y:.7735818970849305},{x:.035032121291898165,y:.7732703494826018},{x:.03370193550927423,y:.7731393376181454},{x:.030751568391020223,y:.7722443535373988},{x:.02775336399647938,y:.7715257207759494},{x:.026539313032545114,y:.7709665798438982},{x:.02526024554357096,y:.7705785789630079},{x:.02254117163471342,y:.7691252036792503},{x:.01974077519375046,y:.7678354585840041},{x:.01865913486315115,y:.7670502117946798},{x:.017480339514117912,y:.7664201325536145},{x:.015097051300099952,y:.7644642184639381},{x:.012602080477460715,y:.7626529252156086},{x:.011694417611510011,y:.7616717491627533},{x:.010661194846605361,y:.7608238051533946},{x:.008705280756928618,y:.7584405169393763},{x:.006611615882131057,y:.7561772825217118},{x:.005912811455744052,y:.7550378832507868},{x:.005064867446385457,y:.7540046604858821},{x:.0036114921626275165,y:.7512855865770239},{x:.0019995916026687363,y:.7486573858194581},{x:.0015365002780573323,y:.7474035498054622},{x:.0009064210369920944,y:.746224754456429},{x:11436956245516774e-21,y:.7432743873381747},{x:-.0010567548543195318,y:.7403822205219084},{x:-.0012663367372549837,y:.7390621319797002},{x:-.001654337618145367,y:.7377830644907257},{x:-.0019565367595708303,y:.7347147851168438},{x:-.0024399698085105087,y:.7316697965906812},{x:-.0023879881355436095,y:.730334185782624},{x:-.0025190000000000004,y:.729004},{x:-.0025190000000000004,y:.05103000000000002}]],N:[[{x:.022871000000000002,y:.05103000000000002},{x:.023735662381854636,y:.04225093550927423},{x:.026296421036992097,y:.03380924554357098},{x:.03045486744638546,y:.026029339514117924},{x:.036051194846605364,y:.019210194846605383},{x:.042870339514117915,y:.013613867446385479},{x:.05065024554357096,y:.009455421036992116},{x:.05909193550927423,y:.006894662381854655},{x:.067871,y:.0060300000000000215},{x:.07665006449072577,y:.006894662381854655},{x:.08509175445642904,y:.009455421036992116},{x:.0928716604858821,y:.013613867446385486},{x:.09969080515339464,y:.019210194846605383},{x:.10528713255361455,y:.026029339514117924},{x:.10944557896300791,y:.03380924554357098},{x:.11200633761814537,y:.04225093550927425},{x:.112871,y:.05103000000000002},{x:.112871,y:.5841703094604355},{x:.49710429367778214,y:.025528669675955993},{x:.4971050718109503,y:.02552774709009411},{x:.49710565506134197,y:.025526690456344234},{x:.49994880496714983,y:.022156103119426583},{x:.5027917749380927,y:.01878536401177818},{x:.5027927181072235,y:.018784610959395015},{x:.5027934962896407,y:.018783688415073364},{x:.5062395848358414,y:.016032536999645196},{x:.5096855265142521,y:.01328120162562755},{x:.5096865984738844,y:.013280647046104224},{x:.5096875416832135,y:.013279894044071351},{x:.5136041376200112,y:.011253903755746949},{x:.5175206253992491,y:.009227704391234041},{x:.5175217849545753,y:.009227369596750634},{x:.5175228569438108,y:.00922681507445236},{x:.5217594476858983,y:.008003843583871996},{x:.5259959731369073,y:.006780645934087934},{x:.5259971757268666,y:.006780543790608634},{x:.5259983353000632,y:.006780209058025982},{x:.5303921110410749,y:.006407254473822295},{x:.5347858668666982,y:.00603406533837119},{x:.5347870662764328,y:.00603419977121261},{x:.5347882688718429,y:.006034097691931008},{x:.5391703792739257,y:.006525492449663053},{x:.5435525159020149,y:.007016653277689966},{x:.5435536660388816,y:.007017019120673398},{x:.543554865441438,y:.007017153617542397},{x:.547756908459233,y:.008354013692199154},{x:.5519590228368241,y:.009690649448577907},{x:.5519600795017079,y:.0096912326425627},{x:.551961229619043,y:.009691598546943021},{x:.555821723096155,y:.01182254915564361},{x:.559682330324044,y:.013953293677782128},{x:.5596832529099061,y:.01395407181095043},{x:.5596843095436558,y:.013954655061341997},{x:.5630548968806759,y:.016797804967236304},{x:.5664256359882218,y:.01964077493809272},{x:.5664263890406048,y:.019641718107223288},{x:.5664273115849267,y:.019642496289640633},{x:.5691784630004857,y:.02308858483600535},{x:.5719297983743725,y:.026534526514252196},{x:.5719303529538958,y:.0265355984738845},{x:.5719311059559287,y:.0265365416832135},{x:.5739570962443242,y:.03045313762014873},{x:.575983295608766,y:.03436962539924916},{x:.5759836304032494,y:.03437078495457533},{x:.5759841849255477,y:.0343718569438108},{x:.5772071564160691,y:.03860844768569421},{x:.5784303540659121,y:.04284497313690728},{x:.5784304562093915,y:.04284617572686688},{x:.578430790941974,y:.042847335300063204},{x:.5788037455260991,y:.04724111104014873},{x:.5791769346616289,y:.05163486686669809},{x:.5791768002287875,y:.05163606627643281},{x:.5791769023080691,y:.05163726887184294},{x:.5700269023080691,y:.7296112688718429},{x:.5690438463824576,y:.738377865441438},{x:.566369401453057,y:.746784229619043},{x:.5621063449386581,y:.7545073095436557},{x:.5564185037103594,y:.7612503115849266},{x:.5495244583167865,y:.7667541059559286},{x:.5416891430561892,y:.7708071849255477},{x:.5332136646999368,y:.773253790941974},{x:.5244237311281571,y:.773999902308069},{x:.515657134558562,y:.7730168463824576},{x:.507250770380957,y:.770342401453057},{x:.49952769045634426,y:.766079344938658},{x:.4927846884150734,y:.7603915037103594},{x:.4872808940440714,y:.7534974583167865},{x:.4832278150744524,y:.7456621430561892},{x:.480781209058026,y:.7371866646999369},{x:.48003509769193103,y:.7283967311281571},{x:.48718300813543913,y:.19876859615253395},{x:.10494770632221789,y:.754505330324044},{x:.1022980223560627,y:.75764690179997},{x:.09969080515339464,y:.7608238051533946},{x:.09945603456444842,y:.7610164763964532},{x:.09926022506190729,y:.7612486359882218},{x:.09604856383930557,y:.7638129153509474},{x:.0928716604858821,y:.7664201325536145},{x:.09260381265312083,y:.7665633002029657},{x:.09236647348574781,y:.7667527983743725},{x:.08871625734636118,y:.7686412418060533},{x:.08509175445642904,y:.7705785789630079},{x:.08480112262185491,y:.7706667411661766},{x:.08453137460075086,y:.770806295608766},{x:.08058287930375276,y:.7719463312873718},{x:.07665006449072577,y:.7731393376181454},{x:.07634781747275289,y:.773169106351106},{x:.07605602686309273,y:.7732533540659121},{x:.07196099086840901,y:.7736011710596524},{x:.067871,y:.774004},{x:.06756875298202693,y:.7739742312670393},{x:.06726613313330192,y:.7739999346616289},{x:.06318192637768459,y:.7735421665584931},{x:.05909193550927423,y:.7731393376181454},{x:.05880130367469977,y:.7730511754149765},{x:.05849948409798508,y:.77301734672231},{x:.054583060356599135,y:.7717715852937818},{x:.05065024554357096,y:.7705785789630079},{x:.0503823977108098,y:.7704354113136568},{x:.050092977163175983,y:.7703433505514221},{x:.04649484240404986,y:.768357469710569},{x:.042870339514117915,y:.7664201325536145},{x:.04263556892517204,y:.7662274613105563},{x:.04236966967595597,y:.7660807063222179},{x:.03922809820002561,y:.7634310223560591},{x:.036051194846605364,y:.7608238051533946},{x:.03585852360354703,y:.7605890345644487},{x:.035626364011778155,y:.7603932250619073},{x:.033062084649052234,y:.7571815638393052},{x:.03045486744638546,y:.7540046604858821},{x:.030311699797034096,y:.7537368126531205},{x:.03012220162562753,y:.7534994734857478},{x:.028233758193948882,y:.7498492573463653},{x:.026296421036992097,y:.746224754456429},{x:.026208258833823234,y:.7459341226218545},{x:.026068704391234022,y:.7456643746007509},{x:.02492866871262922,y:.741715879303756},{x:.023735662381854636,y:.7377830644907257},{x:.023705893648893955,y:.7374808174727527},{x:.023621645934087915,y:.7371890268630927},{x:.023273828940347806,y:.7330939908684111},{x:.022871000000000002,y:.729004},{x:.022871000000000002,y:.05103000000000002}]],O:[[{x:.012131736117046842,y:.4355587711738732},{x:.012426138979982786,y:.43287355609157196},{x:.012514983726773468,y:.43017371170811375},{x:.012905745911416293,y:.42849911573111366},{x:.01309315536666239,y:.42678977537085305},{x:.07316415536666239,y:.1412837753708531},{x:.07429915106219231,y:.13768552483470178},{x:.07533122192175289,y:.13405641311271962},{x:.07562440736087628,y:.1334840955199844},{x:.07581784742995093,y:.1328708369543332},{x:.07763301835724021,y:.12956315246900071},{x:.0793532628391043,y:.12620512014747703},{x:.07975246842568721,y:.12570099711853563},{x:.0800618324091279,y:.12513726042963025},{x:.08248742256740031,y:.1222472544549173},{x:.0848297326408542,y:.1192893488327618},{x:.1660597326408542,y:.03517334883276172},{x:.16792084009780786,y:.033590824390739155},{x:.16963596886504836,y:.031851158363102774},{x:.17127304088861567,y:.03074040344046043},{x:.172780173663761,y:.0294588683817891},{x:.1749142556657825,y:.0282698357562587},{x:.17693582072022015,y:.026898201947035502},{x:.17875813439943417,y:.026128166777013812},{x:.18048632312818114,y:.025165283073572443},{x:.1828113681007397,y:.02441543612151622},{x:.18506168183103927,y:.023464545648773483},{x:.2739246818310393,y:-.0041824543512264944},{x:.2748960678404206,y:-.004382857312604547},{x:.27582577451608603,y:-.004728396924478621},{x:.2792086173377598,y:-.005272563034129881},{x:.28256427991205235,y:-.0059648570457577},{x:.28355609768991147,y:-.005971901311054349},{x:.2845353517466465,y:-.006129424701440567},{x:.287959355733624,y:-.0060031749164705245},{x:.2913856000541485,y:-.006027509400590186},{x:.29235973459950004,y:-.005840924262640544},{x:.29335090385307644,y:-.005804377895986514},{x:.3811419038530764,y:.006122622104013507},{x:.38318930529213563,y:.00660893405691686},{x:.3852758334501729,y:.006882342567970358},{x:.387470347489584,y:.0076257947232155985},{x:.38972465411174423,y:.008161252125438313},{x:.3916378405507577,y:.009037647936572414},{x:.39363093730084414,y:.009712864429997858},{x:.3956382440479665,y:.010870159811164118},{x:.3977447722434711,y:.011835121954387393},{x:.39945022100051475,y:.01306792222421872},{x:.4012732927522862,y:.01411899850883961},{x:.4916652927522862,y:.07880999850883955},{x:.49276799959381884,y:.07977586317754862},{x:.49398769122063274,y:.08058901093294302},{x:.4960788615418114,y:.08267585840574071},{x:.4983012083703825,y:.08462241954283417},{x:.4991942961599152,y:.08578485282556958},{x:.5002319144966787,y:.08682032620708877},{x:.5018757798210403,y:.08927504258220473},{x:.5036756696393939,y:.09161775945128844},{x:.5043248175140242,y:.09293208968889465},{x:.5051404874699588,y:.09415009603518716},{x:.5560304874699588,y:.18912209603518723},{x:.5570965448702581,y:.19168827319789875},{x:.5583465570022521,y:.1941700494329812},{x:.5587848767756364,y:.19575236841213633},{x:.559414776433869,y:.19726864147332673},{x:.5599597135111237,y:.1999934877429328},{x:.5607015364856348,y:.20267144261291137},{x:.5892585364856349,y:.36700144261291134},{x:.5895780755292599,y:.371318367211785},{x:.589913428370686,y:.37563409214099147},{x:.5899036127276142,y:.3757163259822715},{x:.58990972616553,y:.3757989176124618},{x:.5893809351459178,y:.38009523269056544},{x:.5888678881103582,y:.38439345626922305},{x:.5314878881103581,y:.6446844562692231},{x:.5303800126922803,y:.6480826863142071},{x:.5293998170293023,y:.651519919480997},{x:.5290148883003433,y:.6522699863013032},{x:.5287535704445262,y:.6530715368858165},{x:.5270040207481954,y:.6561883351212919},{x:.5253720883446767,y:.6593682961290664},{x:.5248482251358019,y:.6600288547560561},{x:.5244355536676654,y:.6607640231862051},{x:.522111563906752,y:.6634796128039058},{x:.5198906090097624,y:.6662800975344761},{x:.4528876090097624,y:.7355630975344761},{x:.4513498405668143,y:.7368687638478525},{x:.44995999895015265,y:.7383308981052339},{x:.44799560298794544,y:.7397167316507253},{x:.4461630292013509,y:.741272707045399},{x:.44440008568631667,y:.7422532816059559},{x:.4427517012434998,y:.743416176715023},{x:.4405546878862334,y:.7443921472166956},{x:.43845377075029196,y:.7455607075703166},{x:.43653340109378364,y:.7461785074476045},{x:.43468982031452474,y:.7469974740014746},{x:.32025082031452473,y:.7849044740014746},{x:.3162756641960007,y:.785800462676764},{x:.3123143949565378,y:.7867559771378485},{x:.3119757732525013,y:.7867696456410259},{x:.3116451697261732,y:.786844162718285},{x:.30757159639863574,y:.7869474207351895},{x:.30350003021295163,y:.7871117699623142},{x:.30316524843732107,y:.7870591140117537},{x:.302826459804451,y:.7870677017158569},{x:.29881101440639224,y:.7863742609266953},{x:.29478561927964103,y:.7857411290712295},{x:.173234619279641,y:.7541621290712296},{x:.17180894449846637,y:.7536379076298808},{x:.17032768986057922,y:.753301394035824},{x:.16767817066393412,y:.7521190197025511},{x:.16495505208167519,y:.7511177274253745},{x:.16365904177145735,y:.7503254433998781},{x:.16227189957151614,y:.7497064173758784},{x:.15990395993272244,y:.7480298664806163},{x:.1574285077432372,y:.7465165596726792},{x:.15631196685338702,y:.745486660093817},{x:.15507224418821702,y:.7446089104628228},{x:.08487024418821705,y:.6837459104628228},{x:.08477922863788438,y:.6836498346778195},{x:.08467166808724909,y:.6835727301071804},{x:.08174665618590948,y:.6804486588585436},{x:.07880340242944883,y:.6773417676286113},{x:.07873287917322891,y:.6772297816598538},{x:.07864242772392874,y:.6771331746094597},{x:.07638309517198695,y:.6734984900001298},{x:.07410251962167697,y:.6698770964908778},{x:.07405519882875666,y:.6697535038963435},{x:.0739853324792622,y:.6696411069209627},{x:.07247850415964274,y:.6656354878421232},{x:.07094824805491862,y:.6616387601752097},{x:.07092594823683183,y:.6615083105489945},{x:.0708793519117729,y:.6613844430013583},{x:.013660351911772894,y:.4476944430013583},{x:.013380528959940628,y:.4459977798389246},{x:.012899536483696877,y:.44434683677239306},{x:.012664423003084308,y:.4416557821956227},{x:.012224847112815455,y:.43899048181468664},{x:.012281403443251489,y:.4372718288093888},{x:.012131736117046842,y:.4355587711738732}],[{x:.10337829031332789,y:.4348001396911351},{x:.15424861715004387,y:.6247803934833692},{x:.2060651876410252,y:.6697037849792326},{x:.3045603004668897,y:.6952928559694175},{x:.3958853477721772,y:.6650421672339206},{x:.4463402797077116,y:.6128703383711886},{x:.499069598507425,y:.373676069990286},{x:.47327322171072966,y:.22523195474705573},{x:.4307624349909165,y:.1458974207255564},{x:.35796896612556683,y:.09380119213930618},{x:.2911281310221294,y:.08472041346861442},{x:.22279798440939425,y:.10597924519162948},{x:.15856873728877424,y:.17249047688925445},{x:.10337829031332789,y:.4348001396911351}]],P:[[{x:.025556999999999996,y:.05103000000000002},{x:.02642166238185463,y:.04225093550927423},{x:.02898242103699209,y:.03380924554357098},{x:.033140867446385454,y:.026029339514117924},{x:.03873719484660536,y:.019210194846605383},{x:.04555633951411791,y:.013613867446385479},{x:.053336245543570956,y:.009455421036992116},{x:.061777935509274226,y:.006894662381854655},{x:.070557,y:.0060300000000000215},{x:.07933606449072576,y:.006894662381854655},{x:.08777775445642903,y:.009455421036992116},{x:.09555766048588209,y:.013613867446385486},{x:.10237680515339463,y:.019210194846605383},{x:.10797313255361454,y:.026029339514117924},{x:.1121315789630079,y:.03380924554357098},{x:.11469233761814536,y:.04225093550927425},{x:.11555699999999999,y:.05103000000000002},{x:.11555699999999999,y:.3249696679740436},{x:.22632413005583354,y:.32573306868659574},{x:.22797244585475993,y:.3259068917113995},{x:.2296296407459454,y:.32587748916779646},{x:.3399906407459454,y:.3347734891677965},{x:.3425199358315593,y:.3352301100895628},{x:.3450781711944775,y:.33547763407671893},{x:.4262801711944775,y:.3514846340767189},{x:.43023360415359113,y:.35267647626036297},{x:.4342017122431381,y:.35381850872164355},{x:.49034871224313803,y:.3761405087216436},{x:.49223471805815816,y:.37711419756221787},{x:.49421014578428074,y:.3778905822551455},{x:.4961445509948513,y:.379132728294546},{x:.49818726580808836,y:.3801873213410173},{x:.49984707528076383,y:.38151024250532195},{x:.5016330805772936,y:.3826570960152846},{x:.5368430805772937,y:.4104950960152846},{x:.538268982488492,y:.41186995272090265},{x:.539835277869678,y:.41308244849417974},{x:.5414366048100854,y:.41492417879038607},{x:.5431934850553138,y:.4166181652891421},{x:.5443237674236908,y:.41824478417169497},{x:.5456234206874699,y:.41973955124896434},{x:.546834674823181,y:.4218582966024136},{x:.5482273167355989,y:.4238624839583804},{x:.5490185434436073,y:.4256783549664296},{x:.5500016096439067,y:.4273979502871872},{x:.5725636096439066,y:.4777629502871872},{x:.5732747072201834,y:.47988746499756846},{x:.5741879174558705,y:.48193325814034926},{x:.5746713208988057,y:.4840600657825243},{x:.5753635933927087,y:.4861283376286891},{x:.5756465551694752,y:.4883507586397718},{x:.5761431038835471,y:.49053540091990977},{x:.5762022992770958,y:.49271564988294925},{x:.5764777701286589,y:.49487923612929946},{x:.5763217220435205,y:.4971141570479765},{x:.5763825271473633,y:.4993536938878067},{x:.5706825271473633,y:.5794656938878067},{x:.5700654182420953,y:.5830779192715516},{x:.5695689975224034,y:.5867086990904052},{x:.5693236589408173,y:.5874197813867033},{x:.5691969863455608,y:.5881612549906394},{x:.5678870248015591,y:.5915836805014664},{x:.5666918126627678,y:.5950478490261242},{x:.5415328126627678,y:.6498468490261241},{x:.5413708296623262,y:.6501242105110185},{x:.5412617638147841,y:.650426323944409},{x:.5391478795722351,y:.653930540410781},{x:.5370840246571379,y:.6574644536133865},{x:.536871043573226,y:.6577048843594048},{x:.5367051339883567,y:.6579799150765678},{x:.5339482287199508,y:.661004400648547},{x:.5312345979336611,y:.6640677725799057},{x:.5309788035098929,y:.664262032968313},{x:.5307624259999995,y:.6644994116930277},{x:.47414742599999943,y:.7155204116930277},{x:.47266946719886654,y:.7166100541651699},{x:.4713261182021025,y:.7178618913781634},{x:.46912758296129603,y:.7192213498885075},{x:.46704701478499566,y:.7207552731949938},{x:.4653848758470294,y:.7215356430341334},{x:.4638231175995642,y:.7225013521577397},{x:.4283261175995643,y:.7398953521577398},{x:.4243082080780145,y:.7413960258251278},{x:.4202985181688539,y:.7429185254841078},{x:.34090751816885384,y:.7644395254841077},{x:.3408415384597873,y:.7644506164558663},{x:.3407789202555512,y:.7644741810938074},{x:.33649241770984384,y:.7651816893280429},{x:.33220802793590354,y:.7659018811363755},{x:.33214115226719376,y:.7658998869955335},{x:.33207514002138977,y:.7659107826399355},{x:.2099811400213898,y:.7739077826399355},{x:.20641155146718015,y:.773790767187745},{x:.20284008504333162,y:.7738075792583221},{x:.0663570850433316,y:.7610135792583221},{x:.06408313636872824,y:.7605723800858132},{x:.061777935509274226,y:.7603453376181454},{x:.05976354040438703,y:.759734277543603},{x:.05769704052657306,y:.7593333282846051},{x:.05555285882676713,y:.7584569812513055},{x:.053336245543570956,y:.7577845789630079},{x:.05147976838249502,y:.7567922712467745},{x:.04953119704042999,y:.7559958719887517},{x:.04759918201567506,y:.7547180546196904},{x:.04555633951411791,y:.7536261325536145},{x:.043929123673028744,y:.7522907110247322},{x:.04217336337061703,y:.7511294669445447},{x:.04052776127482757,y:.7494992850446065},{x:.03873719484660536,y:.7480298051533947},{x:.037401773317722896,y:.7464025893123053},{x:.03590629693874444,y:.7449211263687215},{x:.034610347337597366,y:.7430012269141045},{x:.033140867446385454,y:.7412106604858821},{x:.032148559730151835,y:.7393541833248057},{x:.030970837593177758,y:.7376094333079335},{x:.030074343103068113,y:.7354735969579864},{x:.02898242103699209,y:.733430754456429},{x:.028371360962449563,y:.7314163593515414},{x:.027556652268729623,y:.729475372026062},{x:.027094064670152376,y:.7272056777739226},{x:.02642166238185463,y:.7249890644907258},{x:.02621533264498147,y:.722894163516222},{x:.025794946192721373,y:.7208315299365354},{x:.02578404246766777,y:.7185152008594541},{x:.025556999999999996,y:.71621},{x:.025556999999999996,y:.05103000000000002}],[{x:.11555699999999999,y:.414971805397996},{x:.11555699999999999,y:.6752310456989574},{x:.20767337575712835,y:.6838660911730216},{x:.3217031184787672,y:.6763972896549704},{x:.3925929523867085,y:.6571807523203506},{x:.4185706758911827,y:.6444513238436673},{x:.46361487793542,y:.6038578374443203},{x:.4814895996448674,y:.5649247767123354},{x:.48580725170954087,y:.5042413131675768},{x:.4723746184159119,y:.474255736718963},{x:.45098032059796866,y:.45734081304228297},{x:.40480552914494095,y:.4389833995595593},{x:.3301954695220376,y:.42427584033215343},{x:.22404845814303564,y:.41571952231013837},{x:.11555699999999999,y:.414971805397996}]],Q:[[{x:.012134510452571898,y:.39776120903599943},{x:.012467756958298536,y:.3937322544040442},{x:.012734737801221134,y:.38969836671479857},{x:.012831073490929856,y:.38933975275179394},{x:.012861682585025715,y:.38896968840207613},{x:.0716656825850257,y:.06709568840207614},{x:.07243605319674906,y:.06440524795975149},{x:.07301096718930201,y:.06166637692330789},{x:.07364750148994079,y:.06017438890024393},{x:.07409402290033937,y:.05861495861744442},{x:.07537446994903126,y:.05612650608452361},{x:.07647266436288541,y:.053552421842995857},{x:.07738804025928744,y:.05221328363312273},{x:.0781302116420243,y:.05077092937167972},{x:.07987152826568633,y:.04858009458346291},{x:.08145080010539194,y:.04626971775068952},{x:.16096480010539196,y:-.04855928224931053},{x:.16315500529851779,y:-.05070373085173594},{x:.16521251383898505,y:-.052975804178533654},{x:.1663001767861927,y:-.05378319510572523},{x:.1672680674520078,y:-.05473086511953138},{x:.1698345496348827,y:-.056406820906963286},{x:.172295783242646,y:-.058233836978172464},{x:.17352006120728586,y:-.058813521600477286},{x:.17465423537351554,y:-.059554156299027654},{x:.17749836607515132,y:-.06069721323044178},{x:.18026874092294012,y:-.06200896084304842},{x:.2672567409229401,y:-.09317596084304836},{x:.2695830047845554,y:-.09375972267138269},{x:.2718475349769373,y:-.09454977610873284},{x:.2738508793967248,y:-.09483071995927067},{x:.27581299058749986,y:-.09532309988014809},{x:.2782084422243766,y:-.09544181332278269},{x:.28058359188359605,y:-.09577489818042065},{x:.2826032520283714,y:-.0956596106656824},{x:.28462372036011635,y:-.09575974074040533},{x:.28699630390923414,y:-.09540884370631499},{x:.2893907973658866,y:-.09527215971995788},{x:.3753267973658866,y:-.08182715971995795},{x:.37840631600914065,y:-.08102976437129623},{x:.38152495221950905,y:-.08040256216817918},{x:.38266795913198753,y:-.07992627554804835},{x:.3838666954562622,y:-.07961588068444121},{x:.38673147789694834,y:-.07823302278004476},{x:.38966782930723504,y:-.07700945634885908},{x:.3906959547522998,y:-.07631933185595965},{x:.3918111026603398,y:-.07578103928710583},{x:.3943510569158511,y:-.07386586128072498},{x:.3969922811880835,y:-.07209295159323717},{x:.45217017177581864,y:-.026613783173476364},{x:.5097585536672307,y:-.09873256043298734},{x:.5159122791302333,y:-.10505326271144577},{x:.5231808703268614,y:-.11005198218579294},{x:.5312849993737013,y:-.11353662086994384},{x:.5399132291363312,y:-.11537326605347448},{x:.5487339815837399,y:-.1154913364919842},{x:.5574082801461085,y:-.11388629480473579},{x:.5656027763942881,y:-.11061982184365243},{x:.5730025604329874,y:-.10581744633276943},{x:.5793232627114457,y:-.0996637208697668},{x:.5843219821857929,y:-.09239512967313873},{x:.5878066208699438,y:-.08429100062629874},{x:.5896432660534744,y:-.07566277086366895},{x:.5897613364919841,y:-.06684201841626024},{x:.5881562948047357,y:-.058167719853891554},{x:.5848898218436525,y:-.04997322360571205},{x:.5800874463327694,y:-.042573439567012816},{x:.5106129498444961,y:.04443049374200151},{x:.5474711182959175,y:.12365010382899572},{x:.5481373073434039,y:.1255496832776173},{x:.5490025186311253,y:.12736726941208848},{x:.5495935209593992,y:.1297019482663393},{x:.5503905347901464,y:.13197456307270286},{x:.5506733336355601,y:.13396760967066554},{x:.5511673266667299,y:.13591906574595297},{x:.5791213266667299,y:.32118306574595296},{x:.5792865967797204,y:.3243841932678159},{x:.5796238248970751,y:.32757179562983435},{x:.579513579388425,y:.3287806341158348},{x:.5795761658223595,y:.3299928748079828},{x:.5791137513174164,y:.3331647361616822},{x:.5788226293197903,y:.33635687958013644},{x:.5226546293197903,y:.6297998795801365},{x:.5219105438778229,y:.6323181740447382},{x:.521369234544533,y:.6348876981954499},{x:.5206636104444891,y:.6365383151545928},{x:.5201549436340621,y:.6382598551025291},{x:.5189338607071872,y:.6405845973766512},{x:.5179016631869613,y:.6429991446291672},{x:.5168875780620563,y:.6444803850133782},{x:.5160528293589531,y:.6460696100820955},{x:.5144016744792594,y:.6481114616238732},{x:.5129182555439367,y:.6502782422813739},{x:.4473292555439367,y:.7283852422813738},{x:.4454767413796947,y:.7301964293264013},{x:.4437773055972873,y:.732151966404103},{x:.44233025961343425,y:.7332727172827731},{x:.4410215211764534,y:.7345522595114605},{x:.4388512574885805,y:.735967237520439},{x:.4368029695300015,y:.737553656027496},{x:.4351650804791521,y:.7383705673253327},{x:.43363186277883553,y:.7393702013057781},{x:.431227251583759,y:.7403345934673514},{x:.4289088260065632,y:.7414909282302113},{x:.3168848260065632,y:.7842309282302113},{x:.31544522398579106,y:.7846236280557255},{x:.31406876767085296,y:.7851998529634103},{x:.3111991137964475,y:.7857818972901452},{x:.30837424253549156,y:.7865524758495462},{x:.30688569012846406,y:.7866567776362199},{x:.305423266132861,y:.7869533972381565},{x:.30249520063786056,y:.7869644160479279},{x:.2995742760667897,y:.7871690831124285},{x:.29809397750772,y:.7869809786010931},{x:.2966017859654652,y:.7869865939723252},{x:.2937278327647654,y:.7864261638184524},{x:.2908231043767717,y:.786057054147543},{x:.2894079467091229,y:.7855837720890787},{x:.28794333170435554,y:.785298167434039},{x:.16895933170435556,y:.7496931674340391},{x:.16685145995859063,y:.7488293371508981},{x:.16467103610787698,y:.748169732810473},{x:.1627799564873854,y:.7471607878174731},{x:.16079664289106937,y:.7463480029082842},{x:.1588977982379503,y:.7450895455041626},{x:.15688795304330724,y:.7440172356850165},{x:.15523004539103946,y:.7426587459550258},{x:.15344340707901263,y:.7414746531917952},{x:.15182656105367498,y:.739869930478983},{x:.1500645317387979,y:.7384261234461069},{x:.08134353173879794,y:.6698101234461069},{x:.07898814712174665,y:.6669445493412297},{x:.07654417665723892,y:.6641541443502993},{x:.0761910053095167,y:.6635415309608049},{x:.07574199244846258,y:.6629952594015535},{x:.07399091166125166,y:.6597252337561722},{x:.07213828241215867,y:.6565116506297859},{x:.07191141209628055,y:.6558419081228384},{x:.07157759918584938,y:.6552185349547689},{x:.07049811528111428,y:.6516697230205841},{x:.06930802275051184,y:.6481564579560907},{x:.013298022750511833,y:.4072474579560906},{x:.013249789700227431,y:.40687927578320093},{x:.013136451320225305,y:.40652566731159423},{x:.012677284531251238,y:.4025091147450468},{x:.012152162963867598,y:.3985006516980174},{x:.01217668547678935,y:.39813013424102855},{x:.012134510452571898,y:.39776120903599943}],[{x:.1030741934540208,y:.3959601630333355},{x:.15405220468618464,y:.6152256818322884},{x:.20562817178182732,y:.6667228451191239},{x:.2990925609035841,y:.6946913078929434},{x:.38591644511804135,y:.6615657918309754},{x:.4364618489221904,y:.6013735361946543},{x:.4889800495366121,y:.3269984766785998},{x:.4631403994395801,y:.1557472448128009},{x:.4478929247459949,y:.12297570323093639},{x:.3763894463327694,y:.21252056043298723},{x:.3702357208697667,y:.2188412627114457},{x:.36296712967313866,y:.22383998218579282},{x:.35486300062629866,y:.22732462086994373},{x:.34623477086366883,y:.22916126605347437},{x:.3374140184162602,y:.2292793364919841},{x:.3287397198538915,y:.22767429480473567},{x:.32054522360571197,y:.22440782184365232},{x:.31314543956701274,y:.21960544633276935},{x:.3068247372885543,y:.2134517208697667},{x:.30182601781420715,y:.20618312967313862},{x:.2983413791300562,y:.19807900062629863},{x:.2965047339465256,y:.18945077086366885},{x:.29638666350801585,y:.18063001841626014},{x:.2979917051952643,y:.17195571985389144},{x:.30125817815634764,y:.16376122360571194},{x:.3060605536672306,y:.1563614395670127},{x:.3960043024488616,y:.04372356068896105},{x:.3492507773512258,y:.005187991106938553},{x:.28681342879982186,y:-.004580559340762309},{x:.22209853619564562,y:.018606191220169738},{x:.15806156000107346,y:.09497717514193305},{x:.1030741934540208,y:.3959601630333355}]],R:[[{x:-.010088,y:.05588800000000005},{x:-.009223337618145366,y:.04710893550927426},{x:-.006662578963007905,y:.03866724554357101},{x:-.0025041325536145423,y:.030887339514117953},{x:.0030921948466053617,y:.024068194846605412},{x:.009911339514117913,y:.018471867446385508},{x:.01769124554357096,y:.014313421036992145},{x:.02613293550927423,y:.011752662381854684},{x:.034912,y:.01088800000000005},{x:.043691064490725774,y:.011752662381854684},{x:.05213275445642904,y:.014313421036992145},{x:.059912660485882105,y:.018471867446385515},{x:.06673180515339464,y:.024068194846605412},{x:.07232813255361453,y:.030887339514117953},{x:.0764865789630079,y:.03866724554357101},{x:.07904733761814536,y:.04710893550927428},{x:.079912,y:.05588800000000005},{x:.079912,y:.36648688236049143},{x:.25933152798675563,y:.3728389247505383},{x:.2598033776805002,y:.3702688775066002},{x:.2630584474090824,y:.36206984491555727},{x:.26785052379396923,y:.35466338703825},{x:.5319365237939692,y:.022999387038250052},{x:.5380814500271169,y:.016670129897313986},{x:.5453430800394999,y:.011661303295187019},{x:.5534423534621115,y:.008165393629206541},{x:.5620680197594453,y:.00631674674730745},{x:.5708885994130244,y:.006186405112428031},{x:.5795651224933998,y:.00777937768050025},{x:.5877641550844427,y:.011034447409082423},{x:.59517061296175,y:.015826523793969254},{x:.601499870102686,y:.021971450027116944},{x:.606508696704813,y:.02923308003949996},{x:.6100046063707935,y:.03733235346211146},{x:.6118532532526926,y:.04595801975944533},{x:.6119835948875719,y:.05477859941302443},{x:.6103906223194997,y:.06345512249339977},{x:.6071355525909176,y:.07165415508444274},{x:.6023434762060308,y:.07906061296174999},{x:.36492288462028066,y:.3772356888373974},{x:.45122307475864126,y:.3907421966461853},{x:.4517263325772421,y:.3908725352482557},{x:.4522445282141884,y:.3909141268943158},{x:.4559919550269364,y:.3919772876167318},{x:.459762859565968,y:.3929539131315124},{x:.46023101962685037,y:.3931799280437793},{x:.4607311441523136,y:.39332181547170203},{x:.5072261441523136,y:.41160281547170213},{x:.5099186672764574,y:.4129799887569096},{x:.5126912264123276,y:.4141879634543456},{x:.5138373975854011,y:.41498434320238026},{x:.5150799754049854,y:.4156198976243936},{x:.5174520892726079,y:.41749589411441484},{x:.5199357102894067,y:.4192215573713852},{x:.5536387102894067,y:.4479225573713852},{x:.5544422891842978,y:.4487559165260936},{x:.5553578681885658,y:.44946439490120116},{x:.5574982196806069,y:.4519250983842071},{x:.5597619879819907,y:.4542727608851649},{x:.5603875460278954,y:.4552468777427617},{x:.5611473151639865,y:.4561203635073251},{x:.5627664809673836,y:.45895134712470415},{x:.5645287453623273,y:.46169553923588524},{x:.5649522427143585,y:.46277297903182424},{x:.5655270044804562,y:.4637779046177677},{x:.5843050044804562,y:.5056739046177676},{x:.5856980535944053,y:.5098331481877504},{x:.5870956418010017,y:.5139908687307394},{x:.5870987900445207,y:.5140153439302019},{x:.587106627133701,y:.514038743222053},{x:.5876614810321307,y:.5183898384933372},{x:.5882210839336397,y:.522740325535193},{x:.5899430839336397,y:.580600325535193},{x:.589777587866933,y:.5830153029012521},{x:.5898269599494498,y:.5854354407122341},{x:.5894767504310368,y:.5874052295805413},{x:.5893399666658296,y:.589401226848592},{x:.5887065118476329,y:.5917375144207835},{x:.5882827897945603,y:.5941207819778186},{x:.5699357897945603,y:.6593647819778187},{x:.5695566600666073,y:.6603356321127045},{x:.5693270257483343,y:.6613522723710545},{x:.5679549854437747,y:.6644370937206254},{x:.5667268644118839,y:.6675819841936177},{x:.5661656160899001,y:.668460215174679},{x:.5657420574552864,y:.6694125215424361},{x:.5637945617300048,y:.6721703971299327},{x:.5619765010042908,y:.6750152648867381},{x:.5612547025465381,y:.6757671267898905},{x:.5606534967163777,y:.6766185026674012},{x:.5398464967163776,y:.7006785026674012},{x:.5387925287989109,y:.70167944573824},{x:.5378793324857355,y:.7028102896247742},{x:.535601038014175,y:.7047103734673366},{x:.5334498940671065,y:.7067532939324781},{x:.5322209035416287,y:.707529385222465},{x:.5311046373415733,y:.7084603444980107},{x:.5029396373415734,y:.7276033444980106},{x:.49917038563569516,y:.7296565217962586},{x:.49541206095977475,y:.7317296332429761},{x:.4611910609597748,y:.7464366332429762},{x:.457170688924302,y:.7477143925092122},{x:.45316143447737084,y:.7490266191763204},{x:.37177643447737085,y:.7670666191763205},{x:.36787988134157384,y:.7675363076101905},{x:.36399443936523473,y:.7680904503837813},{x:.2290834393652347,y:.7739614503837813},{x:.2260604581328276,y:.7737959747883908},{x:.2230330269857825,y:.7738173839936113},{x:.030818026985782503,y:.7562573839936113},{x:.028490934977474184,y:.7558115802948838},{x:.02613293550927423,y:.7555793376181453},{x:.024169339379190496,y:.7549836872441402},{x:.022154034015341384,y:.7545976128723226},{x:.01995862841458906,y:.7537063820373993},{x:.01769124554357096,y:.7530185789630078},{x:.01588158498580211,y:.7520512952425895},{x:.013980322522940947,y:.7512794726091756},{x:.012000971535783972,y:.7499770641392344},{x:.009911339514117913,y:.7488601325536145},{x:.008325158769029223,y:.7475583876576994},{x:.006611003657363959,y:.7464304774736483},{x:.004923772632206568,y:.7447669421957904},{x:.0030921948466053617,y:.7432638051533946},{x:.0017904499506900475,y:.7416776244083056},{x:.0003292762098528329,y:.7402369716294513},{x:-.001000995511218774,y:.7382762382714833},{x:-.0025041325536145423,y:.7364446604858821},{x:-.0034714162740331275,y:.7346349999281129},{x:-.004623456556617868,y:.732936968032819},{x:-.005545647377387794,y:.7307543864780955},{x:-.006662578963007905,y:.728664754456429},{x:-.007258229337013042,y:.7267011583263452},{x:-.008056863899357211,y:.7248110017280808},{x:-.008535534543753812,y:.7224904473617442},{x:-.009223337618145366,y:.7202230644907257},{x:-.009424464135908606,y:.7181809926864091},{x:-.009839001899660749,y:.7161713490432334},{x:-.009855757323261527,y:.7138019994682},{x:-.010088,y:.711444},{x:-.010088,y:.05588800000000005}],[{x:.079912,y:.45654326739466394},{x:.079912,y:.6703676283824797},{x:.22820062174801237,y:.6839146886946046},{x:.3561457472749752,y:.6783468266821017},{x:.42954781695254723,y:.662076342723345},{x:.4559144639404158,y:.6507448714849071},{x:.47563211893454127,y:.6373433067928232},{x:.48601322722124407,y:.6253391992627579},{x:.4997779385388953,y:.5763903343143285},{x:.4985264355495565,y:.5343392524542002},{x:.48755361344964526,y:.5098575528750181},{x:.467303195590932,y:.4926125823096997},{x:.43241084881177044,y:.4788935374345549},{x:.3509044963348569,y:.4661372945522357},{x:.079912,y:.45654326739466394}]],S:[[{x:.021897597226735628,y:.20918252956592975},{x:.022856530106274857,y:.20041326151782815},{x:.025507836686771486,y:.19199957102060095},{x:.07532383668677148,y:.0752955710206009},{x:.07606476437254353,y:.07394451179196875},{x:.07662717764446286,y:.07250992955787258},{x:.07818101321859919,y:.07008559601860773},{x:.07956562874320691,y:.06756079148160443},{x:.08055589829123208,y:.06638024029801701},{x:.0813873780598424,y:.06508294454561242},{x:.08338432112997196,y:.06300833217803187},{x:.0852348965856767,y:.0608021661408081},{x:.08643645249257384,y:.05983749092219001},{x:.08750504545666679,y:.05872733599970995},{x:.08986835462050304,y:.05708217099364391},{x:.09211377343035676,y:.05527942517977789},{x:.09348044057646428,y:.05456769785378441},{x:.09474508130770348,y:.05368734639231786},{x:.18347008130770348,y:.00406434639231789},{x:.18531117162778632,y:.0032602675504258996},{x:.18705570252460849,y:.0022638899609980986},{x:.18934358471290644,y:.0014991491478438968},{x:.19155425509545604,y:.0005336596975895336},{x:.19351683738147718,y:.0001042099085839361},{x:.19542223123106015,y:-.0005326814704223887},{x:.1978153459361366,y:-.0008363843304376121},{x:.20017189655491793,y:-.0013520417748285815},{x:.2021805498702545,y:-.0013903589963945293},{x:.20417358345551592,y:-.0016432887864569548},{x:.36640558345551594,y:-.006196288786456984},{x:.3683537351453612,y:-.006059465175549666},{x:.37030515940756886,y:-.006136660097762148},{x:.3727431942064551,y:-.005751182385354602},{x:.3752054496398049,y:-.005578251970786187},{x:.37708947517888647,y:-.005063991846688501},{x:.37901846335331396,y:-.004758999502412188},{x:.3813344490261288,y:-.00390529164215812},{x:.3837156558614866,y:-.003255321831637216},{x:.38546315320491126,y:-.002383387922517842},{x:.38729557535780434,y:-.001707928996501587},{x:.5134735753578044,y:.059451071003498376},{x:.5144073364238021,y:.06002293670994077},{x:.5154151369003129,y:.060451046875811966},{x:.5181619939873726,y:.06232241135953579},{x:.5209964106485654,y:.06405830049148753},{x:.5218006642926897,y:.06480134570578519},{x:.5227055800155168,y:.06541784197435321},{x:.5250345719141375,y:.06778913394790613},{x:.5274758708842278,y:.07004463571609586},{x:.5281197100899656,y:.07093030562736781},{x:.5288869656553633,y:.07171149639276676},{x:.5307085905129939,y:.07449158843544039},{x:.5326629540416582,y:.07718002517181716},{x:.5331216364294024,y:.07817428398206286},{x:.5337217466362741,y:.07909014852127505},{x:.5349660004312154,y:.08217220325496363},{x:.5363583234240663,y:.08519025984344057},{x:.5366142220868877,y:.08625489874416871},{x:.5370241250365293,y:.08727024089657527},{x:.5783351250365293,y:.22800124089657534},{x:.5784689928995229,y:.22870739358153944},{x:.5787167010683089,y:.22938208824013706},{x:.5792894483007394,y:.23303529403132756},{x:.5799781923062021,y:.23666841715613338},{x:.579971724381043,y:.23738711763976203},{x:.5800830465086156,y:.23809717369609615},{x:.5799320834693805,y:.24179192160438975},{x:.5798988062915618,y:.2454896025769029},{x:.5797522511369868,y:.24619323160266243},{x:.5797229091764134,y:.2469113620006918},{x:.5788540372904492,y:.2505056649360105},{x:.5781000177526308,y:.2541258039501414},{x:.5778190074010411,y:.2547873214491718},{x:.5776501289474114,y:.2554859288404322},{x:.5462891289474114,y:.3454679288404322},{x:.5453940585085517,y:.34740151578805634},{x:.5446999978282894,y:.3494160105998292},{x:.5435456407901493,y:.3513945829466735},{x:.5425833616033817,y:.3534733584203385},{x:.5413282655917657,y:.35519517245680393},{x:.5402545326513293,y:.3570355547940282},{x:.5387363559437135,y:.3587509055417339},{x:.537387017705137,y:.36060200657115166},{x:.5358201287566253,y:.36204587934864135},{x:.5344079865107593,y:.36364142435019586},{x:.5325843328131388,y:.3650276335315076},{x:.5308997898345437,y:.36657992334222783},{x:.5290813226127058,y:.36769036763963614},{x:.5273850388959807,y:.368979759405903},{x:.44286903889598056,y:.42100375940590296},{x:.4391930936098881,y:.42279580082266366},{x:.4355432374645799,y:.42464039733796655},{x:.4352309585303121,y:.42472736117212373},{x:.4349395777453148,y:.4248694107387315},{x:.430984654780085,y:.42590987723258605},{x:.42704506666901776,y:.42700697873237736},{x:.18802361397643091,y:.46887992641475673},{x:.1445277950559712,y:.506325930968192},{x:.1345999941059918,y:.5433489412625321},{x:.1668438673565076,y:.6442112383308392},{x:.2418447705661005,y:.6964178007533797},{x:.3847076342900009,y:.6886954406015322},{x:.4475324208368403,y:.608018765726417},{x:.4536085342974724,y:.6016234190133417},{x:.4608155671913789,y:.5965363480257236},{x:.46887655728619765,y:.5929530460487544},{x:.47748172525324006,y:.5910112173678703},{x:.48630037931336645,y:.5907854853702875},{x:.49499362353660437,y:.5922845248100812},{x:.5032273814226823,y:.5954507284422511},{x:.5106852342735829,y:.6001624208368403},{x:.5170805809866582,y:.6062385342974724},{x:.5221676519742764,y:.6134455671913789},{x:.5257509539512455,y:.6215065572861976},{x:.5276927826321296,y:.63011172525324},{x:.5279185146297124,y:.6389303793133664},{x:.5264194751899187,y:.6476236235366044},{x:.5232532715577489,y:.6558573814226824},{x:.5185415791631597,y:.663315234273583},{x:.4431175791631597,y:.760171234273583},{x:.4420344490669973,y:.7613112710002186},{x:.44110391182703096,y:.7625789282836855},{x:.4390031114098716,y:.7645018722698176},{x:.4370414657025276,y:.7665665809866583},{x:.43575673751534005,y:.767473404028016},{x:.4345967726198766,y:.768535164822443},{x:.4321611907321885,y:.7700113141492059},{x:.4298344328086211,y:.7716536519742764},{x:.42839747791415833,y:.7722924126294288},{x:.42705266216361437,y:.7731074740629288},{x:.4243758968514515,y:.7740801011395291},{x:.42177344271380235,y:.7752369539512456},{x:.4202394824828045,y:.7755831050064366},{x:.4187614963922926,y:.7761201447252115},{x:.4159464142454535,y:.7765518720385514},{x:.41316827474676,y:.7771787826321297},{x:.4115962584106506,y:.7772190216964318},{x:.4100419001567639,y:.7774574015652649},{x:.23125890015676387,y:.7871214015652648},{x:.22961427991333744,y:.7870487065186679},{x:.22797320559841586,y:.7871788426312305},{x:.22521775007366066,y:.7868543723294609},{x:.22244596265035355,y:.7867318545526676},{x:.22084712542379714,y:.7863397068281228},{x:.21921219559556868,y:.7861471846952227},{x:.21657298639174055,y:.7852913862936938},{x:.21387836011908076,y:.7846304737606538},{x:.21238674832737245,y:.7839339433752962},{x:.2108207924222569,y:.7834261615145331},{x:.2083992528689725,y:.782071922865878},{x:.2058853407234555,y:.7808980140745921},{x:.20455827617124617,y:.7799238683005129},{x:.20312147299647784,y:.7791203404840283},{x:.10291447299647782,y:.7093683404840284},{x:.10181255131472464,y:.7084283417469311},{x:.10059641238964509,y:.7076416809983432},{x:.09846400643554813,y:.7055718520256913},{x:.09620311784593605,y:.7036431918911783},{x:.09530575393663021,y:.7025062807105057},{x:.09426645267874648,y:.7014974784931097},{x:.09257882390791694,y:.6990514089395268},{x:.09073764058529563,y:.6967187299857058},{x:.09007931964022471,y:.6954285972205445},{x:.08925679581402991,y:.6942364212378118},{x:.08807879885369768,y:.6915081121844703},{x:.08672807644060793,y:.6888610579553555},{x:.08633409736450004,y:.6874672826843552},{x:.08575996009935855,y:.6861375475907227},{x:.04484896009935855,y:.5581635475907226},{x:.04400698871411546,y:.5542371548008082},{x:.04309586967447821,y:.5503262293029391},{x:.04308290316808571,y:.5499278363503387},{x:.04299932697019912,y:.5495380927241992},{x:.04293953506277818,y:.5455228840020936},{x:.042808906634767226,y:.5415093553341928},{x:.04287391188557095,y:.5411160877505585},{x:.04286797679041901,y:.5407175280315513},{x:.04359266213029085,y:.5367678055966908},{x:.04424754429113727,y:.532805911414652},{x:.06119154429113727,y:.4696179114146519},{x:.06126294463056804,y:.4694283141856516},{x:.06129777501412092,y:.46922873472253734},{x:.06281676603792068,y:.46530228011432895},{x:.0643004966052513,y:.46136236601319713},{x:.0644075135916399,y:.46119034135699993},{x:.06448061074086608,y:.46100139182805006},{x:.06673642807197144,y:.45744672339211917},{x:.06896028828319853,y:.453871975109843},{x:.06909880931377366,y:.45372413383751425},{x:.06920736414622189,y:.4535530754671619},{x:.07211331798967527,y:.4505067971180214},{x:.07499184614403663,y:.4474345902263458},{x:.07515654793327702,y:.4473166137950705},{x:.07529638874761438,y:.44717002026055797},{x:.1386943887476144,y:.392590020260558},{x:.14135607757337018,y:.39071931904916735},{x:.1439175788350931,y:.3887136217356019},{x:.14495796828078528,y:.38818782053421796},{x:.14591168674437638,y:.38751752344016943},{x:.1488871876674173,y:.38620203695812855},{x:.15179076253542007,y:.38473460266203335},{x:.15291373991533655,y:.3844218744952798},{x:.15397990142199966,y:.3839505182141148},{x:.15715486761053352,y:.383240799869195},{x:.1602889333309822,y:.3823680212676226},{x:.4030282434963717,y:.3398437611206276},{x:.46657219784598525,y:.30072914754350266},{x:.487912612564808,y:.23949853636308405},{x:.45628203537627,y:.13174508671722343},{x:.35793695341674575,y:.08407681754539842},{x:.21775140382412592,y:.0880110894972649},{x:.15207256592030022,y:.12474460286217379},{x:.10828216331322851,y:.2273324289793991},{x:.10404037125679308,y:.23506720851839558},{x:.09837110341432329,y:.2418258338591919},{x:.09149222656964323,y:.24734857482022213},{x:.08366809210217534,y:.25142319556354265},{x:.07519937711167927,y:.2538931106990613},{x:.06641152956592972,y:.2546634027732644},{x:.05764226151782814,y:.2537044698937252},{x:.04922857102060091,y:.2510531633132285},{x:.04149379148160447,y:.24681137125679312},{x:.034735166140808106,y:.24114210341432332},{x:.029212425179777887,y:.23426322656964324},{x:.025137804436457384,y:.22643909210217536},{x:.022667889300938757,y:.21797037711167933},{x:.021897597226735628,y:.20918252956592975}]],T:[[{x:-.022050999999999998,y:.729004},{x:-.021186337618145364,y:.7202249355092742},{x:-.018625578963007903,y:.711783245543571},{x:-.01446713255361454,y:.7040033395141179},{x:-.008870805153394636,y:.6971841948466053},{x:-.002051660485882085,y:.6915878674463855},{x:.005728245543570962,y:.6874294210369921},{x:.014169935509274232,y:.6848686623818546},{x:.022949,y:.684004},{x:.264284,y:.684004},{x:.264284,y:.05103000000000002},{x:.26514866238185464,y:.04225093550927423},{x:.2677094210369921,y:.03380924554357098},{x:.27186786744638547,y:.026029339514117924},{x:.27746419484660534,y:.019210194846605383},{x:.28428333951411794,y:.013613867446385479},{x:.292063245543571,y:.009455421036992116},{x:.30050493550927426,y:.006894662381854655},{x:.309284,y:.0060300000000000215},{x:.3180630644907258,y:.006894662381854655},{x:.32650475445642907,y:.009455421036992116},{x:.3342846604858821,y:.013613867446385486},{x:.34110380515339467,y:.019210194846605383},{x:.34670013255361454,y:.026029339514117924},{x:.3508585789630079,y:.03380924554357098},{x:.35341933761814537,y:.04225093550927425},{x:.354284,y:.05103000000000002},{x:.354284,y:.684004},{x:.579103,y:.684004},{x:.5878820644907258,y:.6848686623818546},{x:.596323754456429,y:.6874294210369921},{x:.6041036604858822,y:.6915878674463855},{x:.6109228051533947,y:.6971841948466053},{x:.6165191325536146,y:.7040033395141179},{x:.6206775789630079,y:.711783245543571},{x:.6232383376181454,y:.7202249355092742},{x:.6241030000000001,y:.729004},{x:.6232383376181454,y:.7377830644907257},{x:.6206775789630079,y:.746224754456429},{x:.6165191325536146,y:.7540046604858821},{x:.6109228051533947,y:.7608238051533946},{x:.6041036604858822,y:.7664201325536145},{x:.596323754456429,y:.7705785789630079},{x:.5878820644907258,y:.7731393376181454},{x:.579103,y:.774004},{x:.022949,y:.774004},{x:.014169935509274211,y:.7731393376181454},{x:.005728245543570935,y:.7705785789630079},{x:-.0020516604858820953,y:.7664201325536145},{x:-.008870805153394643,y:.7608238051533946},{x:-.01446713255361454,y:.7540046604858821},{x:-.018625578963007903,y:.746224754456429},{x:-.021186337618145364,y:.7377830644907257},{x:-.022050999999999998,y:.729004}]],U:[[{x:.027022176378557076,y:.7288780077818786},{x:.02808017637855708,y:.35099900778187865},{x:.02823473618726791,y:.3494735334648019},{x:.028192796744230073,y:.34794082288884604},{x:.035484796744230065,y:.24514582288884607},{x:.03612518708694976,y:.24139252668431194},{x:.03666424897987138,y:.2376233431565944},{x:.055316248979871384,y:.16148034315659432},{x:.05618736340037885,y:.15900518320818077},{x:.05685851158014249,y:.15646848905542057},{x:.057648252259250334,y:.15485425480263812},{x:.058244846291224776,y:.15315910934454152},{x:.0595821022437829,y:.15090145489330362},{x:.06073523897858293,y:.14854443712190207},{x:.09649723897858292,y:.0906284371219021},{x:.09834293286415725,y:.08820732921922435},{x:.10003759110096133,y:.08567820232322114},{x:.10101147458130413,y:.08470684222595504},{x:.10184538199049184,y:.08361295562088691},{x:.10412794610596264,y:.08159844564215248},{x:.10628345014049506,y:.07944852663140606},{x:.15306845014049508,y:.041154526631406},{x:.15518086878702558,y:.03974701384514513},{x:.15716842451696925,y:.03816808161035298},{x:.15884280372557036,y:.03730705230772802},{x:.16040964618671547,y:.03626305906247794},{x:.1627560674239954,y:.03529470367371844},{x:.16501346722603244,y:.034133863066459845},{x:.23490646722603245,y:.006476863066459913},{x:.23625924682734178,y:.006089880823813601},{x:.23754823013535448,y:.005525708919597472},{x:.24049103862888763,y:.004879315347967098},{x:.24338780663402787,y:.004050652809021178},{x:.24479008944495417,y:.003935020529692536},{x:.24616436977860445,y:.0036331571990539033},{x:.3343553697786044,y:-.006825842800946093},{x:.3363658265006992,y:-.006865793301669296},{x:.3383604992721398,y:-.007120376900508131},{x:.34076517153289726,y:-.0069532142518240045},{x:.3431751712391958,y:-.00700110421331946},{x:.3451547915551648,y:-.0066480664270605625},{x:.3471608040448924,y:-.0065086169201366215},{x:.4090588040448924,y:.003962383079863387},{x:.4119620232343868,y:.004752615784895447},{x:.4149089852784979,y:.005359710588792872},{x:.4162090298953196,y:.005908616535408058},{x:.4175706649775032,y:.0062792425557079215},{x:.42026393287145114,y:.0076206811274584655},{x:.4230358315454356,y:.008791034549085273},{x:.4738028315454356,y:.03637303454908527},{x:.4760785863358737,y:.0379161826666043},{x:.4784624107710392,y:.03928649177082543},{x:.47972093897980134,y:.04038599604431689},{x:.48110410464379305,y:.04132389563682743},{x:.48303507818089647,y:.043281370330868374},{x:.4851057640535682,y:.045090410406577325},{x:.5154867640535682,y:.07740541040657731},{x:.5155903820373309,y:.07753992155387555},{x:.5157174079857786,y:.07765259073212467},{x:.5182811318880063,y:.08103290449336144},{x:.5208701788099869,y:.08439386230433626},{x:.5209455639802052,y:.08454600372347547},{x:.521048168494406,y:.08468128952824439},{x:.5340921684944061,y:.10592328952824437},{x:.5341054861393935,y:.10595068243490303},{x:.5341238592672674,y:.10597497562685786},{x:.5360339092314592,y:.10991723311331511},{x:.5379492688231333,y:.11385691363208547},{x:.5379569864823256,y:.11388637833537296},{x:.5379702672090579,y:.11391378915988949},{x:.557924267209058,y:.16807278915988946},{x:.5580810067186996,y:.16867450001810444},{x:.5583366124011981,y:.1692413235937006},{x:.5591915686944892,y:.17293786157308777},{x:.5601479818122073,y:.1766094575809222},{x:.5601843216510317,y:.17723018509512725},{x:.5603244341481242,y:.17783598350956487},{x:.5696394341481241,y:.2495799835095649},{x:.569721927352796,y:.25224539988339456},{x:.5700114646960025,y:.2548963275892337},{x:.5750284646960026,y:.7275053275892338},{x:.5742570402937379,y:.7362930758081182},{x:.5717860339652341,y:.7447614724740409},{x:.5677104050979391,y:.752585081852262},{x:.5621867778235843,y:.7594632470219072},{x:.5554274220406369,y:.7651316439528263},{x:.5476920960011455,y:.7693724393298378},{x:.5392780639467868,y:.7720226617648687},{x:.5305086724107663,y:.7729804646960026},{x:.5217209241918819,y:.7722090402937379},{x:.5132525275259592,y:.7697380339652341},{x:.505428918147738,y:.7656624050979391},{x:.4985507529780929,y:.7601387778235843},{x:.49288235604717384,y:.753379422040637},{x:.48864156067016223,y:.7456440960011456},{x:.48599133823513135,y:.7372300639467868},{x:.4850335353039975,y:.7284606724107663},{x:.48004487037154997,y:.258520878697574},{x:.4717248917269394,y:.19444051929027983},{x:.4550625667192203,y:.14921575933773623},{x:.4467624246683876,y:.135699076001046},{x:.42448554918380393,y:.11200409455592171},{x:.3866565267646711,y:.09145137140181527},{x:.33852910612300163,y:.08330987698295},{x:.2625775703514966,y:.09231733933890664},{x:.20464797458906397,y:.11524036210229632},{x:.16911733402594603,y:.14432255403825953},{x:.14104265103985364,y:.1897890642955865},{x:.12498883901236212,y:.25532548983758135},{x:.11807553704626646,y:.35278200048003916},{x:.11702182362144292,y:.7291299922181214},{x:.11613258476624799,y:.737906601393955},{x:.11354820087598706,y:.7463410885908555},{x:.10936798837422372,y:.7541093211959605},{x:.10375259048311052,y:.7609127703867312},{x:.09691780379445152,y:.7664899834261845},{x:.0891262853276994,y:.770626631144951},{x:.08067745876799748,y:.7731637444910576},{x:.07189600778187862,y:.7740038236214429},{x:.06311939860604492,y:.773114584766248},{x:.05468491140914452,y:.770530200875987},{x:.04691667880403945,y:.7663499883742237},{x:.04011322961326877,y:.7607345904831105},{x:.03453601657381558,y:.7538998037944515},{x:.030399368855048972,y:.7461082853276993},{x:.027862255508942363,y:.7376594587679974},{x:.027022176378557076,y:.7288780077818786}]],V:[[{x:-.017163400590915968,y:.72836062945125},{x:-.016173311217885875,y:.7195948244454146},{x:-.01349212241321528,y:.7111906087794154},{x:.27875887758678475,y:.033216608779415485},{x:.2789749302503264,y:.03282594254600198},{x:.27911899522766415,y:.032403397706182537},{x:.2811076886540147,y:.028969490703698003},{x:.2830281292409603,y:.025496951748158487},{x:.28331624571443165,y:.0251559418405784},{x:.28353997693249255,y:.024769621764193565},{x:.2861603801951793,y:.021789671162821947},{x:.2887213787977949,y:.018758515442121357},{x:.2890704869266977,y:.018480266679882864},{x:.2893652865202418,y:.018145017430816868},{x:.2925166989914198,y:.015733541060992128},{x:.2956198378696305,y:.013260254189586457},{x:.29601652162435305,y:.013055459516578674},{x:.296371060610326,y:.012784164535463174},{x:.29993237527606087,y:.011033834081706148},{x:.30345840254303674,y:.009213463087028258},{x:.303887417589348,y:.00908999264768462},{x:.3042880712333465,y:.00889307764850001},{x:.3081224287682413,y:.00787115732855266},{x:.3119358411735324,y:.006773658047051503},{x:.31238070070379703,y:.0067362567411129665},{x:.3128120721109714,y:.0066212890568466964},{x:.3167721203052928,y:.006367050695504971},{x:.32072637054875,y:.006034599409084053},{x:.3211699788607,y:.006084704547762943},{x:.3216154906697884,y:.006056102322046737},{x:.325549047092249,y:.006579316156958459},{x:.3294921755545854,y:.0070246887821141385},{x:.32991748502957097,y:.007160374853030322},{x:.330360016471596,y:.007219237253358143},{x:.3341159167548444,y:.008499796470269213},{x:.33789639122058457,y:.00970587758678474},{x:.33828705745399834,y:.009921930250326543},{x:.33870960229381747,y:.01006599522766418},{x:.3421435092963017,y:.012054688654014527},{x:.34561604825184156,y:.013975129240960359},{x:.3459570581594215,y:.014263245714431577},{x:.34634337823580646,y:.014486976932492547},{x:.34932332883717915,y:.01710738019518028},{x:.35235448455787866,y:.01966837879779494},{x:.3526327333201171,y:.020017486926697612},{x:.35296798256918316,y:.020312286520241793},{x:.3553794589390082,y:.023463698991420194},{x:.3578527458104136,y:.026566837869630475},{x:.3580575404834214,y:.026963521624353053},{x:.35832883546453687,y:.02731806061032596},{x:.3600791659182934,y:.03087937527605991},{x:.3618995369129718,y:.03440540254303673},{x:.3620230073523154,y:.034834417589348},{x:.3622199223515,y:.0352350712333465},{x:.6163569223515,y:.7132090712333464},{x:.6186287109431533,y:.7217330721109714},{x:.6191938976779532,y:.7305364906697883},{x:.6180307627466418,y:.7392810164715959},{x:.6151840047723358,y:.7476306022938175},{x:.6107630230675074,y:.7552643782358064},{x:.6049377134797582,y:.7618889825691831},{x:.597931939389674,y:.7672498354645368},{x:.5900149287666535,y:.7711409223515},{x:.5814909278890286,y:.7734127109431533},{x:.5726875093302116,y:.7739778976779532},{x:.5639429835284039,y:.7728147627466418},{x:.5555933977061824,y:.7699680047723358},{x:.5479596217641935,y:.7655470230675074},{x:.5413350174308168,y:.7597217134797583},{x:.5359741645354631,y:.7527159393896741},{x:.5320830776484999,y:.7447989287666535},{x:.3171703309688009,y:.17146543337864517},{x:.06915612241321528,y:.7468173912205845},{x:.06488687075903964,y:.7545370482518415},{x:.059193621202205074,y:.7612754845578786},{x:.05229516213036956,y:.7667737458104136},{x:.04445659745696326,y:.7708205369129717},{x:.0359791588264676,y:.7732603419529485},{x:.027188629451250054,y:.773999400590916},{x:.01842282444541461,y:.7730093112178859},{x:.010018608779415478,y:.7703281224132152},{x:.0022989517481584835,y:.7660588707590397},{x:-.004439484557878664,y:.7603656212022051},{x:-.009937745810413578,y:.7534671621303695},{x:-.013984536912971763,y:.7456285974569633},{x:-.016424341952948517,y:.7371511588264675},{x:-.017163400590915968,y:.72836062945125}]],W:[[{x:-.04486424190193638,y:.7324968210037928},{x:-.04468360364824366,y:.7236771280279449},{x:.03511539635175633,y:.05429612802794491},{x:.03538914303981033,y:.053053468981350556},{x:.035486899606724354,y:.05178477579191172},{x:.03633616861564037,y:.04875449496443272},{x:.037013200434797444,y:.04568114375463893},{x:.03752411791055629,y:.04451576738270255},{x:.03786750587531561,y:.043290523137271594},{x:.039291634880795206,y:.040484152470619886},{x:.040555238800576446,y:.03760193719815913},{x:.041283692791972554,y:.036558628261303676},{x:.041859515947665654,y:.035423918409107566},{x:.04380377647068911,y:.032949305154171604},{x:.045605392901094464,y:.030368987735599786},{x:.046523389329760155,y:.02948784001117424},{x:.047309519115439125,y:.028487270815480248},{x:.049699194314460494,y:.02643951297186818},{x:.05196958814642765,y:.024260253558522238},{x:.05304184892442764,y:.02357512905942291},{x:.054008074813295476,y:.022747151833295932},{x:.056751330810561565,y:.021204943586542027},{x:.059403252082379655,y:.019510489895534},{x:.060588570829346225,y:.019047717572039012},{x:.06169776130235942,y:.01842415101594414},{x:.06468917630833097,y:.01744675856409077},{x:.06762071317273859,y:.01630222750050557},{x:.06887353875396018,y:.016079591433481148},{x:.07008306824328207,y:.01568439886046892},{x:.07320768385688461,y:.015309382847312772},{x:.07630617899620724,y:.014758758098063603},{x:.07757836602719018,y:.014784814066709744},{x:.07884175299285809,y:.014633182505734484},{x:.08197949198836539,y:.014874954586349768},{x:.08512587197205507,y:.014939396351756326},{x:.08636853101864941,y:.015213143039810315},{x:.08763722420808827,y:.015310899606724347},{x:.09066750503556728,y:.016160168615640357},{x:.09374085624536103,y:.01683720043479743},{x:.09490623261729739,y:.017348117910556266},{x:.09613147686272838,y:.017691505875315594},{x:.09893784752938008,y:.01911563488079519},{x:.10182006280184085,y:.020379238800576432},{x:.10286337173869634,y:.02110769279197256},{x:.1039980815908924,y:.02168351594766564},{x:.10647269484582828,y:.023627776470689026},{x:.1090530122644002,y:.025429392901094458},{x:.10993415998882576,y:.026347389329760156},{x:.11093472918451973,y:.02713351911543911},{x:.11298248702813177,y:.02952319431446044},{x:.11516174644147774,y:.03179358814642764},{x:.11584687094057705,y:.032865848924427614},{x:.11667484816670405,y:.03383207481329547},{x:.118217056413458,y:.03657533081056164},{x:.11991151010446596,y:.039227252082379635},{x:.12037428242796094,y:.040412570829346184},{x:.12099784898405583,y:.041521761302359406},{x:.2862381791186236,y:.4176126753554925},{x:.4644074439049092,y:.03214939722735514},{x:.46457066699968924,y:.031871550040082325},{x:.46468087848244366,y:.03156873942729889},{x:.4668033610072479,y:.028070937443703255},{x:.4688757411162635,y:.024543219843286366},{x:.46909003322228215,y:.024302554657928657},{x:.4692572024422568,y:.02402706365982141},{x:.47202128937582516,y:.021010546759784428},{x:.47474207284479647,y:.017954914566682648},{x:.47499919883659564,y:.017760680011347015},{x:.4752169015744166,y:.01752309559247584},{x:.47851637060601154,y:.015103786828781735},{x:.4817809992520572,y:.012637666274559728},{x:.4820710779219699,y:.012497326674279732},{x:.48233094798351184,y:.012306779070622963},{x:.4860390023686124,y:.010577651122297159},{x:.4897220183436901,y:.008795813836836655},{x:.4900339021311097,y:.008714762363747632},{x:.4903259528556443,y:.008578574212853553},{x:.49430009414373083,y:.007606076497244536},{x:.4982599612093785,y:.006576997488159493},{x:.4985816645952609,y:.006558348904918078},{x:.4988946726372282,y:.006481753841050326},{x:.5029821768073245,y:.006303258899985619},{x:.5070667194929276,y:.00606648509648134},{x:.5073858795965667,y:.006110956057683261},{x:.5077078162324508,y:.006096897586191266},{x:.5117516027915979,y:.006719264880154805},{x:.5158038544123874,y:.0072838953667157535},{x:.5161082060899873,y:.007389776878261636},{x:.5164266994754154,y:.007438795258320738},{x:.5202713679739276,y:.008838107561233023},{x:.5241356027726449,y:.01018244390490916},{x:.524413449959918,y:.010345666999689355},{x:.5247162605727012,y:.010455878482443691},{x:.5282140625562944,y:.012578361007246536},{x:.5317417801567137,y:.014650741116263542},{x:.5319824453420714,y:.01486503322228222},{x:.5322579363401786,y:.01503220244225683},{x:.535274453240215,y:.01779628937582467},{x:.5383300854333174,y:.020517072844796484},{x:.5385243199886531,y:.020774198836595797},{x:.5387619044075241,y:.0209919015744166},{x:.5411812131712181,y:.024291370606011366},{x:.5436473337254403,y:.027555999252057217},{x:.5437876733257202,y:.027846077921969747},{x:.5439782209293771,y:.028105947983511865},{x:.5457073488777034,y:.03181400236861376},{x:.5474891861631633,y:.0354970183436901},{x:.5475702376362523,y:.03580890213110964},{x:.5477064257871465,y:.03610095285564429},{x:.548678923502756,y:.040075094143733274},{x:.5497080025118405,y:.04403496120937851},{x:.5497266510950819,y:.04435666459526063},{x:.5498032461589497,y:.04466967263722821},{x:.6466002461589497,y:.7226436726372282},{x:.6469851024138088,y:.7314568162324507},{x:.6456432047416794,y:.7401756994754154},{x:.6426261215175564,y:.7484652605727011},{x:.6380497975577433,y:.7560069363401786},{x:.6320900984255835,y:.7625109044075241},{x:.6249760520164882,y:.7677272209293771},{x:.6169810471443558,y:.7714554257871464},{x:.6084123273627718,y:.7735522461589497},{x:.5995991837675493,y:.7739371024138088},{x:.5908803005245846,y:.7725952047416793},{x:.5825907394272989,y:.7695781215175563},{x:.5750490636598214,y:.7650017975577432},{x:.5685450955924759,y:.7590420984255835},{x:.563328779070623,y:.7519280520164882},{x:.5596005742128536,y:.7439330471443557},{x:.5575037538410503,y:.7353643273627718},{x:.4822251865940539,y:.2081071670095049},{x:.3260455560950909,y:.5459966027726448},{x:.3245096626856286,y:.5486110836728201},{x:.32313748405233433,y:.5513150815908924},{x:.32228015650766817,y:.5524062697730983},{x:.32157725888373645,y:.5536027801567136},{x:.3195608173147473,y:.5558673865996665},{x:.3176874808845609,y:.5582517291845196},{x:.31663374639442166,y:.5591546941850146},{x:.31571092715520355,y:.5601910854333173},{x:.3132914281453504,y:.5620187898634509},{x:.3109889251867045,y:.563991848166704},{x:.30977927817660644,y:.5646718895469083},{x:.3086720007479428,y:.5655083337254402},{x:.3059424242873038,y:.566828898486493},{x:.3032992386976406,y:.5683148489840557},{x:.30198016522380455,y:.5687458331350992},{x:.3007309816563099,y:.5693501861631632},{x:.29779622383750376,y:.570112862691949},{x:.29491393175671793,y:.571054601139531},{x:.29353612307299787,y:.5712199655821879},{x:.29219303879062153,y:.5715690025118404},{x:.28916588071079274,y:.5717444815770724},{x:.2861552470071419,y:.5721058174942654},{x:.2847716515285703,y:.5719992073657418},{x:.2833862805070725,y:.5720795149035186},{x:.28038305415357795,y:.5716610529431293},{x:.27735977579191173,y:.5714281003932755},{x:.27602356431680025,y:.5710536126610233},{x:.27464914558761266,y:.5708621046332842},{x:.27178526326499086,y:.5698657829057354},{x:.26886552313727163,y:.5690474941246844},{x:.26762804552325165,y:.5684195201422382},{x:.26631739722735515,y:.5679635560950907},{x:.26370291632718046,y:.5664276626856288},{x:.2609989184091076,y:.5650554840523343},{x:.25990773022690183,y:.5641981565076682},{x:.2587112198432863,y:.5634952588837364},{x:.25644661340033337,y:.5614788173147471},{x:.2540622708154803,y:.5596054808845607},{x:.2531593058149851,y:.5585517463944213},{x:.2521229145666826,y:.5576289271552034},{x:.2502952101365493,y:.5552094281453507},{x:.24832215183329598,y:.5529069251867045},{x:.2476421104530918,y:.5516972781766065},{x:.24680566627455972,y:.5505900007479427},{x:.245485101513507,y:.5478604242873037},{x:.24399915101594416,y:.5452172386976405},{x:.10495542809967917,y:.22875042455884986},{x:.04468360364824366,y:.734330871972055},{x:.04278579956520255,y:.742945856245361},{x:.03924376119942353,y:.7510250628018409},{x:.034193607098905524,y:.7582580122644001},{x:.02782941185357234,y:.7643667464414777},{x:.020395747917620333,y:.7691165101044659},{x:.012178286827261426,y:.7723247724994944},{x:.003492821003792758,y:.7738682419019364},{x:-.00532687197205508,y:.7736876036482436},{x:-.013941856245361059,y:.7717897995652026},{x:-.022021062801840872,y:.7682477611994235},{x:-.029254012264400202,y:.7631976070989055},{x:-.035362746441477744,y:.7568334118535723},{x:-.04011251010446598,y:.7493997479176203},{x:-.04332077249949441,y:.7411822868272614},{x:-.04486424190193638,y:.7324968210037928}]],X:[[{x:-.03582341524240513,y:.7325834270170574},{x:-.035659804156077404,y:.7237634017461555},{x:-.03377863524060577,y:.7151447697271875},{x:-.030252200762440104,y:.7070587401552579},{x:-.02521601962092907,y:.6998160546121182},{x:.24190189785100796,y:.3863717955888736},{x:-.0190039697420246,y:.08021800391719859},{x:-.024040163260448045,y:.07297532698032597},{x:-.027566611556706647,y:.06488930343468059},{x:-.029447795200430175,y:.056270674630427356},{x:-.029611421359170286,y:.047450649639130975},{x:-.028051201971409197,y:.03876817707487998},{x:-.024827095393237467,y:.030556919489131844},{x:-.02006300223235442,y:.02313243090598055},{x:-.013942003917198569,y:.016780030257975413},{x:-.006699326980325947,y:.011743836739551976},{x:.0013866965653194212,y:.00821738844329338},{x:.010005325369572668,y:.006336204799569846},{x:.018825350360869044,y:.0061725786408297345},{x:.02750782292512003,y:.007732798028590823},{x:.03571908051086817,y:.010956904606762553},{x:.04314356909401947,y:.0157209977676456},{x:.049495969742024595,y:.021841996082801452},{x:.3010259353438819,y:.31699385831754345},{x:.5525549803790709,y:.021842054612118165},{x:.558907370566982,y:.01572104544144637},{x:.5663318510088331,y:.010956939592969957},{x:.5745431030849405,y:.007732818982704524},{x:.5832255729829426,y:.006172584757594898},{x:.5920455982538445,y:.006336195843922615},{x:.6006642302728125,y:.008217364759394247},{x:.6087502598447422,y:.011743799237559922},{x:.6159929453878819,y:.016779980379070948},{x:.6221139545585537,y:.023132370566981995},{x:.6268780604070301,y:.03055685100883309},{x:.6301021810172955,y:.0387681030849405},{x:.6316624152424052,y:.04745057298294264},{x:.6314988041560774,y:.05627059825384449},{x:.6296176352406058,y:.06488923027281246},{x:.6260912007624402,y:.07297525984474214},{x:.6210550196209291,y:.08021794538788188},{x:.36015009139561527,y:.3863716945525663},{x:.6272689697420246,y:.6998159960828014},{x:.632305163260448,y:.7070586730196741},{x:.6358316115567066,y:.7151446965653194},{x:.6377127952004301,y:.7237633253695727},{x:.6378764213591702,y:.7325833503608691},{x:.6363162019714091,y:.74126582292512},{x:.6330920953932374,y:.7494770805108681},{x:.6283280022323544,y:.7569015690940195},{x:.6222070039171985,y:.7632539697420246},{x:.6149643269803259,y:.7682901632604481},{x:.6068783034346805,y:.7718166115567067},{x:.5982596746304273,y:.7736977952004301},{x:.5894396496391309,y:.7738614213591702},{x:.58075717707488,y:.7723012019714092},{x:.5725459194891318,y:.7690770953932374},{x:.5651214309059804,y:.7643130022323544},{x:.5587690302579753,y:.7581920039171985},{x:.30102605390274134,y:.4557496318238965},{x:.04328401962092907,y:.7581919453878818},{x:.03693162943301802,y:.7643129545585536},{x:.029507148991166913,y:.76907706040703},{x:.021295896915059523,y:.7723011810172955},{x:.012613427017057378,y:.7738614152424051},{x:.003793401746155514,y:.7736978041560774},{x:-.004825230272812429,y:.7718166352406057},{x:-.012911259844742107,y:.7682902007624401},{x:-.02015394538788185,y:.7632540196209291},{x:-.02627495455855365,y:.756901629433018},{x:-.031039060407030063,y:.7494771489911669},{x:-.034263181017295495,y:.7412658969150595},{x:-.03582341524240513,y:.7325834270170574}]],Y:[[{x:-.02688005049839745,y:.731186349993587},{x:-.02644216088936969,y:.7223756821949907},{x:-.024293809188388457,y:.7138197369324374},{x:-.020517555346512936,y:.7058473143841377},{x:-.015258518681138845,y:.6987647902776368},{x:.25043465103960333,y:.4059541390643743},{x:.26029423204414154,y:.04978477430584237},{x:.26140149479875585,y:.04103299828270508},{x:.26419486861258723,y:.03266540142918031},{x:.26856700569651215,y:.025003545799746604},{x:.27434988727431814,y:.01834187220942495},{x:.28132128045004745,y:.012936385038381841},{x:.28921327849355916,y:.008994814127168342},{x:.2977225963459245,y:.006668631835443931},{x:.30652222569415766,y:.00604723204414153},{x:.3152740017172949,y:.007154494798755871},{x:.32364159857081976,y:.009947868612587236},{x:.3313034542002534,y:.014320005696512164},{x:.3379651277905751,y:.020102887274318144},{x:.3433706149616182,y:.027074280450047443},{x:.3473121858728317,y:.03496627849355913},{x:.3496383681645561,y:.04347559634592452},{x:.3502597679558585,y:.05227522569415767},{x:.34045421751128274,y:.4064927803087797},{x:.6166036868780955,y:.6970396048261934},{x:.6220250193382449,y:.7039986829780357},{x:.6259845336177533,y:.7118816938899454},{x:.6283300678033804,y:.7203856978734211},{x:.6289714843317633,y:.7291838908244783},{x:.6278841339254269,y:.7379381631220915},{x:.6251098028506934,y:.7463120929913156},{x:.620755107094902,y:.7539838750034306},{x:.6149873951738065,y:.7606586868780956},{x:.6080283170219642,y:.7660800193382449},{x:.6001453061100546,y:.7700395336177532},{x:.5916413021265788,y:.7723850678033803},{x:.5828431091755216,y:.7730264843317632},{x:.5740888368779085,y:.7719391339254268},{x:.5657149070086843,y:.7691648028506933},{x:.5580431249965694,y:.7648101070949019},{x:.5513683131219045,y:.7590423951738065},{x:.29567976193894085,y:.4900232412279098},{x:.051392518681138845,y:.7592432097223631},{x:.04485280102201476,y:.765163657957578},{x:.03728372005126494,y:.7696945108160528},{x:.028976151305805796,y:.7726616501633681},{x:.02024934999358704,y:.7739510504983974},{x:.011438682194990706,y:.7735131608893697},{x:.002882736932437466,y:.7713648091883885},{x:-.0050896856158622154,y:.7675885553465129},{x:-.012172209722363214,y:.7623295186811389},{x:-.01809265795757798,y:.7557898010220148},{x:-.022623510816052815,y:.7482207200512649},{x:-.025590650163368103,y:.7399131513058058},{x:-.02688005049839745,y:.731186349993587}]],Z:[[{x:.008711000000000003,y:.05103000000000002},{x:.00905278632815029,y:.04755978517413498},{x:.009251179439517476,y:.04407842782316871},{x:.009484424544736794,y:.043177288815328604},{x:.009575662381854637,y:.04225093550927423},{x:.01058788670939069,y:.038914079093048184},{x:.01146164687940622,y:.0355383196233794},{x:.011866213744552238,y:.0346999996115786},{x:.012136421036992098,y:.03380924554357098},{x:.013780184150668652,y:.030733981057728944},{x:.015295733266009179,y:.0275935480126292},{x:.015856074613338045,y:.026850263164785913},{x:.01629486744638546,y:.026029339514117927},{x:.01850700045157689,y:.023333847648222647},{x:.020606096809669634,y:.02054942610843994},{x:.02130067903544657,y:.01992974044441782},{x:.021891194846605365,y:.019210194846605383},{x:.024586686712500538,y:.016998061841414044},{x:.027188663217490867,y:.014676655565200585},{x:.02799079391630549,y:.014204383257544266},{x:.028710339514117916,y:.013613867446385479},{x:.03178560399995988,y:.01197010433270896},{x:.03479046815396611,y:.010200923661400137},{x:.035669321892902964,y:.00989421387003954},{x:.036490245543570964,y:.009455421036992116},{x:.03982710195979704,y:.008443196709456058},{x:.04311937851852794,y:.007294230264082269},{x:.04404118144126662,y:.007164869674294513},{x:.04493193550927423,y:.006894662381854655},{x:.048402150335139275,y:.006552876053704368},{x:.05185531895677298,y:.006068277970413476},{x:.052784646693945655,y:.006121237837117864},{x:.053711,y:.0060300000000000215},{x:.548341,y:.0060300000000000215},{x:.5571200644907257,y:.006894662381854655},{x:.565561754456429,y:.009455421036992116},{x:.5733416604858821,y:.013613867446385479},{x:.5801608051533946,y:.019210194846605383},{x:.5857571325536145,y:.026029339514117927},{x:.5899155789630078,y:.03380924554357098},{x:.5924763376181453,y:.04225093550927425},{x:.593341,y:.05103000000000002},{x:.5924763376181453,y:.05980906449072579},{x:.5899155789630078,y:.06825075445642906},{x:.5857571325536145,y:.07603066048588211},{x:.5801608051533946,y:.08284980515339466},{x:.5733416604858821,y:.08844613255361455},{x:.565561754456429,y:.09260457896300792},{x:.5571200644907257,y:.09516533761814538},{x:.548341,y:.09603000000000002},{x:.14224494935878249,y:.09603000000000002},{x:.5846943444347994,y:.7024816632174908},{x:.5851666167424556,y:.7032837939163054},{x:.5857571325536145,y:.7040033395141179},{x:.5874008956672913,y:.7070786039999603},{x:.5891700763385999,y:.7100834681539662},{x:.5894767861299605,y:.7109623218929031},{x:.5899155789630078,y:.711783245543571},{x:.5909278032905438,y:.7151201019597967},{x:.5920767697359177,y:.7184123785185279},{x:.5922061303257055,y:.7193341814412667},{x:.5924763376181453,y:.7202249355092742},{x:.5928181239462956,y:.7236951503351391},{x:.5933027220295866,y:.7271483189567729},{x:.5932497621628822,y:.7280776466939456},{x:.593341,y:.729004},{x:.5929992136718496,y:.7324742148258655},{x:.5928008205604824,y:.7359555721768313},{x:.5925675754552632,y:.7368567111846711},{x:.5924763376181453,y:.7377830644907257},{x:.5914641132906093,y:.7411199209069517},{x:.5905903531205937,y:.7444956803766206},{x:.5901857862554476,y:.7453340003884216},{x:.5899155789630078,y:.746224754456429},{x:.5882718158493319,y:.74930001894227},{x:.5867562667339908,y:.7524404519873709},{x:.5861959253866618,y:.7531837368352144},{x:.5857571325536145,y:.7540046604858821},{x:.5835449995484229,y:.7567001523517777},{x:.5814459031903303,y:.7594845738915601},{x:.5807513209645536,y:.760104259555582},{x:.5801608051533946,y:.7608238051533946},{x:.5774653132874991,y:.7630359381585863},{x:.5748633367825091,y:.7653573444347994},{x:.5740612060836946,y:.7658296167424556},{x:.5733416604858821,y:.7664201325536145},{x:.5702663960000408,y:.7680638956672906},{x:.5672615318460339,y:.7698330763385999},{x:.5663826781070966,y:.7701397861299606},{x:.565561754456429,y:.7705785789630079},{x:.5622248980402041,y:.7715908032905435},{x:.558932621481472,y:.7727397697359177},{x:.5580108185587332,y:.7728691303257055},{x:.5571200644907257,y:.7731393376181454},{x:.553649849664861,y:.7734811239462956},{x:.5501966810432269,y:.7739657220295866},{x:.5492673533060543,y:.7739127621628822},{x:.548341,y:.774004},{x:.053711,y:.774004},{x:.04493193550927421,y:.7731393376181454},{x:.036490245543570936,y:.7705785789630079},{x:.028710339514117906,y:.7664201325536145},{x:.021891194846605358,y:.7608238051533946},{x:.01629486744638546,y:.7540046604858821},{x:.012136421036992098,y:.746224754456429},{x:.009575662381854637,y:.7377830644907257},{x:.008711000000000003,y:.729004},{x:.009575662381854637,y:.7202249355092742},{x:.012136421036992098,y:.711783245543571},{x:.01629486744638546,y:.7040033395141179},{x:.021891194846605365,y:.6971841948466053},{x:.028710339514117916,y:.6915878674463855},{x:.036490245543570964,y:.6874294210369921},{x:.04493193550927423,y:.6848686623818546},{x:.053711,y:.684004},{x:.4598070506412174,y:.684004},{x:.017357655565200567,y:.07755233678250915},{x:.016885383257544267,y:.07675020608369457},{x:.01629486744638546,y:.07603066048588211},{x:.014651104332708876,y:.07295539600004002},{x:.012881923661400112,y:.06995053184603389},{x:.012575213870039523,y:.06907167810709706},{x:.012136421036992098,y:.06825075445642906},{x:.011124196709456038,y:.06491389804020298},{x:.00997523026408225,y:.06162162148147208},{x:.009845869674294495,y:.0606998185587334},{x:.009575662381854637,y:.05980906449072579},{x:.009233876053704348,y:.056338849664860746},{x:.008749277970413458,y:.05288568104322705},{x:.008802237837117845,y:.05195635330605437},{x:.008711000000000003,y:.05103000000000002}]],\"[\":[[{x:.152511,y:-.06942399999999993},{x:.15337566238185463,y:-.0782030644907257},{x:.1559364210369921,y:-.08664475445642897},{x:.16009486744638546,y:-.09442466048588202},{x:.16569119484660536,y:-.10124380515339457},{x:.1725103395141179,y:-.10684013255361446},{x:.18029024554357093,y:-.11099857896300783},{x:.1887319355092742,y:-.1135593376181453},{x:.197511,y:-.11442399999999993},{x:.404542,y:-.11442399999999993},{x:.4133210644907258,y:-.1135593376181453},{x:.4217627544564291,y:-.11099857896300783},{x:.42954266048588213,y:-.10684013255361446},{x:.4363618051533946,y:-.10124380515339457},{x:.44195813255361455,y:-.09442466048588202},{x:.44611657896300794,y:-.08664475445642897},{x:.4486773376181454,y:-.0782030644907257},{x:.449542,y:-.06942399999999993},{x:.4486773376181454,y:-.06064493550927416},{x:.44611657896300794,y:-.05220324554357089},{x:.44195813255361455,y:-.04442333951411784},{x:.4363618051533946,y:-.03760419484660529},{x:.42954266048588213,y:-.032007867446385396},{x:.4217627544564291,y:-.027849421036992027},{x:.4133210644907258,y:-.025288662381854565},{x:.404542,y:-.024423999999999932},{x:.24251099999999998,y:-.024423999999999932},{x:.24251099999999998,y:.7147659999999999},{x:.404542,y:.7147659999999999},{x:.4133210644907258,y:.7156306623818546},{x:.4217627544564291,y:.7181914210369921},{x:.42954266048588213,y:.7223498674463854},{x:.4363618051533946,y:.7279461948466053},{x:.44195813255361455,y:.7347653395141178},{x:.44611657896300794,y:.7425452455435709},{x:.4486773376181454,y:.7509869355092742},{x:.449542,y:.7597659999999999},{x:.4486773376181454,y:.7685450644907257},{x:.44611657896300794,y:.776986754456429},{x:.44195813255361455,y:.7847666604858821},{x:.4363618051533946,y:.7915858051533946},{x:.42954266048588213,y:.7971821325536145},{x:.4217627544564291,y:.8013405789630078},{x:.4133210644907258,y:.8039013376181453},{x:.404542,y:.804766},{x:.197511,y:.804766},{x:.1887319355092742,y:.8039013376181453},{x:.18029024554357093,y:.8013405789630078},{x:.1725103395141179,y:.7971821325536145},{x:.16569119484660536,y:.7915858051533946},{x:.16009486744638546,y:.7847666604858821},{x:.1559364210369921,y:.776986754456429},{x:.15337566238185463,y:.7685450644907257},{x:.152511,y:.7597659999999999},{x:.152511,y:-.06942399999999993}]],\"\\\\\":[[{x:.017522651058219416,y:.7303997530123288},{x:.018114599516431164,y:.7215980934307649},{x:.020412292453046287,y:.7130810386853763},{x:.024327430817071727,y:.7051758944136092},{x:.5013774308170718,y:-.059077105586390885},{x:.5067595580368128,y:-.06606654912342862},{x:.5134018419815468,y:-.0718716915303336},{x:.521049023404313,y:-.07626944443996993},{x:.5294072254116235,y:-.07909080467430848},{x:.5381552469876711,y:-.08022734894178067},{x:.5469569065692351,y:-.07963540048356893},{x:.5554739613146237,y:-.0773377075469538},{x:.5633791055863908,y:-.07342256918292836},{x:.5703685491234285,y:-.06804044196318723},{x:.5761736915303335,y:-.06139815801845332},{x:.5805714444399699,y:-.05375097659568702},{x:.5833928046743084,y:-.04539277458837649},{x:.5845293489417805,y:-.03664475301232898},{x:.5839374004835688,y:-.02784309343076498},{x:.5816397075469537,y:-.01932603868537643},{x:.5777245691829282,y:-.011420894413609283},{x:.10067456918292828,y:.7528321055863908},{x:.09529244196318712,y:.7598215491234285},{x:.0886501580184532,y:.7656266915303336},{x:.08100297659568693,y:.7700244444399699},{x:.07264477458837638,y:.7728458046743084},{x:.06389675301232887,y:.7739823489417805},{x:.055095093430764894,y:.7733904004835688},{x:.04657803868537634,y:.7710927075469537},{x:.03867289441360919,y:.7671775691829282},{x:.03168345087657147,y:.7617954419631872},{x:.025878308469666468,y:.7551531580184532},{x:.021480555560030153,y:.747505976595687},{x:.01865919532569161,y:.7391477745883763},{x:.017522651058219416,y:.7303997530123288}]],\"]\":[[{x:.15250999999999998,y:-.06942399999999993},{x:.15337466238185463,y:-.0782030644907257},{x:.1559354210369921,y:-.08664475445642897},{x:.16009386744638546,y:-.09442466048588202},{x:.16569019484660535,y:-.10124380515339457},{x:.1725093395141179,y:-.10684013255361446},{x:.18028924554357095,y:-.11099857896300783},{x:.18873093550927422,y:-.1135593376181453},{x:.19751,y:-.11442399999999993},{x:.404542,y:-.11442399999999993},{x:.4133210644907258,y:-.1135593376181453},{x:.4217627544564291,y:-.11099857896300783},{x:.42954266048588213,y:-.10684013255361446},{x:.4363618051533946,y:-.10124380515339457},{x:.44195813255361455,y:-.09442466048588202},{x:.44611657896300794,y:-.08664475445642897},{x:.4486773376181454,y:-.0782030644907257},{x:.449542,y:-.06942399999999993},{x:.449542,y:.7597659999999999},{x:.4486773376181454,y:.7685450644907257},{x:.44611657896300794,y:.776986754456429},{x:.44195813255361455,y:.7847666604858821},{x:.4363618051533946,y:.7915858051533946},{x:.42954266048588213,y:.7971821325536145},{x:.4217627544564291,y:.8013405789630078},{x:.4133210644907258,y:.8039013376181453},{x:.404542,y:.804766},{x:.19751,y:.804766},{x:.18873093550927422,y:.8039013376181453},{x:.18028924554357095,y:.8013405789630078},{x:.1725093395141179,y:.7971821325536145},{x:.16569019484660535,y:.7915858051533946},{x:.16009386744638546,y:.7847666604858821},{x:.1559354210369921,y:.776986754456429},{x:.15337466238185463,y:.7685450644907257},{x:.15250999999999998,y:.7597659999999999},{x:.15337466238185463,y:.7509869355092742},{x:.1559354210369921,y:.7425452455435709},{x:.16009386744638546,y:.7347653395141178},{x:.16569019484660535,y:.7279461948466053},{x:.1725093395141179,y:.7223498674463854},{x:.18028924554357095,y:.7181914210369921},{x:.18873093550927422,y:.7156306623818546},{x:.19751,y:.7147659999999999},{x:.35954200000000003,y:.7147659999999999},{x:.35954200000000003,y:-.024423999999999932},{x:.19751,y:-.024423999999999932},{x:.18873093550927422,y:-.025288662381854565},{x:.18028924554357095,y:-.027849421036992027},{x:.1725093395141179,y:-.03200786744638539},{x:.16569019484660535,y:-.03760419484660529},{x:.16009386744638546,y:-.04442333951411784},{x:.1559354210369921,y:-.052203245543570885},{x:.15337466238185463,y:-.06064493550927414},{x:.15250999999999998,y:-.06942399999999993}]],\"^\":[[{x:-.009830024293871129,y:.4771904357900641},{x:-.009184411720694952,y:.46839254975009553},{x:-.006834821991481832,y:.4598896653882279},{x:-.002871548521860348,y:.4520085437820153},{x:.002553102311361327,y:.44505205201500053},{x:.009230664218841726,y:.43928752416454453},{x:.016904522241296224,y:.4349364878031557},{x:.02527977431847106,y:.43216615081811305},{x:.034034564209935884,y:.43108297570612886},{x:.04283245024990444,y:.431728588279305},{x:.05133533461177206,y:.4340781780085181},{x:.05921645621798466,y:.4380414514781396},{x:.06617294798499941,y:.4434661023113613},{x:.30102423332324457,y:.6668931783680099},{x:.5358792969655858,y:.44346586927801307},{x:.5428358294884947,y:.4380412707099504},{x:.5507169808710617,y:.43407805645230807},{x:.5592198828854552,y:.4317285306064111},{x:.5680177737757447,y:.431082984132888},{x:.5767725555289304,y:.4321662250206897},{x:.5851477867919753,y:.43493662492998636},{x:.5928216121243246,y:.439287718945922},{x:.5994991307219868,y:.44505229696558585},{x:.6049237292900496,y:.45200882948849475},{x:.6088869435476919,y:.4598899808710617},{x:.6112364693935889,y:.4683928828854553},{x:.6118820158671119,y:.47719077377574476},{x:.6107987749793102,y:.4859455555289303},{x:.6080283750700135,y:.4943207867919753},{x:.6036772810540779,y:.5019946121243246},{x:.5979127030344141,y:.5086721307219868},{x:.33204070303441413,y:.7616071307219868},{x:.3294429315385385,y:.7636328335402047},{x:.3269493357811583,y:.7657854758354554},{x:.3259710287822201,y:.7663401706594313},{x:.32508417051150523,y:.7670317292900496},{x:.3221411194513825,y:.7685117087189752},{x:.3192754777587038,y:.7701365121968442},{x:.31820775306259985,y:.7704896904878621},{x:.3172030191289383,y:.7709949435476919},{x:.31402778830632944,y:.7718723248078522},{x:.310900225681529,y:.7729068491818869},{x:.30978411534954325,y:.7730449384962876},{x:.3087001171145447,y:.7733444693935889},{x:.30541472886927135,y:.7735855352151975},{x:.30214543579006414,y:.7739900242938711},{x:.3010238313163334,y:.7739077179367437},{x:.2999022262242552,y:.773990015867112},{x:.29663293618411596,y:.7735855022258356},{x:.2933475497500956,y:.7733444117206949},{x:.29226355376554153,y:.7730448726791859},{x:.29114744447106966,y:.7729067749793103},{x:.2880198896188706,y:.7718722271075298},{x:.28484466538822795,y:.7709948219914818},{x:.28383993525062523,y:.7704895613829726},{x:.2827722132080247,y:.7701363750700135},{x:.27990658372278143,y:.7685115500622604},{x:.2769635437820154,y:.7670315485218604},{x:.2760766907070934,y:.7663399832281829},{x:.2750983878756754,y:.765785281054078},{x:.27260480829144085,y:.7636326200241867},{x:.2700070520150006,y:.7616068976886387},{x:.004139052015000585,y:.5086718976886386},{x:-.001625475835455463,y:.5019943357811583},{x:-.0059765121968442594,y:.49432047775870375},{x:-.00874684918188691,y:.4859452256815289},{x:-.009830024293871129,y:.4771904357900641}]],_:[[{x:-.045,y:-.160601},{x:-.044135337618145365,y:-.16938006449072576},{x:-.041574578963007904,y:-.17782175445642903},{x:-.03741613255361454,y:-.1856016604858821},{x:-.03181980515339464,y:-.19242080515339463},{x:-.025000660485882086,y:-.19801713255361453},{x:-.017220754456429038,y:-.2021755789630079},{x:-.008779064490725769,y:-.20473633761814536},{x:0,y:-.20560099999999998},{x:.602052,y:-.20560099999999998},{x:.6108310644907258,y:-.20473633761814536},{x:.619272754456429,y:-.2021755789630079},{x:.6270526604858822,y:-.19801713255361453},{x:.6338718051533947,y:-.19242080515339463},{x:.6394681325536146,y:-.1856016604858821},{x:.6436265789630079,y:-.17782175445642903},{x:.6461873376181454,y:-.16938006449072576},{x:.6470520000000001,y:-.160601},{x:.6461873376181454,y:-.15182193550927423},{x:.6436265789630079,y:-.14338024554357096},{x:.6394681325536146,y:-.1356003395141179},{x:.6338718051533947,y:-.12878119484660536},{x:.6270526604858822,y:-.12318486744638546},{x:.619272754456429,y:-.1190264210369921},{x:.6108310644907258,y:-.11646566238185463},{x:.602052,y:-.115601},{x:0,y:-.115601},{x:-.00877906449072579,y:-.11646566238185463},{x:-.017220754456429066,y:-.1190264210369921},{x:-.025000660485882096,y:-.12318486744638546},{x:-.03181980515339464,y:-.12878119484660536},{x:-.03741613255361454,y:-.1356003395141179},{x:-.041574578963007904,y:-.14338024554357096},{x:-.044135337618145365,y:-.15182193550927423},{x:-.045,y:-.160601}]],a:[[{x:.029951000000000005,y:.25490100000000004},{x:.030216131121475042,y:.2522090785486062},{x:.03027571711850824,y:.2495047884160563},{x:.03064747136410999,y:.24782960757010103},{x:.03081566238185464,y:.24612193550927428},{x:.0316008669059687,y:.24353346308961055},{x:.0321868888075612,y:.2408927597850148},{x:.06949088880756119,y:.12701175978501478},{x:.07014919013856018,y:.12551652306247207},{x:.07061771774296957,y:.1239514111231075},{x:.07192248021942128,y:.12148874987750752},{x:.07304546130734973,y:.1189380599695235},{x:.0739828197765546,y:.11759998201998349},{x:.07474768294666384,y:.11615634846888903},{x:.07650781615341086,y:.11399555310027064},{x:.07810683439013419,y:.11171295672570881},{x:.07928722783725009,y:.11058345913436952},{x:.08031903331037206,y:.10931678199931477},{x:.15605303331037207,y:.033026781999314685},{x:.1581401110567553,y:.03130114899494214},{x:.16009013354595797,y:.02942202284781055},{x:.16153164054777758,y:.028496972085311937},{x:.16285166496406625,y:.027405552418137233},{x:.16523529439528092,y:.026120245637685162},{x:.16751444707429886,y:.024657656887915},{x:.24324744707429888,y:-.014037343112084925},{x:.24491821916217926,y:-.014693433733650136},{x:.24650124554357095,y:-.015539578963007873},{x:.24901423193062222,y:-.016301885049470277},{x:.2514585861893129,y:-.017261751399011975},{x:.25322525179064753,y:-.017579283958613606},{x:.2549429355092742,y:-.018100337618145335},{x:.2575563541074305,y:-.01835773688343746},{x:.2601410014196699,y:-.018822289810772906},{x:.26193566856615697,y:-.018789061710219754},{x:.263722,y:-.018964999999999968},{x:.376759,y:-.018964999999999968},{x:.3786816094876915,y:-.018775639493449434},{x:.3806133727303473,y:-.01879962736385296},{x:.3830607170270406,y:-.018344335046447002},{x:.3855380644907258,y:-.018100337618145335},{x:.3873867891740171,y:-.01753953311656589},{x:.3892861139289994,y:-.017186191753697247},{x:.3915976100664607,y:-.016262194563578608},{x:.3939797544564291,y:-.015539578963007873},{x:.3956835488825182,y:-.014628881868892333},{x:.3974774451646465,y:-.013911789983170525},{x:.4720844451646465,y:.0247832100168294},{x:.4742399118062311,y:.026185049737888398},{x:.4765030886255536,y:.02740538646642049},{x:.47792879308654873,y:.028584168427667152},{x:.47947957817165415,y:.02959274452399146},{x:.48132014276352414,y:.0313881589690925},{x:.48210100000000006,y:.032033776942416534},{x:.48210100000000006,y:.02603500000000003},{x:.4829656623818547,y:.01725593550927424},{x:.4855264210369921,y:.008814245543570985},{x:.4896848674463855,y:.0010343395141179344},{x:.4952811948466054,y:-.0057848051533946065},{x:.5021003395141179,y:-.01138113255361451},{x:.509880245543571,y:-.015539578963007873},{x:.5183219355092743,y:-.018100337618145335},{x:.527101,y:-.018964999999999968},{x:.5358800644907258,y:-.018100337618145335},{x:.544321754456429,y:-.015539578963007873},{x:.5521016604858822,y:-.011381132553614504},{x:.5589208051533947,y:-.0057848051533946065},{x:.5645171325536146,y:.0010343395141179344},{x:.5686755789630079,y:.008814245543570992},{x:.5712363376181454,y:.01725593550927426},{x:.5721010000000001,y:.02603500000000003},{x:.5721010000000001,y:.560059},{x:.5712363376181454,y:.5688380644907257},{x:.5686755789630079,y:.577279754456429},{x:.5645171325536146,y:.5850596604858821},{x:.5589208051533947,y:.5918788051533946},{x:.5521016604858822,y:.5974751325536145},{x:.544321754456429,y:.6016335789630078},{x:.5358800644907258,y:.6041943376181453},{x:.527101,y:.605059},{x:.5183219355092743,y:.6041943376181453},{x:.509880245543571,y:.6016335789630078},{x:.5021003395141179,y:.5974751325536145},{x:.4952811948466054,y:.5918788051533946},{x:.4896848674463855,y:.5850596604858821},{x:.4855264210369921,y:.577279754456429},{x:.4829656623818547,y:.5688380644907257},{x:.48210100000000006,y:.560059},{x:.48210100000000006,y:.5551612473179106},{x:.48111784979070266,y:.5559741116228759},{x:.47906658786156825,y:.5579287481398052},{x:.4777260461549398,y:.558778440075324},{x:.476502844006682,y:.5597897782764175},{x:.474008872962507,y:.5611345413953497},{x:.47161569478864906,y:.5626514387693977},{x:.3970086947886491,y:.6002454387693977},{x:.39545173243232984,y:.6008467903430146},{x:.3939797544564291,y:.6016335789630078},{x:.39134652561635536,y:.6024323601988234},{x:.3887796173011618,y:.6034237870938969},{x:.38713525366780027,y:.6037098355781862},{x:.3855380644907258,y:.6041943376181453},{x:.3827995979159321,y:.6044640530341434},{x:.3800885942320307,y:.6049356509696303},{x:.37842002129388747,y:.6048954036817589},{x:.376759,y:.605059},{x:.263722,y:.605059},{x:.26219504701733515,y:.604908608257877},{x:.26066140118579323,y:.6049547986330399},{x:.25781511370268967,y:.6044772224791067},{x:.2549429355092742,y:.6041943376181453},{x:.2534746624734083,y:.6037489418620853},{x:.2519614739213154,y:.6034950452430072},{x:.24926304753974865,y:.6024713624393285},{x:.24650124554357095,y:.6016335789630078},{x:.24514807736385555,y:.6009102955021357},{x:.24371349707866236,y:.6003660689935006},{x:.16798049707866233,y:.5627720689935006},{x:.1654642487594581,y:.5611982224645521},{x:.16285190958182658,y:.5597896123262998},{x:.16173267757498783,y:.5588642237445607},{x:.16050143578237863,y:.5580941146870384},{x:.15834057869520102,y:.5560596134829665},{x:.15605324108782545,y:.5541684273021619},{x:.08031924108782545,y:.47787942730216193},{x:.07924694249287094,y:.47656305714472025},{x:.07802357952480113,y:.4753857561141845},{x:.07646760484406812,y:.47315109973327435},{x:.07474784589903924,y:.4710398973462887},{x:.07395296229881854,y:.46953962579412084},{x:.07298278594430238,y:.4681462799973844},{x:.07189266871370663,y:.46565100631071576},{x:.07061782960809859,y:.46324486175923196},{x:.0701309079335922,y:.4616183434067253},{x:.06945120152585271,y:.46006249834135976},{x:.032147201525852716,y:.3450764983413597},{x:.031582343425880205,y:.34249647318004567},{x:.03081566238185464,y:.3399690644907258},{x:.030641204072877935,y:.33819775955415116},{x:.03026054307811779,y:.33645906634171463},{x:.03020987650767869,y:.3338184172918108},{x:.029951000000000005,y:.33119},{x:.029951000000000005,y:.25490100000000004}],[{x:.119951,y:.2620835578942187},{x:.119951,y:.3240730820964405},{x:.15174843963453788,y:.42208563822492473},{x:.21467365091165175,y:.4854719831046318},{x:.2742766075147511,y:.5150589999999999},{x:.3660620360389177,y:.5150589999999999},{x:.4245839309326211,y:.4855701837142105},{x:.48210100000000006,y:.4276323784447675},{x:.48210100000000006,y:.15956344905445352},{x:.4243936225653894,y:.10143318135145685},{x:.36578354074375496,y:.07103500000000003},{x:.2745522516182332,y:.07103500000000003},{x:.21486246778999646,y:.10153288315838035},{x:.15170083487400915,y:.1651582162341545},{x:.119951,y:.2620835578942187}]],b:[[{x:.03166000000000001,y:.04001500000000002},{x:.03252466238185464,y:.031235935509274233},{x:.0350854210369921,y:.022794245543570978},{x:.039243867446385465,y:.015014339514117927},{x:.04484019484660537,y:.008195194846605386},{x:.05165933951411792,y:.002598867446385482},{x:.05943924554357097,y:-.0015595789630078807},{x:.06788093550927424,y:-.004120337618145342},{x:.07666,y:-.0049849999999999756},{x:.08543906449072577,y:-.004120337618145342},{x:.09388075445642904,y:-.0015595789630078807},{x:.10166066048588211,y:.002598867446385489},{x:.10847980515339464,y:.008195194846605386},{x:.11407613255361454,y:.015014339514117927},{x:.1182345789630079,y:.022794245543570985},{x:.12079533761814537,y:.031235935509274254},{x:.12166,y:.04001500000000002},{x:.12166,y:.041388769861289504},{x:.12338630711141785,y:.04010106584896898},{x:.12512540667363178,y:.03853443023544684},{x:.12691331624345048,y:.03747016444054036},{x:.12858112311649333,y:.036226097502515},{x:.13069431360107225,y:.035219499067818724},{x:.13270563229917137,y:.034022247411931134},{x:.20674863229917137,y:-.0007227525880688923},{x:.20772794171481185,y:-.0010698043626217635},{x:.20864424554357097,y:-.0015595789630078669},{x:.21187816153300185,y:-.0025405766534664824},{x:.21506348921487128,y:-.003669406425619949},{x:.21609168791714548,y:-.0038187359083884913},{x:.21708593550927424,y:-.004120337618145342},{x:.22044909586509742,y:-.004451580001305548},{x:.22379344213248661,y:-.004937293022731791},{x:.22483101702188665,y:-.00488316156543817},{x:.225865,y:-.0049849999999999756},{x:.338045,y:-.0049849999999999756},{x:.33894984805462636,y:-.004895880245274822},{x:.33985755144997865,y:-.004948481373678995},{x:.343332465401001,y:-.004464230112452937},{x:.3468240644907258,y:-.004120337618145342},{x:.3476941397420575,y:-.003856403176165039},{x:.34859466384226984,y:-.0037309094409420443},{x:.351908335561611,y:-.0025780408502315546},{x:.35526575445642905,y:-.0015595789630078807},{x:.35606762040050133,y:-.0011309726863615623},{x:.35692635856942223,y:-.0008322067413783357},{x:.43209235856942224,y:.03391279325862169},{x:.4342218624454842,y:.03516383683568551},{x:.43645162164562873,y:.03622594356254809},{x:.4380158580934015,y:.037392738102356306},{x:.4396984532755396,y:.03838123120587913},{x:.4415429728374372,y:.04002368192832182},{x:.4435226810964235,y:.04150038501262054},{x:.5186856810964235,y:.11000138501262047},{x:.5200684051728882,y:.11153543836568303},{x:.5216038163727121,y:.1129166544997947},{x:.5230144082918019,y:.11480386048953693},{x:.5245918796416693,y:.11655397481445093},{x:.5256487561000858,y:.11832830784782436},{x:.5268852029038621,y:.11998252816661786},{x:.5279005150705119,y:.12210866485417524},{x:.5291062453835067,y:.12413290061668979},{x:.5297966590542814,y:.12607932670695898},{x:.530686625504748,y:.12794298045128052},{x:.567704625504748,y:.2301969804512806},{x:.5685418230641662,y:.23348712941632632},{x:.5695273376181453,y:.23673593550927427},{x:.5696276430094915,y:.2377543532384077},{x:.5698799976366801,y:.23874609563675617},{x:.5700592324586751,y:.24213635445346285},{x:.570392,y:.24551500000000004},{x:.570392,y:.314017},{x:.570065993218988,y:.3173270023951309},{x:.5699006262411136,y:.32064890697528625},{x:.569634437926433,y:.3217086568121163},{x:.5695273376181453,y:.3227960644907258},{x:.5685618455328773,y:.32597886535008125},{x:.5677515846008636,y:.32920467896823863},{x:.5307335846008636,y:.4324506789682387},{x:.5298196963817511,y:.43437967657309706},{x:.5291061063615623,y:.4363913954201699},{x:.5279358002551,y:.43835612690926706},{x:.5269566878799311,y:.4404227969757902},{x:.5256840310027916,y:.4421364386856148},{x:.5245916855370664,y:.44397028841230757},{x:.523060566435399,y:.4456689527415915},{x:.5216970801011935,y:.44750489697372575},{x:.5201145620561008,y:.4489373284986299},{x:.5186854393684929,y:.45052283528838016},{x:.44352243936849295,y:.5190228352883801},{x:.44134657552661755,y:.5206458300432604},{x:.43929971954126384,y:.5224287703137037},{x:.4378191137317927,y:.523276992839783},{x:.43645134158383936,y:.5242972253466508},{x:.43400065578620683,y:.5254645447348341},{x:.43164529517316985,y:.52681390451462},{x:.35647929517316984,y:.56056790451462},{x:.3558506134628383,y:.560778965311121},{x:.35526575445642905,y:.5610915789630079},{x:.351674330744245,y:.5621810254355277},{x:.34811645117964274,y:.5633754754766519},{x:.34745867349333664,y:.563459831081816},{x:.3468240644907258,y:.5636523376181454},{x:.3430891085149791,y:.5640201986736739},{x:.3393665669654169,y:.5644975898222324},{x:.3387049713307353,y:.5644519984974604},{x:.338045,y:.564517},{x:.225865,y:.564517},{x:.22507819619617456,y:.5644395065891945},{x:.22428916125732748,y:.5644893996719887},{x:.22069487882474298,y:.5640077875099223},{x:.21708593550927424,y:.5636523376181454},{x:.21632936813438544,y:.5634228354140474},{x:.21554576062305134,y:.5633178367349442},{x:.2121144991913443,y:.5621442688983362},{x:.20864424554357097,y:.5610915789630079},{x:.20794698905754733,y:.5607188876066144},{x:.20719892257093525,y:.5604630322059678},{x:.13315592257093525,y:.5267090322059678},{x:.13091775246116674,y:.5254099486077729},{x:.12858140317750869,y:.5242970714087468},{x:.1271119341080524,y:.5232009671819817},{x:.12552641140636125,y:.5222806946221156},{x:.12358468574515913,y:.5205699272235509},{x:.12166,y:.5191342684374534},{x:.12166,y:.7597659999999999},{x:.12079533761814537,y:.7685450644907257},{x:.1182345789630079,y:.776986754456429},{x:.11407613255361454,y:.7847666604858821},{x:.10847980515339464,y:.7915858051533946},{x:.10166066048588208,y:.7971821325536145},{x:.09388075445642904,y:.8013405789630078},{x:.08543906449072577,y:.8039013376181453},{x:.07666,y:.804766},{x:.06788093550927421,y:.8039013376181453},{x:.05943924554357094,y:.8013405789630078},{x:.05165933951411792,y:.7971821325536145},{x:.04484019484660537,y:.7915858051533946},{x:.039243867446385465,y:.7847666604858821},{x:.0350854210369921,y:.776986754456429},{x:.03252466238185464,y:.7685450644907257},{x:.03166000000000001,y:.7597659999999999},{x:.03166000000000001,y:.04001500000000002}],[{x:.12166,y:.16313400296117606},{x:.12166,y:.39738980161800674},{x:.17691400696537596,y:.447746357818324},{x:.23563826658076475,y:.474517},{x:.3284048540018634,y:.474517},{x:.3882155063572531,y:.44765846343288423},{x:.44979135555302596,y:.39154114946310603},{x:.480392,y:.30619363915535625},{x:.480392,y:.2534097446111891},{x:.44984564070758065,y:.16903221413717517},{x:.38802932067077023,y:.11269492399652684},{x:.3281476350434013,y:.08501500000000002},{x:.2358983461114888,y:.08501500000000002},{x:.1771018588393058,y:.11260550754658781},{x:.12166,y:.16313400296117606}]],c:[[{x:.0446,y:.25490100000000004},{x:.044822712444716174,y:.2526397626013558},{x:.04482893549381362,y:.2503675925637664},{x:.045254001037800355,y:.24826081602954003},{x:.045464662381854634,y:.24612193550927428},{x:.04612424100165128,y:.2439475961957434},{x:.04657362286091401,y:.24172029932495478},{x:.08145962286091402,y:.1278402993249547},{x:.08196610920465827,y:.1266269431042867},{x:.08230081253195312,y:.125355433994083},{x:.08366176737769918,y:.12256476567779218},{x:.08485778977199918,y:.11969953302126297},{x:.0855912581784792,y:.11860830168404396},{x:.08616758939694805,y:.11742652164475936},{x:.08804682625741464,y:.11495498435675963},{x:.08977884657839008,y:.1123781387363477},{x:.09071111026807865,y:.11145096769089737},{x:.09150692129220603,y:.11040433186669174},{x:.16233292129220603,y:.03411333186669174},{x:.16445877247754231,y:.03223237849112975},{x:.1664474797904295,y:.03020697184383589},{x:.16775479669311927,y:.029316055882572942},{x:.16893962068732413,y:.02826772347496185},{x:.17139158003796548,y:.02683764508339147},{x:.17373721213250964,y:.02523913360696181},{x:.24456521213250962,y:-.013455866393038113},{x:.2467886390083486,y:-.014400746043602006},{x:.24891924554357092,y:-.015539578963007873},{x:.25083834630720225,y:-.016121731815163746},{x:.25268405147305695,y:-.01690609278116076},{x:.2550490927002279,y:-.01739904776899966},{x:.2573609355092742,y:-.018100337618145335},{x:.259356733677244,y:-.018296906580526337},{x:.26131999536931183,y:-.018706117055345653},{x:.26373576373978486,y:-.0187282033967292},{x:.26614,y:-.018964999999999968},{x:.371854,y:-.018964999999999968},{x:.3744001776009888,y:-.018714223394882004},{x:.3769583677219744,y:-.018674567546095353},{x:.3787793796063011,y:-.01828290964379429},{x:.3806330644907258,y:-.018100337618145335},{x:.3830813939144215,y:-.01735764500708899},{x:.3855826926572475,y:-.01681967299983559},{x:.38729230564255435,y:-.01608027889939661},{x:.3890747544564291,y:-.015539578963007873},{x:.391331147776118,y:-.014333511606549179},{x:.393679431632842,y:-.013317897403369645},{x:.463449431632842,y:.02537710259663028},{x:.46566730315778443,y:.026909287408228903},{x:.46799586592077425,y:.028267352155161442},{x:.4692879686356918,y:.029410572352257962},{x:.47070743151062955,y:.03039118797094862},{x:.4725837728278355,y:.03232661755101331},{x:.4746026476214732,y:.03411286752390576},{x:.5454306476214732,y:.11040386752390575},{x:.5507700783887176,y:.11742598212342069},{x:.5546369668925095,y:.12535484002769406},{x:.5568827107762242,y:.13388573967401945},{x:.5574210073618384,y:.14269084337317217},{x:.5562311702134469,y:.15143177592795284},{x:.5533589241053942,y:.15977262820225266},{x:.5489146478448386,y:.16739286592077418},{x:.5430691324760942,y:.17399964762147313},{x:.5360470178765793,y:.17933907838871752},{x:.5281181599723059,y:.18320596689250943},{x:.5195872603259806,y:.1854517107762242},{x:.5107821566268278,y:.1859900073618383},{x:.5020412240720471,y:.18480017021344686},{x:.4937003717977473,y:.18192792410539416},{x:.4860801340792258,y:.17748364784483847},{x:.47947335237852684,y:.17163813247609414},{x:.41352572033101553,y:.10060392571412592},{x:.36021071976053953,y:.07103500000000003},{x:.27763077403847125,y:.07103500000000003},{x:.2233107097601157,y:.10071132697875086},{x:.16448866962379677,y:.16407213041308155},{x:.1346,y:.2616391113440561},{x:.1346,y:.3245158400933278},{x:.1645319520417492,y:.4231721923699009},{x:.2231207776861973,y:.4862793045993598},{x:.27734241586879393,y:.5150589999999999},{x:.3605019191882548,y:.5150589999999999},{x:.41371701660545657,y:.4863852380349392},{x:.47947395272027693,y:.4155592208902026},{x:.48608084903755494,y:.4097138350672089},{x:.4937011738972078,y:.40526970822380387},{x:.5020420824884065,y:.4023976256622846},{x:.5107830383716269,y:.4012079599048077},{x:.5195881315142611,y:.40174642913926084},{x:.5281189871247909,y:.40399234029494097},{x:.5360477692062626,y:.4078593842656568},{x:.5430697791097975,y:.41319895272027696},{x:.5489151649327911,y:.41980584903755497},{x:.5533592917761961,y:.42742617389720783},{x:.5562313743377155,y:.4357670824884066},{x:.5574210400951923,y:.4445080383716269},{x:.5568825708607392,y:.4533131315142611},{x:.5546366597050592,y:.4618439871247909},{x:.5507696157343432,y:.46977276920626265},{x:.5454300472797231,y:.4767947791097975},{x:.4746020472797231,y:.5530827791097974},{x:.47237947035514305,y:.5550491819442839},{x:.4702881116089302,y:.5571546051529963},{x:.469083054274185,y:.5579656532949738},{x:.4679951509624451,y:.5589281649327911},{x:.46543165406806053,y:.5604231806402761},{x:.46296973250196366,y:.5620801448811513},{x:.39319973250196366,y:.5996741448811513},{x:.39109075852725916,y:.6005560023370271},{x:.3890747544564291,y:.6016335789630078},{x:.38703122642603144,y:.6022534764138876},{x:.38506104886577136,y:.6030772968079529},{x:.3828205563795885,y:.6035307692082409},{x:.3806330644907258,y:.6041943376181453},{x:.3785078662851109,y:.6044036513718285},{x:.37641482574826585,y:.6048272797133635},{x:.3741289156203665,y:.604834940368031},{x:.371854,y:.605059},{x:.26614,y:.605059},{x:.26400488750824663,y:.6048487097743618},{x:.26185945318827825,y:.6048549475733314},{x:.2596259398913868,y:.6044174210783497},{x:.2573609355092742,y:.6041943376181453},{x:.2553078741931944,y:.60357154827667},{x:.25320244685788745,y:.6031591127457343},{x:.2510972070775077,y:.6022942563713519},{x:.24891924554357092,y:.6016335789630078},{x:.24702713339817148,y:.6006222239508241},{x:.24504262343928468,y:.5998069647561404},{x:.1742146234392847,y:.5622129647561404},{x:.17162525666515238,y:.5604936738034747},{x:.16894033563687538,y:.5589277936219744},{x:.16795812189104978,y:.5580587651214349},{x:.16686556037036515,y:.5573333247718834},{x:.16466136457832586,y:.5551419091149951},{x:.16233352162359432,y:.5530823147741101},{x:.09150752162359431,y:.47679431477411016},{x:.09067474586023959,y:.4756991081857825},{x:.08970182133886938,y:.4747262717047309},{x:.08801053269383365,y:.4721953272870651},{x:.08616805203977476,y:.4697722296898647},{x:.08556494203519081,y:.46853560069719197},{x:.08480050296804506,y:.467391648838166},{x:.08363547472152838,y:.4645793817614187},{x:.08230111970711389,y:.461843393160995},{x:.08195085264054901,y:.4605128647226562},{x:.08142427599227564,y:.4592417589140625},{x:.046538275992275634,y:.3442567589140625},{x:.04610669192420131,y:.34208755224892967},{x:.045464662381854634,y:.33997106449072584},{x:.04524807462900009,y:.3377720121321243},{x:.04481688692083,y:.3356047976316928},{x:.044816786846426454,y:.33339307378956023},{x:.0446,y:.33119200000000004},{x:.0446,y:.25490100000000004}]],d:[[{x:.03166100000000001,y:.24551500000000004},{x:.03199378652782141,y:.24213616168032864},{x:.032173060891358886,y:.2387457109778176},{x:.032425376075824915,y:.237754159461938},{x:.03252566238185464,y:.23673593550927427},{x:.03351123316568353,y:.23348694405135337},{x:.034348506941927405,y:.23019661460170962},{x:.0713675069419274,y:.12794261460170955},{x:.07225746993456125,y:.1260790095358921},{x:.0729478813145148,y:.12413263082247869},{x:.07415364826248581,y:.12210836405190925},{x:.07516899837159816,y:.11998219518580837},{x:.07640543228727825,y:.1183280219355851},{x:.07746229725612473,y:.11655373492181778},{x:.07903981058640837,y:.11480359733178996},{x:.08045044599662987,y:.11291636718401242},{x:.08198583537337678,y:.11153519469971836},{x:.08336853920306012,y:.1100011842405046},{x:.15853253920306012,y:.04150018424050468},{x:.16051177365736521,y:.04002385498013544},{x:.16235580937568672,y:.038381768082408986},{x:.16403890527939927,y:.03739293492543645},{x:.16560363358955885,y:.03622578962650935},{x:.16783285515961555,y:.03516395710594637},{x:.16996181351033893,y:.03391317596960988},{x:.24512381351033893,y:-.0008318240303901436},{x:.24598297689097734,y:-.0011307574341723537},{x:.24678524554357095,y:-.0015595789630078807},{x:.25014222995258023,y:-.0025779090504023904},{x:.2534554494825366,y:-.0037306956028641883},{x:.25435642329373365,y:-.003856270624521421},{x:.2552269355092742,y:-.004120337618145342},{x:.2587180827488419,y:-.0044641856090968535},{x:.2621925371943035,y:-.004948444626188875},{x:.2631006975177666,y:-.004895835488062085},{x:.264006,y:-.0049849999999999756},{x:.376189,y:-.0049849999999999756},{x:.37722298297811335,y:-.004883161565438171},{x:.3782605578675134,y:-.004937293022731791},{x:.3816049041349026,y:-.004451580001305548},{x:.3849680644907258,y:-.004120337618145342},{x:.3859623120828546,y:-.003818735908388489},{x:.38699051078512875,y:-.003669406425619949},{x:.39017583846699794,y:-.0025405766534665605},{x:.39340975445642906,y:-.0015595789630078807},{x:.39432605828518835,y:-.0010698043626217065},{x:.39530536770082864,y:-.0007227525880688923},{x:.46934836770082866,y:.034022247411931134},{x:.4713599418403825,y:.035219651121148166},{x:.4734733873673339,y:.03622640539423388},{x:.4751409393435705,y:.037470316580519136},{x:.4769285933263682,y:.03853443023544684},{x:.47866791375766776,y:.04010126481479184},{x:.480392,y:.041387347763641016},{x:.480392,y:.04001500000000002},{x:.4812566623818546,y:.031235935509274233},{x:.48381742103699205,y:.022794245543570978},{x:.48797586744638544,y:.015014339514117927},{x:.4935721948466053,y:.008195194846605386},{x:.5003913395141178,y:.002598867446385482},{x:.508171245543571,y:-.0015595789630078807},{x:.5166129355092742,y:-.004120337618145342},{x:.525392,y:-.0049849999999999756},{x:.5341710644907257,y:-.004120337618145342},{x:.542612754456429,y:-.0015595789630078807},{x:.5503926604858821,y:.002598867446385489},{x:.5572118051533946,y:.008195194846605386},{x:.5628081325536145,y:.015014339514117927},{x:.5669665789630078,y:.022794245543570985},{x:.5695273376181453,y:.031235935509274254},{x:.570392,y:.04001500000000002},{x:.570392,y:.7597659999999999},{x:.5695273376181453,y:.7685450644907257},{x:.5669665789630078,y:.776986754456429},{x:.5628081325536145,y:.7847666604858821},{x:.5572118051533946,y:.7915858051533946},{x:.5503926604858821,y:.7971821325536145},{x:.542612754456429,y:.8013405789630078},{x:.5341710644907257,y:.8039013376181453},{x:.525392,y:.804766},{x:.5166129355092742,y:.8039013376181453},{x:.508171245543571,y:.8013405789630078},{x:.5003913395141178,y:.7971821325536145},{x:.4935721948466053,y:.7915858051533946},{x:.48797586744638544,y:.7847666604858821},{x:.48381742103699205,y:.776986754456429},{x:.4812566623818546,y:.7685450644907257},{x:.480392,y:.7597659999999999},{x:.480392,y:.5191356905079497},{x:.47846953719699326,y:.5205697307992189},{x:.47652758859363875,y:.5222806946221157},{x:.47494232329576636,y:.5232008177790934},{x:.47347310730786674,y:.524296763521154},{x:.4711365045177018,y:.5254097994515352},{x:.46889807742906475,y:.5267090322059679},{x:.3948550774290648,y:.5604630322059679},{x:.3941070109424522,y:.5607188876066146},{x:.39340975445642906,y:.5610915789630079},{x:.389939500808656,y:.5621442688983361},{x:.38650823937694867,y:.5633178367349442},{x:.38572463186561456,y:.5634228354140474},{x:.3849680644907258,y:.5636523376181454},{x:.38135912117525683,y:.5640077875099224},{x:.3777648387426725,y:.5644893996719887},{x:.3769758038038255,y:.5644395065891945},{x:.376189,y:.564517},{x:.264006,y:.564517},{x:.26334558239453953,y:.5644519545432365},{x:.2626835384795895,y:.5644975635305632},{x:.2589614482177297,y:.5640201550156564},{x:.2552269355092742,y:.5636523376181454},{x:.25459189738202526,y:.5634597009082802},{x:.2539336765832372,y:.5633752751711479},{x:.2503762430229788,y:.5621808961392286},{x:.24678524554357095,y:.5610915789630079},{x:.24619999105363047,y:.5607787539207695},{x:.24557088842716707,y:.5605675378929096},{x:.17040888842716706,y:.5268135378929095},{x:.16805407047382528,y:.5254644267942322},{x:.16560391365212207,y:.5242973792806265},{x:.16423565717286473,y:.5232767996121171},{x:.1627545512703112,y:.5224282514648534},{x:.16070817900232118,y:.5206456609648356},{x:.15853278093215223,y:.5190230360586235},{x:.08336878093215222,y:.45052303605862365},{x:.08193967718325436,y:.44893757139643337},{x:.08035717944512263,y:.44750518296134467},{x:.07899365114577664,y:.44566921514174185},{x:.07746249136223225,y:.4439705283033309},{x:.07637015625263606,y:.44213672358948825},{x:.0750975108858587,y:.44042312810321155},{x:.07411836195358443,y:.43835642671545355},{x:.07294802033824888,y:.4363916652130956},{x:.07223443169362759,y:.4343799925343442},{x:.07132054574594202,y:.4324510425104215},{x:.034301545745942026,y:.32920504251042143},{x:.033491210284420626,y:.32597904935505284},{x:.03252566238185464,y:.3227960644907258},{x:.03241858101312289,y:.3217088491086539},{x:.03215243067755317,y:.32064928896150824},{x:.031987025628206905,y:.31732719375391183},{x:.03166100000000001,y:.314017},{x:.03166100000000001,y:.24551500000000004}],[{x:.121661,y:.25340994514221},{x:.121661,y:.3061934402169761},{x:.15226243948714763,y:.39154086238640384},{x:.21383969339611897,y:.4476587099299689},{x:.27364661400534074,y:.474517},{x:.3664157334192352,y:.474517},{x:.42513971513426946,y:.4477464845048247},{x:.480392,y:.3973901578243758},{x:.480392,y:.1631336467554691},{x:.4249518651426514,y:.1126053780239199},{x:.3661556538885112,y:.08501500000000002},{x:.2739038430667855,y:.08501500000000002},{x:.21402588591940364,y:.11269467351967463},{x:.15220815290195538,y:.1690325018607451},{x:.121661,y:.25340994514221}]],e:[[{x:.014571,y:.25490100000000004},{x:.014880046743786594,y:.2517631957525991},{x:.01501248842711947,y:.2486129918567585},{x:.015311525398480692,y:.24738231945287367},{x:.015435662381854634,y:.24612193550927428},{x:.016350926120166094,y:.24310471531940006},{x:.01709539726614681,y:.24004087979874045},{x:.05693639726614681,y:.12616087979874036},{x:.057746546207777846,y:.12441615547982068},{x:.05835851556287996,y:.12259245107255745},{x:.05959975008908581,y:.12042512406141898},{x:.06065161969764369,y:.11815983382640528},{x:.06178658068373706,y:.11660668611395116},{x:.06274257829935428,y:.11493741297405176},{x:.06438278737670251,y:.11305388338712186},{x:.06585638180708843,y:.11103732964943176},{x:.06727253892344205,y:.10973544513901749},{x:.06853582634733585,y:.1082847524971091},{x:.14942282634733584,y:.031993752497109104},{x:.15144602889400902,y:.03043003785468449},{x:.15333307828862142,y:.02870446646813117},{x:.1549277151407192,y:.027739074573098352},{x:.15640262843323158,y:.02659912765300345},{x:.15869202130341495,y:.025460166585296706},{x:.1608794538505091,y:.024135896643135493},{x:.2417664538505091,y:-.01455910335686443},{x:.24290092295632487,y:-.014970686687880902},{x:.2439652455435709,y:-.015539578963007873},{x:.24703931387581265,y:-.016472087396775758},{x:.2500591116803148,y:-.017567664555291233},{x:.2512520782049556,y:-.01775001548484057},{x:.2524069355092742,y:-.018100337618145335},{x:.25560385985111694,y:-.01841520718300011},{x:.2587793695882151,y:-.01890059980751419},{x:.2599849884971624,y:-.018846710691637396},{x:.261186,y:-.018964999999999968},{x:.381914,y:-.018964999999999968},{x:.3832466926412995,y:-.01883374123151461},{x:.3845848263549422,y:-.018885671038862982},{x:.3876272824249201,y:-.01840229079619376},{x:.39069306449072577,y:-.018100337618145335},{x:.3919745425012029,y:-.017711605513551366},{x:.39329709535359264,y:-.017501480567117658},{x:.39618678867610163,y:-.016433834605858122},{x:.39913475445642904,y:-.015539578963007873},{x:.4003157713548023,y:-.014908312279081314},{x:.40157191838151796,y:-.014444207562717595},{x:.48125191838151804,y:.02425079243728233},{x:.4833189661071789,y:.02551885102394819},{x:.4854901362659954,y:.026598980192539007},{x:.48706966813422276,y:.027819770278194},{x:.48877129863032925,y:.028863658687316496},{x:.4905512426555404,y:.030510612890229178},{x:.492469971641239,y:.03199356196515255},{x:.573357971641239,y:.10828456196515254},{x:.5791512607417543,y:.11493718669263933},{x:.5835353707163221,y:.12259219773755695},{x:.5863418226772573,y:.13095541731842886},{x:.5874627662495775,y:.13970545159690978},{x:.5868551242004307,y:.1485060416627534},{x:.584542247872996,y:.15701898577515713},{x:.5806130198074609,y:.16491713626599536},{x:.5752184380348474,y:.17189697164123896},{x:.5685658133073607,y:.17769026074175415},{x:.560910802262443,y:.1820743707163221},{x:.5525475826815711,y:.18488082267725728},{x:.5437975484030901,y:.18600176624957743},{x:.5349969583372466,y:.1853941242004306},{x:.5264840142248428,y:.183081247872996},{x:.5185858637340046,y:.17915201980746093},{x:.511606028358761,y:.17375743803484736},{x:.43573388395098006,y:.1021972341849065},{x:.3715652104827451,y:.07103500000000003},{x:.2713955768569904,y:.07103500000000003},{x:.2060606884620834,y:.10229012760321096},{x:.13826613078700495,y:.16623259795801962},{x:.104571,y:.2625454790108076},{x:.104571,y:.28619200000000006},{x:.542482,y:.28619200000000006},{x:.5512610644907258,y:.2870566623818547},{x:.559702754456429,y:.2896174210369921},{x:.5674826604858821,y:.2937758674463855},{x:.5743018051533947,y:.2993721948466054},{x:.5798981325536146,y:.3061913395141179},{x:.5840565789630079,y:.31397124554357103},{x:.5866173376181454,y:.32241293550927425},{x:.5874820000000001,y:.33119200000000004},{x:.5866173376181454,y:.33997106449072584},{x:.5840565789630079,y:.34841275445642905},{x:.5798981325536146,y:.35619266048588216},{x:.5743018051533947,y:.3630118051533947},{x:.5674826604858821,y:.3686081325536146},{x:.5660433240263831,y:.3693774739195968},{x:.5706944449992851,y:.3724210772554575},{x:.5769918122169339,y:.3785986803904119},{x:.5819629867044116,y:.38588613801169297},{x:.5854169290140312,y:.3940033972097681},{x:.5872209060798271,y:.40263851626586683},{x:.5873055920748429,y:.4114596523972937},{x:.5856677325637826,y:.4201278142894682},{x:.5823702695691338,y:.4283098893420352},{x:.5425292695691338,y:.5045998893420351},{x:.54083893518448,y:.5071829952333479},{x:.5393041274419548,y:.5098614335042745},{x:.5384286685906833,y:.5108662746451583},{x:.5376989227445426,y:.5119814449992851},{x:.5355371287009763,y:.5141851493557908},{x:.5335092744740836,y:.5165126960496618},{x:.49246227447408364,y:.5552086960496617},{x:.4903478252727746,y:.5568421196453192},{x:.48836639942178184,y:.5586345815458318},{x:.486865329057947,y:.5595323670561179},{x:.4854811710293013,y:.5606016367187369},{x:.48308868524123094,y:.5617911659624512},{x:.4807956399629947,y:.5631626292028359},{x:.40111563996299465,y:.6007566292028359},{x:.40009264564938235,y:.6011215754533451},{x:.39913475445642904,y:.6016335789630078},{x:.3959457374462889,y:.6026009566970012},{x:.3928069722488333,y:.6037206897930685},{x:.3917324370025758,y:.603879047413643},{x:.39069306449072577,y:.6041943376181453},{x:.38737659751458814,y:.6045209811048129},{x:.38407969371999856,y:.6050068561303112},{x:.38299491132800306,y:.6049525395264004},{x:.381914,y:.605059},{x:.261186,y:.605059},{x:.26023449599616577,y:.6049652850353624},{x:.2592798763752433,y:.6050186117946668},{x:.25585213857488087,y:.6045336605029273},{x:.2524069355092742,y:.6041943376181453},{x:.2514919972706982,y:.6039167941377678},{x:.2505453168634681,y:.6037828591890964},{x:.24727805138745723,y:.6026385076291858},{x:.2439652455435709,y:.6016335789630078},{x:.24312203363365809,y:.6011828728071931},{x:.24221967283726598,y:.6008668231955117},{x:.161332672837266,y:.5632728231955116},{x:.15891596978001063,y:.5618462817840929},{x:.15640337688314435,y:.5605963413854953},{x:.1551260781006526,y:.5596091689500753},{x:.15373589412748892,y:.5587885654418143},{x:.1516439317651508,y:.5569179592459522},{x:.1494234689111216,y:.555201853544281},{x:.06853646891112161,y:.47891385354428107},{x:.06722863655802509,y:.4774120673763562},{x:.06576662511800205,y:.47605991734502884},{x:.06433886916992998,y:.4740937424536807},{x:.06274309028364713,y:.4722613067803989},{x:.06175337150959475,y:.4705332315776763},{x:.06058324359446483,y:.4689218384474283},{x:.05956650326928079,y:.4667149016876259},{x:.05835887729241062,y:.4646063547351938},{x:.05772530643484857,y:.4627183994585984},{x:.05689202940417486,y:.4609096881637455},{x:.017051029404174856,y:.3459246881637455},{x:.016331419439147486,y:.342923979771159},{x:.015435662381854634,y:.33997106449072584},{x:.015304912520774374,y:.33864353887302173},{x:.014993833838408223,y:.33734636893611664},{x:.014873460143664087,y:.33426292937408214},{x:.014571,y:.33119200000000004},{x:.014571,y:.25490100000000004}],[{x:.12278767041868709,y:.376192},{x:.13831799224413532,y:.421014018902617},{x:.20587340146207272,y:.4847284236699839},{x:.27113246747276615,y:.5150589999999999},{x:.37183117966561724,y:.5150589999999999},{x:.4359272756482788,y:.48481767680255794},{x:.4662598881310508,y:.45622238914125884},{x:.5025937304308662,y:.3866481106579649},{x:.5074240772554575,y:.379266555000715},{x:.5104401600015575,y:.376192},{x:.12278767041868709,y:.376192}]],f:[[{x:.044112,y:.5239119999999999},{x:.04497666238185463,y:.5151329355092742},{x:.04753742103699209,y:.5066912455435709},{x:.051695867446385456,y:.4989113395141178},{x:.05729219484660536,y:.49209219484660527},{x:.0641113395141179,y:.4864958674463854},{x:.07189124554357096,y:.482337421036992},{x:.08033293550927423,y:.47977666238185457},{x:.089112,y:.47891199999999995},{x:.20304699999999998,y:.47891199999999995},{x:.20304699999999998,y:.05318299999999998},{x:.20391166238185462,y:.04440393550927419},{x:.2064724210369921,y:.03596224554357094},{x:.21063086744638546,y:.028182339514117884},{x:.21622719484660535,y:.021363194846605343},{x:.2230463395141179,y:.01576686744638544},{x:.23082624554357095,y:.011608421036992077},{x:.23926793550927422,y:.009047662381854615},{x:.248047,y:.008182999999999982},{x:.25682606449072576,y:.009047662381854615},{x:.26526775445642903,y:.011608421036992077},{x:.2730476604858821,y:.015766867446385446},{x:.2798668051533946,y:.021363194846605343},{x:.28546313255361455,y:.028182339514117884},{x:.2896215789630079,y:.03596224554357094},{x:.2921823376181454,y:.04440393550927421},{x:.293047,y:.05318299999999998},{x:.293047,y:.47891199999999995},{x:.459965,y:.47891199999999995},{x:.4687440644907258,y:.47977666238185457},{x:.4771857544564291,y:.482337421036992},{x:.48496566048588213,y:.4864958674463854},{x:.4917848051533946,y:.49209219484660527},{x:.49738113255361455,y:.4989113395141178},{x:.5015395789630079,y:.5066912455435709},{x:.5041003376181454,y:.5151329355092742},{x:.504965,y:.5239119999999999},{x:.5041003376181454,y:.5326910644907257},{x:.5015395789630079,y:.5411327544564289},{x:.49738113255361455,y:.548912660485882},{x:.4917848051533946,y:.5557318051533946},{x:.48496566048588213,y:.5613281325536145},{x:.4771857544564291,y:.5654865789630078},{x:.4687440644907258,y:.5680473376181453},{x:.459965,y:.568912},{x:.293047,y:.568912},{x:.293047,y:.6141229501499061},{x:.3322669208002554,y:.6884371453882767},{x:.4140490730325775,y:.7147659999999999},{x:.512941,y:.7147659999999999},{x:.5217200644907257,y:.7156306623818546},{x:.530161754456429,y:.7181914210369921},{x:.5379416604858821,y:.7223498674463854},{x:.5447608051533946,y:.7279461948466053},{x:.5503571325536145,y:.7347653395141178},{x:.5545155789630078,y:.7425452455435709},{x:.5570763376181453,y:.7509869355092742},{x:.557941,y:.7597659999999999},{x:.5570763376181453,y:.7685450644907257},{x:.5545155789630078,y:.776986754456429},{x:.5503571325536145,y:.7847666604858821},{x:.5447608051533946,y:.7915858051533946},{x:.5379416604858821,y:.7971821325536145},{x:.530161754456429,y:.8013405789630078},{x:.5217200644907257,y:.8039013376181453},{x:.512941,y:.804766},{x:.406984,y:.804766},{x:.40440576588043703,y:.8045120661033809},{x:.40181542834229744,y:.8044681908525655},{x:.400026512750784,y:.8040807473169851},{x:.3982049355092742,y:.8039013376181453},{x:.39572578148103565,y:.8031492944655273},{x:.39319377618916257,y:.8026009124809075},{x:.2872357761891626,y:.7684889124809076},{x:.28342960508890525,y:.7668362808879404},{x:.2796044085190959,y:.7652281761559891},{x:.27938594032962494,y:.7650805300410848},{x:.27914407460343155,y:.764975512444704},{x:.2757334504432472,y:.7626120885587936},{x:.27229547962292316,y:.7602886242777711},{x:.2721100135665551,y:.7601011941121303},{x:.27189328313916555,y:.7599510087370087},{x:.2690092742928275,y:.7569676176126634},{x:.26609064851257996,y:.7540180832118794},{x:.26594531194585036,y:.7537980718316557},{x:.26576204564604555,y:.7536084902175343},{x:.26351548295615396,y:.7501197819025626},{x:.26122836336792754,y:.7466575263349163},{x:.2082493633679275,y:.6462725263349164},{x:.20745880379789322,y:.6443351468057326},{x:.2064724210369921,y:.6424897544564291},{x:.20579637196662365,y:.6402611193438609},{x:.20491647908027386,y:.6381048157198157},{x:.20451907388691828,y:.636050431873947},{x:.20391166238185462,y:.6340480644907258},{x:.20368338854657433,y:.6317303613460921},{x:.20324107652369047,y:.6294438319050109},{x:.20325209776572678,y:.6273513925615422},{x:.20304699999999998,y:.6252690000000001},{x:.20304699999999998,y:.568912},{x:.089112,y:.568912},{x:.0803329355092742,y:.5680473376181453},{x:.07189124554357093,y:.5654865789630078},{x:.0641113395141179,y:.5613281325536145},{x:.05729219484660536,y:.5557318051533946},{x:.051695867446385456,y:.548912660485882},{x:.04753742103699209,y:.5411327544564289},{x:.04497666238185463,y:.5326910644907257},{x:.044112,y:.5239119999999999}]],g:[[{x:.03166100000000001,y:.285331},{x:.03199195389402992,y:.28197076872347165},{x:.03216742697517915,y:.27859884139484714},{x:.032423533978450624,y:.2775888625904497},{x:.03252566238185464,y:.2765519355092742},{x:.03350580569139788,y:.2733208360362635},{x:.034335737494852386,y:.2700479324456657},{x:.07135573749485238,y:.1675239324456658},{x:.07223945098422414,y:.16566943556296815},{x:.07292365731738822,y:.16373243532732273},{x:.07413231799188957,y:.16169720247238553},{x:.07515058411631778,y:.15956034321175439},{x:.07637911169281072,y:.15791388391586245},{x:.07742806119285411,y:.15614758463046624},{x:.07901055202445481,y:.15438725620434748},{x:.0804261330120869,y:.15249010996133996},{x:.08195226304990277,y:.15111496075964967},{x:.08332564517579637,y:.14958724031548856},{x:.1584886451757964,y:.08090524031548854},{x:.16047116284778873,y:.07942238349974136},{x:.16231838489394151,y:.07777404756068641},{x:.16399482319868336,y:.07678680357956279},{x:.16555276842115366,y:.07562151273533077},{x:.16778648358567103,y:.07455391860853194},{x:.1699197861673149,y:.07329763012616651},{x:.2450797861673149,y:.038459630126166475},{x:.2459605302529857,y:.0381521715215269},{x:.24678324554357095,y:.03771242103699209},{x:.2501181687545519,y:.03670078314085588},{x:.253408434365457,y:.03555218561964517},{x:.254332237398671,y:.03542245939316866},{x:.2552249355092742,y:.03515166238185463},{x:.2586931398688001,y:.03481007406735549},{x:.26214426420887293,y:.034325445502994434},{x:.2630756249571383,y:.03437843696081321},{x:.264004,y:.034287},{x:.376189,y:.034287},{x:.37724627227682206,y:.03439113223027483},{x:.37830727432005307,y:.03433688416138392},{x:.3816280756224084,y:.03482270219101675},{x:.3849680644907258,y:.03515166238185463},{x:.38598470638687477,y:.035460057329467706},{x:.38703590484658207,y:.03561384285228289},{x:.39019811948723343,y:.036738182220129235},{x:.39340975445642906,y:.03771242103699209},{x:.39434669699397534,y:.038213227257056566},{x:.39534769490287125,y:.03856913648017993},{x:.4693886949028713,y:.07340713648017996},{x:.47140406041677185,y:.07460963544760885},{x:.47352148667564636,y:.07562166704766733},{x:.4751827197672129,y:.0768642309221422},{x:.47696422705836306,y:.07792719476830276},{x:.47870627197824944,y:.0794997663623443},{x:.480392,y:.08076065187723735},{x:.480392,y:.018480463023952315},{x:.44982106300216956,y:-.06618482166306154},{x:.42509763890365326,y:-.0887666681923909},{x:.3663917896728536,y:-.115601},{x:.27366828971008494,y:-.115601},{x:.21388478385740822,y:-.08868092320279419},{x:.15228882603575622,y:-.032396134475538775},{x:.11903308523020223,y:.0605977685009861},{x:.11526275900748023,y:.06857299605517989},{x:.11000898883421664,y:.07565942769130271},{x:.1034736741518217,y:.08158473581569503},{x:.09590796343849313,y:.08612121416008753},{x:.08760260271404471,y:.08909452840579157},{x:.07887676233341709,y:.09039041575379858},{x:.07006577144893004,y:.08995907598006667},{x:.061508231499013855,y:.08781708523020218},{x:.05353300394482007,y:.08404675900748018},{x:.046446572308697254,y:.07879298883421659},{x:.04052126418430494,y:.07225767415182165},{x:.035984785839912437,y:.06469196343849308},{x:.03301147159420839,y:.05638660271404467},{x:.03171558424620138,y:.04766076233341703},{x:.0321469240199333,y:.038849771448930016},{x:.03428891476979778,y:.030292231499013812},{x:.07130891476979778,y:-.07322776850098624},{x:.07221644299685706,y:-.07514742841768875},{x:.07292365731738822,y:-.07714956467267746},{x:.07409706350042253,y:-.07912543338941479},{x:.07507924099251978,y:-.08120299605518004},{x:.07634383839048098,y:-.08290872027080634},{x:.07742806119285414,y:-.08473441536953392},{x:.07896439356931816,y:-.08644339813281518},{x:.08033301116578337,y:-.08828942769130284},{x:.0819060799658371,y:-.08971566618082738},{x:.08332564517579637,y:-.09129475968451163},{x:.1584886451757964,y:-.15997675968451153},{x:.16066766565506738,y:-.1616065940183929},{x:.16271768036753925,y:-.16339598773796155},{x:.16419165994754753,y:-.1642424237156923},{x:.16555276842115366,y:-.1652604872646693},{x:.16800788453794988,y:-.16643389898185532},{x:.17036760218951646,y:-.1677889719724602},{x:.24552760218951647,y:-.2016329719724602},{x:.24617798725770038,y:-.20185206166908357},{x:.24678324554357095,y:-.2021755789630079},{x:.2503526828238078,y:-.20325835592431216},{x:.25388756161766735,y:-.20444912053505218},{x:.25456819199860076,y:-.20453711665220192},{x:.2552249355092742,y:-.20473633761814536},{x:.25893702635910487,y:-.20510194665533446},{x:.2626362900994872,y:-.20558021041579141},{x:.263321009549333,y:-.20553373131203426},{x:.264004,y:-.20560099999999998},{x:.376189,y:-.20560099999999998},{x:.3769985938815523,y:-.20552126196245651},{x:.37781053527049396,y:-.2055717752142049},{x:.38138177137190815,y:-.20508955666026785},{x:.3849680644907258,y:-.20473633761814536},{x:.3857465461334356,y:-.20450018779358015},{x:.38655274094280934,y:-.2043913285403334},{x:.3899612805709507,y:-.2032216620796743},{x:.39340975445642906,y:-.2021755789630079},{x:.39412720724734457,y:-.20179209245674457},{x:.39489667386274535,y:-.20152804409855607},{x:.4689376738627454,y:-.16768404409855608},{x:.471176129388074,y:-.16638175223486265},{x:.4735129313995788,y:-.16526550692304898},{x:.47497970384913024,y:-.16416890323360386},{x:.4765626813675205,y:-.163247956304222},{x:.47850406105855325,y:-.16153398660426738},{x:.480578193417323,y:-.15998330217620907},{x:.5187211934173229,y:-.125144302176209},{x:.5200982241105119,y:-.12361318710120846},{x:.5216280341275545,y:-.12223470670068204},{x:.5230406381933351,y:-.12034152832018923},{x:.5246201913815024,y:-.1185852292702623},{x:.52567205708302,y:-.11681488878073784},{x:.5269035440443172,y:-.11516444436572898},{x:.5279196645391884,y:-.1130320574948894},{x:.5291262301085498,y:-.11100134969861394},{x:.5298125082093796,y:-.10905981698676002},{x:.5306983467616347,y:-.10720083421055714},{x:.5677173467616347,y:-.0046778342105572215},{x:.5685472301626403,y:-.001405045768812418},{x:.5695273376181453,y:.0018259355092742052},{x:.5696294781899907,y:.002862986138707272},{x:.5698856101392306,y:.003873086692614168},{x:.5700610582123972,y:.007244891642088324},{x:.570392,y:.010604999999999976},{x:.570392,y:.560059},{x:.5695273376181453,y:.5688380644907257},{x:.5669665789630078,y:.577279754456429},{x:.5628081325536145,y:.5850596604858821},{x:.5572118051533946,y:.5918788051533946},{x:.5503926604858821,y:.5974751325536145},{x:.542612754456429,y:.6016335789630078},{x:.5341710644907257,y:.6041943376181453},{x:.525392,y:.605059},{x:.5166129355092742,y:.6041943376181453},{x:.508171245543571,y:.6016335789630078},{x:.5003913395141178,y:.5974751325536145},{x:.4935721948466053,y:.5918788051533946},{x:.48797586744638544,y:.5850596604858821},{x:.48381742103699205,y:.577279754456429},{x:.4812566623818546,y:.5688380644907257},{x:.480392,y:.560059},{x:.480392,y:.5595783858718113},{x:.47850787544975776,y:.5609876460911735},{x:.47656308903374583,y:.5627046621197919},{x:.47498407852937236,y:.5636233247252487},{x:.47352120750708176,y:.5647175018259646},{x:.47118052218859596,y:.5658362200595997},{x:.46893813108831367,y:.5671408350985324},{x:.39489713108831365,y:.6009858350985324},{x:.39412742928685096,y:.6012499737741558},{x:.39340975445642906,y:.6016335789630078},{x:.38996152003118717,y:.6026795894402057},{x:.3865532301567984,y:.60384921275647},{x:.38574678706033977,y:.6039581147092028},{x:.3849680644907258,y:.6041943376181453},{x:.38138202040224084,y:.6045475321329209},{x:.37781103767268465,y:.6050297570960106},{x:.3769988444371686,y:.6049792372848822},{x:.376189,y:.605059},{x:.264004,y:.605059},{x:.2633207613423033,y:.6049917068657756},{x:.2626357925427961,y:.6050381952835313},{x:.25893677979996554,y:.6045599223713788},{x:.2552249355092742,y:.6041943376181453},{x:.25456795333002863,y:.6039950442528821},{x:.2538870765735461,y:.6039070086250592},{x:.2503524457397967,y:.6027162840056636},{x:.24678324554357095,y:.6016335789630078},{x:.24617776729948443,y:.6013099440989677},{x:.24552714829793862,y:.6010907675853725},{x:.17036714829793861,y:.5672457675853725},{x:.16800780172583518,y:.5658908729822889},{x:.16555304759050302,y:.5647176561362495},{x:.1641916021742222,y:.563699355958929},{x:.16271727507130354,y:.5628526987282604},{x:.16066758950642807,y:.5610635523625588},{x:.15848888603577402,y:.5594339797745099},{x:.08332588603577401,y:.49075297977450993},{x:.08190615458499984,y:.48917372437901785},{x:.08033291862515302,y:.48774732555289924},{x:.07896444452212992,y:.48590147772545017},{x:.07742825448734617,y:.4841926782200152},{x:.07634390022195357,y:.48236679190821125},{x:.07507917015624571,y:.48066087782555583},{x:.0740970979464375,y:.4785835213931001},{x:.07292379561819572,y:.47660786018244516},{x:.07221648966449083,y:.47460551074132296},{x:.0713088683600783,y:.4726856387236396},{x:.034288868360078294,y:.36916463872363964},{x:.03348577523186824,y:.3659561323879453},{x:.03252566238185464,y:.3627910644907258},{x:.0324167369020588,y:.3616851255348066},{x:.032146903820267865,y:.36060709221327164},{x:.03198519043554786,y:.35730356073015046},{x:.03166100000000001,y:.354012},{x:.03166100000000001,y:.285331}],[{x:.121661,y:.29320659086815803},{x:.121661,y:.34620780969623244},{x:.15228882172599023,y:.4318540207415116},{x:.21388481974037543,y:.48813802669691503},{x:.2736685500834057,y:.5150589999999999},{x:.3663915263934284,y:.5150589999999999},{x:.4250929420729598,y:.48822590193711934},{x:.480392,y:.4376951204586189},{x:.480392,y:.20264468470162808},{x:.4249051037436742,y:.15194152341431572},{x:.3661311050032371,y:.124287},{x:.2739261218560311,y:.124287},{x:.21407100266628776,y:.15203091487935444},{x:.15223458736534265,y:.208535427414771},{x:.121661,y:.29320659086815803}]],h:[[{x:.047041,y:.05318299999999998},{x:.04790566238185463,y:.04440393550927419},{x:.050466421036992094,y:.03596224554357094},{x:.05462486744638546,y:.028182339514117884},{x:.06022119484660536,y:.021363194846605343},{x:.06704033951411792,y:.01576686744638544},{x:.07482024554357096,y:.011608421036992077},{x:.08326193550927423,y:.009047662381854615},{x:.092041,y:.008182999999999982},{x:.10082006449072577,y:.009047662381854615},{x:.10926175445642904,y:.011608421036992077},{x:.1170416604858821,y:.015766867446385446},{x:.12386080515339463,y:.021363194846605343},{x:.12945713255361452,y:.028182339514117884},{x:.1336155789630079,y:.03596224554357094},{x:.13617633761814535,y:.04440393550927421},{x:.137041,y:.05318299999999998},{x:.137041,y:.3692271498339558},{x:.23047284680205596,y:.45237128863270537},{x:.2915669774325256,y:.478914},{x:.38669764440631527,y:.478914},{x:.43644054132690624,y:.4571557093088599},{x:.465011,y:.38123324165433015},{x:.465011,y:.05318299999999998},{x:.4658756623818546,y:.04440393550927419},{x:.46843642103699207,y:.03596224554357094},{x:.47259486744638546,y:.028182339514117884},{x:.4781911948466053,y:.021363194846605343},{x:.4850103395141179,y:.01576686744638544},{x:.492790245543571,y:.011608421036992077},{x:.5012319355092743,y:.009047662381854615},{x:.510011,y:.008182999999999982},{x:.5187900644907257,y:.009047662381854615},{x:.527231754456429,y:.011608421036992077},{x:.5350116604858821,y:.015766867446385446},{x:.5418308051533947,y:.021363194846605343},{x:.5474271325536145,y:.028182339514117884},{x:.5515855789630079,y:.03596224554357094},{x:.5541463376181454,y:.04440393550927421},{x:.555011,y:.05318299999999998},{x:.555011,y:.38942},{x:.5546506186962206,y:.39307901278178137},{x:.554410350301749,y:.3967478709583736},{x:.5542188683658584,y:.3974626474508545},{x:.5541463376181454,y:.3981990644907258},{x:.5530790429582076,y:.40171746346329923},{x:.5521276325304605,y:.40526895152034226},{x:.5139866325304605,y:.5066239515203422},{x:.5138553396770835,y:.5068902237569821},{x:.5137747554395128,y:.50717595947055},{x:.511905898744729,y:.5108438433478746},{x:.5100853961903059,y:.5145359657635786},{x:.5099046789559015,y:.5147715076888114},{x:.5097698988494882,y:.5150360318659072},{x:.5072213830653152,y:.5182688425286295},{x:.504715563605999,y:.5215348594178236},{x:.5044923668525381,y:.521730619287556},{x:.5043085704011859,y:.5219637664124008},{x:.5011783335599848,y:.5246372687597332},{x:.4980834944323178,y:.5273516689249697},{x:.497826395485866,y:.5275001237971909},{x:.49760064588412606,y:.5276929341565276},{x:.49400898123224624,y:.5297043869925788},{x:.49044405536829966,y:.5317628575577613},{x:.490162934397186,y:.5318583023949868},{x:.48990390707565157,y:.532003366394835},{x:.41414290707565155,y:.5651423663948351},{x:.41372099607879415,y:.5652794559590063},{x:.41332975445642905,y:.5654885789630079},{x:.40952975949805703,y:.5666412948313546},{x:.4057531353317914,y:.5678684156337233},{x:.40531258638921414,y:.5679205603081202},{x:.4048880644907258,y:.5680493376181454},{x:.4009362016599996,y:.5684385621342186},{x:.39699274487562397,y:.5689053213297277},{x:.39655048803612764,y:.5688705172237564},{x:.396109,y:.568914},{x:.282214,y:.568914},{x:.28182836168040026,y:.5688760179407144},{x:.2814421286004882,y:.5689073796745989},{x:.27744221175957573,y:.5684440198796774},{x:.2734349355092742,y:.5680493376181454},{x:.2730641170540284,y:.5679368510695262},{x:.2726791869636831,y:.5678922598605547},{x:.26884652441488044,y:.5666574583296339},{x:.26499324554357095,y:.5654885789630079},{x:.2646514972979566,y:.5653059107200353},{x:.264282662844679,y:.5651870801833616},{x:.18800566284467896,y:.5320480801833616},{x:.1856267698486466,y:.5307235797343987},{x:.1831549202301779,y:.529581917442145},{x:.18178185218619736,y:.5285828381463435},{x:.18029822995654404,y:.527756799180932},{x:.17822344394147954,y:.5259936496360635},{x:.17602181748454487,y:.5243916901265875},{x:.137041,y:.4897030201456747},{x:.137041,y:.7597659999999999},{x:.13617633761814535,y:.7685450644907257},{x:.1336155789630079,y:.776986754456429},{x:.12945713255361452,y:.7847666604858821},{x:.12386080515339463,y:.7915858051533946},{x:.11704166048588208,y:.7971821325536145},{x:.10926175445642904,y:.8013405789630078},{x:.10082006449072577,y:.8039013376181453},{x:.092041,y:.804766},{x:.08326193550927423,y:.8039013376181453},{x:.07482024554357093,y:.8013405789630078},{x:.06704033951411792,y:.7971821325536145},{x:.06022119484660536,y:.7915858051533946},{x:.05462486744638546,y:.7847666604858821},{x:.050466421036992094,y:.776986754456429},{x:.04790566238185463,y:.7685450644907257},{x:.047041,y:.7597659999999999},{x:.047041,y:.05318299999999998}]],i:[[{x:.216026,y:.7597659999999999},{x:.21689066238185462,y:.7509869355092742},{x:.21945142103699208,y:.7425452455435709},{x:.22360986744638545,y:.7347653395141178},{x:.22920619484660534,y:.7279461948466053},{x:.2360253395141179,y:.7223498674463854},{x:.24380524554357094,y:.7181914210369921},{x:.25224693550927424,y:.7156306623818546},{x:.261026,y:.7147659999999999},{x:.341026,y:.7147659999999999},{x:.3498050644907258,y:.7156306623818546},{x:.35824675445642906,y:.7181914210369921},{x:.3660266604858821,y:.7223498674463854},{x:.3728458051533946,y:.7279461948466053},{x:.37844213255361453,y:.7347653395141178},{x:.3826005789630079,y:.7425452455435709},{x:.38516133761814536,y:.7509869355092742},{x:.386026,y:.7597659999999999},{x:.38516133761814536,y:.7685450644907257},{x:.3826005789630079,y:.776986754456429},{x:.37844213255361453,y:.7847666604858821},{x:.3728458051533946,y:.7915858051533946},{x:.3660266604858821,y:.7971821325536145},{x:.35824675445642906,y:.8013405789630078},{x:.3498050644907258,y:.8039013376181453},{x:.341026,y:.804766},{x:.261026,y:.804766},{x:.25224693550927424,y:.8039013376181453},{x:.24380524554357094,y:.8013405789630078},{x:.2360253395141179,y:.7971821325536145},{x:.22920619484660534,y:.7915858051533946},{x:.22360986744638545,y:.7847666604858821},{x:.21945142103699208,y:.776986754456429},{x:.21689066238185462,y:.7685450644907257},{x:.216026,y:.7597659999999999}],[{x:.25597800000000004,y:.05318299999999998},{x:.25684266238185466,y:.04440393550927419},{x:.2594034210369921,y:.03596224554357094},{x:.2635618674463855,y:.028182339514117884},{x:.2691581948466054,y:.021363194846605343},{x:.27597733951411796,y:.01576686744638544},{x:.28375724554357096,y:.011608421036992077},{x:.2921989355092742,y:.009047662381854615},{x:.300978,y:.008182999999999982},{x:.3097570644907258,y:.009047662381854615},{x:.3181987544564291,y:.011608421036992077},{x:.32597866048588214,y:.015766867446385446},{x:.33279780515339463,y:.021363194846605343},{x:.33839413255361456,y:.028182339514117884},{x:.34255257896300795,y:.03596224554357094},{x:.3451133376181454,y:.04440393550927421},{x:.345978,y:.05318299999999998},{x:.345978,y:.523911},{x:.3451133376181454,y:.5326900644907258},{x:.34255257896300795,y:.541131754456429},{x:.33839413255361456,y:.5489116604858821},{x:.33279780515339463,y:.5557308051533947},{x:.32597866048588214,y:.5613271325536145},{x:.3181987544564291,y:.5654855789630079},{x:.3097570644907258,y:.5680463376181454},{x:.300978,y:.5689110000000001},{x:.2921989355092742,y:.5680463376181454},{x:.28375724554357096,y:.5654855789630079},{x:.27597733951411796,y:.5613271325536145},{x:.2691581948466054,y:.5557308051533947},{x:.2635618674463855,y:.5489116604858821},{x:.2594034210369921,y:.541131754456429},{x:.25684266238185466,y:.5326900644907258},{x:.25597800000000004,y:.523911},{x:.25597800000000004,y:.05318299999999998}]],j:[[{x:.11017199870220953,y:-.1121580749666587},{x:.11173080987432929,y:-.12084080046598154},{x:.114953584640513,y:-.12905258085596802},{x:.11971647357384912,y:-.1364778420214504},{x:.12583644152368842,y:-.14283123533997366},{x:.1330783015538362,y:-.147868603469331},{x:.14116375304461573,y:-.15139636317729976},{x:.23896575304461573,y:-.18307436317729964},{x:.2424293887998465,y:-.18383095770413346},{x:.24586120600074532,y:-.1847208108507566},{x:.24673197042105502,y:-.1847708110651418},{x:.2475840766296098,y:-.18495694463669302},{x:.2511287638648936,y:-.18502327959701073},{x:.25466824139749206,y:-.18522652014211538},{x:.25553202888155596,y:-.18510568190524296},{x:.2564040749666586,y:-.1851220012977904},{x:.25989359333942796,y:-.1844955274762681},{x:.2634047110671092,y:-.18400434499968443},{x:.3944597110671092,y:-.15232634499968456},{x:.39510744613291976,y:-.15210060706564532},{x:.39578357398914765,y:-.1519849807175323},{x:.3992672661785621,y:-.15065089524264363},{x:.4027898773796621,y:-.14942325292878383},{x:.40338112711156726,y:-.1490754856432793},{x:.40402170577913904,y:-.1488301750218278},{x:.4071781926350792,y:-.14684208899421944},{x:.4103936167153703,y:-.14495080812962524},{x:.41090565971774945,y:-.14449437599440731},{x:.41148607211771127,y:-.14412880824922783},{x:.41419405162048195,y:-.14156312270000898},{x:.41697872163578864,y:-.1390808841476645},{x:.4173918803832174,y:-.13853332759371953},{x:.41788982159253774,y:-.13806155128824654},{x:.42004522760849955,y:-.13501686407422092},{x:.422292130251795,y:-.13203905886963707},{x:.4225905272853119,y:-.13142142018825975},{x:.42298686170256505,y:-.13086156542133753},{x:.4245068631872901,y:-.12745488216466036},{x:.4261296512500701,y:-.1240959456918764},{x:.4263018193390199,y:-.1234319603912164},{x:.42658131605481786,y:-.12280554206756752},{x:.4588533160548179,y:-.025908542067567514},{x:.4594769463166796,y:-.023162642495487502},{x:.46029433761814537,y:-.02046806449072583},{x:.46045163429328767,y:-.01887100454660151},{x:.46080705178433234,y:-.017306069686551954},{x:.4608830007338393,y:-.01449126757618431},{x:.461159,y:-.01168900000000006},{x:.461159,y:.534292},{x:.46029433761814537,y:.5430710644907257},{x:.4577335789630079,y:.551512754456429},{x:.45357513255361454,y:.5592926604858821},{x:.4479788051533946,y:.5661118051533947},{x:.4411596604858821,y:.5717081325536145},{x:.43337975445642907,y:.5758665789630079},{x:.4249380644907258,y:.5784273376181454},{x:.416159,y:.579292},{x:.4073799355092742,y:.5784273376181454},{x:.39893824554357094,y:.5758665789630079},{x:.39115833951411794,y:.5717081325536145},{x:.3843391948466054,y:.5661118051533947},{x:.37874286744638547,y:.5592926604858821},{x:.3745844210369921,y:.551512754456429},{x:.37202366238185464,y:.5430710644907257},{x:.371159,y:.534292},{x:.371159,y:-.004392296840350002},{x:.3490732119536395,y:-.07070509444595838},{x:.254610065464387,y:-.09353828321774525},{x:.16889624695538427,y:-.06577563682270039},{x:.16027792337039018,y:-.063893055363307},{x:.15145792503334138,y:-.0637279987022096},{x:.14277519953401854,y:-.06528680987432936},{x:.13456341914403205,y:-.06850958464051307},{x:.12713815797854966,y:-.0732724735738492},{x:.12078476466002638,y:-.07939244152368852},{x:.11574739653066908,y:-.08663430155383627},{x:.11221963682270032,y:-.0947197530446158},{x:.11033705536330693,y:-.10333807662960988},{x:.11017199870220953,y:-.1121580749666587}],[{x:.3403,y:.7597659999999999},{x:.3411646623818546,y:.7509869355092742},{x:.34372542103699205,y:.7425452455435709},{x:.34788386744638544,y:.7347653395141178},{x:.3534801948466053,y:.7279461948466053},{x:.3602993395141179,y:.7223498674463854},{x:.36807924554357097,y:.7181914210369921},{x:.37652093550927423,y:.7156306623818546},{x:.3853,y:.7147659999999999},{x:.447023,y:.7147659999999999},{x:.4558020644907258,y:.7156306623818546},{x:.46424375445642907,y:.7181914210369921},{x:.4720236604858821,y:.7223498674463854},{x:.4788428051533946,y:.7279461948466053},{x:.48443913255361454,y:.7347653395141178},{x:.48859757896300793,y:.7425452455435709},{x:.49115833761814537,y:.7509869355092742},{x:.492023,y:.7597659999999999},{x:.49115833761814537,y:.7685450644907257},{x:.48859757896300793,y:.776986754456429},{x:.48443913255361454,y:.7847666604858821},{x:.4788428051533946,y:.7915858051533946},{x:.4720236604858821,y:.7971821325536145},{x:.46424375445642907,y:.8013405789630078},{x:.4558020644907258,y:.8039013376181453},{x:.447023,y:.804766},{x:.3853,y:.804766},{x:.37652093550927423,y:.8039013376181453},{x:.36807924554357097,y:.8013405789630078},{x:.3602993395141179,y:.7971821325536145},{x:.3534801948466053,y:.7915858051533946},{x:.34788386744638544,y:.7847666604858821},{x:.34372542103699205,y:.776986754456429},{x:.3411646623818546,y:.7685450644907257},{x:.3403,y:.7597659999999999}]],k:[[{x:.020185999999999996,y:.05318299999999998},{x:.02105066238185463,y:.04440393550927419},{x:.02361142103699209,y:.03596224554357094},{x:.027769867446385453,y:.028182339514117884},{x:.03336619484660536,y:.021363194846605343},{x:.04018533951411791,y:.01576686744638544},{x:.047965245543570956,y:.011608421036992077},{x:.056406935509274225,y:.009047662381854615},{x:.065186,y:.008182999999999982},{x:.07396506449072576,y:.009047662381854615},{x:.08240675445642903,y:.011608421036992077},{x:.0901866604858821,y:.015766867446385446},{x:.09700580515339463,y:.021363194846605343},{x:.10260213255361453,y:.028182339514117884},{x:.10676057896300789,y:.03596224554357094},{x:.10932133761814536,y:.04440393550927421},{x:.11018599999999999,y:.05318299999999998},{x:.11018599999999999,y:.16578332733911408},{x:.23477705990096162,y:.26351643594805596},{x:.5068321321577423,y:.019673199736523116},{x:.5139466814455551,y:.014457569113271652},{x:.5219420457215526,y:.010730135081525344},{x:.5305109676204599,y:.008634140840755075},{x:.539324148279209,y:.008250134274186548},{x:.5480429021075728,y:.009592872538819623},{x:.5563321722854605,y:.012610754956160736},{x:.5638734068086124,y:.017187805997359452},{x:.5703768002634768,y:.02314813215774228},{x:.5755924308867283,y:.030262681445555134},{x:.5793198649184746,y:.03825804572155257},{x:.5814158591592449,y:.04682696762045996},{x:.5817998657258134,y:.05564014827920904},{x:.5804571274611804,y:.06435890210757275},{x:.5774392450438393,y:.07264817228546054},{x:.5728621940026405,y:.08018940680861247},{x:.5669018678422577,y:.08669280026347684},{x:.3066862956724008,y:.3199242805817128},{x:.5215978711622948,y:.4885076152557163},{x:.5279716470169837,y:.49460635247919954},{x:.533033147947031,y:.5018313661609891},{x:.5365878633102175,y:.5099050030771282},{x:.5384991873886431,y:.5185169978886772},{x:.5386936690698568,y:.5273363964646907},{x:.5371638345319164,y:.5360242742638681},{x:.5339684744581735,y:.5442467610146052},{x:.5292303847442837,y:.5516878711622948},{x:.5231316475208004,y:.5580616470169838},{x:.5159066338390108,y:.5631231479470311},{x:.5078329969228718,y:.5666778633102175},{x:.4992210021113228,y:.5685891873886431},{x:.49040160353530926,y:.5687836690698569},{x:.4817137257361318,y:.5672538345319164},{x:.47349123898539475,y:.5640584744581736},{x:.46605012883770514,y:.5593203847442837},{x:.11018599999999999,y:.28016947631338524},{x:.11018599999999999,y:.7597659999999999},{x:.10932133761814536,y:.7685450644907257},{x:.10676057896300789,y:.776986754456429},{x:.10260213255361453,y:.7847666604858821},{x:.09700580515339463,y:.7915858051533946},{x:.09018666048588207,y:.7971821325536145},{x:.08240675445642903,y:.8013405789630078},{x:.07396506449072576,y:.8039013376181453},{x:.065186,y:.804766},{x:.056406935509274204,y:.8039013376181453},{x:.04796524554357093,y:.8013405789630078},{x:.04018533951411791,y:.7971821325536145},{x:.03336619484660536,y:.7915858051533946},{x:.027769867446385453,y:.7847666604858821},{x:.02361142103699209,y:.776986754456429},{x:.02105066238185463,y:.7685450644907257},{x:.020185999999999996,y:.7597659999999999},{x:.020185999999999996,y:.05318299999999998}]],l:[[{x:.25602600000000003,y:.05355900000000002},{x:.25689066238185465,y:.044779935509274234},{x:.2594514210369921,y:.036338245543570985},{x:.2636098674463855,y:.028558339514117927},{x:.26920619484660535,y:.021739194846605386},{x:.27602533951411795,y:.016142867446385482},{x:.283805245543571,y:.01198442103699212},{x:.2922469355092743,y:.009423662381854658},{x:.301026,y:.008559000000000025},{x:.3098050644907258,y:.009423662381854658},{x:.3182467544564291,y:.01198442103699212},{x:.32602666048588214,y:.01614286744638549},{x:.3328458051533947,y:.021739194846605386},{x:.33844213255361455,y:.028558339514117927},{x:.34260057896300794,y:.036338245543570985},{x:.3451613376181454,y:.044779935509274255},{x:.346026,y:.05355900000000002},{x:.346026,y:.765137},{x:.3451613376181454,y:.7739160644907257},{x:.34260057896300794,y:.782357754456429},{x:.33844213255361455,y:.7901376604858821},{x:.3328458051533947,y:.7969568051533946},{x:.32602666048588214,y:.8025531325536145},{x:.3182467544564291,y:.8067115789630078},{x:.3098050644907258,y:.8092723376181453},{x:.301026,y:.810137},{x:.2922469355092743,y:.8092723376181453},{x:.283805245543571,y:.8067115789630078},{x:.27602533951411795,y:.8025531325536145},{x:.26920619484660535,y:.7969568051533946},{x:.2636098674463855,y:.7901376604858821},{x:.2594514210369921,y:.782357754456429},{x:.25689066238185465,y:.7739160644907257},{x:.25602600000000003,y:.765137},{x:.25602600000000003,y:.05355900000000002}]],m:[[{x:.005538000000000001,y:.03920400000000002},{x:.006402662381854635,y:.030424935509274227},{x:.008963421036992096,y:.02198324554357097},{x:.013121867446385459,y:.01420333951411792},{x:.018718194846605363,y:.00738419484660538},{x:.025537339514117914,y:.0017878674463854757},{x:.03331724554357096,y:-.002370578963007887},{x:.04175893550927423,y:-.004931337618145348},{x:.050538,y:-.005795999999999982},{x:.059317064490725775,y:-.004931337618145348},{x:.06775875445642904,y:-.002370578963007887},{x:.0755386604858821,y:.0017878674463854827},{x:.08235780515339464,y:.00738419484660538},{x:.08795413255361453,y:.01420333951411792},{x:.0921125789630079,y:.02198324554357098},{x:.09467333761814536,y:.030424935509274248},{x:.095538,y:.03920400000000002},{x:.095538,y:.3993271266071161},{x:.14963521853994496,y:.4943223065353007},{x:.1738257653562211,y:.5150589999999999},{x:.22021623464377893,y:.5150589999999999},{x:.2416666625786254,y:.49667119950297894},{x:.27741,y:.4029520066676719},{x:.27741,y:.03920400000000002},{x:.2782746623818546,y:.030424935509274227},{x:.28083542103699205,y:.02198324554357097},{x:.28499386744638544,y:.01420333951411792},{x:.2905901948466053,y:.00738419484660538},{x:.2974093395141179,y:.0017878674463854757},{x:.30518924554357096,y:-.002370578963007887},{x:.31363093550927423,y:-.004931337618145348},{x:.32241,y:-.005795999999999982},{x:.33118906449072577,y:-.004931337618145348},{x:.33963075445642904,y:-.002370578963007887},{x:.3474106604858821,y:.0017878674463854827},{x:.35422980515339464,y:.00738419484660538},{x:.3598261325536145,y:.01420333951411792},{x:.3639845789630079,y:.02198324554357098},{x:.36654533761814534,y:.030424935509274248},{x:.36740999999999996,y:.03920400000000002},{x:.36740999999999996,y:.3993264781598986},{x:.4215891088917321,y:.494459500052724},{x:.445289826307752,y:.5150589999999999},{x:.4920928256254945,y:.5150589999999999},{x:.5065149999999999,y:.5026965582556255},{x:.5065149999999999,y:.03920400000000002},{x:.5073796623818546,y:.030424935509274227},{x:.5099404210369921,y:.02198324554357097},{x:.5140988674463854,y:.01420333951411792},{x:.5196951948466053,y:.00738419484660538},{x:.5265143395141179,y:.0017878674463854757},{x:.534294245543571,y:-.002370578963007887},{x:.5427359355092742,y:-.004931337618145348},{x:.551515,y:-.005795999999999982},{x:.5602940644907257,y:-.004931337618145348},{x:.568735754456429,y:-.002370578963007887},{x:.5765156604858821,y:.0017878674463854827},{x:.5833348051533946,y:.00738419484660538},{x:.5889311325536145,y:.01420333951411792},{x:.5930895789630078,y:.02198324554357098},{x:.5956503376181453,y:.030424935509274248},{x:.596515,y:.03920400000000002},{x:.596515,y:.523393},{x:.5963454778388272,y:.5251141873868636},{x:.5963825315707437,y:.5268433058919912},{x:.5959141404350922,y:.5294936295415332},{x:.5956503376181453,y:.5321720644907257},{x:.5951482857762117,y:.5338271076115645},{x:.59484729324509,y:.5355302304139588},{x:.5938708496195351,y:.5380382502602514},{x:.5930895789630078,y:.540613754456429},{x:.592274291011045,y:.5421390509322689},{x:.5916468191910574,y:.543750727977755},{x:.5901998472565338,y:.5460200622246176},{x:.5889311325536145,y:.5483936604858821},{x:.5878339395503975,y:.5497305940285525},{x:.5869041018316961,y:.5511888894721116},{x:.5850422079081763,y:.5531323288770946},{x:.5833348051533946,y:.5552128051533947},{x:.581997871610724,y:.5563099981566119},{x:.5808014011353795,y:.5575588705221693},{x:.5380264011353795,y:.5942248705221693},{x:.5358211367621821,y:.5957677297988329},{x:.5337406604858821,y:.5974751325536145},{x:.5322153640100423,y:.5982904205055773},{x:.5307982404674333,y:.599281876328501},{x:.5283343527176928,y:.600364864260089},{x:.525960754456429,y:.6016335789630078},{x:.5243057113355902,y:.6021356308049415},{x:.5227223939887274,y:.6028315689939708},{x:.5200945686869033,y:.6034130669616181},{x:.5175190644907257,y:.6041943376181453},{x:.5157978771038628,y:.6043638597793182},{x:.5141092119504517,y:.6047375358201355},{x:.5114184349491921,y:.6047951971830532},{x:.50874,y:.605059},{x:.428467,y:.605059},{x:.42563553135621585,y:.6047801246797119},{x:.42279150043448566,y:.6046996620098968},{x:.4212557149999115,y:.6043487504203328},{x:.4196879355092742,y:.6041943376181453},{x:.41696527861756566,y:.6033684286794448},{x:.4141915924406847,y:.6027346691689239},{x:.4127537761476033,y:.6020908833721776},{x:.4112462455435709,y:.6016335789630078},{x:.40873703058140176,y:.6002923756232341},{x:.4061402803536474,y:.5991296742945802},{x:.40485568767586616,y:.5982177546177817},{x:.4034663395141179,y:.5974751325536145},{x:.4012669942053008,y:.5956701765049598},{x:.3989469715816508,y:.5940232153181825},{x:.3567609715816508,y:.5573572153181825},{x:.3545792701559384,y:.5550484712393128},{x:.3522737143614353,y:.552863400803129},{x:.35155574109793963,y:.5518488790642903},{x:.35070210094674875,y:.5509455305944583},{x:.3490127339279754,y:.5482555195520005},{x:.34717776483660073,y:.5456626430091704},{x:.33048446785976626,y:.5163509060824124},{x:.3216828574856715,y:.5394287684036221},{x:.32062739498214626,y:.5415455848316745},{x:.31976928952310246,y:.5437498007710907},{x:.3186639603788477,y:.5454834136126945},{x:.31774653490223986,y:.5473233854865517},{x:.3162983824161672,y:.5491936173608123},{x:.31502674401548947,y:.5511880718386934},{x:.3136044423732838,y:.5526727347769701},{x:.3123456842645886,y:.5542983712755478},{x:.3105604934838748,y:.5558501466339272},{x:.30892419049215825,y:.5575581938831911},{x:.2661511904921582,y:.594224193883191},{x:.26394553725639397,y:.5957674011217274},{x:.2618646604858821,y:.5974751325536145},{x:.26033982189406285,y:.5982901757614695},{x:.258923146662659,y:.5992813666868191},{x:.25645880963824363,y:.6003646200309664},{x:.25408475445642903,y:.6016335789630078},{x:.25243020816870526,y:.6021354800922637},{x:.25084738219782576,y:.6028312459348294},{x:.24821906447459133,y:.6034129165660671},{x:.24564306449072576,y:.6041943376181453},{x:.24392239379305308,y:.6043638088898747},{x:.2422342441971012,y:.6047374117585159},{x:.2395429505511757,y:.6047951464006902},{x:.236864,y:.605059},{x:.157178,y:.605059},{x:.1544990494488241,y:.6047951464006902},{x:.1518077558028988,y:.6047374117585159},{x:.15011960620694695,y:.6043638088898747},{x:.14839893550927424,y:.6041943376181453},{x:.14582293552540848,y:.6034129165660671},{x:.1431946178021742,y:.6028312459348294},{x:.1416117918312948,y:.6021354800922637},{x:.13995724554357097,y:.6016335789630078},{x:.13758319036175665,y:.6003646200309664},{x:.135118853337341,y:.5992813666868191},{x:.13370217810593676,y:.5982901757614691},{x:.13217733951411792,y:.5974751325536145},{x:.13009646274360603,y:.5957674011217274},{x:.1278908095078418,y:.594224193883191},{x:.09495385911112918,y:.5659898819750746},{x:.09467333761814536,y:.5688380644907257},{x:.0921125789630079,y:.577279754456429},{x:.08795413255361453,y:.5850596604858821},{x:.08235780515339464,y:.5918788051533946},{x:.07553866048588208,y:.5974751325536145},{x:.06775875445642904,y:.6016335789630078},{x:.059317064490725775,y:.6041943376181453},{x:.050538,y:.605059},{x:.04175893550927421,y:.6041943376181453},{x:.033317245543570934,y:.6016335789630078},{x:.025537339514117904,y:.5974751325536145},{x:.018718194846605356,y:.5918788051533946},{x:.013121867446385459,y:.5850596604858821},{x:.008963421036992096,y:.577279754456429},{x:.006402662381854635,y:.5688380644907257},{x:.005538000000000001,y:.560059},{x:.005538000000000001,y:.03920400000000002}]],n:[[{x:.047041,y:.03920400000000002},{x:.04790566238185463,y:.030424935509274227},{x:.050466421036992094,y:.02198324554357097},{x:.05462486744638546,y:.01420333951411792},{x:.06022119484660536,y:.00738419484660538},{x:.06704033951411792,y:.0017878674463854757},{x:.07482024554357096,y:-.002370578963007887},{x:.08326193550927423,y:-.004931337618145348},{x:.092041,y:-.005795999999999982},{x:.10082006449072577,y:-.004931337618145348},{x:.10926175445642904,y:-.002370578963007887},{x:.1170416604858821,y:.0017878674463854827},{x:.12386080515339463,y:.00738419484660538},{x:.12945713255361452,y:.01420333951411792},{x:.1336155789630079,y:.02198324554357098},{x:.13617633761814535,y:.030424935509274248},{x:.137041,y:.03920400000000002},{x:.137041,y:.3923986904044417},{x:.23217657812189968,y:.4860775193429304},{x:.29246969284729285,y:.5150589999999999},{x:.3857956927587408,y:.5150589999999999},{x:.4353266752666751,y:.4910865745843881},{x:.465011,y:.4037995608673687},{x:.465011,y:.03920400000000002},{x:.4658756623818546,y:.030424935509274227},{x:.46843642103699207,y:.02198324554357097},{x:.47259486744638546,y:.01420333951411792},{x:.4781911948466053,y:.00738419484660538},{x:.4850103395141179,y:.0017878674463854757},{x:.492790245543571,y:-.002370578963007887},{x:.5012319355092743,y:-.004931337618145348},{x:.510011,y:-.005795999999999982},{x:.5187900644907257,y:-.004931337618145348},{x:.527231754456429,y:-.002370578963007887},{x:.5350116604858821,y:.0017878674463854827},{x:.5418308051533947,y:.00738419484660538},{x:.5474271325536145,y:.01420333951411792},{x:.5515855789630079,y:.02198324554357098},{x:.5541463376181454,y:.030424935509274248},{x:.555011,y:.03920400000000002},{x:.555011,y:.411242},{x:.5547211401667089,y:.41418499627592825},{x:.5546227314347089,y:.4171405946120584},{x:.5542897326303223,y:.4185651504993601},{x:.5541463376181454,y:.4200210644907258},{x:.5532878972691104,y:.42285096307022063},{x:.5526147708021555,y:.4257305718218671},{x:.5144747708021555,y:.537881571821867},{x:.5144109474804813,y:.5380222238814931},{x:.5143747633675698,y:.5381723808934484},{x:.5125889395552703,y:.5420375142269895},{x:.5108295711501452,y:.5459147613418461},{x:.5107395343200961,y:.546040259499208},{x:.5106747512949527,y:.5461804721160435},{x:.5081691914797779,y:.5496229410537735},{x:.5056872154570532,y:.5530824522038071},{x:.5055744251835149,y:.5531879736350976},{x:.505483532821465,y:.5533128535645805},{x:.5023545242619802,y:.5562003659557777},{x:.4992453215682988,y:.5591091940676126},{x:.49911411231822944,y:.5591906836434047},{x:.49900060356177384,y:.559295431819878},{x:.49536839230215873,y:.5615170221826804},{x:.49175144785337105,y:.5637633826232722},{x:.4916068619246677,y:.563817708744868},{x:.49147509885166074,y:.5638982997546532},{x:.41571709885166075,y:.6005642997546532},{x:.4144883994140345,y:.6010164083750983},{x:.41333375445642906,y:.6016335789630078},{x:.41035728417594536,y:.6025364813514484},{x:.4074382196167836,y:.6036105717354909},{x:.4061449272779714,y:.6038142858466193},{x:.4048920644907258,y:.6041943376181453},{x:.4017966387343604,y:.6044992104448776},{x:.3987241185432898,y:.6049831812385367},{x:.3974159338025849,y:.6049306722213019},{x:.396113,y:.605059},{x:.282216,y:.605059},{x:.28097323419788345,y:.6049365982521052},{x:.2797255990169867,y:.6049900349640848},{x:.2765922846246742,y:.6045051123806029},{x:.2734369355092743,y:.6041943376181453},{x:.2722419284999821,y:.603831836204989},{x:.27100784129389754,y:.6036408445963318},{x:.26802933636200627,y:.6025539603505436},{x:.264995245543571,y:.6016335789630078},{x:.2638939207763026,y:.6010449086106044},{x:.2627208068242762,y:.6006168283817219},{x:.18644080682427616,y:.563950828381722},{x:.18387931815291048,y:.5623935720684188},{x:.18122474955630472,y:.5610008994562176},{x:.18011833133270075,y:.5601070811947741},{x:.17890296169536754,y:.5593681975674947},{x:.17669449694619624,y:.5573411418478543},{x:.17436263208920222,y:.5554573484070612},{x:.137041,y:.5187071981771466},{x:.137041,y:.560059},{x:.13617633761814535,y:.5688380644907257},{x:.1336155789630079,y:.577279754456429},{x:.12945713255361452,y:.5850596604858821},{x:.12386080515339463,y:.5918788051533946},{x:.11704166048588208,y:.5974751325536145},{x:.10926175445642904,y:.6016335789630078},{x:.10082006449072577,y:.6041943376181453},{x:.092041,y:.605059},{x:.08326193550927423,y:.6041943376181453},{x:.07482024554357093,y:.6016335789630078},{x:.06704033951411792,y:.5974751325536145},{x:.06022119484660536,y:.5918788051533946},{x:.05462486744638546,y:.5850596604858821},{x:.050466421036992094,y:.577279754456429},{x:.04790566238185463,y:.5688380644907257},{x:.047041,y:.560059},{x:.047041,y:.03920400000000002}]],o:[[{x:.021894999999999998,y:.25490100000000004},{x:.022142430975592695,y:.2523887911456351},{x:.02217771682540861,y:.24986467341374632},{x:.02257373987793045,y:.24800963837050735},{x:.02275966238185463,y:.24612193550927428},{x:.023492446675001572,y:.24370626943231966},{x:.02401948545822835,y:.2412375358426815},{x:.060310485458228355,y:.12735753584268142},{x:.06080304558444478,y:.12621387418764726},{x:.061129830312657105,y:.12501229639135567},{x:.06254436541764224,y:.12217075210694647},{x:.06379993607002282,y:.11925547753662338},{x:.06450614911208748,y:.11822988473324028},{x:.0650610709625847,y:.11711514745523491},{x:.06700278396163635,y:.114604164756607},{x:.06880297103068717,y:.11198985605258731},{x:.06969569761744246,y:.11112174505713},{x:.07045743125471368,y:.1101366870258529},{x:.14244943125471368,y:.0338456870258529},{x:.144568728324263,y:.03200109409682955},{x:.1465508815997487,y:.0300098604251366},{x:.14788834203377002,y:.029111770054614114},{x:.1491035320893312,y:.02805409342394511},{x:.1515419696884587,y:.026658398178569347},{x:.15387450686277807,y:.025092124424329433},{x:.22587150686277807,y:-.01360287557567049},{x:.22795933917571506,y:-.014473279294209745},{x:.22995424554357097,y:-.015539578963007873},{x:.23202067225559728,y:-.016166422653018674},{x:.2340138134199343,y:-.01699735024728135},{x:.23623133596214702,y:-.01744371352418634},{x:.23839593550927424,y:-.018100337618145335},{x:.2405449475487996,y:-.01831199682974963},{x:.24266189699648397,y:-.01873811583170923},{x:.2449238916202761,y:-.018743285176571887},{x:.247175,y:-.018964999999999968},{x:.354874,y:-.018964999999999968},{x:.35712497901801044,y:-.018743297917588594},{x:.3593868436844028,y:-.018738141970160445},{x:.36150392306047363,y:-.018312009573623896},{x:.3636530644907258,y:-.018100337618145335},{x:.36581753964743763,y:-.017443751257606326},{x:.36803493734305537,y:-.016997426474138877},{x:.370028203326089,y:-.016166460394901543},{x:.3720947544564291,y:-.015539578963007873},{x:.3740895461854217,y:-.014473340569958804},{x:.376177263560353,y:-.01360299896157894},{x:.448175263560353,y:.025092001038420984},{x:.4505076595021602,y:.026658160356610353},{x:.4529459593263057,y:.028053731854915283},{x:.45416130097157975,y:.029111510806286087},{x:.45549891730603415,y:.030009694621828502},{x:.4574809543881169,y:.03200078850323144},{x:.4596001404718476,y:.03384523318438343},{x:.5315941404718476,y:.11013623318438343},{x:.5323560786638525,y:.11112152750713142},{x:.5332490289693128,y:.11198985605258731},{x:.5350490398057314,y:.11460390882403626},{x:.5369905975332091,y:.11711461878219896},{x:.5375456739097991,y:.11822962771804991},{x:.5382520639299772,y:.11925547753662338},{x:.5395075116659538,y:.12217046671076734},{x:.5409219476918898,y:.12501171320336152},{x:.5412488309792026,y:.126213587584214},{x:.5417415145417717,y:.12735753584268142},{x:.5780325145417716,y:.2412375358426815},{x:.5785595533249983,y:.2437062694323195},{x:.5792923376181454,y:.24612193550927428},{x:.5794782601220696,y:.2480096383705079},{x:.5798742831745913,y:.24986467341374632},{x:.5799095690244073,y:.25238879114563434},{x:.580157,y:.25490100000000004},{x:.580157,y:.33119200000000004},{x:.5799156873690254,y:.3336420882589673},{x:.5798881240960263,y:.3361038771468651},{x:.5794843860383102,y:.3380211641581212},{x:.5792923376181454,y:.33997106449072584},{x:.5785776732343003,y:.3423269972319261},{x:.5780703683949873,y:.3447361062088315},{x:.5417793683949873,y:.4597211062088315},{x:.5412650895934552,y:.4609244011905288},{x:.540921633437906,y:.46218711230867804},{x:.5395351283421765,y:.46497211555478546},{x:.5383124760126231,y:.46783284286481475},{x:.5375733277285976,y:.46891268605384906},{x:.5369901282681178,y:.47008412955994733},{x:.5350869372989228,y:.47254512602400234},{x:.5333296776789325,y:.47511235762423976},{x:.5323940649664491,y:.4760272512524403},{x:.5315935342292432,y:.47706240922950055},{x:.45959953422924316,y:.5533504092295005},{x:.4572787448447235,y:.5553702403350376},{x:.45508230823461715,y:.5575246421731296},{x:.45395838697349994,y:.5582600166131206},{x:.4529452394037514,y:.5591417799431011},{x:.45027499383570063,y:.5606700370119551},{x:.44770045819082444,y:.5623545390972755},{x:.3757024581908245,y:.5999485390972755},{x:.37385313535723513,y:.6006937047902838},{x:.3720947544564291,y:.6016335789630078},{x:.36977177563531344,y:.6023382468844833},{x:.3675201821794923,y:.6032455034042244},{x:.36556101895058973,y:.6036155659602718},{x:.3636530644907258,y:.6041943376181453},{x:.36123724716457173,y:.6044322748568528},{x:.35885192047906295,y:.6048828346046191},{x:.35685820639902277,y:.60486357272721},{x:.354874,y:.605059},{x:.247175,y:.605059},{x:.24519066624232813,y:.6048635601834779},{x:.24319682408363533,y:.6048828119349353},{x:.24081162559758007,y:.6044322623250186},{x:.23839593550927424,y:.6041943376181453},{x:.23648785858508298,y:.6036155288111242},{x:.234528571713998,y:.6032454313367869},{x:.23227710201651716,y:.602338209770572},{x:.22995424554357097,y:.6016335789630078},{x:.2281957517789948,y:.6006936444633418},{x:.22634631449119302,y:.5999484204015954},{x:.15434931449119302,y:.5623544204015953},{x:.15177463525955168,y:.5606698034147719},{x:.14910425200363037,y:.5591414183832311},{x:.14809125527340347,y:.55825976164439},{x:.1469674919716301,y:.5575244814106152},{x:.14477093694990967,y:.5553699388664325},{x:.14245003748743465,y:.5533499553954043},{x:.07045803748743465,y:.4770619553954044},{x:.06965771196430402,y:.47602703312304784},{x:.06872232232106745,y:.47511235762423976},{x:.06696488716695402,y:.4725448695811053},{x:.06506154021654398,y:.4700836008922148},{x:.0644784960433022,y:.46891242859710086},{x:.06373952398737684,y:.46783284286481475},{x:.06251674952606694,y:.46497182979435886},{x:.06113014455468816,y:.46218652912371366},{x:.06078678779193787,y:.46092411430034236},{x:.06027263160501272,y:.4597211062088315},{x:.023981631605012717,y:.3447361062088315},{x:.0234743267656997,y:.3423269972319261},{x:.02275966238185463,y:.33997106449072584},{x:.0225676139616898,y:.3380211641581212},{x:.022163875903973694,y:.3361038771468651},{x:.022136312630974576,y:.33364208825896713},{x:.021894999999999998,y:.33119200000000004},{x:.021894999999999998,y:.25490100000000004}],[{x:.111895,y:.2618978965790472},{x:.111895,y:.324259211613835},{x:.14299436878278687,y:.42279496206129447},{x:.20271328316555492,y:.48607750096051383},{x:.25821631520114247,y:.5150589999999999},{x:.3438328207386419,y:.5150589999999999},{x:.3993370917152178,y:.4860772565752743},{x:.4590577300605173,y:.42279464888454726},{x:.490157,y:.324259211613835},{x:.490157,y:.2618978965790472},{x:.4591028039244665,y:.16445082019422033},{x:.39914727445977055,y:.10091681321598435},{x:.3435475642149213,y:.07103500000000003},{x:.2585015743575747,y:.07103500000000003},{x:.20290309936793577,y:.10091656436690524},{x:.14294929572583875,y:.164450507494742},{x:.111895,y:.2618978965790472}]],p:[[{x:.031904,y:-.15424400000000005},{x:.032768662381854635,y:-.16302306449072582},{x:.0353294210369921,y:-.17146475445642909},{x:.03948786744638546,y:-.17924466048588214},{x:.04508419484660536,y:-.18606380515339468},{x:.051903339514117915,y:-.19166013255361458},{x:.05968324554357096,y:-.19581857896300794},{x:.06812493550927423,y:-.1983793376181454},{x:.076904,y:-.19924400000000003},{x:.08568306449072577,y:-.1983793376181454},{x:.09412475445642904,y:-.19581857896300794},{x:.1019046604858821,y:-.19166013255361458},{x:.10872380515339464,y:-.18606380515339468},{x:.11432013255361453,y:-.17924466048588214},{x:.1184785789630079,y:-.17146475445642909},{x:.12103933761814537,y:-.16302306449072582},{x:.121904,y:-.15424400000000005},{x:.121904,y:.08461372659928788},{x:.12362832174470662,y:.08333438131496537},{x:.12536021772829115,y:.08178035235824195},{x:.1271620685101291,y:.08071254912256186},{x:.12884414120453105,y:.07946455014784792},{x:.13094744853162613,y:.07846927732892851},{x:.13294924262910485,y:.07728298474798974},{x:.20690724262910487,y:.04275398474798971},{x:.20784573679964677,y:.04242345923251374},{x:.20872324554357097,y:.041954421036992075},{x:.21199903754957586,y:.040960720395783044},{x:.21522783943974558,y:.03982357810698025},{x:.21621278303720604,y:.03968249467654502},{x:.21716493550927424,y:.0393936623818546},{x:.22057164546850772,y:.03905813073713887},{x:.2239602522910248,y:.038572746319036566},{x:.22495379448531613,y:.03862652673075318},{x:.225944,y:.038528999999999966},{x:.338005,y:.038528999999999966},{x:.33886621477794643,y:.03861382225207184},{x:.3397300481447032,y:.038562076501738984},{x:.34324908380057223,y:.0390454971728409},{x:.3467840644907258,y:.0393936623818546},{x:.3476121832677305,y:.039644869466491955},{x:.3484695134136621,y:.03976264352593092},{x:.35182662109175783,y:.04092330520367998},{x:.35522575445642907,y:.04195442103699206},{x:.3559889530923063,y:.042362359206810904},{x:.35680683330070073,y:.04264512708496585},{x:.4318888333007007,y:.07717412708496588},{x:.43400924312431544,y:.07841428389434572},{x:.43622962614931016,y:.07946501028796468},{x:.4378075563324746,y:.08063579029221077},{x:.43950360927818305,y:.0816277549521855},{x:.44134133343031445,y:.08325775393151234},{x:.4433140658676044,y:.08472146615145025},{x:.5183930658676044,y:.1527974661514503},{x:.519792625068414,y:.15434228537837358},{x:.5213447099268285,y:.1557337827706549},{x:.522746916505161,y:.1576032022519019},{x:.5243158963961404,y:.15933502631539204},{x:.52538718417891,y:.1611232027292085},{x:.5266379784876352,y:.1627907596241023},{x:.5276485364111687,y:.16489781566710873},{x:.5288495066792682,y:.16690245600899573},{x:.5295513540552914,y:.16886527099294393},{x:.530452790490496,y:.17074480411415546},{x:.5674347904904959,y:.2723648041141554},{x:.5682868803844835,y:.2756900562357905},{x:.5692833376181453,y:.27897493550927416},{x:.5693799285821196,y:.2799556400244087},{x:.5696245448495124,y:.2809102467717411},{x:.5698115375679212,y:.2843378395980749},{x:.570148,y:.28775399999999995},{x:.570148,y:.355831},{x:.5698183264321395,y:.3591782319067787},{x:.5696454905753794,y:.362537215959393},{x:.5693867528695432,y:.3635600718226051},{x:.5692833376181453,y:.3646100644907258},{x:.5683069860848939,y:.3678286641524751},{x:.567482165940186,y:.37108938766543825},{x:.530500165940186,y:.47369538766543823},{x:.5295747233109523,y:.4756403735939819},{x:.5288495066792682,y:.4776685439910043},{x:.5276841925618525,y:.47961366765708685},{x:.5267099630491849,y:.4816611880905031},{x:.5254228546094585,y:.48338825675926556},{x:.5243158963961404,y:.48523597368460797},{x:.5227934986603558,y:.48691638083844907},{x:.5214385372739072,y:.48873449599152474},{x:.5198392258792078,y:.49017727712011666},{x:.5183930658676044,y:.4917735338485497},{x:.4433140658676044,y:.5598495338485497},{x:.44114571117720175,y:.5614583923016819},{x:.43910641435493325,y:.5632279843609703},{x:.43761161896162687,y:.5640805897495177},{x:.43622962614931016,y:.5651059897120353},{x:.43378906307257026,y:.5662609093863238},{x:.43144372048223223,y:.5675986521566495},{x:.35636172048223225,y:.6011446521566495},{x:.355773047491519,y:.6013410447411239},{x:.35522575445642907,y:.6016335789630078},{x:.3515938477815883,y:.6027353058079922},{x:.3479935881359665,y:.6039364213810477},{x:.34737791203915763,y:.6040141959337602},{x:.3467840644907258,y:.6041943376181453},{x:.34300700763927916,y:.6045663452480041},{x:.3392415999493003,y:.6050420059085138},{x:.33862258083352115,y:.60499817359702},{x:.338005,y:.605059},{x:.225944,y:.605059},{x:.2251997336627212,y:.6049856961639699},{x:.22445344765540867,y:.6050343071552383},{x:.22081614914993766,y:.6045539507735711},{x:.21716493550927424,y:.6041943376181453},{x:.21644927090994795,y:.6039772431353645},{x:.21570784104506457,y:.6038793269025836},{x:.2122341450916469,y:.6026985986973952},{x:.20872324554357097,y:.6016335789630078},{x:.20806368527139987,y:.6012810366527016},{x:.20735560428285457,y:.6010403560617851},{x:.13339760428285458,y:.5674943560617851},{x:.13116986982932302,y:.566206971138138},{x:.12884414120453105,y:.5651064498521521},{x:.1273598902040749,y:.5640052229355318},{x:.12575970914356202,y:.5630804946901414},{x:.12382593632220404,y:.5613832370749092},{x:.121904,y:.5599572734007121},{x:.121904,y:.560059},{x:.12103933761814537,y:.5688380644907257},{x:.1184785789630079,y:.577279754456429},{x:.11432013255361453,y:.5850596604858821},{x:.10872380515339464,y:.5918788051533946},{x:.10190466048588208,y:.5974751325536145},{x:.09412475445642904,y:.6016335789630078},{x:.08568306449072577,y:.6041943376181453},{x:.076904,y:.605059},{x:.0681249355092742,y:.6041943376181453},{x:.059683245543570934,y:.6016335789630078},{x:.051903339514117915,y:.5974751325536145},{x:.04508419484660536,y:.5918788051533946},{x:.03948786744638546,y:.5850596604858821},{x:.0353294210369921,y:.577279754456429},{x:.032768662381854635,y:.5688380644907257},{x:.031904,y:.560059},{x:.031904,y:-.15424400000000005}],[{x:.121904,y:.20607608160839302},{x:.121904,y:.438494918391607},{x:.17699192809119763,y:.48844251958412144},{x:.23567259519301437,y:.5150589999999999},{x:.3284092961747297,y:.5150589999999999},{x:.38817711429028284,y:.4883552464171925},{x:.4496333594179428,y:.43263133769024387},{x:.48014799999999996,y:.3479689286382035},{x:.48014799999999996,y:.29568777567179994},{x:.44968806913177495,y:.21198926897045803},{x:.3879916447872207,y:.1560475837631447},{x:.32815352882369925,y:.12852899999999995},{x:.2359312215606538,y:.12852899999999995},{x:.17717907548697515,y:.15595879598931894},{x:.121904,y:.20607608160839302}]],q:[[{x:.031905,y:.285813},{x:.03224141038262204,y:.2823973680650777},{x:.0324282929389951,y:.2789703010434802},{x:.03267301908894614,y:.2780151713289937},{x:.032769662381854636,y:.2770339355092742},{x:.03376596546737772,y:.2737495643941025},{x:.03461784473664685,y:.27042480648246636},{x:.07159784473664685,y:.1688028064824664},{x:.0724995244823713,y:.166922651750872},{x:.0732016076706368,y:.1649592141085361},{x:.07440224792307432,y:.1629551516523985},{x:.07541246819615938,y:.16084867156853302},{x:.07666362241043057,y:.15918055247485355},{x:.0777352629490018,y:.15739181137154173},{x:.07930380642556048,y:.15566048970702676},{x:.08070556947724908,y:.15379156924569237},{x:.08225811700526783,y:.15239959067120604},{x:.08365813234923056,y:.15085428642438087},{x:.15873913234923054,y:.08277728642438094},{x:.16071062555900373,y:.0813145118522212},{x:.16254708404197357,y:.07968542770293169},{x:.16424441690754124,y:.07869257021816739},{x:.16582360332185575,y:.07752087268448676},{x:.16804258800473576,y:.07647082416071167},{x:.17016157800418052,y:.07523131768336211},{x:.24523757800418056,y:.0406993176833621},{x:.24605678866737324,y:.04041603175027397},{x:.24682124554357093,y:.04000742103699214},{x:.2502190216384501,y:.03897671692697023},{x:.2535747153580455,y:.03781630621794852},{x:.25443345146196317,y:.037698283616711674},{x:.2552629355092742,y:.03744666238185468},{x:.25879650468596477,y:.037098636194782805},{x:.2623141045905799,y:.03661518582049534},{x:.2631793653883337,y:.03666696209348752},{x:.264042,y:.036582000000000045},{x:.376106,y:.036582000000000045},{x:.3770966034546813,y:.036679565924422064},{x:.37809054588497415,y:.03662578154659327},{x:.38147875036256007,y:.037111169723096304},{x:.3848850644907258,y:.03744666238185468},{x:.3858375996101805,y:.03773561075136079},{x:.38682293652697,y:.03787676837406198},{x:.39005134306992567,y:.03901383585544661},{x:.39332675445642906,y:.04000742103699214},{x:.39420461585020444,y:.04047664772778637},{x:.3951434813083616,y:.04080732274273922},{x:.4691044813083616,y:.07533932274273922},{x:.47110618065167786,y:.07652560719175487},{x:.47320939667814427,y:.07752087268448679},{x:.4748915208069018,y:.0787689461703934},{x:.4766934263594154,y:.07983682509171056},{x:.47842523099597173,y:.08139082758714347},{x:.48014799999999996,y:.08266905805748193},{x:.48014799999999996,y:-.15619500000000008},{x:.4810126623818546,y:-.16497406449072585},{x:.483573421036992,y:-.17341575445642912},{x:.4877318674463854,y:-.18119566048588218},{x:.4933281948466053,y:-.18801480515339472},{x:.5001473395141178,y:-.19361113255361462},{x:.5079272455435709,y:-.19776957896300798},{x:.5163689355092742,y:-.20033033761814545},{x:.525148,y:-.20119500000000007},{x:.5339270644907257,y:-.20033033761814545},{x:.542368754456429,y:-.19776957896300798},{x:.5501486604858821,y:-.19361113255361462},{x:.5569678051533946,y:-.18801480515339472},{x:.5625641325536145,y:-.18119566048588218},{x:.5667225789630078,y:-.17341575445642912},{x:.5692833376181453,y:-.16497406449072585},{x:.570148,y:-.15619500000000008},{x:.570148,y:.5581050000000001},{x:.5692833376181453,y:.5668840644907258},{x:.5667225789630078,y:.5753257544564291},{x:.5625641325536145,y:.5831056604858822},{x:.5569678051533946,y:.5899248051533947},{x:.5501486604858821,y:.5955211325536146},{x:.542368754456429,y:.5996795789630079},{x:.5339270644907257,y:.6022403376181454},{x:.525148,y:.6031050000000001},{x:.5163689355092742,y:.6022403376181454},{x:.5079272455435709,y:.5996795789630079},{x:.5001473395141178,y:.5955211325536146},{x:.4933281948466053,y:.5899248051533947},{x:.4877318674463854,y:.5831056604858822},{x:.483573421036992,y:.5753257544564291},{x:.4810126623818546,y:.5668840644907258},{x:.48014799999999996,y:.5581050000000001},{x:.48014799999999996,y:.558005596763998},{x:.4782247267606458,y:.559432223348863},{x:.47629232280480055,y:.5611281889595863},{x:.4746904859851039,y:.5620538174856352},{x:.4732046002880372,y:.5631560030691136},{x:.4708804506539088,y:.5642554633364756},{x:.4686543108210992,y:.5655418481335316},{x:.3946933108210992,y:.5990868481335316},{x:.3939857884552202,y:.5993273179516839},{x:.39332675445642906,y:.5996795789630079},{x:.3898152875083263,y:.6007447708163117},{x:.38634099890642704,y:.6019255978665906},{x:.3856001580501581,y:.6020234163584227},{x:.3848850644907258,y:.6022403376181454},{x:.38123326077373504,y:.6026000088910167},{x:.3775953617236344,y:.6030803465985108},{x:.3768496724756141,y:.6030317546542387},{x:.376106,y:.6031050000000001},{x:.264042,y:.6031050000000001},{x:.26342400033164626,y:.6030441323453897},{x:.26280456058717394,y:.6030879828235033},{x:.25903957642572706,y:.602612304281983},{x:.2552629355092742,y:.6022403376181454},{x:.254668685221597,y:.6020600737641458},{x:.25405259303422617,y:.6019822349683996},{x:.25045275226756825,y:.6007811844842303},{x:.24682124554357093,y:.5996795789630079},{x:.24627358134186672,y:.5993868463484354},{x:.24568451278884912,y:.5991903095800973},{x:.17060851278884911,y:.5656453095800973},{x:.16826609518471405,y:.5643091772352096},{x:.16582839971196278,y:.5631560030691136},{x:.1644435861855132,y:.5621287897998347},{x:.16294590048199914,y:.5612744987855388},{x:.1609091582647261,y:.559507056844315},{x:.15874327554635076,y:.5579004698017108},{x:.08366227554635075,y:.4898404698017108},{x:.0822135909199537,y:.48824184486316324},{x:.08061175169940471,y:.4867967151276658},{x:.07925889408089541,y:.48498133393711457},{x:.07773859373239328,y:.48330368097737925},{x:.0766296214289207,y:.4814531488185024},{x:.0753404919252871,y:.4797232835162987},{x:.07436779238761855,y:.4776788549378484},{x:.07320399804016177,y:.47573684172476444},{x:.07247735524331753,y:.47370551725863386},{x:.07155047598047157,y:.4717573941431678},{x:.034570475980471575,y:.3691493941431678},{x:.03374586128764337,y:.36588916100716024},{x:.032769662381854636,y:.3626710644907258},{x:.032666195333495754,y:.36162054591923504},{x:.032407352052251925,y:.36059717166956007},{x:.03223462203187315,y:.35723870865311785},{x:.031905,y:.353892},{x:.031905,y:.285813}],[{x:.121905,y:.2937462257558374},{x:.121905,y:.3460304727958324},{x:.1524170009298456,y:.4306917867874386},{x:.21387346155335435,y:.48640130996954867},{x:.2736381428091649,y:.513105},{x:.36637802828147564,y:.513105},{x:.4250638403772601,y:.4864880590885319},{x:.48014799999999996,y:.4365549481293854},{x:.48014799999999996,y:.20413270643748072},{x:.4248733312055972,y:.15401438585682045},{x:.36611835928516706,y:.12658200000000003},{x:.27389496414813935,y:.12658200000000003},{x:.2140623112166411,y:.15410266134357853},{x:.15236330162501277,y:.21004602219345103},{x:.121905,y:.2937462257558374}]],r:[[{x:.062422000000000005,y:.03920400000000002},{x:.06328666238185464,y:.030424935509274227},{x:.0658474210369921,y:.02198324554357097},{x:.07000586744638546,y:.01420333951411792},{x:.07560219484660537,y:.00738419484660538},{x:.08242133951411793,y:.0017878674463854757},{x:.09020124554357097,y:-.002370578963007887},{x:.09864293550927423,y:-.004931337618145348},{x:.107422,y:-.005795999999999982},{x:.11620106449072577,y:-.004931337618145348},{x:.12464275445642904,y:-.002370578963007887},{x:.1324226604858821,y:.0017878674463854827},{x:.13924180515339463,y:.00738419484660538},{x:.14483813255361455,y:.01420333951411792},{x:.14899657896300791,y:.02198324554357098},{x:.15155733761814538,y:.030424935509274248},{x:.152422,y:.03920400000000002},{x:.152422,y:.3275398012121413},{x:.1925108808296549,y:.4204278633799401},{x:.27478075869941443,y:.4836647262821032},{x:.3576648607132649,y:.5150589999999999},{x:.49463,y:.5150589999999999},{x:.5034090644907258,y:.5159236623818546},{x:.511850754456429,y:.5184844210369921},{x:.5196306604858821,y:.5226428674463854},{x:.5264498051533947,y:.5282391948466053},{x:.5320461325536145,y:.5350583395141179},{x:.5362045789630079,y:.542838245543571},{x:.5387653376181454,y:.5512799355092742},{x:.53963,y:.560059},{x:.5387653376181454,y:.5688380644907257},{x:.5362045789630079,y:.577279754456429},{x:.5320461325536145,y:.5850596604858821},{x:.5264498051533947,y:.5918788051533946},{x:.5196306604858821,y:.5974751325536145},{x:.511850754456429,y:.6016335789630078},{x:.5034090644907258,y:.6041943376181453},{x:.49463,y:.605059},{x:.349428,y:.605059},{x:.34572095329292224,y:.6046938877675093},{x:.3420044651532413,y:.6044424555930356},{x:.34133700376168824,y:.6042621064259311},{x:.3406489355092742,y:.6041943376181453},{x:.33708434852821606,y:.6031130319790114},{x:.33348832364990477,y:.6021413801353276},{x:.23668632364990477,y:.5654753801353276},{x:.2347311434313091,y:.5645060813254815},{x:.23268939209293205,y:.5637356779621759},{x:.23078888495220712,y:.562551669954317},{x:.22878273496962892,y:.5615571024090896},{x:.2270542238076375,y:.5602249916656349},{x:.22520200238894322,y:.5590710654608507},{x:.152422,y:.5031286093364514},{x:.152422,y:.560059},{x:.15155733761814538,y:.5688380644907257},{x:.14899657896300791,y:.577279754456429},{x:.14483813255361455,y:.5850596604858821},{x:.13924180515339463,y:.5918788051533946},{x:.1324226604858821,y:.5974751325536145},{x:.12464275445642904,y:.6016335789630078},{x:.11620106449072577,y:.6041943376181453},{x:.107422,y:.605059},{x:.09864293550927423,y:.6041943376181453},{x:.09020124554357094,y:.6016335789630078},{x:.08242133951411793,y:.5974751325536145},{x:.07560219484660537,y:.5918788051533946},{x:.07000586744638546,y:.5850596604858821},{x:.0658474210369921,y:.577279754456429},{x:.06328666238185464,y:.5688380644907257},{x:.062422000000000005,y:.560059},{x:.062422000000000005,y:.03920400000000002}]],s:[[{x:.056563,y:.369888},{x:.056809270227573656,y:.3673875764180495},{x:.05684306423764694,y:.36487528163458033},{x:.05724057756471223,y:.36300843953465567},{x:.057427662381854636,y:.3611089355092742},{x:.05815700903783985,y:.3587046018033244},{x:.05868027810379197,y:.35624717294397146},{x:.05943435615016931,y:.3544937526945111},{x:.0599884210369921,y:.352667245543571},{x:.06117281573842168,y:.3504513989095756},{x:.06216545092350078,y:.34814327358726177},{x:.06324711489275962,y:.3465706581451233},{x:.06414686744638545,y:.3448873395141179},{x:.06574079456909979,y:.3429451336955602},{x:.0671646494598194,y:.3408750118720105},{x:.06853233161222538,y:.3395436359667022},{x:.06974319484660536,y:.33806819484660533},{x:.07168540066516299,y:.33647426772389105},{x:.07348575731657993,y:.3347217030198468},{x:.07508689839402109,y:.33368273068076537},{x:.07656233951411792,y:.33247186744638546},{x:.07877818614811302,y:.331287472744956},{x:.08088585786376518,y:.3299198152391437},{x:.15568385786376518,y:.29122381523914376},{x:.1574569269125657,y:.29051717359061785},{x:.15914024554357095,y:.2896174210369921},{x:.16154457924952065,y:.28888807438100694},{x:.16387856938737105,y:.2879578823843842},{x:.16575542835833412,y:.2876107272686775},{x:.16758193550927422,y:.2870566623818547},{x:.17008235909122482,y:.286810392154281},{x:.17255297371919248,y:.2863534124236203},{x:.17446149597461844,y:.28637908481714247},{x:.176361,y:.28619200000000006},{x:.288347309340128,y:.28619200000000006},{x:.3974525128623667,y:.21942256309828728},{x:.45549,y:.1602321160680505},{x:.45549,y:.13007078589845048},{x:.407404042616179,y:.10590438131127383},{x:.31753214348357883,y:.07103500000000003},{x:.21224543978224936,y:.07103500000000003},{x:.16354378174687056,y:.09622932957230687},{x:.14433666195924297,y:.15500005013212306},{x:.1407876006468136,y:.16307617408904287},{x:.13573115992893667,y:.17030473007440486},{x:.12936165598671553,y:.1764079287355125},{x:.12192386528459082,y:.18115122757053267},{x:.11370361794808405,y:.18435234426530817},{x:.10501681347236942,y:.18588826170046568},{x:.09619728088183255,y:.18569995543032455},{x:.08758394986787689,y:.1837946619592429},{x:.07950782591095708,y:.18024560064681355},{x:.07227926992559508,y:.1751891599289366},{x:.06617607126448745,y:.1688196559867155},{x:.06143277242946728,y:.16138186528459075},{x:.05823165573469179,y:.153161617948084},{x:.05669573829953427,y:.14447481347236937},{x:.0568840445696754,y:.1356552808818325},{x:.05878933804075704,y:.12704194986787684},{x:.08372233804075704,y:.050750949867876836},{x:.08542587043333498,y:.04687444913825993},{x:.08709879890390285,y:.042984643121031924},{x:.08719974017890864,y:.04283789110571456},{x:.0872713993531864,y:.04267482591095703},{x:.0896984666241539,y:.03920515373890898},{x:.0920981137517354,y:.03571646140762123},{x:.09222574536637099,y:.03559222185697407},{x:.09232784007106334,y:.035446269925595034},{x:.09538517138631239,y:.032516763866873036},{x:.0984193200775319,y:.02956325371133576},{x:.09856873722042347,y:.029466301081615798},{x:.09869734401328446,y:.029343071264487396},{x:.10226744784494098,y:.027066310594042624},{x:.10581949746716537,y:.024761484353185106},{x:.18061849746716538,y:-.013933515646814817},{x:.1823912439162618,y:-.014639995851387814},{x:.18407424554357094,y:-.01553957896300786},{x:.18647892276401756,y:-.016269029822976466},{x:.18881326125361947,y:-.017199317363260178},{x:.19068977232738848,y:-.017546377073194466},{x:.1925159355092742,y:-.018100337618145335},{x:.19501671633437545,y:-.018346643031098245},{x:.19748769126025723,y:-.018803648509519946},{x:.19939585369049342,y:-.018777950414796084},{x:.201295,y:-.018964999999999968},{x:.325956,y:-.018964999999999968},{x:.3298421413721484,y:-.018582248482612737},{x:.33373593654739714,y:-.01828737118339306},{x:.334227355251249,y:-.018150342613638803},{x:.3347350644907258,y:-.018100337618145335},{x:.33847186362931597,y:-.016966791992147238},{x:.34223331291484477,y:-.015917938922943478},{x:.44196531291484475,y:.022777061077056446},{x:.44388622686678575,y:.02374867869889352},{x:.4458951331158935,y:.02452214291663178},{x:.5206971331158935,y:.06211514291663188},{x:.5230429253028388,y:.06359852573319036},{x:.5254906604858821,y:.06490686744638552},{x:.526762463529903,y:.06595060923072474},{x:.5281530225051898,y:.06682994172267823},{x:.5301643473216751,y:.06874246310749585},{x:.5323098051533947,y:.07050319484660542},{x:.5333535469377338,y:.07177499789062616},{x:.5345458374532134,y:.07290871885358566},{x:.536145400814505,y:.07517688168239829},{x:.5379061325536145,y:.07732233951411796},{x:.538681702666837,y:.0787733291400739},{x:.5396299056666436,y:.08011787031323085},{x:.5407562372498129,y:.08265451036052812},{x:.5420645789630079,y:.08510224554357101},{x:.5425421726806072,y:.08667666103386074},{x:.5432098492552168,y:.08818035245395842},{x:.5438196647691762,y:.09088798806528645},{x:.5446253376181454,y:.09354393550927428},{x:.5447866012813922,y:.09518127295954937},{x:.5451480929944793,y:.09678632860859225},{x:.545217957571016,y:.09956090686586556},{x:.54549,y:.10232300000000005},{x:.54549,y:.17861300000000002},{x:.5450792542455133,y:.1827833716312913},{x:.5447095428008049,y:.18695758114513777},{x:.5446471218945653,y:.18717088502046353},{x:.5446253376181454,y:.1873920644907258},{x:.5434088850836819,y:.19140217107899518},{x:.5422319296624953,y:.19542404720269643},{x:.5421290946347417,y:.1956210747891699},{x:.5420645789630079,y:.19583375445642906},{x:.5400891672372728,y:.199529489854385},{x:.5381501975764,y:.20324447414399938},{x:.5380109003195782,y:.20341765378196683},{x:.5379061325536145,y:.20361366048588211},{x:.5352476756014034,y:.20685299965477524},{x:.5326212052175259,y:.21011832734743824},{x:.45781920521752584,y:.28640632734743826},{x:.45695946559173245,y:.28712616331644525},{x:.45621413415776596,y:.2879638966272176},{x:.45358375241990234,y:.28995255364350675},{x:.45105542866152953,y:.29206944848930627},{x:.4500717756605794,y:.29260772613156716},{x:.4491773318997613,y:.2932839556822147},{x:.3245133318997613,y:.3695749556822147},{x:.3213472249094816,y:.3711082739568931},{x:.3182447544564291,y:.37276657896300797},{x:.31738368821196916,y:.37302778055263114},{x:.3165738477898179,y:.3734199792757539},{x:.31316944110160955,y:.3743061584374605},{x:.3098030644907258,y:.3753273376181454},{x:.3089075854904768,y:.3754155346015568},{x:.3080367917497669,y:.3756422053074494},{x:.30452491480344407,y:.37584718998797495},{x:.301024,y:.376192},{x:.18731182116617404,y:.376192},{x:.146563,y:.397272996602132},{x:.146563,y:.42779681790574337},{x:.20153437253410483,y:.48386323770148376},{x:.2842918489876165,y:.5150589999999999},{x:.39008456648169626,y:.5150589999999999},{x:.4553477907191711,y:.4822576837794137},{x:.4635801440629335,y:.47908783003036465},{x:.47227272283422006,y:.4775849365970516},{x:.4810914761057044,y:.47780675883128426},{x:.48969750413477736,y:.47974477222900047},{x:.4977600820905977,y:.48332450002217653},{x:.5049693696238691,y:.488408375279255},{x:.5110483178577028,y:.4948010275251766},{x:.5157633162205862,y:.5022567907191711},{x:.5189331699696352,y:.5104891440629334},{x:.5204360634029483,y:.51918172283422},{x:.5202142411687157,y:.5280004761057044},{x:.5182762277709995,y:.5366065041347774},{x:.5146964999778234,y:.5446690820905977},{x:.509612624720745,y:.551878369623869},{x:.5032199724748234,y:.5579573178577029},{x:.49576420928082887,y:.5626723162205862},{x:.42096520928082887,y:.6002663162205862},{x:.41942927464851043,y:.6008577252562829},{x:.41797775445642904,y:.6016335789630078},{x:.4153223812886681,y:.6024390776071881},{x:.41273285593706643,y:.6034361699696352},{x:.41111105567880996,y:.6037165692645292},{x:.40953606449072577,y:.6041943376181453},{x:.40677456858393113,y:.6044663212253706},{x:.4040402771657799,y:.6049390634029483},{x:.4023949361559939,y:.6048976773693867},{x:.400757,y:.605059},{x:.276092,y:.605059},{x:.2724204350331364,y:.6046973824138966},{x:.26873912724910987,y:.6044542166602351},{x:.2680367190736708,y:.6042656240771296},{x:.2673129355092742,y:.6041943376181453},{x:.2637824667250502,y:.6031233816208718},{x:.26021933352302795,y:.6021667007079561},{x:.1604883335230279,y:.5645727007079561},{x:.15963695838633216,y:.5641523105976027},{x:.15873109713512196,y:.563867735718488},{x:.15568848233041307,y:.5622026409240001},{x:.1525785174681621,y:.5606670094317409},{x:.15182551530799093,y:.5600886019499048},{x:.15099257773152036,y:.559632770334096},{x:.14833326979676884,y:.5574060851671644},{x:.1455826488796249,y:.5552932363569977},{x:.14495695714670492,y:.554579039378831},{x:.14422895256892138,y:.5539694683796904},{x:.06943095256892137,y:.47768146837969044},{x:.06680494464711424,y:.4744165369262552},{x:.06414686744638545,y:.4711776604858821},{x:.0640418150384659,y:.470981121254323},{x:.0639021439692389,y:.47080746737336276},{x:.06196355058191934,y:.4670929619312254},{x:.0599884210369921,y:.46339775445642906},{x:.05992373008360734,y:.46318449696300446},{x:.05982062094636722,y:.462986931318802},{x:.05864394115023422,y:.4589655982489849},{x:.057427662381854636,y:.45495606449072584},{x:.05740581892006417,y:.454734284101312},{x:.05734323414113077,y:.4545203990307778},{x:.05697368708086039,y:.4503467759079653},{x:.056563,y:.44617700000000005},{x:.056563,y:.369888}]],t:[[{x:.036055000000000004,y:.484201},{x:.03691966238185464,y:.4754219355092742},{x:.0394804210369921,y:.466980245543571},{x:.04363886744638546,y:.4592003395141179},{x:.049235194846605365,y:.45238119484660533},{x:.05605433951411792,y:.44678486744638546},{x:.06383424554357096,y:.44262642103699207},{x:.07227593550927423,y:.4400656623818546},{x:.081055,y:.439201},{x:.201032,y:.439201},{x:.201032,y:.17345100000000002},{x:.2013458215844704,y:.17026471598156256},{x:.20148726326025637,y:.1670661406603643},{x:.20177732050748418,y:.165883633894134},{x:.20189666238185464,y:.16467193550927425},{x:.20282606714776777,y:.16160809859877695},{x:.20358880215081968,y:.15849857690755997},{x:.20410398165518515,y:.15739537903902878},{x:.2044574210369921,y:.15623024554357098},{x:.20596669248041014,y:.15340659727526443},{x:.20732140933230742,y:.15050562638878262},{x:.2623124093323074,y:.05773162638878261},{x:.2645408071528226,y:.05469603003381387},{x:.2666808493837164,y:.051597510818645845},{x:.2671477670132535,y:.051144744093296994},{x:.26753264280400524,y:.05062045370997057},{x:.2703104380556505,y:.04807792433615628},{x:.27301385108661325,y:.04545644382682572},{x:.2735601274310704,y:.04510346799784869},{x:.2740398919211364,y:.04466433724917905},{x:.27726033549019774,y:.04271258283448707},{x:.28042322867453984,y:.040668883056825214},{x:.28102787064035484,y:.04042926278737637},{x:.28158408674943697,y:.04009216722176761},{x:.28512341879560005,y:.038806192593798694},{x:.288624243922019,y:.03741881178414046},{x:.39861224392201905,y:.005893811784140432},{x:.4004470188387682,y:.005558110934368086},{x:.4022319355092743,y:.0050166623818546086},{x:.4047755505163489,y:.004766138170207483},{x:.4072897364122725,y:.0043061284251197166},{x:.4091547486303562,y:.0043348248023798485},{x:.411011,y:.004151999999999975},{x:.520997,y:.004151999999999975},{x:.5297760644907258,y:.0050166623818546086},{x:.538217754456429,y:.00757742103699207},{x:.5459976604858822,y:.011735867446385433},{x:.5528168051533947,y:.017332194846605337},{x:.5584131325536146,y:.02415133951411788},{x:.5625715789630079,y:.031931245543570935},{x:.5651323376181454,y:.040372935509274205},{x:.5659970000000001,y:.049151999999999973},{x:.5651323376181454,y:.05793106449072574},{x:.5625715789630079,y:.06637275445642901},{x:.5584131325536146,y:.07415266048588207},{x:.5528168051533947,y:.08097180515339461},{x:.5459976604858822,y:.08656813255361451},{x:.538217754456429,y:.09072657896300787},{x:.5297760644907258,y:.09328733761814534},{x:.520997,y:.09415199999999997},{x:.41733272532416527,y:.09415199999999997},{x:.33061421916568134,y:.11900744701827656},{x:.291032,y:.1857856616511605},{x:.291032,y:.439201},{x:.466004,y:.439201},{x:.47478306449072577,y:.4400656623818546},{x:.48322475445642904,y:.44262642103699207},{x:.4910046604858821,y:.44678486744638546},{x:.49782380515339464,y:.45238119484660533},{x:.5034201325536145,y:.4592003395141179},{x:.5075785789630078,y:.466980245543571},{x:.5101393376181453,y:.4754219355092742},{x:.511004,y:.484201},{x:.5101393376181453,y:.4929800644907258},{x:.5075785789630078,y:.501421754456429},{x:.5034201325536145,y:.5092016604858821},{x:.49782380515339464,y:.5160208051533947},{x:.4910046604858821,y:.5216171325536145},{x:.48322475445642904,y:.5257755789630079},{x:.47478306449072577,y:.5283363376181454},{x:.466004,y:.529201},{x:.291032,y:.529201},{x:.291032,y:.702148},{x:.2901673376181454,y:.7109270644907257},{x:.2876065789630079,y:.719368754456429},{x:.28344813255361456,y:.7271486604858821},{x:.27785180515339464,y:.7339678051533947},{x:.2710326604858821,y:.7395641325536145},{x:.26325275445642904,y:.7437225789630079},{x:.25481106449072577,y:.7462833376181454},{x:.246032,y:.747148},{x:.23725293550927423,y:.7462833376181454},{x:.22881124554357096,y:.7437225789630079},{x:.2210313395141179,y:.7395641325536145},{x:.21421219484660536,y:.7339678051533947},{x:.20861586744638547,y:.7271486604858821},{x:.2044574210369921,y:.719368754456429},{x:.20189666238185464,y:.7109270644907257},{x:.201032,y:.702148},{x:.201032,y:.529201},{x:.081055,y:.529201},{x:.07227593550927423,y:.5283363376181454},{x:.06383424554357094,y:.5257755789630079},{x:.05605433951411792,y:.5216171325536145},{x:.049235194846605365,y:.5160208051533947},{x:.04363886744638546,y:.5092016604858821},{x:.0394804210369921,y:.501421754456429},{x:.03691966238185464,y:.4929800644907258},{x:.036055000000000004,y:.484201}]],u:[[{x:.047041,y:.17386599999999997},{x:.04733731084809023,y:.17085750547164297},{x:.04744678100255899,y:.1678364368310572},{x:.0477687404511641,y:.16647712720137547},{x:.04790566238185463,y:.1650869355092742},{x:.048783207866406234,y:.16219405573845885},{x:.04947995583647738,y:.15925239265237093},{x:.08761895583647737,y:.04817539265237096},{x:.08938287590080696,y:.04431825367483454},{x:.09111755940033861,y:.04044787795123246},{x:.0912166047918106,y:.04030846472648272},{x:.0912877277290914,y:.04015294120864865},{x:.09377024504918263,y:.03671403980837168},{x:.09622666993792225,y:.03325645223155292},{x:.09635101037087945,y:.03313904059014135},{x:.09645110783403886,y:.03300038080982997},{x:.09955682066149267,y:.030111872039067004},{x:.10264058790854466,y:.027199945760571206},{x:.10278544504987946,y:.027109047766032002},{x:.10291067034954356,y:.026992580340839414},{x:.10652022788210418,y:.024765467971757132},{x:.11011283004156149,y:.02251110668543916},{x:.1858688300415615,y:-.015231893314560811},{x:.1873332068933575,y:-.0157898639141544},{x:.18871524554357097,y:-.01652857896300789},{x:.19144581156206075,y:-.017356887109087667},{x:.19411224226228255,y:-.018372875537717062},{x:.1956573361874375,y:-.018634439137126358},{x:.19715693550927424,y:-.019089337618145352},{x:.1999966293703256,y:-.019369023051625026},{x:.20281003486202434,y:-.01984529472354478},{x:.2043764687674932,y:-.01980039958033106},{x:.205936,y:-.019953999999999986},{x:.319832,y:-.019953999999999986},{x:.32132997950952447,y:-.01980646189590665},{x:.3228344649392302,y:-.019853723877644197},{x:.3257100002545037,y:-.019375067506000147},{x:.3286110644907258,y:-.019089337618145352},{x:.3300514774877758,y:-.018652393112465325},{x:.33153627500704863,y:-.018405236421526333},{x:.3342631764918695,y:-.017374788187221168},{x:.33705275445642907,y:-.01652857896300789},{x:.3383802466773209,y:-.015819019588053155},{x:.3397882963501792,y:-.015286942317463331},{x:.4160692963501792,y:.02245605768253664},{x:.4183042276197719,y:.02384992521458428},{x:.42064256487504254,y:.025062345668598177},{x:.4220380841989542,y:.02617863282445781},{x:.4235544084161923,y:.027124324140885128},{x:.42547446604244665,y:.028927422360218155},{x:.42753134130624215,y:.03057273346328787},{x:.465011,y:.06712410441560081},{x:.465011,y:.025046000000000013},{x:.4658756623818546,y:.016266935509274223},{x:.46843642103699207,y:.007825245543570968},{x:.47259486744638546,y:45339514117916785e-21},{x:.4781911948466053,y:-.006773805153394624},{x:.4850103395141179,y:-.012370132553614528},{x:.492790245543571,y:-.01652857896300789},{x:.5012319355092743,y:-.019089337618145352},{x:.510011,y:-.019953999999999986},{x:.5187900644907257,y:-.019089337618145352},{x:.527231754456429,y:-.01652857896300789},{x:.5350116604858821,y:-.012370132553614521},{x:.5418308051533947,y:-.006773805153394624},{x:.5474271325536145,y:45339514117916785e-21},{x:.5515855789630079,y:.007825245543570974},{x:.5541463376181454,y:.016266935509274244},{x:.555011,y:.025046000000000013},{x:.555011,y:.545898},{x:.5541463376181454,y:.5546770644907257},{x:.5515855789630079,y:.563118754456429},{x:.5474271325536145,y:.5708986604858821},{x:.5418308051533947,y:.5777178051533947},{x:.5350116604858821,y:.5833141325536145},{x:.527231754456429,y:.5874725789630079},{x:.5187900644907257,y:.5900333376181454},{x:.510011,y:.590898},{x:.5012319355092743,y:.5900333376181454},{x:.492790245543571,y:.5874725789630079},{x:.4850103395141179,y:.5833141325536145},{x:.4781911948466053,y:.5777178051533947},{x:.47259486744638546,y:.5708986604858821},{x:.46843642103699207,y:.563118754456429},{x:.4658756623818546,y:.5546770644907257},{x:.465011,y:.545898},{x:.465011,y:.19283699530520199},{x:.36978450462305706,y:.099969048308901},{x:.30930812362389754,y:.07004600000000001},{x:.2165251763155874,y:.07004600000000001},{x:.16675256431883717,y:.09484360935890679},{x:.137041,y:.18137632992954258},{x:.137041,y:.545898},{x:.13617633761814535,y:.5546770644907257},{x:.1336155789630079,y:.563118754456429},{x:.12945713255361452,y:.5708986604858821},{x:.12386080515339463,y:.5777178051533947},{x:.11704166048588208,y:.5833141325536145},{x:.10926175445642904,y:.5874725789630079},{x:.10082006449072577,y:.5900333376181454},{x:.092041,y:.590898},{x:.08326193550927423,y:.5900333376181454},{x:.07482024554357093,y:.5874725789630079},{x:.06704033951411792,y:.5833141325536145},{x:.06022119484660536,y:.5777178051533947},{x:.05462486744638546,y:.5708986604858821},{x:.050466421036992094,y:.563118754456429},{x:.04790566238185463,y:.5546770644907257},{x:.047041,y:.545898},{x:.047041,y:.17386599999999997}]],v:[[{x:.003930906419490336,y:.5438334563092145},{x:.005386967221411215,y:.5351329102741644},{x:.00851244255100142,y:.5268836061622384},{x:.26071044255100145,y:.018289606162238365},{x:.26144011887972296,y:.017121905714788027},{x:.2620056398700735,y:.01586646241095203},{x:.26377267234206975,y:.013389122267562115},{x:.26538522214413157,y:.010808560104194675},{x:.26632868500311185,y:.009805649483352854},{x:.267128264504625,y:.008684656842684199},{x:.2693446490294707,y:.006599649029470163},{x:.2714296568426842,y:.00438326450462502},{x:.27255064948335267,y:.0035836850031119977},{x:.2735535601041947,y:.0026402221441315446},{x:.27613412226756273,y:.0010276723420693272},{x:.278611462410952,y:-.0007393601299264599},{x:.2798669057147878,y:-.0013048811202769175},{x:.28103460616223835,y:-.0020345574489985807},{x:.28388017640738666,y:-.0031126798553442526},{x:.2866546460885495,y:-.00436245420755494},{x:.28799629407344673,y:-.00467218403223142},{x:.2892839102741644,y:-.005160032778588779},{x:.2922851349323858,y:-.00566229614975999},{x:.29525011283741587,y:-.006346784254711718},{x:.2966264067237199,y:-.006388820170250395},{x:.2979844563092145,y:-.006616093580509658},{x:.301026,y:-.00652319621682493},{x:.30406754369078554,y:-.006616093580509658},{x:.3054255932762801,y:-.006388820170250395},{x:.30680188716258416,y:-.006346784254711718},{x:.30976686506761425,y:-.005662296149759988},{x:.31276808972583564,y:-.005160032778588779},{x:.3140557059265533,y:-.00467218403223142},{x:.3153973539114505,y:-.00436245420755494},{x:.3181718235926135,y:-.0031126798553442175},{x:.3210173938377617,y:-.0020345574489985807},{x:.32218509428521225,y:-.0013048811202769192},{x:.323440537589048,y:-.0007393601299264599},{x:.32591787773243747,y:.0010276723420694187},{x:.32849843989580535,y:.0026402221441315446},{x:.32950135051664736,y:.0035836850031119635},{x:.3306223431573158,y:.00438326450462502},{x:.3327073509705293,y:.006599649029470129},{x:.334923735495375,y:.008684656842684203},{x:.33572331499688823,y:.009805649483352899},{x:.33666677785586846,y:.01080856010419469},{x:.3382793276579303,y:.013389122267562135},{x:.3400463601299265,y:.01586646241095204},{x:.34061188112027707,y:.017121905714788034},{x:.3413415574489986,y:.018289606162238365},{x:.5935395574489987,y:.5268836061622384},{x:.5966650327785888,y:.5351329102741644},{x:.5981210935805097,y:.5438334563092145},{x:.5978517842547117,y:.5526508871625841},{x:.595867454207555,y:.5612463539114505},{x:.5922443601299265,y:.569289537589048},{x:.587121735495375,y:.5764713431573159},{x:.5806964398958053,y:.5825157778558685},{x:.5732153938377617,y:.5871905574489986},{x:.5649660897258356,y:.5903160327785888},{x:.5562655436907855,y:.5917720935805096},{x:.5474481128374159,y:.5915027842547117},{x:.5388526460885495,y:.589518454207555},{x:.5308094624109521,y:.5858953601299265},{x:.5236276568426842,y:.580772735495375},{x:.5175832221441315,y:.5743474398958054},{x:.5129084425510014,y:.5668663938377616},{x:.301026,y:.13957458745236595},{x:.08914355744899859,y:.5668663938377616},{x:.08446877785586845,y:.5743474398958054},{x:.07842434315731579,y:.580772735495375},{x:.07124253758904797,y:.5858953601299265},{x:.06319935391145051,y:.589518454207555},{x:.054603887162584124,y:.5915027842547117},{x:.04578645630921451,y:.5917720935805096},{x:.037085910274164385,y:.5903160327785888},{x:.028836606162238352,y:.5871905574489986},{x:.02135556010419467,y:.5825157778558685},{x:.014930264504625007,y:.5764713431573159},{x:.009807639870073534,y:.569289537589048},{x:.006184545792445054,y:.5612463539114505},{x:.004200215745288276,y:.5526508871625841},{x:.003930906419490336,y:.5438334563092145}]],w:[[{x:-.04481226541001698,y:.5427688011711321},{x:-.0431501306438814,y:.534105261341125},{x:.1073618693561186,y:.025511261341124997},{x:.10747750697825527,y:.02522662926113043},{x:.10753949092041715,y:.02492572151525217},{x:.1091366577408943,y:.021142772088450095},{x:.11068223944402648,y:.01733845540642648},{x:.11085118408582124,y:.017081852232977028},{x:.1109706812129555,y:.01679881881229654},{x:.11327517574267339,y:.0134001494872997},{x:.11553324489331337,y:.009970459715744673},{x:.11574900410692728,y:.009751746564891355},{x:.11592142221145292,y:.009497464285038355},{x:.11884468401801046,y:.006613684018010047},{x:.12172846428503836,y:.0036904222114529234},{x:.12198274656489135,y:.0035180041069272803},{x:.12220145971574467,y:.0033022448933133844},{x:.1256311494872997,y:.001044175742673395},{x:.12902981881229655,y:-.0012603187870445023},{x:.12931285223297703,y:-.0013798159141787526},{x:.12956945540642648,y:-.0015487605559735135},{x:.1333737720884501,y:-.0030943422591057004},{x:.13715672151525218,y:-.004691509079582858},{x:.13745762926113045,y:-.004753493021744735},{x:.137742261341125,y:-.004869130643881392},{x:.14177500717701197,y:-.005642829061426576},{x:.14579686008065018,y:-.006471289947453558},{x:.1461040784358031,y:-.006473378696506754},{x:.14640580117113214,y:-.006531265410016966},{x:.150512,y:-.006503347745684165},{x:.15461819882886788,y:-.006531265410016966},{x:.15491992156419693,y:-.006473378696506754},{x:.15522713991934983,y:-.006471289947453558},{x:.159248992822988,y:-.005642829061426585},{x:.16328173865887502,y:-.004869130643881392},{x:.16356637073886957,y:-.004753493021744732},{x:.16386727848474786,y:-.004691509079582851},{x:.1676502279115502,y:-.0030943422591055763},{x:.17145454459357354,y:-.0015487605559735135},{x:.17171114776702298,y:-.0013798159141787517},{x:.17199418118770346,y:-.0012603187870445023},{x:.17539285051270065,y:.001044175742673613},{x:.17882254028425534,y:.0033022448933133844},{x:.17904125343510863,y:.0035180041069272374},{x:.17929553571496165,y:.0036904222114529095},{x:.18217931598198978,y:.006613684018010279},{x:.1851025777885471,y:.009497464285038375},{x:.18527499589307275,y:.009751746564891386},{x:.18549075510668664,y:.009970459715744683},{x:.1877488242573266,y:.013400149487299715},{x:.1900533187870445,y:.016798818812296553},{x:.19017281591417878,y:.01708185223297707},{x:.19034176055597352,y:.01733845540642648},{x:.19188734225910553,y:.02114277208844964},{x:.19348450907958287,y:.02492572151525217},{x:.19354649302174473,y:.02522662926113043},{x:.1936621306438814,y:.025511261341124997},{x:.30102443002882817,y:.38829842311817664},{x:.4083889386148475,y:.025511027311792445},{x:.40850451632069196,y:.025226547135196155},{x:.40856646677585007,y:.0249257992040805},{x:.410163689741502,y:.021142697708463984},{x:.41170935302882616,y:.01733823938560964},{x:.41187820927072055,y:.017081773507688556},{x:.41199764237598097,y:.016798890297984457},{x:.41430222163921304,y:.013400082779514221},{x:.4165603984391837,y:.009970270005002412},{x:.41677604416644776,y:.009751674265617277},{x:.4169483701745541,y:.009497526820430955},{x:.41987174204670485,y:.006613627545966159},{x:.42275565189129766,y:.0036902661012626486},{x:.42300979995956794,y:.0035179410120882958},{x:.4232283964786704,y:.003302296075210584},{x:.4266582174181369,y:.0010441316765615349},{x:.4300570332693414,y:-.001260435297455717},{x:.43033991691088264,y:-.001379867379883588},{x:.4305963833993421,y:-.0015487226944633017},{x:.43440084731088763,y:-.0030943722258508074},{x:.43818395458161874,y:-.004691581512785238},{x:.43848470273672896,y:-.004753530880516994},{x:.4387691833312223,y:-.0048691075577547704},{x:.44280208680029426,y:-.005642843777199688},{x:.4468241027997286,y:-.0064713155198797695},{x:.44713115788546864,y:-.006473401493455157},{x:.44743272015628793,y:-.006531257986460835},{x:.45153908096424766,y:-.006503346644966049},{x:.45564544187310013,y:-.00653124313893301},{x:.4559470039347234,y:-.006473385555557348},{x:.4562540590129192,y:-.0064712984717510205},{x:.4602760720167908,y:-.005642812186517322},{x:.4643089726882076,y:-.004869061385152536},{x:.46459345286480397,y:-.004753483679308031},{x:.46489420079591953,y:-.0046915332241499325},{x:.46867730229153426,y:-.003094310258498727},{x:.4724817606143904,y:-.0015486469711738574},{x:.4727382264923116,y:-.0013797907292793573},{x:.47302110970201555,y:-.0012603576240190345},{x:.4764199172204845,y:.0010442216392121837},{x:.47984972999499764,y:.0033023984391836667},{x:.4800683257343829,y:.003518044166447842},{x:.48032247317956905,y:.003690370174554085},{x:.483206372454032,y:.0066137420467029156},{x:.48612973389873737,y:.009497651891297622},{x:.4863020589879118,y:.009751799959568049},{x:.48651770392478944,y:.009970396478670394},{x:.4887758683234383,y:.01340021741813658},{x:.49108043529745576,y:.016799033269341422},{x:.49119986737988364,y:.017081916910882677},{x:.4913687226944633,y:.017338383399342037},{x:.4929143722258502,y:.021142847310886045},{x:.4945115815127853,y:.024925954581618698},{x:.4945735308805171,y:.025226702736729056},{x:.4946891075577548,y:.025511183331222268},{x:.6452021075577549,y:.5341051833312223},{x:.6468642579864609,y:.542768720156288},{x:.646804298471751,y:.5515900590129192},{x:.64502453322415,y:.5602302007959196},{x:.641593357624019,y:.5683571097020156},{x:.636642629825446,y:.5756584731795691},{x:.6303626035213297,y:.5818537039247894},{x:.622994616600658,y:.5867047226944633},{x:.6148218166687778,y:.5900251075577548},{x:.6061582798437121,y:.5916872579864608},{x:.5973369409870808,y:.591627298471751},{x:.5886967992040805,y:.58984753322415},{x:.5805698902979844,y:.5864163576240191},{x:.573268526820431,y:.5814656298254459},{x:.5670732960752106,y:.5751856035213296},{x:.5622222773055368,y:.567817616600658},{x:.5589018924422452,y:.5596448166687777},{x:.4515387133151436,y:.1968570925189096},{x:.34417406138515255,y:.5596449726882076},{x:.3440584683142858,y:.559929490683899},{x:.34399650907958285,y:.5602302784847478},{x:.3423992950207163,y:.5640133397974443},{x:.3408536469711739,y:.5678177606143904},{x:.3406847682813525,y:.5680742605871558},{x:.34056531878704455,y:.5683571811877035},{x:.33826075609875456,y:.5717559510329858},{x:.33600260156081635,y:.5751857299949976},{x:.33578692716538155,y:.5754043547947312},{x:.3356145777885471,y:.5756585357149616},{x:.33269122952253233,y:.5785424012737268},{x:.32980734810870244,y:.5814657338987373},{x:.3295531662537196,y:.581638081896991},{x:.3293345402842553,y:.5818537551066867},{x:.3259047490749403,y:.5841118910428063},{x:.32250596673065857,y:.5864164352974557},{x:.322223045482268,y:.5865358832573104},{x:.32196654459357354,y:.5867047605559735},{x:.318162115393689,y:.5882503879717952},{x:.31437904541838135,y:.5898475815127853},{x:.31407825728149374,y:.5899095391161314},{x:.313793738658875,y:.5900251306438814},{x:.30976087354902626,y:.5907988519446131},{x:.3057388972002714,y:.5916273155198798},{x:.3054318012943039,y:.5916294017707667},{x:.3051301988288679,y:.5916872654100169},{x:.30102387855356455,y:.5916593469199811},{x:.29691755812689985,y:.5916872431389331},{x:.2966159559752979,y:.5916293778639092},{x:.2963088600806502,y:.5916272899474536},{x:.29228688822522214,y:.5907988045585649},{x:.28825402731179245,y:.5900250613851525},{x:.2879695093161011,y:.5899094683142858},{x:.2876687215152522,y:.5898475090795828},{x:.2838856602025565,y:.5882502950207166},{x:.28008123938560964,y:.5867046469711739},{x:.27982473941284386,y:.5865357682813523},{x:.27954181881229656,y:.5864163187870445},{x:.276143048967013,y:.5841117560987538},{x:.2727132700050024,y:.5818536015608163},{x:.2724946452052691,y:.5816379271653819},{x:.27224046428503834,y:.5814655777885471},{x:.2693565987262721,y:.5785422295225312},{x:.2664332661012626,y:.5756583481087024},{x:.2662609181030087,y:.5754041662537193},{x:.2660452448933134,y:.5751855402842553},{x:.26378710895719626,y:.5717557490749442},{x:.2614825647025443,y:.5683569667306586},{x:.2613631167426894,y:.5680740454822678},{x:.2611942394440265,y:.5678175445935736},{x:.2596486120282045,y:.5640131153936881},{x:.2580514184872148,y:.5602300454183813},{x:.25798946088386876,y:.5599292572814941},{x:.2578738693561186,y:.559644738658875},{x:.150512,y:.196859029989096},{x:.0431501306438814,y:.559644738658875},{x:.039829760555973516,y:.5678175445935736},{x:.034978755106686646,y:.5751855402842553},{x:.028783535714961644,y:.5814655777885471},{x:.021482181187703456,y:.5864163187870445},{x:.01335527848474783,y:.5898475090795828},{x:.0047151399193498065,y:.5916272899474536},{x:-.004106198828867862,y:.5916872654100169},{x:-.01276973865887501,y:.5900251306438814},{x:-.020942544593573535,y:.5867047605559735},{x:-.028310540284255312,y:.5818537551066867},{x:-.034590577788547086,y:.5756585357149616},{x:-.03954131878704451,y:.5683571811877035},{x:-.04297250907958286,y:.5602302784847478},{x:-.04475228994745356,y:.5515901399193498},{x:-.04481226541001698,y:.5427688011711321}]],x:[[{x:-.007882248997940308,y:.03911618267902263},{x:-.007180671607209664,y:.030322582532795114},{x:-.0047770285451087455,y:.021834819906700376},{x:-.0007636904665355299,y:.013979074758467071},{x:.004705112296856322,y:.007057238968589209},{x:.011419216721809594,y:.001335314804661543},{x:.019120603540586492,y:-.0029668073965882433},{x:.02751331277672888,y:-.0056837994916240225},{x:.036274817320977384,y:-.006711248997940296},{x:.04506841746720488,y:-.006009671607209652},{x:.05355618009329963,y:-.003606028545108733},{x:.061411925241532925,y:.0004073095334644686},{x:.0683337610314108,y:.005876112296856327},{x:.3010265,y:.23008742701759316},{x:.5337192389685892,y:.005876112296856327},{x:.540641074758467,y:.0004073095334644686},{x:.5484968199067003,y:-.003606028545108733},{x:.556984582532795,y:-.006009671607209652},{x:.5657781826790226,y:-.006711248997940296},{x:.5745396872232711,y:-.0056837994916240225},{x:.5829323964594135,y:-.0029668073965882433},{x:.5906337832781904,y:.001335314804661536},{x:.5973478877031436,y:.007057238968589213},{x:.6028166904665355,y:.013979074758467089},{x:.6068300285451087,y:.021834819906700383},{x:.6092336716072096,y:.030322582532795128},{x:.6099352489979403,y:.03911618267902263},{x:.608907799491624,y:.047877687223271126},{x:.6061908073965883,y:.05627039645941352},{x:.6018886851953384,y:.0639717832781904},{x:.5961667610314108,y:.07068588770314368},{x:.36588095484811606,y:.292578},{x:.5961667610314108,y:.5144701122968564},{x:.6018886851953384,y:.5211842167218096},{x:.6061908073965883,y:.5288856035405864},{x:.608907799491624,y:.5372783127767289},{x:.6099352489979403,y:.5460398173209774},{x:.6092336716072096,y:.5548334174672048},{x:.6068300285451087,y:.5633211800932996},{x:.6028166904665355,y:.571176925241533},{x:.5973478877031436,y:.5780987610314108},{x:.5906337832781904,y:.5838206851953385},{x:.5829323964594135,y:.5881228073965883},{x:.5745396872232711,y:.590839799491624},{x:.5657781826790226,y:.5918672489979403},{x:.556984582532795,y:.5911656716072097},{x:.5484968199067003,y:.5887620285451087},{x:.540641074758467,y:.5847486904665355},{x:.5337192389685892,y:.5792798877031436},{x:.3010265,y:.35506857298240685},{x:.0683337610314108,y:.5792798877031436},{x:.06141192524153289,y:.5847486904665355},{x:.05355618009329961,y:.5887620285451087},{x:.0450684174672049,y:.5911656716072097},{x:.03627481732097735,y:.5918672489979403},{x:.02751331277672888,y:.590839799491624},{x:.01912060354058648,y:.5881228073965883},{x:.011419216721809584,y:.5838206851953385},{x:.004705112296856315,y:.5780987610314108},{x:-.0007636904665355368,y:.571176925241533},{x:-.004777028545108752,y:.5633211800932996},{x:-.007180671607209664,y:.5548334174672048},{x:-.007882248997940308,y:.5460398173209774},{x:-.006854799491624035,y:.5372783127767289},{x:-.004137807396588256,y:.5288856035405864},{x:.0001643148046615306,y:.5211842167218096},{x:.005886238968589197,y:.5144701122968564},{x:.23617204515188386,y:.292578},{x:.005886238968589197,y:.07068588770314368},{x:.00016431480466150977,y:.0639717832781904},{x:-.004137807396588256,y:.05627039645941351},{x:-.006854799491624035,y:.047877687223271126},{x:-.007882248997940308,y:.03911618267902263}]],y:[[{x:-7800000000000168e-20,y:-.15516599999999992},{x:.0007866623818546317,y:-.16394506449072568},{x:.003347421036992093,y:-.17238675445642895},{x:.007505867446385456,y:-.180166660485882},{x:.013102194846605353,y:-.18698580515339455},{x:.0199213395141179,y:-.19258213255361445},{x:.02770124554357093,y:-.1967405789630078},{x:.03614293550927421,y:-.19930133761814528},{x:.044922,y:-.2001659999999999},{x:.084618,y:-.2001659999999999},{x:.08470326921416556,y:-.20015760171543356},{x:.08478856964894584,y:-.200165676732115},{x:.08909199801123496,y:-.19972534965725622},{x:.09339706449072577,y:-.19930133761814528},{x:.0934790568568106,y:-.19927646550581232},{x:.09356429362525961,y:-.1992677440740231},{x:.09769912926743524,y:-.1979963205354665},{x:.10183875445642904,y:-.1967405789630078},{x:.1019143190537861,y:-.19670018884423682},{x:.10199621655469396,y:-.19667500612370953},{x:.18074721655469395,y:-.16370500612370958},{x:.18295470197399702,y:-.16251430076809983},{x:.18525522528778574,y:-.16151511930158513},{x:.18682754729843723,y:-.16042530954354395},{x:.18851130436774752,y:-.15951710034658062},{x:.19044407848245243,y:-.15791861501920362},{x:.19250546725178602,y:-.1564898227103016},{x:.27125546725178606,y:-.08958282271030155},{x:.27347158712358693,y:-.0872898341236823},{x:.27580944257935097,y:-.08512109812948883},{x:.27653091968085064,y:-.08412438503144627},{x:.2773860111192193,y:-.08323963374445845},{x:.2791122089873479,y:-.0805583607511536},{x:.2809820438025964,y:-.07797520343727593},{x:.35909504380259644,y:.055837796562724036},{x:.35921507445013207,y:.05609937330868571},{x:.35938084670619436,y:.05633463764830328},{x:.359814044874128,y:.05731131476590327},{x:.3603874218559792,y:.0582128676935936},{x:.5972854218559792,y:.5265638676935935},{x:.6004763520268956,y:.5347880745861305},{x:.6020015061983327,y:.5434767752438966},{x:.6018022735507984,y:.5522960677732933},{x:.5998863104832066,y:.5609070317083322},{x:.5963272463817603,y:.568978752534074},{x:.591261854083932,y:.5762010385458585},{x:.5848847937750224,y:.5822963413425576},{x:.5774411323064065,y:.5870304218559792},{x:.5692169254138695,y:.5902213520268956},{x:.5605282247561034,y:.5917465061983327},{x:.5517089322267067,y:.5915472735507984},{x:.5430979682916678,y:.5896313104832066},{x:.5350262474659261,y:.5860722463817603},{x:.5278039614541415,y:.5810068540839319},{x:.5217086586574424,y:.5746297937750224},{x:.5169745781440208,y:.5671861323064065},{x:.3203411783046204,y:.17843886787959407},{x:.12481771439881506,y:.5670983271806026},{x:.12009991274687032,y:.5745523168465348},{x:.11401856108654926,y:.5809426827476728},{x:.10680736235169674,y:.5860238467061943},{x:.09874343886560628,y:.5896005424407229},{x:.09013668268554793,y:.5915353195400148},{x:.08131784662479694,y:.5917538256051798},{x:.0726258336075076,y:.5902476635706729},{x:.06439467281939737,y:.5870747143988151},{x:.05694068315346515,y:.5823569127468703},{x:.05055031725232718,y:.5762755610865493},{x:.04546915329380567,y:.5690643623516968},{x:.041892457559277035,y:.5610004388656062},{x:.039957680459985136,y:.5523936826855479},{x:.039739174394820276,y:.5435748466247969},{x:.0412453364293271,y:.5348828336075077},{x:.04441828560118493,y:.5266516728193974},{x:.26905653043412125,y:.0801181620528446},{x:.20712852539925722,y:-.025968816269973185},{x:.1395520619925953,y:-.08338263769409424},{x:.07557825049874085,y:-.11016599999999992},{x:.044922,y:-.11016599999999992},{x:.03614293550927422,y:-.11103066238185455},{x:.02770124554357096,y:-.11359142103699202},{x:.01992133951411791,y:-.11774986744638538},{x:.01310219484660536,y:-.12334619484660528},{x:.007505867446385456,y:-.13016533951411782},{x:.003347421036992093,y:-.13794524554357088},{x:.0007866623818546317,y:-.14638693550927412},{x:-7800000000000168e-20,y:-.15516599999999992}]],z:[[{x:.051680000000000004,y:.038348999999999966},{x:.05192127447228559,y:.035899299172703986},{x:.05194879067317478,y:.033437899088824954},{x:.05235257576103353,y:.03152022369965088},{x:.05254466238185464,y:.029569935509274177},{x:.053259213756049764,y:.02721437531096308},{x:.05376639657582897,y:.024805638484003446},{x:.054536542955643516,y:.023003585252525667},{x:.0551054210369921,y:.02112824554357092},{x:.05626578950451143,y:.018957348831652537},{x:.05723314819184797,y:.01669384166703705},{x:.05834005957014514,y:.015076662488338128},{x:.05926386744638546,y:.01334833951411787},{x:.060825460697764414,y:.011445532631778232},{x:.062215820200804926,y:.009414240440453706},{x:.0636169585940798,y:.00804408260344652},{x:.06486019484660537,y:.0065291948466053296},{x:.06676300172894496,y:.004967601595226417},{x:.06852293131171022,y:.0032465857969436324},{x:.07016445175727676,y:.0021761036989109733},{x:.07167933951411792,y:.0009328674463854256},{x:.07385023622603624,y:-.00022750102113387976},{x:.07591210278164046,y:-.0015721027544036703},{x:.07773092256935071,y:-.0023017710867676167},{x:.07945924554357096,y:-.003225578963007937},{x:.08181480574188199,y:-.003940130337203038},{x:.08409937289490133,y:-.004856645714911602},{x:.08602559580031956,y:-.00521745953679684},{x:.08790093550927423,y:-.0057863376181453985},{x:.09035063633657014,y:-.00602761209043098},{x:.09277010945251417,y:-.006480819940600742},{x:.09472971180962335,y:-.006458913379178931},{x:.09668,y:-.006651000000000032},{x:.505373,y:-.006651000000000032},{x:.5141520644907257,y:-.0057863376181453985},{x:.522593754456429,y:-.003225578963007937},{x:.5303736604858821,y:.0009328674463854256},{x:.5371928051533946,y:.0065291948466053296},{x:.5427891325536145,y:.013348339514117874},{x:.5469475789630078,y:.021128245543570928},{x:.5495083376181453,y:.029569935509274198},{x:.550373,y:.038348999999999966},{x:.5495083376181453,y:.047128064490725735},{x:.5469475789630078,y:.055569754456429005},{x:.5427891325536145,y:.06334966048588206},{x:.5371928051533946,y:.0701688051533946},{x:.5303736604858821,y:.0757651325536145},{x:.522593754456429,y:.07992357896300786},{x:.5141520644907257,y:.08248433761814533},{x:.505373,y:.08334899999999996},{x:.190464663126857,y:.08334899999999996},{x:.5404754142030563,y:.5196949313117102},{x:.5415458963010891,y:.5213364517572769},{x:.5427891325536145,y:.5228513395141179},{x:.5439495010211337,y:.525022236226036},{x:.5452941027544036,y:.5270841027816404},{x:.5460237710867677,y:.5289029225693511},{x:.5469475789630078,y:.530631245543571},{x:.5476621303372028,y:.5329868057418816},{x:.5485786457149116,y:.5352713728949013},{x:.5489394595367969,y:.53719759580032},{x:.5495083376181453,y:.5390729355092743},{x:.5497496120904308,y:.5415226363365697},{x:.5502028199406007,y:.5439421094525142},{x:.5501809133791788,y:.5459017118096235},{x:.550373,y:.547852},{x:.5501317255277144,y:.5503017008272966},{x:.5501042093268251,y:.552763100911175},{x:.5497004242389665,y:.5546807763003486},{x:.5495083376181453,y:.5566310644907257},{x:.5487937862439503,y:.5589866246890365},{x:.548286603424171,y:.5613953615159966},{x:.5475164570443563,y:.5631974147474748},{x:.5469475789630078,y:.565072754456429},{x:.5457872104954887,y:.567243651168347},{x:.544819851808152,y:.569507158332963},{x:.5437129404298549,y:.5711243375116617},{x:.5427891325536145,y:.5728526604858821},{x:.5412275393022352,y:.5747554673682221},{x:.539837179799195,y:.5767867595595463},{x:.5384360414059206,y:.578156917396553},{x:.5371928051533946,y:.5796718051533947},{x:.5352899982710546,y:.5812333984047738},{x:.5335300686882897,y:.5829544142030564},{x:.5318885482427235,y:.5840248963010888},{x:.5303736604858821,y:.5852681325536145},{x:.5282027637739638,y:.5864285010211338},{x:.5261408972183595,y:.5877731027544036},{x:.5243220774306487,y:.5885027710867679},{x:.522593754456429,y:.5894265789630079},{x:.5202381942581186,y:.5901411303372028},{x:.5179536271050986,y:.5910576457149116},{x:.5160274041996802,y:.5914184595367968},{x:.5141520644907257,y:.5919873376181454},{x:.5117023636634302,y:.5922286120904309},{x:.5092828905474858,y:.5926818199406008},{x:.5073232881903766,y:.5926599133791789},{x:.505373,y:.592852},{x:.09668,y:.592852},{x:.08790093550927423,y:.5919873376181454},{x:.07945924554357094,y:.5894265789630079},{x:.07167933951411792,y:.5852681325536145},{x:.06486019484660537,y:.5796718051533947},{x:.05926386744638546,y:.5728526604858821},{x:.0551054210369921,y:.565072754456429},{x:.05254466238185464,y:.5566310644907257},{x:.051680000000000004,y:.547852},{x:.05254466238185464,y:.5390729355092743},{x:.0551054210369921,y:.530631245543571},{x:.05926386744638546,y:.5228513395141179},{x:.06486019484660537,y:.5160321948466053},{x:.07167933951411792,y:.5104358674463855},{x:.07945924554357096,y:.5062774210369921},{x:.08790093550927423,y:.5037166623818546},{x:.09668,y:.502852},{x:.41158833687314295,y:.502852},{x:.06157758579694366,y:.06650606868828973},{x:.06050710369891106,y:.06486454824272328},{x:.05926386744638546,y:.06334966048588206},{x:.05810349897886612,y:.06117876377396365},{x:.05675889724559635,y:.059116897218359485},{x:.05602922891323242,y:.05729807743064926},{x:.0551054210369921,y:.055569754456429005},{x:.054390869662797,y:.05321419425811798},{x:.053474354285088434,y:.050929627105098636},{x:.0531135404632032,y:.04900340419968042},{x:.05254466238185464,y:.047128064490725735},{x:.05230338790956906,y:.04467836366342984},{x:.051850180059399294,y:.04225889054748581},{x:.05187208662082111,y:.04029928819037662},{x:.051680000000000004,y:.038348999999999966}]]},vci=Qci;function khe(t){const{ctx:e,points:n,fill:o,stroke:i,strokeWidth:r=1,minStrokePx:s,realToCanvasMat:a,closePath:A=!1}=t;if(n.length\u003c2)return;e.beginPath();const c=n.map(h=\u003eBn(a,[h.x,h.y])),l=c[0];if(!l)return;const[u,g]=l;e.moveTo(u,g);for(let h=1;h\u003cc.length;h++){const d=c[h];if(!d)continue;const[p,m]=d;e.lineTo(p,m)}if(A\u0026\u0026e.closePath(),o\u0026\u0026(e.fillStyle=o,e.fill()),i){const h=r*Math.abs(a.a),d=s===void 0?h:Math.max(h,s);e.strokeStyle=i,e.lineWidth=d,e.stroke()}}function Bp(t){const{ctx:e,center:n,width:o,height:i,fill:r,realToCanvasMat:s,borderRadius:a=0,ccwRotationDegrees:A=0,stroke:c,strokeWidth:l,isStrokeDashed:u=!1,lineJoin:g}=t,[h,d]=Bn(s,[n.x,n.y]),p=o*Math.abs(s.a),m=i*Math.abs(s.a),_=a*Math.abs(s.a),f=l?l*Math.abs(s.a):void 0;if(e.save(),e.translate(h,d),A!==0\u0026\u0026e.rotate(-A*(Math.PI/180)),e.beginPath(),_\u003e0){const I=-p/2,C=-m/2,y=Math.min(_,p/2,m/2);e.moveTo(I+y,C),e.lineTo(I+p-y,C),e.arcTo(I+p,C,I+p,C+y,y),e.lineTo(I+p,C+m-y),e.arcTo(I+p,C+m,I+p-y,C+m,y),e.lineTo(I+y,C+m),e.arcTo(I,C+m,I,C+m-y,y),e.lineTo(I,C+y),e.arcTo(I,C,I+y,C,y)}else e.rect(-p/2,-m/2,p,m);r\u0026\u0026(e.fillStyle=r,e.fill()),c\u0026\u0026f\u0026\u0026(u?e.setLineDash([f*3,f*2]):e.setLineDash([]),g\u0026\u0026(e.lineJoin=g),e.strokeStyle=c,e.lineWidth=f,e.stroke()),e.restore()}function wci(t){const{ctx:e,board:n,realToCanvasMat:o,colorMap:i,drawBoardMaterial:r,minBoardOutlineStrokePx:s}=t,{width:a,height:A,center:c,outline:l}=n;if(l\u0026\u0026Array.isArray(l)\u0026\u0026l.length\u003e=3){r\u0026\u0026khe({ctx:e,points:l.map(u=\u003e({x:u.x,y:u.y})),fill:i.substrate,realToCanvasMat:o,closePath:!0}),khe({ctx:e,points:l.map(u=\u003e({x:u.x,y:u.y})),stroke:i.boardOutline,strokeWidth:.1,realToCanvasMat:o,closePath:!0,minStrokePx:s});return}if(a!==void 0\u0026\u0026A!==void 0\u0026\u0026c){r\u0026\u0026Bp({ctx:e,center:c,width:a,height:A,fill:i.substrate,realToCanvasMat:o});const u=a/2,g=A/2,h=[{x:c.x-u,y:c.y-g},{x:c.x+u,y:c.y-g},{x:c.x+u,y:c.y+g},{x:c.x-u,y:c.y+g}];khe({ctx:e,points:h,stroke:i.boardOutline,strokeWidth:.1,realToCanvasMat:o,closePath:!0,minStrokePx:s})}}function Pci({startX:t,startY:e,endX:n,endY:o,bulge:i}){if(Math.abs(i)\u003c1e-10)return null;const r=n-t,s=o-e,a=Math.hypot(r,s);if(a\u003c1e-10)return null;const A=Math.abs(i)*(a/2),c=a/2,l=(A*A+c*c)/(2*A),u=l-A,g=(t+n)/2,h=(e+o)/2,d=-s/a,p=r/a,m=i\u003e0?-1:1;return{centerX:g+m*d*u,centerY:h+m*p*u,radius:l}}function $Ke({ctx:t,realStartX:e,realStartY:n,realEndX:o,realEndY:i,bulge:r,realToCanvasMat:s}){if(Math.abs(r)\u003c1e-10){const[C,y]=Bn(s,[o,i]);t.lineTo(C,y);return}const a=Pci({startX:e,startY:n,endX:o,endY:i,bulge:r});if(!a){const[C,y]=Bn(s,[o,i]);t.lineTo(C,y);return}const[A,c]=Bn(s,[e,n]),[l,u]=Bn(s,[o,i]),[g,h]=Bn(s,[a.centerX,a.centerY]),d=Math.hypot(A-g,c-h),p=Math.atan2(c-h,A-g),m=Math.atan2(u-h,l-g),f=s.a*s.d-s.b*s.c\u003c0,I=r\u003e0?!f:f;t.arc(g,h,d,p,m,I)}function hon({ctx:t,ring:e,realToCanvasMat:n}){if(e.vertices.length\u003c2)return;if(e.vertices.length===2){const[s,a]=e.vertices;if(s\u0026\u0026a\u0026\u0026Math.abs((s.bulge??0)-1)\u003c1e-10\u0026\u0026Math.abs((a.bulge??0)-1)\u003c1e-10){const[A,c]=Bn(n,[s.x,s.y]);t.moveTo(A,c),$Ke({ctx:t,realStartX:s.x,realStartY:s.y,realEndX:a.x,realEndY:a.y,bulge:1,realToCanvasMat:n}),$Ke({ctx:t,realStartX:a.x,realStartY:a.y,realEndX:s.x,realEndY:s.y,bulge:1,realToCanvasMat:n});return}}const o=e.vertices[0];if(!o)return;const[i,r]=Bn(n,[o.x,o.y]);t.moveTo(i,r);for(let s=0;s\u003ce.vertices.length;s++){const a=e.vertices[s],A=e.vertices[(s+1)%e.vertices.length];!a||!A||$Ke({ctx:t,realStartX:a.x,realStartY:a.y,realEndX:A.x,realEndY:A.y,bulge:a.bulge??0,realToCanvasMat:n})}}function pon({ctx:t,shape:e,realToCanvasMat:n}){hon({ctx:t,ring:e.outer_ring,realToCanvasMat:n});for(const o of e.inner_rings??[])hon({ctx:t,ring:o,realToCanvasMat:n})}function Mci(t,e){return e.copper[t]??e.copper.top}function qKe(t){const{ctx:e,pour:n,realToCanvasMat:o}=t;if(n.shape===\"rect\"){const i=n.width/2,r=n.height/2,s=(n.rotation??0)*Math.PI/180,a=Math.cos(s),A=Math.sin(s),c=[{x:-i,y:-r},{x:i,y:-r},{x:i,y:r},{x:-i,y:r}].map(u=\u003eBn(o,[n.center.x+u.x*a-u.y*A,n.center.y+u.x*A+u.y*a])),l=c[0];if(!l)return;e.moveTo(l[0],l[1]);for(let u=1;u\u003cc.length;u++){const g=c[u];g\u0026\u0026e.lineTo(g[0],g[1])}e.closePath();return}if(n.shape===\"polygon\"){const i=n.points[0];if(!i)return;const[r,s]=Bn(o,[i.x,i.y]);e.moveTo(r,s);for(let a=1;a\u003cn.points.length;a++){const A=n.points[a];if(!A)continue;const[c,l]=Bn(o,[A.x,A.y]);e.lineTo(c,l)}e.closePath();return}n.shape===\"brep\"\u0026\u0026pon({ctx:e,shape:n.brep_shape,realToCanvasMat:o})}function Dci(t){const{ctx:e,pour:n,realToCanvasMat:o,colorMap:i}=t,r=Mci(n.layer,i),s=.5;e.save(),e.globalAlpha=s,e.beginPath(),qKe({ctx:e,pour:n,realToCanvasMat:o}),e.fillStyle=r,e.fill(n.shape===\"brep\"?\"evenodd\":\"nonzero\"),e.restore()}function Nci(t,e){if(e.length\u003c3)return;const n=e[0];if(n){t.moveTo(n.x,n.y);for(let o=1;o\u003ce.length;o++){const i=e[o];i\u0026\u0026t.lineTo(i.x,i.y)}t.closePath()}}var Rci=t=\u003eQho[t]??(t===\" \"?Gv.spaceWidthRatio:Gv.glyphWidthRatio);function XKe(t,e,n){const o=Rci(t),i=e?Gv.letterSpacingRatio:0,r=e?vho[t]?.[e]??0:0;return n*(o+i+r)}function Tci(t,e){const n=e*Gv.glyphWidthRatio,o=e*Gv.letterSpacingRatio,i=e*Gv.spaceWidthRatio,r=e*Gv.strokeWidthRatio,s=e*Gv.lineHeightRatio,a=t.replace(/\\\\n/g,`\n`).split(`\n`),A=a.map(u=\u003e{const g=Array.from(u);return g.reduce((h,d,p)=\u003eh+XKe(d,g[p+1],e),0)}),c=A.reduce((u,g)=\u003eMath.max(u,g),0),l=a.length\u003e1?e+(a.length-1)*s:e;return{width:c,height:l,glyphWidth:n,letterSpacing:o,spaceWidth:i,strokeWidth:r,lineHeight:s,lines:a,lineWidths:A}}function kci(t){const{line:e,fontSize:n,startX:o,startY:i}=t,r=n,s=n,a=Array.from(e),A=[];let c=o+t.layout.strokeWidth/2;return a.forEach((l,u)=\u003e{const g=vci[l];if(g?.length){const h=[];for(const d of g){const p=d.map(m=\u003e({x:c+m.x*s,y:i+(1-m.y)*r}));p.length\u003e=3\u0026\u0026h.push(p)}h.length\u003e0\u0026\u0026A.push(h)}c+=XKe(l,a[u+1],n)}),A}function Fci(t){let e=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const r of t)for(const s of r)e=Math.min(e,s.x),n=Math.min(n,s.y),o=Math.max(o,s.x),i=Math.max(i,s.y);return e===Number.POSITIVE_INFINITY||n===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY||i===Number.NEGATIVE_INFINITY?null:{minX:e,minY:n,maxX:o,maxY:i}}function Lci(t,e,n){const o=Oci(t,e),i=Gci(o,e,n),r=Fci(i.flat()),s=Yci(t,e,r);return{bounds:r?zci(r,s):null,glyphGroups:Vci(i,s),linePlacements:o.map(({line:a,startX:A,startY:c})=\u003e({line:a,startX:A+s.x,startY:c+s.y})),startOffset:s}}function Hci(t,e){const n=e.width+e.strokeWidth,o=e.height+e.strokeWidth;let i=0,r=0;return t===\"center\"||t===\"top_center\"||t===\"bottom_center\"?i=-n/2:t===\"top_left\"||t===\"bottom_left\"||t===\"center_left\"?i=0:t===\"top_right\"||t===\"bottom_right\"||t===\"center_right\"?i=-n:(t===\"top_center\"||t===\"bottom_center\")\u0026\u0026(i=-n/2),t===\"center\"||t===\"center_left\"||t===\"center_right\"?r=-o/2:t===\"top_left\"||t===\"top_right\"||t===\"top_center\"?r=0:(t===\"bottom_left\"||t===\"bottom_right\"||t===\"bottom_center\")\u0026\u0026(r=-o),{x:i,y:r}}function Oci(t,e){return e.lines.map((n,o)=\u003e({line:n,startX:Jci({alignment:t,lineWidth:e.lineWidths[o],maxWidth:e.width,strokeWidth:e.strokeWidth}),startY:o*e.lineHeight}))}function Gci(t,e,n){return t.flatMap(({line:o,startX:i,startY:r})=\u003ekci({line:o,fontSize:n,startX:i,startY:r,layout:e}))}function Yci(t,e,n){return n?{x:-Uci(t,n),y:-Kci(t,n)}:Hci(t,e)}function Uci(t,e){return t===\"top_left\"||t===\"bottom_left\"||t===\"center_left\"?e.minX:t===\"top_right\"||t===\"bottom_right\"||t===\"center_right\"?e.maxX:(e.minX+e.maxX)/2}function Kci(t,e){return t===\"top_left\"||t===\"top_right\"||t===\"top_center\"?e.minY:t===\"bottom_left\"||t===\"bottom_right\"||t===\"bottom_center\"?e.maxY:(e.minY+e.maxY)/2}function Vci(t,e){return e.x===0\u0026\u0026e.y===0?t:t.map(n=\u003en.map(o=\u003eo.map(i=\u003e({x:i.x+e.x,y:i.y+e.y}))))}function zci(t,e){return{minX:t.minX+e.x,minY:t.minY+e.y,maxX:t.maxX+e.x,maxY:t.maxY+e.y}}function Jci(t){const{alignment:e,lineWidth:n,maxWidth:o,strokeWidth:i}=t,r=n+i,s=o+i;return e===\"top_left\"||e===\"bottom_left\"||e===\"center_left\"?0:e===\"top_right\"||e===\"bottom_right\"||e===\"center_right\"?s-r:(s-r)/2}var Wci=t=\u003eSho[t];function jci(t){const{ctx:e,line:n,fontSize:o,startX:i,startY:r,layout:s}=t,{strokeWidth:a}=s,A=o,c=o,l=r,u=Array.from(n);let g=i+a/2;u.forEach((h,d)=\u003e{const p=Wci(h);if(p?.length){e.beginPath();for(const m of p){const _=g+m.x1*c,f=l+(1-m.y1)*A,I=g+m.x2*c,C=l+(1-m.y2)*A;e.moveTo(_,f),e.lineTo(I,C)}e.stroke()}g+=XKe(h,u[d+1],o)})}var $ci={left:.2,right:.2,top:.2,bottom:.2};function SY(t){const{ctx:e,text:n,x:o,y:i,fontSize:r,color:s,realToCanvasMat:a,anchorAlignment:A,rotation:c=0,mirrorX:l=!1,knockout:u=!1,knockoutPadding:g={}}=t;if(!n)return;const[h,d]=Bn(a,[o,i]),p=Math.abs(a.a),m=r*p,_=Tci(n,m),f=Lci(A,_,m);if(e.save(),e.translate(h,d),c!==0\u0026\u0026e.rotate(-c*(Math.PI/180)),l\u0026\u0026e.scale(-1,1),u){const I={...$ci,...g},C=I.left*p,y=I.right*p,x=I.top*p,E=I.bottom*p,B=f.bounds;if(!B){e.restore();return}const S=B.minX-C,Q=B.minY-x,w=B.maxX-B.minX+C+y,M=B.maxY-B.minY+x+E;e.fillStyle=s,e.beginPath(),e.rect(S,Q,w,M);for(const k of f.glyphGroups)for(const R of k)Nci(e,R);e.fill(\"evenodd\")}else e.strokeStyle=s;e.lineWidth=_.strokeWidth,e.lineCap=\"round\",e.lineJoin=\"round\",u||f.linePlacements.forEach(({line:I,startX:C,startY:y})=\u003e{jci({ctx:e,line:I,fontSize:m,startX:C,startY:y,layout:_})}),e.restore()}function qci(t){return t||\"center\"}function Xci(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=n.text??\"\";r\u0026\u0026SY({ctx:e,text:r,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:n.font_size??1,color:i.copper[n.layer]??i.copper.top,realToCanvasMat:o,anchorAlignment:qci(n.anchor_alignment),rotation:n.ccw_rotation??0,mirrorX:n.is_mirrored??n.layer===\"bottom\",knockout:n.is_knockout,knockoutPadding:n.is_knockout?n.knockout_padding:void 0})}function dm(t){const{ctx:e,center:n,radius:o,fill:i,realToCanvasMat:r,stroke:s,strokeWidth:a,isStrokeDashed:A=!1}=t,[c,l]=Bn(r,[n.x,n.y]),u=o*Math.abs(r.a),g=a?a*Math.abs(r.a):void 0;e.beginPath(),e.arc(c,l,u,0,Math.PI*2),i\u0026\u0026(e.fillStyle=i,e.fill()),s\u0026\u0026g\u0026\u0026(A?e.setLineDash([g*3,g*2]):e.setLineDash([]),e.strokeStyle=s,e.lineWidth=g,e.stroke())}function Zci(t,e){return t===\"bottom\"?e.courtyard.bottom:e.courtyard.top}function eli(t){const{ctx:e,circle:n,realToCanvasMat:o,colorMap:i}=t;dm({ctx:e,center:n.center,radius:n.radius,stroke:Zci(n.layer,i),strokeWidth:.05,realToCanvasMat:o})}function tli(t,e){return t===\"bottom\"?e.courtyard.bottom:e.courtyard.top}function nli(t){const{ctx:e,outline:n,realToCanvasMat:o,colorMap:i}=t;if(!n.outline||n.outline.length\u003c2)return;e.beginPath();const r=Bn(o,n.outline[0]);e.moveTo(r.x,r.y);for(let s=1;s\u003cn.outline.length;s++){const a=Bn(o,n.outline[s]);e.lineTo(a.x,a.y)}e.closePath(),e.lineWidth=.05*Math.abs(o.a),e.strokeStyle=tli(n.layer,i),e.lineJoin=\"round\",e.stroke()}function oli(t,e){return t===\"bottom\"?e.courtyard.bottom:e.courtyard.top}function ili(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t;Bp({ctx:e,center:n.center,width:n.width,height:n.height,stroke:oli(n.layer,i),strokeWidth:.05,realToCanvasMat:o,ccwRotationDegrees:n.ccw_rotation??0,lineJoin:\"round\"})}function sP(t){const{ctx:e,points:n,fill:o,realToCanvasMat:i}=t;if(n.length\u003c3)return;e.beginPath();const r=n.map(c=\u003eBn(i,[c.x,c.y])),s=r[0];if(!s)return;const[a,A]=s;e.moveTo(a,A);for(let c=1;c\u003cr.length;c++){const l=r[c];if(!l)continue;const[u,g]=l;e.lineTo(u,g)}e.closePath(),e.fillStyle=o,e.fill()}function rli(t){const{ctx:e,cutout:n,realToCanvasMat:o,colorMap:i}=t;if(n.shape===\"rect\"){Bp({ctx:e,center:n.center,width:n.width,height:n.height,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:n.rotation??0,borderRadius:n.corner_radius??0});return}if(n.shape===\"circle\"){dm({ctx:e,center:n.center,radius:n.radius,fill:i.drill,realToCanvasMat:o});return}if(n.shape===\"polygon\"){n.points\u0026\u0026n.points.length\u003e=3\u0026\u0026sP({ctx:e,points:n.points,fill:i.drill,realToCanvasMat:o});return}}var mon=\"#ff4d4d\",sli={a:1,b:0,c:0,d:1,e:0,f:0};function ali(t){const e=Math.min(t.canvas.width,t.canvas.height),n=Math.max(1,Math.min(2,e*.002)),o=Math.max(10,Math.min(18,e*.02));return{fontSize:o,strokeWidth:n,dashLength:n*4,labelGap:o*.35,pointRadius:n*3}}function ZKe({ctx:t,label:e,x:n,y:o,style:i,align:r=\"left\"}){e\u0026\u0026(t.setLineDash([]),SY({ctx:t,text:e,x:n,y:o,fontSize:i.fontSize,color:mon,realToCanvasMat:sli,anchorAlignment:r===\"center\"?\"bottom_center\":\"bottom_left\"}))}function Ali({ctx:t,debugObject:e,realToCanvasMat:n,labelStackIndex:o=0}){const i=ali(t);if(t.save(),t.strokeStyle=mon,t.lineWidth=i.strokeWidth,t.setLineDash([i.dashLength,i.dashLength]),e.shape===\"rect\"){const a=Bn(n,[e.center.x-e.size.width/2,e.center.y-e.size.height/2]),A=Bn(n,[e.center.x+e.size.width/2,e.center.y+e.size.height/2]),c=Math.min(a[0],A[0]),l=Math.min(a[1],A[1]),u=Math.abs(A[0]-a[0]),g=Math.abs(A[1]-a[1]);t.beginPath(),t.rect(c,l,u,g),t.stroke(),ZKe({ctx:t,label:e.label,x:c,y:l-i.labelGap-o*(i.fontSize+i.labelGap),style:i}),t.restore();return}if(e.shape===\"line\"){const[a,A]=Bn(n,[e.start.x,e.start.y]),[c,l]=Bn(n,[e.end.x,e.end.y]);t.beginPath(),t.moveTo(a,A),t.lineTo(c,l),t.stroke(),ZKe({ctx:t,label:e.label,x:(a+c)/2,y:(A+l)/2-i.labelGap,style:i,align:\"center\"}),t.restore();return}const[r,s]=Bn(n,[e.center.x,e.center.y]);t.beginPath(),t.arc(r,s,i.pointRadius,0,Math.PI*2),t.stroke(),ZKe({ctx:t,label:e.label,x:r+i.pointRadius+i.labelGap,y:s-i.pointRadius,style:i}),t.restore()}var cli=1.5,lli=.6,uli=.3;function eVe(t){const e=Math.hypot(t.x,t.y)||1;return{x:t.x/e,y:t.y/e}}function _on(t){const{ctx:e,from:n,to:o,realToCanvasMat:i,color:r,fontSize:s,arrowSize:a=1,strokeWidth:A,text:c,textRotation:l,offset:u}=t,g=eVe({x:o.x-n.x,y:o.y-n.y}),h={x:-g.y,y:g.x},d=u?.direction\u0026\u0026typeof u.direction.x==\"number\"\u0026\u0026typeof u.direction.y==\"number\",p=d?eVe(u.direction):{x:0,y:0},m=u?.distance??0,_={x:p.x*m,y:p.y*m},f={x:n.x+_.x,y:n.y+_.y},I={x:o.x+_.x,y:o.y+_.y},C={x:f.x+g.x*a,y:f.y+g.y*a},y={x:I.x-g.x*a,y:I.y-g.y*a};Math.abs(i.a);const x=A??a/5,E=r||\"rgba(255,255,255,0.5)\",B=d\u0026\u0026(Math.abs(p.x)\u003eNumber.EPSILON||Math.abs(p.y)\u003eNumber.EPSILON)?p:h,S=m+.5,Q=[],w=R=\u003e{const F={x:R.x+B.x*S,y:R.y+B.y*S},O=x/2,U={x:-B.y,y:B.x};return[{x:R.x+U.x*O,y:R.y+U.y*O},{x:R.x-U.x*O,y:R.y-U.y*O},{x:F.x-U.x*O,y:F.y-U.y*O},{x:F.x+U.x*O,y:F.y+U.y*O}]};Q.push(f),Q.push({x:C.x+h.x*(a/2),y:C.y+h.y*(a/2)}),Q.push({x:C.x+h.x*(x/2),y:C.y+h.y*(x/2)}),Q.push({x:y.x+h.x*(x/2),y:y.y+h.y*(x/2)}),Q.push({x:y.x+h.x*(a/2),y:y.y+h.y*(a/2)}),Q.push(I),Q.push({x:y.x-h.x*(a/2),y:y.y-h.y*(a/2)}),Q.push({x:y.x-h.x*(x/2),y:y.y-h.y*(x/2)}),Q.push({x:C.x-h.x*(x/2),y:C.y-h.y*(x/2)}),Q.push({x:C.x-h.x*(a/2),y:C.y-h.y*(a/2)}),Q.push(f);const M=Q[0],k=R=\u003e{const F=w(R);Q.push(M),Q.push(F[0]),Q.push(...F),Q.push(F[0]),Q.push(M)};if(k(n),k(o),sP({ctx:e,points:Q,fill:E,realToCanvasMat:i}),c){const R={x:(n.x+o.x)/2+_.x,y:(n.y+o.y)/2+_.y},[F,O]=Bn(i,[f.x,f.y]),[U,Y]=Bn(i,[I.x,I.y]),W=eVe({x:U-F,y:Y-O});let te=Math.atan2(W.y,W.x)*180/Math.PI;(te\u003e90||te\u003c-90)\u0026\u0026(te+=180);const j=typeof l==\"number\"\u0026\u0026Number.isFinite(l)?te-l:te;let J=0;if(c\u0026\u0026typeof l==\"number\"\u0026\u0026Number.isFinite(l)){const ne=c.length*s*lli,le=s,ge=l*Math.PI/180,_e=Math.abs(Math.sin(ge)),ue=Math.abs(Math.cos(ge)),fe=ne/2,pe=le/2;J=fe*_e+pe*ue+s*uli}const oe=a*cli+J,ie={x:R.x+h.x*oe,y:R.y+h.y*oe};SY({ctx:e,text:c,x:ie.x,y:ie.y,fontSize:s,color:E,realToCanvasMat:i,anchorAlignment:\"center\",rotation:-j})}}function gli(t){const{ctx:e,pcbFabricationNoteDimension:n,realToCanvasMat:o,colorMap:i}=t,r=n.color??i.fabricationNote;_on({ctx:e,from:n.from,to:n.to,realToCanvasMat:o,color:r,fontSize:n.font_size??1,arrowSize:n.arrow_size??1,text:n.text,textRotation:n.text_ccw_rotation,offset:n.offset_distance\u0026\u0026n.offset_direction?{distance:n.offset_distance,direction:n.offset_direction}:void 0})}function QY(t){const{ctx:e,start:n,end:o,strokeWidth:i,stroke:r,realToCanvasMat:s,lineCap:a=\"round\"}=t,[A,c]=Bn(s,[n.x,n.y]),[l,u]=Bn(s,[o.x,o.y]),g=i*Math.abs(s.a);e.beginPath(),e.moveTo(A,c),e.lineTo(l,u),e.lineWidth=g,e.strokeStyle=r,e.lineCap=a,e.stroke()}function dli(t){const{ctx:e,path:n,realToCanvasMat:o,colorMap:i}=t,r=i.fabricationNote,s=n.color??r;if(!(!n.route||n.route.length\u003c2))for(let a=0;a\u003cn.route.length-1;a++){const A=n.route[a],c=n.route[a+1];!A||!c||QY({ctx:e,start:{x:A.x,y:A.y},end:{x:c.x,y:c.y},strokeWidth:n.stroke_width??.1,stroke:s,realToCanvasMat:o})}}function hli(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t,r=i.fabricationNote,s=n.color??r,a=n.is_filled??!1,A=n.has_stroke??!0,c=n.is_stroke_dashed??!1;Bp({ctx:e,center:n.center,width:n.width,height:n.height,fill:a?s:void 0,stroke:A?s:void 0,strokeWidth:A?n.stroke_width:void 0,borderRadius:n.corner_radius,realToCanvasMat:o,isStrokeDashed:c})}function pli(t,e){return e.fabricationNote}function mli(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=pli(n.layer,i),s=n.color??r,a=n.font_size;SY({ctx:e,text:n.text,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:a,color:s,realToCanvasMat:o,anchorAlignment:n.anchor_alignment})}function JB(t){const{ctx:e,center:n,radius_x:o,radius_y:i,fill:r,stroke:s,strokeWidth:a=.1,realToCanvasMat:A,rotation:c=0}=t,[l,u]=Bn(A,[n.x,n.y]),g=o*Math.abs(A.a),h=i*Math.abs(A.a),d=a*Math.abs(A.a);e.save(),e.translate(l,u),c!==0\u0026\u0026e.rotate(-c*(Math.PI/180)),e.beginPath(),e.ellipse(0,0,g,h,0,0,Math.PI*2),r\u0026\u0026(e.fillStyle=r,e.fill()),s\u0026\u0026(e.strokeStyle=s,e.lineWidth=d,e.stroke()),e.restore()}function A_(t){const{ctx:e,center:n,width:o,height:i,fill:r,realToCanvasMat:s,rotation:a=0,stroke:A,strokeWidth:c}=t,[l,u]=Bn(s,[n.x,n.y]),g=o*Math.abs(s.a),h=i*Math.abs(s.a),d=c?c*Math.abs(s.a):void 0;if(e.save(),e.translate(l,u),a!==0\u0026\u0026e.rotate(-a*(Math.PI/180)),e.beginPath(),g\u003eh){const p=h/2,m=g-h;e.moveTo(-m/2,-p),e.lineTo(m/2,-p),e.arc(m/2,0,p,-Math.PI/2,Math.PI/2),e.lineTo(-m/2,p),e.arc(-m/2,0,p,Math.PI/2,-Math.PI/2)}else if(h\u003eg){const p=g/2,m=h-g;e.moveTo(p,-m/2),e.lineTo(p,m/2),e.arc(0,m/2,p,0,Math.PI),e.lineTo(-p,-m/2),e.arc(0,-m/2,p,Math.PI,0)}else e.arc(0,0,g/2,0,Math.PI*2);e.closePath(),r\u0026\u0026(e.fillStyle=r,e.fill()),A\u0026\u0026d\u0026\u0026(e.strokeStyle=A,e.lineWidth=d,e.stroke()),e.restore()}function Fhe(t){return\"ccw_rotation\"in t\u0026\u0026typeof t.ccw_rotation==\"number\"?t.ccw_rotation:0}function fon(t){const{ctx:e,hole:n,realToCanvasMat:o,colorMap:i,soldermaskMargin:r=0,drawSoldermask:s=!1}=t;if(s\u0026\u0026n.is_covered_with_solder_mask===!0)return;const a=r\u003c0?Math.abs(r):0;if(n.hole_shape===\"circle\"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2-a,fill:i.drill,realToCanvasMat:o});return}if(n.hole_shape===\"square\"){const A=Fhe(n);Bp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_diameter-a*2,height:n.hole_diameter-a*2,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:A});return}if(n.hole_shape===\"oval\"){const A=Fhe(n);JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2-a,radius_y:n.hole_height/2-a,fill:i.drill,realToCanvasMat:o,rotation:A});return}if(n.hole_shape===\"rect\"){const A=Fhe(n);Bp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width-a*2,height:n.hole_height-a*2,fill:i.drill,realToCanvasMat:o,ccwRotationDegrees:A});return}if(n.hole_shape===\"pill\"||n.hole_shape===\"rotated_pill\"){const A=Fhe(n);A_({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width-a*2,height:n.hole_height-a*2,fill:i.drill,realToCanvasMat:o,rotation:A});return}}function _li(t){const{ctx:e,cx:n,cy:o,radius:i}=t;e.beginPath(),e.arc(n,o,i,0,Math.PI*2)}function fli(t){const{ctx:e,cx:n,cy:o,width:i,height:r}=t;e.beginPath(),e.rect(n-i/2,o-r/2,i,r)}function aS(t){const{ctx:e,cx:n,cy:o,width:i,height:r,ccwRotationDegrees:s=0}=t,a=s*Math.PI/180,A=Ad(pA(n,o),vQ(-a));if(i\u003er){const c=r/2,l=(i-r)/2,u=Bn(A,{x:-l,y:0}),g=Bn(A,{x:l,y:0}),h=Bn(A,{x:l,y:-c});e.moveTo(h.x,h.y),e.arc(g.x,g.y,c,-a-Math.PI/2,-a+Math.PI/2),e.arc(u.x,u.y,c,-a+Math.PI/2,-a-Math.PI/2)}else if(r\u003ei){const c=i/2,l=(r-i)/2,u=Bn(A,{x:0,y:-l}),g=Bn(A,{x:0,y:l}),h=Bn(A,{x:c,y:l});e.moveTo(h.x,h.y),e.arc(g.x,g.y,c,-a,-a+Math.PI),e.arc(u.x,u.y,c,-a+Math.PI,-a)}else{const c=i/2;e.moveTo(n+c,o),e.arc(n,o,c,0,Math.PI*2)}e.closePath()}function aP(t){const{ctx:e,points:n}=t;if(n.length\u003c3)return;const o=n[0];if(o){e.moveTo(o.x,o.y);for(let i=1;i\u003cn.length;i++){const r=n[i];r\u0026\u0026e.lineTo(r.x,r.y)}e.closePath()}}function xE(t){const{ctx:e,cx:n,cy:o,width:i,height:r,radius:s,ccwRotationDegrees:a=0}=t,A=a*Math.PI/180,c=Ad(pA(n,o),vQ(-A)),l=i/2,u=r/2,g=Math.min(s,l,u);if(g\u003e0){const h=Bn(c,{x:-l,y:-u}),d=Bn(c,{x:l,y:-u}),p=Bn(c,{x:l,y:u}),m=Bn(c,{x:-l,y:u}),_=Bn(c,{x:-l,y:0});e.moveTo(_.x,_.y),e.arcTo(h.x,h.y,d.x,d.y,g),e.arcTo(d.x,d.y,p.x,p.y,g),e.arcTo(p.x,p.y,m.x,m.y,g),e.arcTo(m.x,m.y,h.x,h.y,g)}else{const h=Bn(c,{x:-l,y:-u}),d=Bn(c,{x:l,y:-u}),p=Bn(c,{x:l,y:u}),m=Bn(c,{x:-l,y:u});e.moveTo(h.x,h.y),e.lineTo(d.x,d.y),e.lineTo(p.x,p.y),e.lineTo(m.x,m.y)}e.closePath()}function Ili(t){const{ctx:e,pad:n,realToCanvasMat:o,color:i,drillCutouts:r}=t;if(e.save(),e.beginPath(),!Ion(e,n,o)){e.restore();return}e.clip(),e.beginPath(),Ion(e,n,o);for(const s of r)yli(e,s,o);e.fillStyle=i,e.fill(\"evenodd\"),e.restore()}function Cli(t){const{pad:e,holes:n=[],platedHoles:o=[],vias:i=[],cutouts:r=[]}=t,s=Eli(e);if(!s)return[];const a=[],A=c=\u003e{c\u0026\u0026Sli(s,Bli(c))\u0026\u0026a.push(c)};for(const c of r)A(bli(c));for(const c of n)A(Qli(c));for(const c of o)bon(c.layers,e.layer)\u0026\u0026A(vli(c));for(const c of i){if(!bon(c.layers,e.layer))continue;const l=c.hole_diameter/2;if(l\u003c=0)continue;const u={shape:\"circle\",x:c.x,y:c.y,radius:l};A(u)}return a}function Ion(t,e,n){return e.shape===\"rect\"||e.shape===\"rotated_rect\"?(yon(t,{x:e.x,y:e.y,width:e.width,height:e.height,radius:wli(e),rotation:e.shape===\"rotated_rect\"?e.ccw_rotation??0:0,realToCanvasMat:n}),!0):e.shape===\"circle\"?(Con(t,{x:e.x,y:e.y,radius:e.radius,realToCanvasMat:n}),!0):e.shape===\"pill\"||e.shape===\"rotated_pill\"?(xon(t,{x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.shape===\"rotated_pill\"?e.ccw_rotation??0:0,realToCanvasMat:n}),!0):e.shape===\"polygon\"\u0026\u0026e.points\u0026\u0026e.points.length\u003e=3?(Eon(t,e.points,n),!0):!1}function yli(t,e,n){if(e.shape===\"circle\"){Con(t,{x:e.x,y:e.y,radius:e.radius,realToCanvasMat:n});return}if(e.shape===\"oval\"){xli(t,{x:e.x,y:e.y,radiusX:e.radiusX,radiusY:e.radiusY,rotation:e.rotation,realToCanvasMat:n});return}if(e.shape===\"pill\"){xon(t,{x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,realToCanvasMat:n});return}if(e.shape===\"polygon\"){Eon(t,e.points,n);return}yon(t,{x:e.x,y:e.y,width:e.width,height:e.height,radius:e.radius,rotation:e.rotation,realToCanvasMat:n})}function Con(t,e){const{x:n,y:o,radius:i,realToCanvasMat:r}=e,[s,a]=Bn(r,[n,o]),A=i*Math.abs(r.a);t.moveTo(s+A,a),t.arc(s,a,A,0,Math.PI*2),t.closePath()}function xli(t,e){const{x:n,y:o,radiusX:i,radiusY:r,rotation:s=0,realToCanvasMat:a}=e,[A,c]=Bn(a,[n,o]),l=i*Math.abs(a.a),u=r*Math.abs(a.a);t.save(),t.translate(A,c),s!==0\u0026\u0026t.rotate(-s*(Math.PI/180)),t.moveTo(l,0),t.ellipse(0,0,l,u,0,0,Math.PI*2),t.closePath(),t.restore()}function yon(t,e){const{x:n,y:o,width:i,height:r,radius:s=0,rotation:a=0,realToCanvasMat:A}=e,[c,l]=Bn(A,[n,o]),u=i*Math.abs(A.a),g=r*Math.abs(A.a),h=s*Math.abs(A.a);if(t.save(),t.translate(c,l),a!==0\u0026\u0026t.rotate(-a*(Math.PI/180)),h\u003e0){const d=-u/2,p=-g/2,m=Math.min(h,u/2,g/2);t.moveTo(d+m,p),t.lineTo(d+u-m,p),t.arcTo(d+u,p,d+u,p+m,m),t.lineTo(d+u,p+g-m),t.arcTo(d+u,p+g,d+u-m,p+g,m),t.lineTo(d+m,p+g),t.arcTo(d,p+g,d,p+g-m,m),t.lineTo(d,p+m),t.arcTo(d,p,d+m,p,m),t.closePath()}else t.rect(-u/2,-g/2,u,g);t.restore()}function xon(t,e){const{x:n,y:o,width:i,height:r,rotation:s=0,realToCanvasMat:a}=e,[A,c]=Bn(a,[n,o]),l=i*Math.abs(a.a),u=r*Math.abs(a.a);if(t.save(),t.translate(A,c),s!==0\u0026\u0026t.rotate(-s*(Math.PI/180)),l\u003eu){const g=u/2,h=l-u;t.moveTo(-h/2,-g),t.lineTo(h/2,-g),t.arc(h/2,0,g,-Math.PI/2,Math.PI/2),t.lineTo(-h/2,g),t.arc(-h/2,0,g,Math.PI/2,-Math.PI/2)}else if(u\u003el){const g=l/2,h=u-l;t.moveTo(g,-h/2),t.lineTo(g,h/2),t.arc(0,h/2,g,0,Math.PI),t.lineTo(-g,-h/2),t.arc(0,-h/2,g,Math.PI,0)}else t.moveTo(l/2,0),t.arc(0,0,l/2,0,Math.PI*2);t.closePath(),t.restore()}function Eon(t,e,n){const o=e[0];if(!o)return;const[i,r]=Bn(n,[o.x,o.y]);t.moveTo(i,r);for(let s=1;s\u003ce.length;s++){const a=e[s];if(!a)continue;const[A,c]=Bn(n,[a.x,a.y]);t.lineTo(A,c)}t.closePath()}function Eli(t){if(t.shape===\"circle\")return AP(t.x,t.y,t.radius,t.radius);if(t.shape===\"rect\"||t.shape===\"rotated_rect\"||t.shape===\"pill\"||t.shape===\"rotated_pill\"){const e=Math.hypot(t.width/2,t.height/2);return(t.shape===\"rotated_rect\"||t.shape===\"rotated_pill\")\u0026\u0026(t.ccw_rotation??0)!==0?AP(t.x,t.y,e,e):AP(t.x,t.y,t.width/2,t.height/2)}if(t.shape===\"polygon\"\u0026\u0026t.points\u0026\u0026t.points.length\u003e=3)return Bon(t.points)}function Bli(t){if(t.shape===\"polygon\")return Bon(t.points);if(t.shape===\"circle\")return AP(t.x,t.y,t.radius,t.radius);if(t.shape===\"oval\"){if((t.rotation??0)!==0){const o=Math.hypot(t.radiusX,t.radiusY);return AP(t.x,t.y,o,o)}return AP(t.x,t.y,t.radiusX,t.radiusY)}const e=t.width/2,n=t.height/2;if((t.rotation??0)!==0){const o=Math.hypot(e,n);return AP(t.x,t.y,o,o)}return AP(t.x,t.y,e,n)}function bli(t){if(t.shape===\"circle\")return t.radius\u003c=0?void 0:{shape:\"circle\",x:t.center.x,y:t.center.y,radius:t.radius};if(t.shape===\"rect\")return t.width\u003c=0||t.height\u003c=0?void 0:{shape:\"rect\",x:t.center.x,y:t.center.y,width:t.width,height:t.height,radius:t.corner_radius,rotation:t.rotation};if(t.shape===\"polygon\"\u0026\u0026t.points.length\u003e=3)return{shape:\"polygon\",points:t.points}}function Bon(t){let e=1/0,n=-1/0,o=1/0,i=-1/0;for(const r of t)e=Math.min(e,r.x),n=Math.max(n,r.x),o=Math.min(o,r.y),i=Math.max(i,r.y);return{minX:e,maxX:n,minY:o,maxY:i}}function AP(t,e,n,o){return{minX:t-n,maxX:t+n,minY:e-o,maxY:e+o}}function Sli(t,e){return t.minX\u003c=e.maxX\u0026\u0026t.maxX\u003e=e.minX\u0026\u0026t.minY\u003c=e.maxY\u0026\u0026t.maxY\u003e=e.minY}function Qli(t){if(t.hole_shape===\"circle\"){const e=t.hole_diameter/2;return e\u003c=0?void 0:{shape:\"circle\",x:t.x,y:t.y,radius:e}}if(t.hole_shape===\"square\")return t.hole_diameter\u003c=0?void 0:{shape:\"rect\",x:t.x,y:t.y,width:t.hole_diameter,height:t.hole_diameter,rotation:Lhe(t)};if(t.hole_shape===\"oval\")return t.hole_width\u003c=0||t.hole_height\u003c=0?void 0:{shape:\"oval\",x:t.x,y:t.y,radiusX:t.hole_width/2,radiusY:t.hole_height/2,rotation:Lhe(t)};if(t.hole_shape===\"rect\")return t.hole_width\u003c=0||t.hole_height\u003c=0?void 0:{shape:\"rect\",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:Lhe(t)};if(t.hole_shape===\"pill\"||t.hole_shape===\"rotated_pill\")return t.hole_width\u003c=0||t.hole_height\u003c=0?void 0:{shape:\"pill\",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:Lhe(t)}}function vli(t){if(t.shape===\"circle\"){const i=t.hole_diameter/2;return i\u003c=0?void 0:{shape:\"circle\",x:t.x,y:t.y,radius:i}}if(t.shape===\"oval\"){const i=t.hole_width/2,r=t.hole_height/2;return i\u003c=0||r\u003c=0?void 0:{shape:\"oval\",x:t.x,y:t.y,radiusX:i,radiusY:r,rotation:t.ccw_rotation}}if(t.shape===\"pill\")return t.hole_width\u003c=0||t.hole_height\u003c=0?void 0:{shape:\"pill\",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:t.ccw_rotation};if(t.shape===\"circular_hole_with_rect_pad\"){const i=t.hole_diameter/2;return i\u003c=0?void 0:{shape:\"circle\",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),radius:i}}if(t.shape===\"pill_hole_with_rect_pad\")return t.hole_width\u003c=0||t.hole_height\u003c=0?void 0:{shape:\"pill\",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height};if(t.shape===\"rotated_pill_hole_with_rect_pad\")return t.hole_width\u003c=0||t.hole_height\u003c=0?void 0:{shape:\"pill\",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height,rotation:t.hole_ccw_rotation};if(t.shape!==\"hole_with_polygon_pad\")return;const e=t.x+(t.hole_offset_x??0),n=t.y+(t.hole_offset_y??0),o=t.hole_shape;if(o===\"circle\"){const i=(t.hole_diameter??0)/2;return i\u003c=0?void 0:{shape:\"circle\",x:e,y:n,radius:i}}if(o===\"oval\"){const i=(t.hole_width??0)/2,r=(t.hole_height??0)/2;return i\u003c=0||r\u003c=0?void 0:{shape:\"oval\",x:e,y:n,radiusX:i,radiusY:r}}if(o===\"pill\"||o===\"rotated_pill\"){const i=t.hole_width??0,r=t.hole_height??0;return i\u003c=0||r\u003c=0?void 0:{shape:\"pill\",x:e,y:n,width:i,height:r,rotation:o===\"rotated_pill\"?t.ccw_rotation:0}}}function Lhe(t){return\"ccw_rotation\"in t\u0026\u0026typeof t.ccw_rotation==\"number\"?t.ccw_rotation:0}function wli(t){return t.shape===\"rect\"||t.shape===\"rotated_rect\"?t.corner_radius??t.rect_border_radius??0:0}function bon(t,e){if(!t||t.length===0)return!0;const n=Son(e);return t.some(o=\u003eSon(o)===n)}function Son(t){if(typeof t==\"string\")return t;if(t\u0026\u0026typeof t==\"object\"\u0026\u0026\"name\"in t\u0026\u0026typeof t.name==\"string\")return t.name}function Pli(t,e){const n=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),i=parseInt(t.slice(5,7),16);return`rgba(${n}, ${o}, ${i}, ${e})`}function Mli(t,e){return t.layers.includes(\"bottom\")\u0026\u0026!t.layers.includes(\"top\")?e.keepout.bottom:e.keepout.top}function Qon(t){const{ctx:e,strokeColor:n,hatchWidth:o,hatchSpacing:i,diagonal:r,getLineEndpoints:s}=t;e.strokeStyle=n,e.lineWidth=o,e.setLineDash([]);for(let a=-r;a\u003cr*2;a+=i){const{startX:A,startY:c,endX:l,endY:u}=s(a);e.beginPath(),e.moveTo(A,c),e.lineTo(l,u),e.stroke()}}function von(t){const{ctx:e,fillColor:n,drawPath:o,drawHatch:i}=t;o(),e.fillStyle=n,e.fill(),o(),e.clip(),i()}function Dli(t){const{ctx:e,keepout:n,realToCanvasMat:o,colorMap:i}=t,r=Math.abs(o.a),s=Mli(n,i),a=Pli(s,.2),A=1*r,c=.15*r;if(n.shape===\"rect\"){const[l,u]=Bn(o,[n.center.x,n.center.y]),g=n.width*r,h=n.height*r,d=n.rotation??0,p=Math.sqrt(g*g+h*h),m=g/2,_=h/2;e.save(),e.translate(l,u),d!==0\u0026\u0026e.rotate(-d*(Math.PI/180)),von({ctx:e,fillColor:a,drawPath:()=\u003efli({ctx:e,cx:0,cy:0,width:g,height:h}),drawHatch:()=\u003eQon({ctx:e,strokeColor:s,hatchWidth:c,hatchSpacing:A,diagonal:p,getLineEndpoints:f=\u003e({startX:-m+f,startY:-_,endX:-m+f+p,endY:-_+p})})}),e.restore();return}if(n.shape===\"circle\"){const[l,u]=Bn(o,[n.center.x,n.center.y]),g=n.radius*r,h=g*2;e.save(),e.translate(l,u),von({ctx:e,fillColor:a,drawPath:()=\u003e_li({ctx:e,cx:0,cy:0,radius:g}),drawHatch:()=\u003eQon({ctx:e,strokeColor:s,hatchWidth:c,hatchSpacing:A,diagonal:h,getLineEndpoints:d=\u003e({startX:d-h,startY:-h,endX:d+h,endY:h})})}),e.restore()}}var Nli=\"rgba(255,255,255,0.5)\";function Rli(t){const{ctx:e,pcbNoteDimension:n,realToCanvasMat:o}=t,i=n.color??Nli;_on({ctx:e,from:n.from,to:n.to,realToCanvasMat:o,color:i,fontSize:n.font_size,arrowSize:n.arrow_size,text:n.text,textRotation:n.text_ccw_rotation,offset:n.offset_distance\u0026\u0026n.offset_direction?{distance:n.offset_distance,direction:n.offset_direction}:void 0})}function Tli(t){const{ctx:e,line:n,realToCanvasMat:o}=t,r=n.color??\"rgb(89, 148, 220)\",s=n.stroke_width??.1,a=n.is_dashed??!1,[A,c]=Bn(o,[n.x1,n.y1]),[l,u]=Bn(o,[n.x2,n.y2]),g=s*Math.abs(o.a);e.save(),a?e.setLineDash([g*2,g*2]):e.setLineDash([]),e.beginPath(),e.moveTo(A,c),e.lineTo(l,u),e.lineWidth=g,e.strokeStyle=r,e.lineCap=\"round\",e.stroke(),e.restore()}function kli(t){const{ctx:e,path:n,realToCanvasMat:o}=t,r=n.color??\"rgb(89, 148, 220)\";if(!(!n.route||n.route.length\u003c2))for(let s=0;s\u003cn.route.length-1;s++){const a=n.route[s],A=n.route[s+1];!a||!A||QY({ctx:e,start:{x:a.x,y:a.y},end:{x:A.x,y:A.y},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}}function Fli(t){const{ctx:e,rect:n,realToCanvasMat:o}=t,r=n.color??\"rgb(89, 148, 220)\",s=n.is_filled??!1,a=n.has_stroke??!0,A=n.is_stroke_dashed??!1;Bp({ctx:e,center:n.center,width:n.width,height:n.height,fill:s?r:void 0,stroke:a?r:void 0,strokeWidth:a?n.stroke_width:void 0,borderRadius:n.corner_radius,realToCanvasMat:o,isStrokeDashed:A})}var Lli=\"rgb(89, 148, 220)\";function Hli(t){const{ctx:e,text:n,realToCanvasMat:o}=t,i=Lli,r=n.color??i,s=n.font_size??1;SY({ctx:e,text:n.text??\"\",x:n.anchor_position.x,y:n.anchor_position.y,fontSize:s,color:r,realToCanvasMat:o,anchorAlignment:n.anchor_alignment??\"center\",mirrorX:n.is_mirrored_from_top_view??n.layer===\"bottom\"})}function Oli(t){const{ctx:e,panel:n,realToCanvasMat:o,colorMap:i}=t,{width:r,height:s,center:a}=n;if(r!==void 0\u0026\u0026s!==void 0\u0026\u0026a){const A=r/2,c=s/2,l=[{x:a.x-A,y:a.y-c},{x:a.x+A,y:a.y-c},{x:a.x+A,y:a.y+c},{x:a.x-A,y:a.y+c}];khe({ctx:e,points:l,stroke:i.boardOutline,strokeWidth:.5,realToCanvasMat:o,closePath:!0})}}function CX(t,e){if(t.length\u003c3||e===0)return t;let n=0,o=0;for(const r of t)n+=r.x,o+=r.y;n/=t.length,o/=t.length;const i=[];for(const r of t){const s=r.x-n,a=r.y-o,A=Math.sqrt(s*s+a*a);if(A\u003e0){const c=s/A,l=a/A;i.push({x:r.x+c*e,y:r.y+l*e})}else i.push({x:r.x+e,y:r.y})}return i}function won(t){const{ctx:e,hole:n,realToCanvasMat:o,colorMap:i,soldermaskMargin:r=0,drawSoldermask:s}=t;if(n.is_covered_with_solder_mask===!0\u0026\u0026s)return;const a=i.copper[t.layer??\"top\"],A=r\u003c0?Math.abs(r):0;if(n.shape===\"circle\"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2-A,fill:a,realToCanvasMat:o}),B6(e,()=\u003e{dm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:\"#000\",realToCanvasMat:o})}),dm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o});return}if(n.shape===\"oval\"){JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.outer_width/2-A,radius_y:n.outer_height/2-A,fill:a,realToCanvasMat:o,rotation:n.ccw_rotation}),B6(e,()=\u003e{JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,fill:\"#000\",realToCanvasMat:o,rotation:n.ccw_rotation})}),JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,fill:i.drill,realToCanvasMat:o,rotation:n.ccw_rotation});return}if(n.shape===\"pill\"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.outer_width-A*2,height:n.outer_height-A*2,fill:a,realToCanvasMat:o,rotation:n.ccw_rotation}),B6(e,()=\u003e{A_({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,fill:\"#000\",realToCanvasMat:o,rotation:n.ccw_rotation})}),A_({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o,rotation:n.ccw_rotation});return}if(n.shape===\"circular_hole_with_rect_pad\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0,ccwRotationDegrees:n.rect_ccw_rotation});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);B6(e,()=\u003e{dm({ctx:e,center:{x:c,y:l},radius:n.hole_diameter/2,fill:\"#000\",realToCanvasMat:o})}),dm({ctx:e,center:{x:c,y:l},radius:n.hole_diameter/2,fill:i.drill,realToCanvasMat:o});return}if(n.shape===\"pill_hole_with_rect_pad\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);B6(e,()=\u003e{A_({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:\"#000\",realToCanvasMat:o})}),A_({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o});return}if(n.shape===\"rotated_pill_hole_with_rect_pad\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width-A*2,height:n.rect_pad_height-A*2,fill:a,realToCanvasMat:o,borderRadius:n.rect_border_radius?Math.max(0,n.rect_border_radius-A):0,ccwRotationDegrees:n.rect_ccw_rotation});const c=n.x+(n.hole_offset_x??0),l=n.y+(n.hole_offset_y??0);B6(e,()=\u003e{A_({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:\"#000\",realToCanvasMat:o,rotation:n.hole_ccw_rotation})}),A_({ctx:e,center:{x:c,y:l},width:n.hole_width,height:n.hole_height,fill:i.drill,realToCanvasMat:o,rotation:n.hole_ccw_rotation});return}if(n.shape===\"hole_with_polygon_pad\"){const c=n.pad_outline;if(c\u0026\u0026c.length\u003e=3){const h=c.map(p=\u003e({x:n.x+p.x,y:n.y+p.y})),d=A\u003e0?CX(h,-A):h;d.length\u003e=3\u0026\u0026sP({ctx:e,points:d,fill:a,realToCanvasMat:o})}const l=n.x+(n.hole_offset_x??0),u=n.y+(n.hole_offset_y??0),g=n.hole_shape;g===\"circle\"?(B6(e,()=\u003e{dm({ctx:e,center:{x:l,y:u},radius:(n.hole_diameter??0)/2,fill:\"#000\",realToCanvasMat:o})}),dm({ctx:e,center:{x:l,y:u},radius:(n.hole_diameter??0)/2,fill:i.drill,realToCanvasMat:o})):g===\"oval\"?(B6(e,()=\u003e{JB({ctx:e,center:{x:l,y:u},radius_x:(n.hole_width??0)/2,radius_y:(n.hole_height??0)/2,fill:\"#000\",realToCanvasMat:o})}),JB({ctx:e,center:{x:l,y:u},radius_x:(n.hole_width??0)/2,radius_y:(n.hole_height??0)/2,fill:i.drill,realToCanvasMat:o})):g===\"pill\"?(B6(e,()=\u003e{A_({ctx:e,center:{x:l,y:u},width:n.hole_width??0,height:n.hole_height??0,fill:\"#000\",realToCanvasMat:o})}),A_({ctx:e,center:{x:l,y:u},width:n.hole_width??0,height:n.hole_height??0,fill:i.drill,realToCanvasMat:o})):g===\"rotated_pill\"\u0026\u0026(B6(e,()=\u003e{A_({ctx:e,center:{x:l,y:u},width:n.hole_width??0,height:n.hole_height??0,fill:\"#000\",realToCanvasMat:o})}),A_({ctx:e,center:{x:l,y:u},width:n.hole_width??0,height:n.hole_height??0,fill:i.drill,realToCanvasMat:o}));return}}function B6(t,e){t.save(),t.globalCompositeOperation=\"destination-out\",e(),t.restore()}function Gli(t,e){return t===\"bottom\"?e.silkscreen.bottom:e.silkscreen.top}function Yli(t){const{ctx:e,circle:n,realToCanvasMat:o,colorMap:i}=t,r=Gli(n.layer,i);dm({ctx:e,center:n.center,radius:n.radius,stroke:r,strokeWidth:n.stroke_width,realToCanvasMat:o})}function Uli(t){const{ctx:e,graphic:n,realToCanvasMat:o,colorMap:i}=t,r=n.layer===\"bottom\"?i.silkscreen.bottom:i.silkscreen.top;e.beginPath(),pon({ctx:e,shape:n.brep_shape,realToCanvasMat:o}),e.fillStyle=r,e.fill(\"evenodd\")}function Kli(t,e){return t===\"bottom\"?e.silkscreen.bottom:e.silkscreen.top}function Vli(t){const{ctx:e,line:n,realToCanvasMat:o,colorMap:i}=t,r=Kli(n.layer,i);QY({ctx:e,start:{x:n.x1,y:n.y1},end:{x:n.x2,y:n.y2},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}function zli(t,e){return t===\"bottom\"?e.silkscreen.bottom:e.silkscreen.top}function Jli(t){const{ctx:e,oval:n,realToCanvasMat:o,colorMap:i}=t,r=zli(n.layer,i);JB({ctx:e,center:n.center,radius_x:n.radius_x,radius_y:n.radius_y,stroke:r,strokeWidth:.1,realToCanvasMat:o,rotation:n.ccw_rotation??0})}function Wli(t,e){return t===\"bottom\"?e.silkscreen.bottom:e.silkscreen.top}function jli(t){const{ctx:e,path:n,realToCanvasMat:o,colorMap:i}=t,r=Wli(n.layer,i);if(!(!n.route||n.route.length\u003c2))for(let s=0;s\u003cn.route.length-1;s++){const a=n.route[s],A=n.route[s+1];!a||!A||QY({ctx:e,start:{x:a.x,y:a.y},end:{x:A.x,y:A.y},strokeWidth:n.stroke_width??.1,stroke:r,realToCanvasMat:o})}}function $li(t,e){return t===\"bottom\"?e.silkscreen.bottom:e.silkscreen.top}function qli(t){const{ctx:e,pill:n,realToCanvasMat:o,colorMap:i}=t,r=$li(n.layer,i);A_({ctx:e,center:n.center,width:n.width,height:n.height,stroke:r,strokeWidth:.2,realToCanvasMat:o})}function Xli(t,e){return t===\"bottom\"?e.silkscreen.bottom:e.silkscreen.top}function Zli(t){const{ctx:e,rect:n,realToCanvasMat:o,colorMap:i}=t,r=Xli(n.layer,i);Bp({ctx:e,center:n.center,width:n.width,height:n.height,borderRadius:n.corner_radius,fill:n.is_filled?r:\"transparent\",stroke:r,strokeWidth:n.stroke_width,realToCanvasMat:o})}function e0i(t,e){return t===\"bottom\"?e.silkscreen.bottom:e.silkscreen.top}function t0i(t){return t||\"center\"}function n0i(t){const{ctx:e,text:n,realToCanvasMat:o,colorMap:i}=t,r=n.text??\"\";if(!r)return;const s=e0i(n.layer,i),a=t0i(n.anchor_alignment),A=n.font_size??1;SY({ctx:e,text:r,x:n.anchor_position.x,y:n.anchor_position.y,fontSize:A,color:s,realToCanvasMat:o,anchorAlignment:a,rotation:n.ccw_rotation??0,mirrorX:n.layer===\"bottom\",knockout:n.is_knockout,knockoutPadding:n.is_knockout?n.knockout_padding:void 0})}function o0i(t,e){return e.copper[t]??e.copper.top}function Pon(t){return t.shape===\"rect\"||t.shape===\"rotated_rect\"?t.corner_radius??t.rect_border_radius??0:0}function i0i(t){const{ctx:e,pad:n,realToCanvasMat:o,colorMap:i}=t,r=o0i(n.layer,i),s=Cli(t);if(s.length\u003e0){Ili({ctx:e,pad:n,realToCanvasMat:o,color:r,drillCutouts:s});return}if(n.shape===\"rect\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,borderRadius:Pon(n)});return}if(n.shape===\"rotated_rect\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,borderRadius:Pon(n),ccwRotationDegrees:n.ccw_rotation??0});return}if(n.shape===\"circle\"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.radius,fill:r,realToCanvasMat:o});return}if(n.shape===\"pill\"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o});return}if(n.shape===\"rotated_pill\"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,fill:r,realToCanvasMat:o,rotation:n.ccw_rotation??0});return}if(n.shape===\"polygon\"){n.points\u0026\u0026n.points.length\u003e=3\u0026\u0026sP({ctx:e,points:n.points,fill:r,realToCanvasMat:o});return}}var yX=\"rgb(105, 105, 105)\";function Mon(t){const{ctx:e,solderPaste:n,realToCanvasMat:o}=t,i={x:n.x,y:n.y};if(n.shape===\"rect\"){Bp({ctx:e,center:i,width:n.width,height:n.height,fill:yX,realToCanvasMat:o});return}if(n.shape===\"rotated_rect\"){Bp({ctx:e,center:i,width:n.width,height:n.height,fill:yX,realToCanvasMat:o,ccwRotationDegrees:n.ccw_rotation});return}if(n.shape===\"pill\"){A_({ctx:e,center:i,width:n.width,height:n.height,fill:yX,realToCanvasMat:o});return}if(n.shape===\"oval\"){JB({ctx:e,center:i,radius_x:n.width/2,radius_y:n.height/2,fill:yX,realToCanvasMat:o});return}n.shape===\"circle\"\u0026\u0026dm({ctx:e,center:i,radius:n.radius,fill:yX,realToCanvasMat:o})}function r0i(t){return typeof t==\"function\"}function Don(t,e,n){if(e\u003c=0||n\u003c=0)return null;const o=globalThis;let i=null;if(\"OffscreenCanvas\"in o\u0026\u0026typeof o.OffscreenCanvas==\"function\")i=new o.OffscreenCanvas(e,n);else if(\"document\"in o\u0026\u0026o.document\u0026\u0026typeof o.document.createElement==\"function\"){const s=o.document.createElement(\"canvas\");s.width=e,s.height=n,i=s}else{const s=t.canvas.constructor;if(r0i(s))try{i=new s(e,n)}catch{return null}}if(!i)return null;const r=i.getContext(\"2d\");return r\u0026\u0026(r.boardOwnerMap=t.boardOwnerMap),r}function s0i(t){return\"createPattern\"in t\u0026\u0026typeof Reflect.get(t,\"createPattern\")==\"function\"}function Non(t,e){if(t===e||e.canvas.width\u003c=0||e.canvas.height\u003c=0||!s0i(t))return!1;let n=null;try{n=t.createPattern(e.canvas,\"no-repeat\")}catch{return!1}return n?(t.save(),t.globalCompositeOperation=\"source-over\",t.fillStyle=n,t.fillRect(0,0,e.canvas.width,e.canvas.height),t.restore(),!0):!1}function Ron(t){const{ctx:e,board:n,realToCanvasMat:o,soldermaskColor:i}=t,{width:r,height:s,center:a,outline:A}=n;if(A\u0026\u0026Array.isArray(A)\u0026\u0026A.length\u003e=3){const c=A.map(l=\u003e{const[u,g]=Bn(o,[l.x,l.y]);return{x:u,y:g}});e.beginPath(),aP({ctx:e,points:c}),e.fillStyle=i,e.fill()}else if(r!==void 0\u0026\u0026s!==void 0\u0026\u0026a){const[c,l]=Bn(o,[a.x,a.y]),u=r*Math.abs(o.a),g=s*Math.abs(o.a);e.fillStyle=i,e.fillRect(c-u/2,l-g/2,u,g)}}function a0i(t){const{ctx:e,panel:n,realToCanvasMat:o,soldermaskColor:i}=t,{width:r,height:s,center:a}=n;if(r===void 0||s===void 0||!a)return;const[A,c]=Bn(o,[a.x,a.y]),l=r*Math.abs(o.a),u=s*Math.abs(o.a);e.fillStyle=i,e.fillRect(A-l/2,c-u/2,l,u)}function EE(t){t.save(),t.globalCompositeOperation=\"destination-out\",t.fill(),t.restore()}function A0i(t){const{ctx:e,cutout:n,realToCanvasMat:o}=t;if(n.shape===\"rect\"){const[i,r]=Bn(o,[n.center?.x??0,n.center?.y??0]),s=n.width*Math.abs(o.a),a=n.height*Math.abs(o.a),A=(n.corner_radius??0)*Math.abs(o.a);e.save(),e.translate(i,r),n.rotation\u0026\u0026e.rotate(-n.rotation*Math.PI/180),e.beginPath(),xE({ctx:e,cx:0,cy:0,width:s,height:a,radius:A}),e.restore(),EE(e)}else if(n.shape===\"circle\"){const[i,r]=Bn(o,[n.center?.x??0,n.center?.y??0]),s=n.radius*Math.abs(o.a);e.beginPath(),e.arc(i,r,s,0,Math.PI*2),e.closePath(),EE(e)}else if(n.shape===\"polygon\"\u0026\u0026n.points\u0026\u0026n.points.length\u003e=3){const i=n.points.map(r=\u003e{const[s,a]=Bn(o,[r.x,r.y]);return{x:s,y:a}});e.beginPath(),aP({ctx:e,points:i}),EE(e)}}var s1=\"rgba(255, 255, 255, 1)\";function tVe(t){const{ctx:e,elements:n,layer:o,realToCanvasMat:i}=t;e.save(),e.globalCompositeOperation=\"destination-out\";for(const r of n){if(r.type===\"pcb_smtpad\"){if(r.layer!==o||r.is_covered_with_solder_mask===!0)continue;c0i({ctx:e,pad:r,realToCanvasMat:i});continue}if(r.type===\"pcb_plated_hole\"){if(r.layers\u0026\u0026!r.layers.includes(o)||r.is_covered_with_solder_mask===!0)continue;l0i({ctx:e,hole:r,realToCanvasMat:i});continue}if(r.type===\"pcb_via\"){if(r.layers\u0026\u0026!r.layers.includes(o))continue;dm({ctx:e,center:{x:r.x,y:r.y},radius:r.outer_diameter/2,fill:s1,realToCanvasMat:i});continue}if(r.type===\"pcb_hole\"){if(r.is_covered_with_solder_mask===!0)continue;u0i({ctx:e,hole:r,realToCanvasMat:i})}}e.restore()}function c0i(t){const{ctx:e,pad:n,realToCanvasMat:o}=t;if(n.shape===\"rect\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,borderRadius:n.corner_radius??n.rect_border_radius??0,fill:s1,realToCanvasMat:o});return}if(n.shape===\"rotated_rect\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,borderRadius:n.corner_radius??n.rect_border_radius??0,ccwRotationDegrees:n.ccw_rotation??0,fill:s1,realToCanvasMat:o});return}if(n.shape===\"circle\"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.radius,fill:s1,realToCanvasMat:o});return}if(n.shape===\"pill\"||n.shape===\"rotated_pill\"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.width,height:n.height,rotation:n.shape===\"rotated_pill\"?n.ccw_rotation??0:0,fill:s1,realToCanvasMat:o});return}n.shape===\"polygon\"\u0026\u0026n.points\u0026\u0026n.points.length\u003e=3\u0026\u0026sP({ctx:e,points:n.points,fill:s1,realToCanvasMat:o})}function l0i(t){const{ctx:e,hole:n,realToCanvasMat:o}=t;if(n.shape===\"circle\"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.outer_diameter/2,fill:s1,realToCanvasMat:o});return}if(n.shape===\"oval\"){JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.outer_width/2,radius_y:n.outer_height/2,rotation:n.ccw_rotation,fill:s1,realToCanvasMat:o});return}if(n.shape===\"pill\"){A_({ctx:e,center:{x:n.x,y:n.y},width:n.outer_width,height:n.outer_height,rotation:n.ccw_rotation,fill:s1,realToCanvasMat:o});return}if(n.shape===\"circular_hole_with_rect_pad\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,ccwRotationDegrees:n.rect_ccw_rotation,fill:s1,realToCanvasMat:o});return}if(n.shape===\"pill_hole_with_rect_pad\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,fill:s1,realToCanvasMat:o});return}if(n.shape===\"rotated_pill_hole_with_rect_pad\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.rect_pad_width,height:n.rect_pad_height,borderRadius:n.rect_border_radius??0,ccwRotationDegrees:n.rect_ccw_rotation,fill:s1,realToCanvasMat:o});return}n.shape===\"hole_with_polygon_pad\"\u0026\u0026n.pad_outline\u0026\u0026n.pad_outline.length\u003e=3\u0026\u0026sP({ctx:e,points:n.pad_outline.map(i=\u003e({x:n.x+i.x,y:n.y+i.y})),fill:s1,realToCanvasMat:o})}function u0i(t){const{ctx:e,hole:n,realToCanvasMat:o}=t,i=\"ccw_rotation\"in n\u0026\u0026typeof n.ccw_rotation==\"number\"?n.ccw_rotation:0;if(n.hole_shape===\"circle\"){dm({ctx:e,center:{x:n.x,y:n.y},radius:n.hole_diameter/2,fill:s1,realToCanvasMat:o});return}if(n.hole_shape===\"square\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_diameter,height:n.hole_diameter,ccwRotationDegrees:i,fill:s1,realToCanvasMat:o});return}if(n.hole_shape===\"oval\"){JB({ctx:e,center:{x:n.x,y:n.y},radius_x:n.hole_width/2,radius_y:n.hole_height/2,rotation:i,fill:s1,realToCanvasMat:o});return}if(n.hole_shape===\"rect\"){Bp({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,ccwRotationDegrees:i,fill:s1,realToCanvasMat:o});return}(n.hole_shape===\"pill\"||n.hole_shape===\"rotated_pill\")\u0026\u0026A_({ctx:e,center:{x:n.x,y:n.y},width:n.hole_width,height:n.hole_height,rotation:i,fill:s1,realToCanvasMat:o})}function g0i(t,e,n,o,i){if(Math.abs(i)\u003c1e-10)return null;const r=n-t,s=o-e,a=Math.hypot(r,s);if(a\u003c1e-10)return null;const A=Math.abs(i)*(a/2),c=a/2,l=(A*A+c*c)/(2*A),u=l-A,g=(t+n)/2,h=(e+o)/2,d=-s/a,p=r/a,m=i\u003e0?-1:1;return{centerX:g+m*d*u,centerY:h+m*p*u,radius:l}}function nVe(t,e,n,o,i,r,s){if(Math.abs(r)\u003c1e-10){const[C,y]=Bn(s,[o,i]);t.lineTo(C,y);return}const a=g0i(e,n,o,i,r);if(!a){const[C,y]=Bn(s,[o,i]);t.lineTo(C,y);return}const[A,c]=Bn(s,[e,n]),[l,u]=Bn(s,[o,i]),[g,h]=Bn(s,[a.centerX,a.centerY]),d=Math.hypot(A-g,c-h),p=Math.atan2(c-h,A-g),m=Math.atan2(u-h,l-g),f=s.a*s.d-s.b*s.c\u003c0,I=r\u003e0?!f:f;t.arc(g,h,d,p,m,I)}function Ton(t,e,n){if(e.vertices.length\u003c2)return;if(e.vertices.length===2){const s=e.vertices[0],a=e.vertices[1];if(s\u0026\u0026a\u0026\u0026Math.abs((s.bulge??0)-1)\u003c1e-10\u0026\u0026Math.abs((a.bulge??0)-1)\u003c1e-10){const[A,c]=Bn(n,[s.x,s.y]);t.moveTo(A,c),nVe(t,s.x,s.y,a.x,a.y,1,n),nVe(t,a.x,a.y,s.x,s.y,1,n);return}}const o=e.vertices[0];if(!o)return;const[i,r]=Bn(n,[o.x,o.y]);t.moveTo(i,r);for(let s=0;s\u003ce.vertices.length;s++){const a=e.vertices[s],A=e.vertices[(s+1)%e.vertices.length];if(!a||!A)continue;const c=a.bulge??0;if(Math.abs(c)\u003c1e-10){const[l,u]=Bn(n,[A.x,A.y]);t.lineTo(l,u)}else nVe(t,a.x,a.y,A.x,A.y,c,n)}}function d0i(t){const{ctx:e,pour:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r,elements:s}=t;if(n.layer===r\u0026\u0026n.covered_with_solder_mask===!0){if(e.save(),e.fillStyle=i,n.shape===\"rect\"){const[a,A]=Bn(o,[n.center.x,n.center.y]),c=n.width*Math.abs(o.a),l=n.height*Math.abs(o.a);e.translate(a,A),n.rotation\u0026\u0026e.rotate(-n.rotation*(Math.PI/180)),e.beginPath(),e.rect(-c/2,-l/2,c,l),e.fill(),e.restore(),tVe({ctx:e,elements:s,layer:r,realToCanvasMat:o});return}if(n.shape===\"polygon\"){if(n.points\u0026\u0026n.points.length\u003e=3){const a=n.points.map(c=\u003eBn(o,[c.x,c.y])),A=a[0];if(A){e.beginPath();const[c,l]=A;e.moveTo(c,l);for(let u=1;u\u003ca.length;u++){const g=a[u];if(!g)continue;const[h,d]=g;e.lineTo(h,d)}e.closePath(),e.fill(),tVe({ctx:e,elements:s,layer:r,realToCanvasMat:o})}}e.restore();return}if(n.shape===\"brep\"){if(e.beginPath(),Ton(e,n.brep_shape.outer_ring,o),n.brep_shape.inner_rings)for(const a of n.brep_shape.inner_rings)Ton(e,a,o);e.fill(\"evenodd\"),tVe({ctx:e,elements:s,layer:r,realToCanvasMat:o}),e.restore();return}e.restore()}}function h0i(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i}=t,r=n.is_covered_with_solder_mask===!0,s=n.soldermask_margin??0;r?(e.fillStyle=i,Hhe({ctx:e,hole:n,realToCanvasMat:o,margin:0}),e.fill()):s\u003c0?(Hhe({ctx:e,hole:n,realToCanvasMat:o,margin:s}),EE(e),p0i({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:s})):s\u003e0?(Hhe({ctx:e,hole:n,realToCanvasMat:o,margin:s}),EE(e)):(Hhe({ctx:e,hole:n,realToCanvasMat:o,margin:0}),EE(e))}function kon(t){return\"ccw_rotation\"in t\u0026\u0026typeof t.ccw_rotation==\"number\"?t.ccw_rotation:0}function Hhe(t){const{ctx:e,hole:n,realToCanvasMat:o,margin:i}=t,r=kon(n);if(n.hole_shape===\"circle\"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_diameter/2+i)*Math.abs(o.a);e.beginPath(),e.arc(s,a,A,0,Math.PI*2),e.closePath()}else if(n.hole_shape===\"square\"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_diameter+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0\u0026\u0026e.rotate(-r*Math.PI/180),e.beginPath(),e.rect(-A/2,-A/2,A,A),e.closePath(),e.restore()}else if(n.hole_shape===\"oval\"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_width/2+i)*Math.abs(o.a),c=(n.hole_height/2+i)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0\u0026\u0026e.rotate(-r*Math.PI/180),e.beginPath(),e.ellipse(0,0,A,c,0,0,Math.PI*2),e.closePath(),e.restore()}else if(n.hole_shape===\"rect\"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_width+i*2)*Math.abs(o.a),c=(n.hole_height+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0\u0026\u0026e.rotate(-r*Math.PI/180),e.beginPath(),e.rect(-A/2,-c/2,A,c),e.closePath(),e.restore()}else if(n.hole_shape===\"pill\"||n.hole_shape===\"rotated_pill\"){const[s,a]=Bn(o,[n.x,n.y]),A=(n.hole_width+i*2)*Math.abs(o.a),c=(n.hole_height+i*2)*Math.abs(o.a);e.save(),e.translate(s,a),r!==0\u0026\u0026e.rotate(-r*Math.PI/180),e.beginPath(),aS({ctx:e,cx:0,cy:0,width:A,height:c}),e.restore()}}function p0i(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:r}=t,s=Math.abs(r),a=kon(n);if(e.fillStyle=i,n.hole_shape===\"circle\"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_diameter/2*Math.abs(o.a),u=s*Math.abs(o.a),g=Math.max(0,l-u);e.save(),e.beginPath(),e.arc(A,c,l,0,Math.PI*2),g\u003e0\u0026\u0026e.arc(A,c,g,0,Math.PI*2,!0),e.fill(\"evenodd\"),e.restore()}else if(n.hole_shape===\"square\"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_diameter*Math.abs(o.a),u=s*Math.abs(o.a),g=Math.max(0,l-u*2);e.save(),e.translate(A,c),a!==0\u0026\u0026e.rotate(-a*Math.PI/180),e.beginPath(),e.rect(-l/2,-l/2,l,l),g\u003e0\u0026\u0026e.rect(-g/2,-g/2,g,g),e.fill(\"evenodd\"),e.restore()}else if(n.hole_shape===\"oval\"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_width/2*Math.abs(o.a),u=n.hole_height/2*Math.abs(o.a),g=s*Math.abs(o.a),h=Math.max(0,l-g),d=Math.max(0,u-g);e.save(),e.translate(A,c),a!==0\u0026\u0026e.rotate(-a*Math.PI/180),e.beginPath(),e.ellipse(0,0,l,u,0,0,Math.PI*2),h\u003e0\u0026\u0026d\u003e0\u0026\u0026(e.moveTo(h,0),e.ellipse(0,0,h,d,0,0,Math.PI*2)),e.fill(\"evenodd\"),e.restore()}else if(n.hole_shape===\"rect\"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_width*Math.abs(o.a),u=n.hole_height*Math.abs(o.a),g=s*Math.abs(o.a),h=Math.max(0,l-g*2),d=Math.max(0,u-g*2);e.save(),e.translate(A,c),a!==0\u0026\u0026e.rotate(-a*Math.PI/180),e.beginPath(),e.rect(-l/2,-u/2,l,u),h\u003e0\u0026\u0026d\u003e0\u0026\u0026e.rect(-h/2,-d/2,h,d),e.fill(\"evenodd\"),e.restore()}else if(n.hole_shape===\"pill\"||n.hole_shape===\"rotated_pill\"){const[A,c]=Bn(o,[n.x,n.y]),l=n.hole_width*Math.abs(o.a),u=n.hole_height*Math.abs(o.a),g=s*Math.abs(o.a);e.save(),e.translate(A,c),a!==0\u0026\u0026e.rotate(-a*Math.PI/180),e.beginPath(),aS({ctx:e,cx:0,cy:0,width:l,height:u});const h=l-g*2,d=u-g*2;h\u003e0\u0026\u0026d\u003e0\u0026\u0026aS({ctx:e,cx:0,cy:0,width:h,height:d}),e.fill(\"evenodd\"),e.restore()}}function m0i(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.layers\u0026\u0026!n.layers.includes(r))return;const s=n.is_covered_with_solder_mask===!0,a=n.soldermask_margin??0;s?(e.fillStyle=i,Ohe({ctx:e,hole:n,realToCanvasMat:o,margin:0}),e.fill()):a\u003c0?(Ohe({ctx:e,hole:n,realToCanvasMat:o,margin:a}),EE(e),_0i({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:a})):a\u003e0?(Ohe({ctx:e,hole:n,realToCanvasMat:o,margin:a}),EE(e)):(Ohe({ctx:e,hole:n,realToCanvasMat:o,margin:0}),EE(e))}function Ohe(t){const{ctx:e,hole:n,realToCanvasMat:o,margin:i}=t;if(n.shape===\"circle\"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.outer_diameter/2+i)*Math.abs(o.a);e.beginPath(),e.arc(r,s,a,0,Math.PI*2),e.closePath()}else if(n.shape===\"oval\"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.outer_width/2+i)*Math.abs(o.a),A=(n.outer_height/2+i)*Math.abs(o.a);e.beginPath(),e.ellipse(r,s,a,A,-((n.ccw_rotation??0)*Math.PI)/180,0,Math.PI*2),e.closePath()}else if(n.shape===\"pill\"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.outer_width+i*2)*Math.abs(o.a),A=(n.outer_height+i*2)*Math.abs(o.a);e.beginPath(),aS({ctx:e,cx:r,cy:s,width:a,height:A,ccwRotationDegrees:n.ccw_rotation})}else if(n.shape===\"circular_hole_with_rect_pad\"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),xE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c,ccwRotationDegrees:n.rect_ccw_rotation})}else if(n.shape===\"pill_hole_with_rect_pad\"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),xE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c})}else if(n.shape===\"rotated_pill_hole_with_rect_pad\"){const[r,s]=Bn(o,[n.x,n.y]),a=(n.rect_pad_width+i*2)*Math.abs(o.a),A=(n.rect_pad_height+i*2)*Math.abs(o.a),c=(n.rect_border_radius??0)*Math.abs(o.a);e.beginPath(),xE({ctx:e,cx:r,cy:s,width:a,height:A,radius:c,ccwRotationDegrees:n.rect_ccw_rotation})}else if(n.shape===\"hole_with_polygon_pad\"\u0026\u0026n.pad_outline\u0026\u0026n.pad_outline.length\u003e=3){const r=n.pad_outline.map(A=\u003e({x:n.x+A.x,y:n.y+A.y})),a=(i!==0?CX(r,i):r).map(A=\u003e{const[c,l]=Bn(o,[A.x,A.y]);return{x:c,y:l}});e.beginPath(),aP({ctx:e,points:a})}}function _0i(t){const{ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,margin:r}=t,s=Math.abs(r);if(e.fillStyle=i,n.shape===\"circle\"){const[a,A]=Bn(o,[n.x,n.y]),c=n.outer_diameter/2*Math.abs(o.a),l=s*Math.abs(o.a),u=Math.max(0,c-l);e.beginPath(),e.arc(a,A,c,0,Math.PI*2),u\u003e0\u0026\u0026e.arc(a,A,u,0,Math.PI*2,!0),e.fill(\"evenodd\")}else if(n.shape===\"oval\"){const[a,A]=Bn(o,[n.x,n.y]),c=n.outer_width/2*Math.abs(o.a),l=n.outer_height/2*Math.abs(o.a),u=s*Math.abs(o.a),g=Math.max(0,c-u),h=Math.max(0,l-u),d=-((n.ccw_rotation??0)*Math.PI)/180;if(e.beginPath(),e.ellipse(a,A,c,l,d,0,Math.PI*2),g\u003e0\u0026\u0026h\u003e0){const p=a+g*Math.cos(d),m=A+g*Math.sin(d);e.moveTo(p,m),e.ellipse(a,A,g,h,d,0,Math.PI*2)}e.fill(\"evenodd\")}else if(n.shape===\"pill\"){const[a,A]=Bn(o,[n.x,n.y]),c=n.outer_width*Math.abs(o.a),l=n.outer_height*Math.abs(o.a),u=s*Math.abs(o.a);e.beginPath(),aS({ctx:e,cx:a,cy:A,width:c,height:l,ccwRotationDegrees:n.ccw_rotation});const g=c-u*2,h=l-u*2;g\u003e0\u0026\u0026h\u003e0\u0026\u0026aS({ctx:e,cx:a,cy:A,width:g,height:h,ccwRotationDegrees:n.ccw_rotation}),e.fill(\"evenodd\")}else if(n.shape===\"circular_hole_with_rect_pad\"){const[a,A]=Bn(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),u=s*Math.abs(o.a),g=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),xE({ctx:e,cx:a,cy:A,width:c,height:l,radius:g,ccwRotationDegrees:n.rect_ccw_rotation});const h=c-u*2,d=l-u*2;if(h\u003e0\u0026\u0026d\u003e0){const p=Math.max(0,g-u);xE({ctx:e,cx:a,cy:A,width:h,height:d,radius:p,ccwRotationDegrees:n.rect_ccw_rotation})}e.fill(\"evenodd\")}else if(n.shape===\"pill_hole_with_rect_pad\"){const[a,A]=Bn(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),u=s*Math.abs(o.a),g=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),xE({ctx:e,cx:a,cy:A,width:c,height:l,radius:g});const h=c-u*2,d=l-u*2;if(h\u003e0\u0026\u0026d\u003e0){const p=Math.max(0,g-u);xE({ctx:e,cx:a,cy:A,width:h,height:d,radius:p})}e.fill(\"evenodd\")}else if(n.shape===\"rotated_pill_hole_with_rect_pad\"){const[a,A]=Bn(o,[n.x,n.y]),c=n.rect_pad_width*Math.abs(o.a),l=n.rect_pad_height*Math.abs(o.a),u=s*Math.abs(o.a),g=n.rect_border_radius?n.rect_border_radius*Math.abs(o.a):0;e.beginPath(),xE({ctx:e,cx:a,cy:A,width:c,height:l,radius:g,ccwRotationDegrees:n.rect_ccw_rotation});const h=c-u*2,d=l-u*2;if(h\u003e0\u0026\u0026d\u003e0){const p=Math.max(0,g-u);xE({ctx:e,cx:a,cy:A,width:h,height:d,radius:p,ccwRotationDegrees:n.rect_ccw_rotation})}e.fill(\"evenodd\")}else if(n.shape===\"hole_with_polygon_pad\"\u0026\u0026n.pad_outline\u0026\u0026n.pad_outline.length\u003e=3){const a=n.pad_outline.map(l=\u003e({x:n.x+l.x,y:n.y+l.y}));e.beginPath();const A=a.map(l=\u003e{const[u,g]=Bn(o,[l.x,l.y]);return{x:u,y:g}});aP({ctx:e,points:A});const c=CX(a,-s);if(c.length\u003e=3){const l=c.map(u=\u003e{const[g,h]=Bn(o,[u.x,u.y]);return{x:g,y:h}});aP({ctx:e,points:l})}e.fill(\"evenodd\")}}function f0i(t){const{ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.layer!==r)return;const s=n.is_covered_with_solder_mask===!0,a=n.soldermask_margin??0;let A=a,c=a,l=a,u=a;(n.shape===\"rect\"||n.shape===\"rotated_rect\")\u0026\u0026(A=n.soldermask_margin_left??a,c=n.soldermask_margin_right??a,l=n.soldermask_margin_top??a,u=n.soldermask_margin_bottom??a),s?(e.fillStyle=i,Ghe({ctx:e,pad:n,realToCanvasMat:o,ml:0,mr:0,mt:0,mb:0}),e.fill()):A\u003c0||c\u003c0||l\u003c0||u\u003c0?(Ghe({ctx:e,pad:n,realToCanvasMat:o,ml:A,mr:c,mt:l,mb:u}),EE(e),I0i({ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,ml:A,mr:c,mt:l,mb:u})):A\u003e0||c\u003e0||l\u003e0||u\u003e0?(Ghe({ctx:e,pad:n,realToCanvasMat:o,ml:A,mr:c,mt:l,mb:u}),EE(e)):(Ghe({ctx:e,pad:n,realToCanvasMat:o,ml:0,mr:0,mt:0,mb:0}),EE(e))}function Ghe(t){const{ctx:e,pad:n,realToCanvasMat:o,ml:i,mr:r,mt:s,mb:a}=t,A=n.shape===\"rotated_rect\"||n.shape===\"rotated_pill\"?n.ccw_rotation??0:0;if(n.shape===\"rect\"||n.shape===\"rotated_rect\"){const c=n.corner_radius??n.rect_border_radius??0,l=A*Math.PI/180,u=(r-i)/2,g=(s-a)/2,h=u*Math.cos(l)-g*Math.sin(l),d=u*Math.sin(l)+g*Math.cos(l),[p,m]=Bn(o,[n.x+h,n.y+d]),_=(n.width+i+r)*Math.abs(o.a),f=(n.height+s+a)*Math.abs(o.a),I=c*Math.abs(o.a);e.save(),e.translate(p,m),A!==0\u0026\u0026e.rotate(-A*Math.PI/180),e.beginPath(),xE({ctx:e,cx:0,cy:0,width:_,height:f,radius:I}),e.restore()}else if(n.shape===\"circle\"){const c=(i+r+s+a)/4,[l,u]=Bn(o,[n.x,n.y]),g=(n.radius+c)*Math.abs(o.a);e.beginPath(),e.arc(l,u,g,0,Math.PI*2),e.closePath()}else if(n.shape===\"pill\"||n.shape===\"rotated_pill\"){const c=(i+r)/2,[l,u]=Bn(o,[n.x,n.y]),g=(n.width+c*2)*Math.abs(o.a),h=(n.height+c*2)*Math.abs(o.a);e.save(),e.translate(l,u),A!==0\u0026\u0026e.rotate(-A*Math.PI/180),e.beginPath(),aS({ctx:e,cx:0,cy:0,width:g,height:h}),e.restore()}else if(n.shape===\"polygon\"\u0026\u0026n.points\u0026\u0026n.points.length\u003e=3){const c=(i+r+s+a)/4,u=(c!==0?CX(n.points,c):n.points).map(g=\u003e{const[h,d]=Bn(o,[g.x,g.y]);return{x:h,y:d}});e.beginPath(),aP({ctx:e,points:u})}}function I0i(t){const{ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,ml:r,mr:s,mt:a,mb:A}=t,c=n.shape===\"rotated_rect\"||n.shape===\"rotated_pill\"?n.ccw_rotation??0:0,l=Math.max(0,-r),u=Math.max(0,-s),g=Math.max(0,-a),h=Math.max(0,-A);if(e.fillStyle=i,n.shape===\"rect\"||n.shape===\"rotated_rect\"){const d=n.corner_radius??n.rect_border_radius??0,[p,m]=Bn(o,[n.x,n.y]),_=n.width*Math.abs(o.a),f=n.height*Math.abs(o.a),I=d*Math.abs(o.a),C=l*Math.abs(o.a),y=u*Math.abs(o.a),x=g*Math.abs(o.a),E=h*Math.abs(o.a);e.save(),e.translate(p,m),c!==0\u0026\u0026e.rotate(-c*Math.PI/180),e.beginPath(),xE({ctx:e,cx:0,cy:0,width:_,height:f,radius:I});const B=_-C-y,S=f-x-E,Q=(C-y)/2,w=(x-E)/2,M=Math.max(0,I-(C+y+x+E)/4);B\u003e0\u0026\u0026S\u003e0\u0026\u0026xE({ctx:e,cx:Q,cy:w,width:B,height:S,radius:M}),e.fill(\"evenodd\"),e.restore()}else if(n.shape===\"circle\"){const d=Math.max(l,u,g,h),[p,m]=Bn(o,[n.x,n.y]),_=n.radius*Math.abs(o.a),f=d*Math.abs(o.a),I=Math.max(0,_-f);e.save(),e.beginPath(),e.arc(p,m,_,0,Math.PI*2),I\u003e0\u0026\u0026e.arc(p,m,I,0,Math.PI*2,!0),e.fill(\"evenodd\"),e.restore()}else if(n.shape===\"pill\"||n.shape===\"rotated_pill\"){const d=Math.max(l,u,g,h),[p,m]=Bn(o,[n.x,n.y]),_=n.width*Math.abs(o.a),f=n.height*Math.abs(o.a),I=d*Math.abs(o.a);e.save(),e.translate(p,m),c!==0\u0026\u0026e.rotate(-c*Math.PI/180),e.beginPath(),aS({ctx:e,cx:0,cy:0,width:_,height:f});const C=_-I*2,y=f-I*2;C\u003e0\u0026\u0026y\u003e0\u0026\u0026aS({ctx:e,cx:0,cy:0,width:C,height:y}),e.fill(\"evenodd\"),e.restore()}else if(n.shape===\"polygon\"\u0026\u0026n.points\u0026\u0026n.points.length\u003e=3){const d=Math.max(l,u,g,h);e.save(),e.beginPath();const p=n.points.map(_=\u003e{const[f,I]=Bn(o,[_.x,_.y]);return{x:f,y:I}});aP({ctx:e,points:p});const m=CX(n.points,-d);if(m.length\u003e=3){const _=m.map(f=\u003e{const[I,C]=Bn(o,[f.x,f.y]);return{x:I,y:C}});aP({ctx:e,points:_})}e.fill(\"evenodd\"),e.restore()}}function vY(t,e){const n=Math.hypot(t,e);return n\u003c=Number.EPSILON?{x:0,y:0}:{x:t/n,y:e/n}}function C0i(t,e){const n=t.length;if(n\u003c2)return{x:1,y:0};if(e\u003c=0){const c=t[1],l=t[0];if(!c||!l)return{x:1,y:0};const u=vY(c.x-l.x,c.y-l.y);return u.x===0\u0026\u0026u.y===0?{x:1,y:0}:u}if(e\u003e=n-1){const c=t[n-2],l=t[n-1];if(!c||!l)return{x:1,y:0};const u=vY(l.x-c.x,l.y-c.y);return u.x===0\u0026\u0026u.y===0?{x:1,y:0}:u}const o=t[e-1],i=t[e],r=t[e+1];if(!o||!i||!r)return{x:1,y:0};const s=vY(i.x-o.x,i.y-o.y),a=vY(r.x-i.x,r.y-i.y),A=vY(s.x+a.x,s.y+a.y);return A.x===0\u0026\u0026A.y===0?s.x!==0||s.y!==0?s:a.x!==0||a.y!==0?a:{x:1,y:0}:A}function Fon(t){const e=[],n=[];for(let o=0;o\u003ct.length;o++){const i=t[o];if(!i)continue;const r=C0i(t,o),s=vY(-r.y,r.x),a=i.width/2;e.push({x:i.x+s.x*a,y:i.y+s.y*a}),n.push({x:i.x-s.x*a,y:i.y-s.y*a})}return e.concat(n.reverse())}function oVe(t){const e=[];let n=[],o=null;for(const i of t??[]){if(!i||i.route_type!==\"wire\"){n.length\u003e=2\u0026\u0026e.push(n),n=[],o=null;continue}const r=i.layer??o;if(!r)continue;const s=i.x,a=i.y;typeof s!=\"number\"||typeof a!=\"number\"||typeof i.width==\"number\"\u0026\u0026(i.width,o\u0026\u0026r!==o\u0026\u0026(n.length\u003e=2\u0026\u0026e.push(n),n=[]),o=r,n.push(i))}return n.length\u003e=2\u0026\u0026e.push(n),e}var Lon=1e-6;function Hon(t){const{ctx:e,trace:n,realToCanvasMat:o,vias:i,platedHoles:r,layer:s}=t;if(!n.route||n.route.length\u003c2)return;const a=oVe(n.route);if(a.length===0)return;const A=new Map;for(const c of a){const l=c[0]?.layer,u=c[c.length-1];if(!(!l||!u)\u0026\u0026!(s\u0026\u0026l!==s)){for(const g of i){if(g.layers\u0026\u0026Array.isArray(g.layers)\u0026\u0026!g.layers.includes(l)||!Oon(u.x,u.y,g.x,g.y))continue;const h=g.hole_diameter/2;if(h\u003c=0)continue;const d={shape:\"circle\",x:g.x,y:g.y,radius:h};A.set(Gon(d),d)}for(const g of r){if(g.layers\u0026\u0026Array.isArray(g.layers)\u0026\u0026!g.layers.includes(l))continue;const h=y0i(g);h\u0026\u0026Oon(u.x,u.y,h.x,h.y)\u0026\u0026A.set(Gon(h),h)}}}if(A.size!==0){e.save(),e.globalCompositeOperation=\"destination-out\";for(const c of A.values()){if(c.shape===\"circle\"){dm({ctx:e,center:{x:c.x,y:c.y},radius:c.radius,fill:\"#000\",realToCanvasMat:o});continue}if(c.shape===\"oval\"){JB({ctx:e,center:{x:c.x,y:c.y},radius_x:c.radiusX,radius_y:c.radiusY,fill:\"#000\",realToCanvasMat:o,rotation:c.rotation});continue}A_({ctx:e,center:{x:c.x,y:c.y},width:c.width,height:c.height,fill:\"#000\",realToCanvasMat:o,rotation:c.rotation})}e.restore()}}function y0i(t){if(t.shape===\"circle\"){const i=t.hole_diameter/2;return i\u003c=0?void 0:{shape:\"circle\",x:t.x,y:t.y,radius:i}}if(t.shape===\"oval\"){const i=t.hole_width/2,r=t.hole_height/2;return i\u003c=0||r\u003c=0?void 0:{shape:\"oval\",x:t.x,y:t.y,radiusX:i,radiusY:r,rotation:t.ccw_rotation}}if(t.shape===\"pill\")return t.hole_width\u003c=0||t.hole_height\u003c=0?void 0:{shape:\"pill\",x:t.x,y:t.y,width:t.hole_width,height:t.hole_height,rotation:t.ccw_rotation};if(t.shape===\"circular_hole_with_rect_pad\"){const i=t.hole_diameter/2;return i\u003c=0?void 0:{shape:\"circle\",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),radius:i}}if(t.shape===\"pill_hole_with_rect_pad\")return t.hole_width\u003c=0||t.hole_height\u003c=0?void 0:{shape:\"pill\",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height};if(t.shape===\"rotated_pill_hole_with_rect_pad\")return t.hole_width\u003c=0||t.hole_height\u003c=0?void 0:{shape:\"pill\",x:t.x+(t.hole_offset_x??0),y:t.y+(t.hole_offset_y??0),width:t.hole_width,height:t.hole_height,rotation:t.hole_ccw_rotation};if(t.shape!==\"hole_with_polygon_pad\")return;const e=t.x+(t.hole_offset_x??0),n=t.y+(t.hole_offset_y??0),o=t.hole_shape;if(o===\"circle\"){const i=(t.hole_diameter??0)/2;return i\u003c=0?void 0:{shape:\"circle\",x:e,y:n,radius:i}}if(o===\"oval\"){const i=(t.hole_width??0)/2,r=(t.hole_height??0)/2;return i\u003c=0||r\u003c=0?void 0:{shape:\"oval\",x:e,y:n,radiusX:i,radiusY:r}}if(o===\"pill\"||o===\"rotated_pill\"){const i=t.hole_width??0,r=t.hole_height??0;return i\u003c=0||r\u003c=0?void 0:{shape:\"pill\",x:e,y:n,width:i,height:r,rotation:o===\"rotated_pill\"?t.ccw_rotation:0}}}function Oon(t,e,n,o){return Math.abs(t-n)\u003c=Lon\u0026\u0026Math.abs(e-o)\u003c=Lon}function Gon(t){return t.shape===\"circle\"?`circle:${t.x}:${t.y}:${t.radius}`:t.shape===\"oval\"?`oval:${t.x}:${t.y}:${t.radiusX}:${t.radiusY}:${t.rotation??0}`:`pill:${t.x}:${t.y}:${t.width}:${t.height}:${t.rotation??0}`}function x0i(t){const{ctx:e,trace:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(!n.route||!Array.isArray(n.route)||n.route.length\u003c2)return;const s=oVe(n.route);for(const a of s)if(a[0]?.layer===r){if(n.route_thickness_mode===\"interpolated\"){sP({ctx:e,points:Fon(a),fill:i,realToCanvasMat:o});continue}for(let c=0;c\u003ca.length-1;c++){const l=a[c],u=a[c+1];!l||!u||QY({ctx:e,start:{x:l.x,y:l.y},end:{x:u.x,y:u.y},strokeWidth:l.width,stroke:i,realToCanvasMat:o,lineCap:\"round\"})}}Hon({ctx:e,trace:n,realToCanvasMat:o,layer:r,vias:t.vias,platedHoles:t.platedHoles})}function Yon(t){const{ctx:e,via:n,realToCanvasMat:o,layer:i,soldermaskOverCopperColor:r}=t;if(!n.layers.includes(i))return;const s=iVe(n,i,e),[a,A]=Bn(o,[n.x,n.y]),c=n.outer_diameter/2*Math.abs(o.a);e.beginPath(),e.arc(a,A,c,0,Math.PI*2),e.closePath(),s?(e.fillStyle=r,e.fill()):EE(e)}function iVe(t,e,n){let o=n.boardOwnerMap?.get(t.pcb_via_id);!n.boardOwnerMap?.has(t.pcb_via_id)\u0026\u0026t.pcb_trace_id\u0026\u0026(o=n.boardOwnerMap?.get(t.pcb_trace_id));const i=t,r=e===\"top\"?i.tented_on_top:i.tented_on_bottom,s=e===\"top\"?o?.default_via_tented_on_top:o?.default_via_tented_on_bottom;return r??i.is_tented??s??!1}function Uon(t){const{ctx:e,realToCanvasMat:n,colorMap:o,layer:i,drawSoldermask:r}=t;let{elements:s}=t;if(!r||e.canvas.width\u003c=0||e.canvas.height\u003c=0)return;const a=s.filter(d=\u003ed.type===\"pcb_board\"),A=s.find(d=\u003ed.type===\"pcb_panel\");a.length===0\u0026\u0026!A\u0026\u0026(s=s.filter(d=\u003ed.type===\"pcb_via\"));const c=o.soldermask[i]??o.soldermask.top,l=o.soldermaskOverCopper[i]??o.soldermaskOverCopper.top,u=s.filter(d=\u003ed.type===\"pcb_via\"),g=s.filter(d=\u003ed.type===\"pcb_plated_hole\"),h=Don(e,e.canvas.width,e.canvas.height)??e;if(A\u0026\u0026a0i({ctx:h,panel:A,realToCanvasMat:n,soldermaskColor:c}),A\u0026\u0026a.length\u003e0){h.save(),h.globalCompositeOperation=\"destination-out\";for(const d of a)Ron({ctx:h,board:d,realToCanvasMat:n,soldermaskColor:\"#000\"});h.restore()}for(const d of a)Ron({ctx:h,board:d,realToCanvasMat:n,soldermaskColor:c});for(const d of s)d.type===\"pcb_trace\"?x0i({ctx:h,trace:d,realToCanvasMat:n,soldermaskOverCopperColor:l,layer:i,vias:u,platedHoles:g}):d.type===\"pcb_copper_pour\"\u0026\u0026d0i({ctx:h,pour:d,realToCanvasMat:n,soldermaskOverCopperColor:l,layer:i,elements:s});for(const d of u)iVe(d,i,h)\u0026\u0026Yon({ctx:h,via:d,realToCanvasMat:n,layer:i,soldermaskOverCopperColor:l});for(const d of s)E0i({ctx:h,element:d,realToCanvasMat:n,soldermaskOverCopperColor:l,layer:i});Non(e,h)}function E0i(t){const{ctx:e,element:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r}=t;if(n.type===\"pcb_smtpad\")f0i({ctx:e,pad:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r});else if(n.type===\"pcb_plated_hole\")m0i({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i,layer:r});else if(n.type===\"pcb_hole\")h0i({ctx:e,hole:n,realToCanvasMat:o,soldermaskOverCopperColor:i});else if(n.type===\"pcb_via\"){if(iVe(n,r,e))return;Yon({ctx:e,via:n,realToCanvasMat:o,layer:r,soldermaskOverCopperColor:i})}else if(n.type===\"pcb_cutout\")A0i({ctx:e,cutout:n,realToCanvasMat:o});else{if(n.type===\"pcb_copper_pour\")return;if(n.type===\"pcb_trace\")return}}function B0i(t,e){return e.copper[t]??e.copper.top}function b0i(t){const{ctx:e,trace:n,realToCanvasMat:o,colorMap:i,layer:r}=t;if(!n.route||!Array.isArray(n.route)||n.route.length\u003c2)return;const s=oVe(n.route);for(const a of s){const A=a[0]?.layer;if(!A||r\u0026\u0026A!==r)continue;const c=B0i(A,i);if(n.route_thickness_mode===\"interpolated\"){sP({ctx:e,points:Fon(a),fill:c,realToCanvasMat:o});continue}for(let l=0;l\u003ca.length-1;l++){const u=a[l],g=a[l+1];!u||!g||u.is_inside_copper_pour\u0026\u0026g","content_mimetype":"text/plain","created_at":"2026-10-05T13:15:44.038Z"}; window.SSR_PACKAGE_RELEASES = [{"package_release_id":"2cf56471-e013-461b-aba1-e755cffaac2c","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.20","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T18:29:00.470Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-0f58dceb4e3a70e5213c5ac53ab26d55","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=2cf56471-e013-461b-aba1-e755cffaac2c\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=2cf56471-e013-461b-aba1-e755cffaac2c\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=2cf56471-e013-461b-aba1-e755cffaac2c\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"dc276ea3-ac51-4a2d-846e-4695464c7986","user_code_job_started_at":"2026-10-05T19:01:30.363Z","user_code_job_completed_at":"2026-10-05T19:06:21.457Z","user_code_job_error":{"message":"Your code failed to build (exit code 1), see build logs for the error details","error_code":"user_code_build_error"},"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=6d353affc0f42669913196262d0d4be7441574f8a6675187f494f1702b9f19ec","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"a56db1f7-99bf-4f14-b32e-ab5431f039d0","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.19","github_commit_sha":null,"is_locked":false,"is_latest":true,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T13:15:23.548Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-6eb8ae0e3705282d2c5b6af9de5b0a5a","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=a56db1f7-99bf-4f14-b32e-ab5431f039d0\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=a56db1f7-99bf-4f14-b32e-ab5431f039d0\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=a56db1f7-99bf-4f14-b32e-ab5431f039d0\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"8c707e6d-446a-4b11-8780-d980a2b6494b","user_code_job_started_at":"2026-10-05T13:30:31.188Z","user_code_job_completed_at":"2026-10-05T13:36:06.374Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=fc822d6e83ede29cb53d172f7155634cdc596139a58cdb1c014d59d17492c7e1","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"b0d81c84-a226-464b-84a4-a655185a3a25","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.18","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T12:40:09.172Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-5e6dee74e06130ba1abedd4457510217","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b0d81c84-a226-464b-84a4-a655185a3a25\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b0d81c84-a226-464b-84a4-a655185a3a25\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b0d81c84-a226-464b-84a4-a655185a3a25\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"2991f513-e5d8-4c7a-aaa0-2b7f2a68225d","user_code_job_started_at":"2026-10-05T12:42:32.098Z","user_code_job_completed_at":"2026-10-05T12:49:07.396Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=4f86521a8365124b06c76ccbd0aea9019032167491b5b467077c7a02ced49a41","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"4fa538fc-bfff-490e-9f59-243aaf206a0e","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.17","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T11:49:00.446Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-1c8ee8b89eec6e227c9616af021fb396","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=4fa538fc-bfff-490e-9f59-243aaf206a0e\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=4fa538fc-bfff-490e-9f59-243aaf206a0e\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=4fa538fc-bfff-490e-9f59-243aaf206a0e\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"5fc8d342-8923-4fa1-84aa-34984c9a77d2","user_code_job_started_at":"2026-10-05T11:50:18.413Z","user_code_job_completed_at":"2026-10-05T12:20:20.902Z","user_code_job_error":{"message":"Build timed out after 30 minutes","error_code":"user_code_job_timeout"},"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=213321f1092ec68a13466939f33e380ad9537c815ae2bf5594c11793768490c9","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"b67e103d-d359-4f47-b2a9-0f903c841431","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.16","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T11:17:26.970Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-bd0dfc621c57205fba9f8d8a2fe06917","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b67e103d-d359-4f47-b2a9-0f903c841431\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b67e103d-d359-4f47-b2a9-0f903c841431\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b67e103d-d359-4f47-b2a9-0f903c841431\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"9c76ac3c-31ab-49c3-a2cf-c41ca2f64da1","user_code_job_started_at":"2026-10-05T11:19:43.035Z","user_code_job_completed_at":"2026-10-05T11:30:00.497Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=09c2571c8594cc5446af1ac461ebcbcf0adb0d8cbcae71522948e75d14fe4c8d","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"0bbc98b2-d526-41f0-b246-bed75ed24b86","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.15","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T10:46:55.472Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-715cefa259ee7f0247b1b614b14f8b7e","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=0bbc98b2-d526-41f0-b246-bed75ed24b86\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=0bbc98b2-d526-41f0-b246-bed75ed24b86\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=0bbc98b2-d526-41f0-b246-bed75ed24b86\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"18ce8d3d-ad7e-4cd0-811a-6afc0b8d5465","user_code_job_started_at":"2026-10-05T10:59:52.697Z","user_code_job_completed_at":"2026-10-05T11:07:38.031Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=7af4644656c74ce99e99241f2d5894cc1aa3ffa1341d798f79d619f1b39aeffa","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"e9f238ea-c9b4-46b5-8849-29781fd999f4","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.12","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T09:34:47.276Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-a0656aa2da3d10b804b917660ed827b2","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=e9f238ea-c9b4-46b5-8849-29781fd999f4\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=e9f238ea-c9b4-46b5-8849-29781fd999f4\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=e9f238ea-c9b4-46b5-8849-29781fd999f4\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"a96806df-4353-48e8-b890-c50f521cb7e3","user_code_job_started_at":"2026-10-05T09:51:54.289Z","user_code_job_completed_at":"2026-10-05T10:13:23.429Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=ca97a49f7a9ebf82d8b7f1f5f6cf5f4bead642d1fc3851e57dbcfe25c3ef045f","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"7367de0f-e2cf-43bb-94f0-2c5434bff2b2","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.11","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T09:14:49.936Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-61d9b2efba862b3954b4b2a65264fe42","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=7367de0f-e2cf-43bb-94f0-2c5434bff2b2\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=7367de0f-e2cf-43bb-94f0-2c5434bff2b2\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=7367de0f-e2cf-43bb-94f0-2c5434bff2b2\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"8d3f4822-a570-4e98-9413-e2d5f629390c","user_code_job_started_at":"2026-10-05T09:15:54.152Z","user_code_job_completed_at":"2026-10-05T09:27:20.635Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=cfc8867bc4d639b40c0e74571f988aee8d776f2c8ce777e1897e84d476e1e7be","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"a9bd2d0b-8385-4ec9-9161-b4b045223edf","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.10","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T08:15:45.499Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-d404b30a0c8f20182d1ac6578217eada","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=a9bd2d0b-8385-4ec9-9161-b4b045223edf\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=a9bd2d0b-8385-4ec9-9161-b4b045223edf\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=a9bd2d0b-8385-4ec9-9161-b4b045223edf\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"3c1e0217-c73f-497c-a1d2-92490908d45c","user_code_job_started_at":"2026-10-05T08:20:44.239Z","user_code_job_completed_at":"2026-10-05T08:28:33.533Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=f0cda6b774cc88b59005d5b4fde56ae0dfceda649d56a89227d9eb5891788b45","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"634fb4eb-78e7-4dae-9a60-170630d10c39","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.9","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T07:49:23.366Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-b3ec16d1349b1d763cb802fb56c4eb5c","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=634fb4eb-78e7-4dae-9a60-170630d10c39\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=634fb4eb-78e7-4dae-9a60-170630d10c39\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=634fb4eb-78e7-4dae-9a60-170630d10c39\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"ba5f3a49-4474-4f6b-aaba-2bea883c2254","user_code_job_started_at":"2026-10-05T07:53:53.718Z","user_code_job_completed_at":"2026-10-05T08:04:14.215Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=a267d59279c15d74ab2f90a8c1647617b788e330ee29be5cef05c7dc72533493","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"53f45203-3e94-44cb-8e73-c8ed97d767d3","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.8","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T07:20:49.673Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-b2322aa668cde8ad296b75adca2b40e2","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=53f45203-3e94-44cb-8e73-c8ed97d767d3\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=53f45203-3e94-44cb-8e73-c8ed97d767d3\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=53f45203-3e94-44cb-8e73-c8ed97d767d3\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"4bd25e6a-980f-4d91-af03-8dcdabee4b24","user_code_job_started_at":"2026-10-05T07:22:15.388Z","user_code_job_completed_at":"2026-10-05T07:27:04.421Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=b512648421af19f71c7159c59da773f447b14befeabe06554abefa308b912d65","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"45d52ddf-a51d-46d4-9317-a78c01694cb1","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.7","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T05:38:14.445Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-d47c5b7e1407c9dcb4cbe5b9eac66a0f","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=45d52ddf-a51d-46d4-9317-a78c01694cb1\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=45d52ddf-a51d-46d4-9317-a78c01694cb1\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=45d52ddf-a51d-46d4-9317-a78c01694cb1\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"9145ecdb-39d1-4c86-8dcb-56dcb80ec739","user_code_job_started_at":"2026-10-05T05:42:40.257Z","user_code_job_completed_at":"2026-10-05T05:47:57.834Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=ce3d8d517d1ebc80458fafcf556332d5f49d7a1bceff2b1fe93c46de6452fc5a","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"d757a095-04de-48c8-b6e4-3d2ec8ce81cd","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.6","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T04:46:17.047Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-c97a22aae1657103e327908164f9c045","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=d757a095-04de-48c8-b6e4-3d2ec8ce81cd\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=d757a095-04de-48c8-b6e4-3d2ec8ce81cd\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=d757a095-04de-48c8-b6e4-3d2ec8ce81cd\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"513bdf82-a08d-49b9-a5b9-9034a97a809b","user_code_job_started_at":"2026-10-05T04:55:45.526Z","user_code_job_completed_at":"2026-10-05T05:03:03.781Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=e8de376a3c61eefc6f950e1bbd22fc81a72ed93da6f4b556d8fdc70dd7626038","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"29ddf4a0-6df5-4bf6-b7db-4ac4c7072c25","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.5","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T02:44:08.793Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-fcfb777c24f6df873e623a7d142514f0","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=29ddf4a0-6df5-4bf6-b7db-4ac4c7072c25\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=29ddf4a0-6df5-4bf6-b7db-4ac4c7072c25\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=29ddf4a0-6df5-4bf6-b7db-4ac4c7072c25\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"5948f3dd-37c3-4847-9494-13770e28b82c","user_code_job_started_at":"2026-10-05T02:52:43.128Z","user_code_job_completed_at":"2026-10-05T03:01:02.367Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=7fec255850c162f893ce5454cd1f55664114ec87478a9e657084e8e5e6ffc3a1","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"07c051a2-d349-46f2-9157-6c98cc3ae76d","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.4","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T01:35:01.188Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-fdefbc9b7a664cd926e8f2c3a463a4be","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=07c051a2-d349-46f2-9157-6c98cc3ae76d\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=07c051a2-d349-46f2-9157-6c98cc3ae76d\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=07c051a2-d349-46f2-9157-6c98cc3ae76d\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"6bbc2d0d-6fde-4113-9604-bb935d16d41d","user_code_job_started_at":"2026-10-05T01:39:51.775Z","user_code_job_completed_at":"2026-10-05T01:47:48.597Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=9e419461cdd6c04c78acd3264fdc71637b5a7e53e73d70d95fc8afd0f66aa118","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"97585b6d-8a91-4be0-bf4d-a168d61df90c","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.3","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T00:47:26.560Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-04010698d7538846241ce9b89224fd40","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=97585b6d-8a91-4be0-bf4d-a168d61df90c\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=97585b6d-8a91-4be0-bf4d-a168d61df90c\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=97585b6d-8a91-4be0-bf4d-a168d61df90c\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"bdbdb7ab-b4ca-40ce-bb80-7d791aaa4eed","user_code_job_started_at":"2026-10-05T00:50:25.910Z","user_code_job_completed_at":"2026-10-05T00:58:25.368Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=7a51abfa54e74e33e7a9d7fee115ddde0668908e770da41935d5fb91096d96bb","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"11a162c1-951f-47e3-8f83-660b7c8dec6b","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.2","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-04T20:42:25.857Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-b295b7fc212ec482ce2d90f1cc809bf9","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=11a162c1-951f-47e3-8f83-660b7c8dec6b\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=11a162c1-951f-47e3-8f83-660b7c8dec6b\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=11a162c1-951f-47e3-8f83-660b7c8dec6b\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"363c3448-fb09-4da6-b9bf-bc0e216b3531","user_code_job_started_at":"2026-10-04T22:04:21.772Z","user_code_job_completed_at":"2026-10-04T22:08:27.541Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=85b5b1bf068520a999c1e95c00bb11ca65b4c545a10dbb184d93a6d87476a69d","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"20c1facb-7cd6-4235-b2bc-6f24d9e89563","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.1","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-03T06:56:20.205Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-0aa20af2734ddbc93d819bac000d1aa4","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=20c1facb-7cd6-4235-b2bc-6f24d9e89563\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=20c1facb-7cd6-4235-b2bc-6f24d9e89563\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=20c1facb-7cd6-4235-b2bc-6f24d9e89563\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"0ea02129-f9cc-40f2-9cf2-8b08e970252a","user_code_job_started_at":"2026-10-03T07:53:29.792Z","user_code_job_completed_at":"2026-10-03T08:23:36.379Z","user_code_job_error":{"message":"Build timed out after 30 minutes","error_code":"user_code_job_timeout"},"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=87de178b6a93ad8f6ee24fae8e568d36c20bd3897f1a929bd42618fe4d3032a8","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"f050d04e-367c-49f8-869a-5a164b9c57c6","package_id":"2b60b995-332f-46c6-8360-e30a1b8dee13","version":"0.1.0","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-03T04:37:46.866Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-7749d273fff3d95957d72d46760a76d6","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=f050d04e-367c-49f8-869a-5a164b9c57c6\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=f050d04e-367c-49f8-869a-5a164b9c57c6\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=f050d04e-367c-49f8-869a-5a164b9c57c6\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"284e991b-f173-46f7-beb2-c5d918bd6108","user_code_job_started_at":"2026-10-03T04:42:59.772Z","user_code_job_completed_at":"2026-10-03T04:46:38.270Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=66e2eeea84f02308b7774bae328a63deac3599a68c496a213f856b3ae61e5c86","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null}]; window.SSR_PACKAGE_BUILDS = []; window.SSR_RELATED_PACKAGES = [{"package_id":"d2ea0487-143c-447f-a62e-ab971c2524cd","creator_account_id":"9f398687-69d0-4ef4-a48c-bb6dc990e7df","latest_package_release_id":"bde55b83-e437-4d8f-b5c0-1e0b68a70ec3","last_built_release_id":"bde55b83-e437-4d8f-b5c0-1e0b68a70ec3","latest_package_release_fs_sha":"md5-4095a4495925ad2deb356dc9c3cccaaf","latest_pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=bde55b83-e437-4d8f-b5c0-1e0b68a70ec3\u0026file_path=dist%2Findex%2Fpcb.svg","latest_sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=bde55b83-e437-4d8f-b5c0-1e0b68a70ec3\u0026file_path=dist%2Findex%2Fschematic.svg","latest_cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=bde55b83-e437-4d8f-b5c0-1e0b68a70ec3\u0026file_path=dist%2Findex%2F3d.png","latest_version":"1.4.0","license":"unset","owner_org_id":"7ca3101d-0ece-4182-a775-d3aee7d7f0a0","org_owner_tscircuit_handle":"astra","owner_github_username":null,"github_repo_full_name":null,"is_source_from_github":false,"description":null,"name":"astra/nema17-stepper-motor-controller-spring-clamp-rp2040","unscoped_name":"nema17-stepper-motor-controller-spring-clamp-rp2040","star_count":0,"created_at":"2026-09-26T19:14:57.511Z","updated_at":"2026-09-28T19:52:44.691Z","ai_description":"A 4-layer RP2040 controller board that negotiates USB‑C PD motor power and drives a NEMA17 stepper via a DRV8825, with current sensing, thermal shutdown, RGB status LED, buzzer alarm, optional AS5600 encoder, protection/filtering, and test points.","ai_usage_instructions":null,"is_private":false,"is_unlisted":false,"is_public":true,"public_dist_enabled":false,"has_public_dist":true,"starred_at":null,"default_view":"files","website":null,"github_installation_id":null,"allow_pr_previews":false,"related_type":"same_author","thumbnail_url":"https://api.tscircuit.com/package_files/view?package_release_id=bde55b83-e437-4d8f-b5c0-1e0b68a70ec3\u0026file_path=dist%2Findex%2Fpcb.svg"},{"package_id":"7c4f7ef6-0c20-441e-b5a5-1952d955eccf","creator_account_id":"d16b4134-1b33-4d60-bdf2-151748766d5b","latest_package_release_id":"cbdd52b4-d52e-4095-8882-d107ff959339","last_built_release_id":"cbdd52b4-d52e-4095-8882-d107ff959339","latest_package_release_fs_sha":"md5-2ea962e9b2b863a7a4703b259838dc8e","latest_pcb_preview_image_url":"https://registry-api.tscircuit.com/package_files/view?package_release_id=cbdd52b4-d52e-4095-8882-d107ff959339\u0026file_path=dist%2Findex%2Fpcb.svg","latest_sch_preview_image_url":"https://registry-api.tscircuit.com/package_files/view?package_release_id=cbdd52b4-d52e-4095-8882-d107ff959339\u0026file_path=dist%2Findex%2Fschematic.svg","latest_cad_preview_image_url":"https://registry-api.tscircuit.com/package_files/download?package_release_id=cbdd52b4-d52e-4095-8882-d107ff959339\u0026file_path=dist%2Findex%2F3d.png","latest_version":"0.0.1","license":"unset","owner_org_id":"9e4219cf-4b9e-4932-9128-52cef42cad89","org_owner_tscircuit_handle":"0hmx3","owner_github_username":null,"github_repo_full_name":null,"is_source_from_github":false,"description":"","name":"aura/diy-power-delivery-trigger","unscoped_name":"diy-power-delivery-trigger","star_count":0,"created_at":"2026-04-23T21:10:31.029Z","updated_at":"2026-04-25T11:57:14.077Z","ai_description":"This hardware design implements a USB Type-C port with supporting power management and signal conditioning components, including a USB-C connector, a FUSB302 USB-C port controller, ESD protection diodes, a buck converter for 3.3V power regulation, an STM32 microcontroller for control and processing, an RGB LED indicator, push button, terminal block connections, and associated filtering and support components.","ai_usage_instructions":null,"is_private":false,"is_unlisted":false,"is_public":true,"public_dist_enabled":false,"has_public_dist":true,"starred_at":null,"default_view":"files","website":null,"github_installation_id":null,"allow_pr_previews":false,"related_type":"similar_ai_description","thumbnail_url":"https://registry-api.tscircuit.com/package_files/view?package_release_id=cbdd52b4-d52e-4095-8882-d107ff959339\u0026file_path=dist%2Findex%2Fpcb.svg"},{"package_id":"78c97ef5-3f00-466a-93ba-5ad748a0cb2d","creator_account_id":"9f398687-69d0-4ef4-a48c-bb6dc990e7df","latest_package_release_id":"43abb248-47c9-4cfd-9d4c-99af86d33572","last_built_release_id":"43abb248-47c9-4cfd-9d4c-99af86d33572","latest_package_release_fs_sha":"md5-f95e3b44ac11a208f017f25beb325180","latest_pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=43abb248-47c9-4cfd-9d4c-99af86d33572\u0026file_path=dist%2Findex%2Fpcb.svg","latest_sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=43abb248-47c9-4cfd-9d4c-99af86d33572\u0026file_path=dist%2Findex%2Fschematic.svg","latest_cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=43abb248-47c9-4cfd-9d4c-99af86d33572\u0026file_path=dist%2Findex%2F3d.png","latest_version":"1.3.4","license":"unset","owner_org_id":"2d29cfe5-d314-4a54-b56a-a6fa34c19af3","org_owner_tscircuit_handle":"muse1","owner_github_username":null,"github_repo_full_name":null,"is_source_from_github":false,"description":null,"name":"muse/esp32-eink-display","unscoped_name":"esp32-eink-display","star_count":0,"created_at":"2026-10-03T00:27:01.165Z","updated_at":"2026-10-03T03:05:45.691Z","ai_description":"A 55×46 mm two-layer ESP32-S3 e-paper controller board with USB‑C power/programming, buck regulation, FPC display connector, UC8179-style boost/charge-pump circuitry, ESD protection, controls, and routed passive components.","ai_usage_instructions":null,"is_private":false,"is_unlisted":false,"is_public":true,"public_dist_enabled":false,"has_public_dist":true,"starred_at":null,"default_view":"files","website":null,"github_installation_id":null,"allow_pr_previews":false,"related_type":"random","thumbnail_url":"https://api.tscircuit.com/package_files/view?package_release_id=43abb248-47c9-4cfd-9d4c-99af86d33572\u0026file_path=dist%2Findex%2Fpcb.svg"}]; window.SSR_PACKAGE_ROUTE = {"author":"astra","packageName":"am3352-sbc","packageNameWithScope":"astra/am3352-sbc","version":null,"isLegacyRoute":false,"kind":"file","filePath":"dist/viewer-part-07.txt"};