hytopia 0.14.21 → 0.14.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server.mjs +3 -2
package/package.json
CHANGED
package/server.mjs
CHANGED
|
@@ -49,7 +49,8 @@ globstar while`,J,z,$,q,U),this.matchOne(J.slice(z),$.slice(q),X))return this.de
|
|
|
49
49
|
`,J)}function g48(J){return p48(" ",J)}function p48(J,$){let X="";for(let Y=0;Y<$;Y++)X+=J;return X}var JX6=[SW.TokenKind.FLOAT,SW.TokenKind.STRING,SW.TokenKind.INT,SW.TokenKind.BLOCK_STRING];function n48(J,$=!1,X,Y){var Q,W;let K="";if(J===null||J===void 0?void 0:J.startToken){let Z=typeof X==="number"?X:J.start,G=typeof Y==="number"?Y:J.end,V=J.startToken.next,H=1;while(V){if(V.start<Z){V=V.next,H=V===null||V===void 0?void 0:V.line;continue}if(V.end>G){V=V.next,H=V===null||V===void 0?void 0:V.line;continue}let z=V.value||V.kind,q="";if(!$&&JX6.indexOf(V.kind)>=0)z="*";if(V.kind===SW.TokenKind.STRING)z=`"${z}"`;if(V.kind===SW.TokenKind.EOF)z="";if(V.line>H)K+=e$6(V.line-H),H=V.line,q=g48(V.column-1);else if(V.line===((Q=V.prev)===null||Q===void 0?void 0:Q.line))q=g48(V.start-(((W=V.prev)===null||W===void 0?void 0:W.end)||0));if(K+=q+z,V)V=V.next}}return K}r48.getSourceFromLocation=n48;function i48(J,$,X){if(!J||typeof J.getFields!=="function"||J[A4.OTEL_PATCHED_SYMBOL])return;let Y=J.getFields();J[A4.OTEL_PATCHED_SYMBOL]=!0,Object.keys(Y).forEach((Q)=>{let W=Y[Q];if(!W)return;if(W.resolve)W.resolve=s48($,X,W.resolve);if(W.type){let K=W.type;while(K.ofType)K=K.ofType;i48(K,$,X)}})}r48.wrapFields=i48;var m48=(J,$,X)=>{if(!X)return;J.recordException($),J.setStatus({code:Aq.SpanStatusCode.ERROR,message:$.message}),J.end()},u48=(J,$)=>{if(!$)return;J.end()};function s48(J,$,X,Y=!1){if(Q[A4.OTEL_PATCHED_SYMBOL]||typeof X!=="function")return X;function Q(W,K,Z,G){if(!X)return;let V=$();if(V.ignoreTrivialResolveSpans&&Y&&(p$6(W)||typeof W==="function")){if(typeof W[G.fieldName]!=="function")return X.call(this,W,K,Z,G)}if(!Z[A4.OTEL_GRAPHQL_DATA_SYMBOL])return X.call(this,W,K,Z,G);let H=t$6(V.mergeItems,G&&G.path),z=H.filter((F)=>typeof F==="string").length,q,U=!1;if(V.depth>=0&&V.depth<z)q=c48(Z,H);else{let F=i$6(J,$,Z,G,H);q=F.field,U=F.spanAdded}return Aq.context.with(Aq.trace.setSpan(Aq.context.active(),q.span),()=>{try{let F=X.call(this,W,K,Z,G);if(r48.isPromise(F))return F.then((B)=>{return u48(q.span,U),B},(B)=>{throw m48(q.span,B,U),B});else return u48(q.span,U),F}catch(F){throw m48(q.span,F,U),F}})}return Q[A4.OTEL_PATCHED_SYMBOL]=!0,Q}r48.wrapFieldResolver=s48});var $Q8=P((e48)=>{Object.defineProperty(e48,"__esModule",{value:!0});e48.PACKAGE_NAME=e48.PACKAGE_VERSION=void 0;e48.PACKAGE_VERSION="0.47.1";e48.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var ZQ8=P((WQ8)=>{Object.defineProperty(WQ8,"__esModule",{value:!0});WQ8.GraphQLInstrumentation=void 0;var _4=_0(),u1=Z5(),pB=Cm(),lw=Em(),km=dw(),GX6=f48(),s9=t48(),XQ8=$Q8(),YQ8={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},cw=[">=14.0.0 <17"];class QQ8 extends u1.InstrumentationBase{constructor(J={}){super(XQ8.PACKAGE_NAME,XQ8.PACKAGE_VERSION,Object.assign(Object.assign({},YQ8),J))}setConfig(J={}){super.setConfig(Object.assign(Object.assign({},YQ8),J))}init(){let J=new u1.InstrumentationNodeModuleDefinition("graphql",cw);return J.files.push(this._addPatchingExecute()),J.files.push(this._addPatchingParser()),J.files.push(this._addPatchingValidate()),J}_addPatchingExecute(){return new u1.InstrumentationNodeModuleFile("graphql/execution/execute.js",cw,(J)=>{if((0,u1.isWrapped)(J.execute))this._unwrap(J,"execute");return this._wrap(J,"execute",this._patchExecute(J.defaultFieldResolver)),J},(J)=>{if(J)this._unwrap(J,"execute")})}_addPatchingParser(){return new u1.InstrumentationNodeModuleFile("graphql/language/parser.js",cw,(J)=>{if((0,u1.isWrapped)(J.parse))this._unwrap(J,"parse");return this._wrap(J,"parse",this._patchParse()),J},(J)=>{if(J)this._unwrap(J,"parse")})}_addPatchingValidate(){return new u1.InstrumentationNodeModuleFile("graphql/validation/validate.js",cw,(J)=>{if((0,u1.isWrapped)(J.validate))this._unwrap(J,"validate");return this._wrap(J,"validate",this._patchValidate()),J},(J)=>{if(J)this._unwrap(J,"validate")})}_patchExecute(J){let $=this;return function(Y){return function(){let W;if(arguments.length>=2){let G=arguments;W=$._wrapExecuteArgs(G[0],G[1],G[2],G[3],G[4],G[5],G[6],G[7],J)}else{let G=arguments[0];W=$._wrapExecuteArgs(G.schema,G.document,G.rootValue,G.contextValue,G.variableValues,G.operationName,G.fieldResolver,G.typeResolver,J)}let K=(0,s9.getOperation)(W.document,W.operationName),Z=$._createExecuteSpan(K,W);return W.contextValue[km.OTEL_GRAPHQL_DATA_SYMBOL]={source:W.document?W.document||W.document[km.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:Z,fields:{}},_4.context.with(_4.trace.setSpan(_4.context.active(),Z),()=>{return(0,u1.safeExecuteInTheMiddle)(()=>{return Y.apply(this,[W])},(G,V)=>{$._handleExecutionResult(Z,G,V)})})}}}_handleExecutionResult(J,$,X){let Y=this.getConfig();if(X===void 0||$){(0,s9.endSpan)(J,$);return}if((0,s9.isPromise)(X))X.then((Q)=>{if(typeof Y.responseHook!=="function"){(0,s9.endSpan)(J);return}this._executeResponseHook(J,Q)},(Q)=>{(0,s9.endSpan)(J,Q)});else{if(typeof Y.responseHook!=="function"){(0,s9.endSpan)(J);return}this._executeResponseHook(J,X)}}_executeResponseHook(J,$){let{responseHook:X}=this.getConfig();if(!X)return;(0,u1.safeExecuteInTheMiddle)(()=>{X(J,$)},(Y)=>{if(Y)this._diag.error("Error running response hook",Y);(0,s9.endSpan)(J,void 0)},!0)}_patchParse(){let J=this;return function(X){return function(Q,W){return J._parse(this,X,Q,W)}}}_patchValidate(){let J=this;return function(X){return function(Q,W,K,Z,G){return J._validate(this,X,Q,W,K,G,Z)}}}_parse(J,$,X,Y){let Q=this.getConfig(),W=this.tracer.startSpan(pB.SpanNames.PARSE);return _4.context.with(_4.trace.setSpan(_4.context.active(),W),()=>{return(0,u1.safeExecuteInTheMiddle)(()=>{return $.call(J,X,Y)},(K,Z)=>{if(Z){if(!(0,s9.getOperation)(Z))W.updateName(pB.SpanNames.SCHEMA_PARSE);else if(Z.loc)(0,s9.addSpanSource)(W,Z.loc,Q.allowValues)}(0,s9.endSpan)(W,K)})})}_validate(J,$,X,Y,Q,W,K){let Z=this.tracer.startSpan(pB.SpanNames.VALIDATE,{});return _4.context.with(_4.trace.setSpan(_4.context.active(),Z),()=>{return(0,u1.safeExecuteInTheMiddle)(()=>{return $.call(J,X,Y,Q,K,W)},(G,V)=>{if(!Y.loc)Z.updateName(pB.SpanNames.SCHEMA_VALIDATE);if(V&&V.length)Z.recordException({name:lw.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(V)});(0,s9.endSpan)(Z,G)})})}_createExecuteSpan(J,$){var X;let Y=this.getConfig(),Q=this.tracer.startSpan(pB.SpanNames.EXECUTE,{});if(J){let{operation:W,name:K}=J;Q.setAttribute(lw.AttributeNames.OPERATION_TYPE,W);let Z=K===null||K===void 0?void 0:K.value;if(Z)Q.setAttribute(lw.AttributeNames.OPERATION_NAME,Z),Q.updateName(`${W} ${Z}`);else Q.updateName(W)}else{let W=" ";if($.operationName)W=` "${$.operationName}" `;W=GX6.OPERATION_NOT_SUPPORTED.replace("$operationName$",W),Q.setAttribute(lw.AttributeNames.OPERATION_NAME,W)}if((X=$.document)===null||X===void 0?void 0:X.loc)(0,s9.addSpanSource)(Q,$.document.loc,Y.allowValues);if($.variableValues&&Y.allowValues)(0,s9.addInputVariableAttributes)(Q,$.variableValues);return Q}_wrapExecuteArgs(J,$,X,Y,Q,W,K,Z,G){if(!Y)Y={};if(Y[km.OTEL_GRAPHQL_DATA_SYMBOL]||this.getConfig().ignoreResolveSpans)return{schema:J,document:$,rootValue:X,contextValue:Y,variableValues:Q,operationName:W,fieldResolver:K,typeResolver:Z};let V=K==null,H=K!==null&&K!==void 0?K:G;if(K=(0,s9.wrapFieldResolver)(this.tracer,()=>this.getConfig(),H,V),J)(0,s9.wrapFields)(J.getQueryType(),this.tracer,()=>this.getConfig()),(0,s9.wrapFields)(J.getMutationType(),this.tracer,()=>this.getConfig());return{schema:J,document:$,rootValue:X,contextValue:Y,variableValues:Q,operationName:W,fieldResolver:K,typeResolver:Z}}}WQ8.GraphQLInstrumentation=QQ8});var VQ8=P((GQ8)=>{Object.defineProperty(GQ8,"__esModule",{value:!0})});var qQ8=P((kW)=>{var VX6=kW&&kW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),HQ8=kW&&kW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))VX6($,J,X)};Object.defineProperty(kW,"__esModule",{value:!0});HQ8(ZQ8(),kW);HQ8(VQ8(),kW)});var jQ8=P((BQ8)=>{Object.defineProperty(BQ8,"__esModule",{value:!0});BQ8.PACKAGE_NAME=BQ8.PACKAGE_VERSION=void 0;BQ8.PACKAGE_VERSION="0.7.1";BQ8.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var OQ8=P((MQ8)=>{Object.defineProperty(MQ8,"__esModule",{value:!0});MQ8.bufferTextMapGetter=void 0;MQ8.bufferTextMapGetter={get(J,$){var X;if(!J)return;let Y=Object.keys(J);for(let Q of Y)if(Q===$||Q.toLowerCase()===$)return(X=J[Q])===null||X===void 0?void 0:X.toString();return},keys(J){return J?Object.keys(J):[]}}});var TQ8=P((PQ8)=>{Object.defineProperty(PQ8,"__esModule",{value:!0});PQ8.KafkaJsInstrumentation=void 0;var S9=_0(),IW=D5(),RQ8=jQ8(),DQ8=OQ8(),p$=Z5();class wQ8 extends p$.InstrumentationBase{constructor(J={}){super(RQ8.PACKAGE_NAME,RQ8.PACKAGE_VERSION,J)}init(){let J=(X)=>{var Y,Q;if((0,p$.isWrapped)((Y=X===null||X===void 0?void 0:X.Kafka)===null||Y===void 0?void 0:Y.prototype.producer))this._unwrap(X.Kafka.prototype,"producer");if((0,p$.isWrapped)((Q=X===null||X===void 0?void 0:X.Kafka)===null||Q===void 0?void 0:Q.prototype.consumer))this._unwrap(X.Kafka.prototype,"consumer")};return new p$.InstrumentationNodeModuleDefinition("kafkajs",[">=0.1.0 <3"],(X)=>{var Y,Q;return J(X),this._wrap((Y=X===null||X===void 0?void 0:X.Kafka)===null||Y===void 0?void 0:Y.prototype,"producer",this._getProducerPatch()),this._wrap((Q=X===null||X===void 0?void 0:X.Kafka)===null||Q===void 0?void 0:Q.prototype,"consumer",this._getConsumerPatch()),X},J)}_getConsumerPatch(){let J=this;return($)=>{return function(...Y){let Q=$.apply(this,Y);if((0,p$.isWrapped)(Q.run))J._unwrap(Q,"run");return J._wrap(Q,"run",J._getConsumerRunPatch()),Q}}}_getProducerPatch(){let J=this;return($)=>{return function(...Y){let Q=$.apply(this,Y);if((0,p$.isWrapped)(Q.sendBatch))J._unwrap(Q,"sendBatch");if(J._wrap(Q,"sendBatch",J._getProducerSendBatchPatch()),(0,p$.isWrapped)(Q.send))J._unwrap(Q,"send");return J._wrap(Q,"send",J._getProducerSendPatch()),Q}}}_getConsumerRunPatch(){let J=this;return($)=>{return function(...Y){let Q=Y[0];if(Q===null||Q===void 0?void 0:Q.eachMessage){if((0,p$.isWrapped)(Q.eachMessage))J._unwrap(Q,"eachMessage");J._wrap(Q,"eachMessage",J._getConsumerEachMessagePatch())}if(Q===null||Q===void 0?void 0:Q.eachBatch){if((0,p$.isWrapped)(Q.eachBatch))J._unwrap(Q,"eachBatch");J._wrap(Q,"eachBatch",J._getConsumerEachBatchPatch())}return $.call(this,Q)}}}_getConsumerEachMessagePatch(){let J=this;return($)=>{return function(...Y){let Q=Y[0],W=S9.propagation.extract(S9.ROOT_CONTEXT,Q.message.headers,DQ8.bufferTextMapGetter),K=J._startConsumerSpan(Q.topic,Q.message,IW.MESSAGINGOPERATIONVALUES_PROCESS,W),Z=S9.context.with(S9.trace.setSpan(W,K),()=>{return $.apply(this,Y)});return J._endSpansOnPromise([K],Z)}}}_getConsumerEachBatchPatch(){return(J)=>{let $=this;return function(...Y){let Q=Y[0],W=$._startConsumerSpan(Q.batch.topic,void 0,IW.MESSAGINGOPERATIONVALUES_RECEIVE,S9.ROOT_CONTEXT);return S9.context.with(S9.trace.setSpan(S9.context.active(),W),()=>{let K=Q.batch.messages.map((G)=>{var V;let H=S9.propagation.extract(S9.ROOT_CONTEXT,G.headers,DQ8.bufferTextMapGetter),z=(V=S9.trace.getSpan(H))===null||V===void 0?void 0:V.spanContext(),q;if(z)q={context:z};return $._startConsumerSpan(Q.batch.topic,G,IW.MESSAGINGOPERATIONVALUES_PROCESS,void 0,q)}),Z=J.apply(this,Y);return K.unshift(W),$._endSpansOnPromise(K,Z)})}}}_getProducerSendBatchPatch(){let J=this;return($)=>{return function(...Y){let K=(Y[0].topicMessages||[]).map((G)=>G.messages.map((V)=>J._startProducerSpan(G.topic,V))).reduce((G,V)=>G.concat(V),[]),Z=$.apply(this,Y);return J._endSpansOnPromise(K,Z)}}}_getProducerSendPatch(){let J=this;return($)=>{return function(...Y){let Q=Y[0],W=Q.messages.map((Z)=>{return J._startProducerSpan(Q.topic,Z)}),K=$.apply(this,Y);return J._endSpansOnPromise(W,K)}}}_endSpansOnPromise(J,$){return Promise.resolve($).catch((X)=>{let Y;if(typeof X==="string")Y=X;else if(typeof X==="object"&&Object.prototype.hasOwnProperty.call(X,"message"))Y=X.message;throw J.forEach((Q)=>Q.setStatus({code:S9.SpanStatusCode.ERROR,message:Y})),X}).finally(()=>{J.forEach((X)=>X.end())})}_startConsumerSpan(J,$,X,Y,Q){let W=this.tracer.startSpan(J,{kind:S9.SpanKind.CONSUMER,attributes:{[IW.SEMATTRS_MESSAGING_SYSTEM]:"kafka",[IW.SEMATTRS_MESSAGING_DESTINATION]:J,[IW.SEMATTRS_MESSAGING_OPERATION]:X},links:Q?[Q]:[]},Y),{consumerHook:K}=this.getConfig();if(K&&$)(0,p$.safeExecuteInTheMiddle)(()=>K(W,{topic:J,message:$}),(Z)=>{if(Z)this._diag.error("consumerHook error",Z)},!0);return W}_startProducerSpan(J,$){var X;let Y=this.tracer.startSpan(J,{kind:S9.SpanKind.PRODUCER,attributes:{[IW.SEMATTRS_MESSAGING_SYSTEM]:"kafka",[IW.SEMATTRS_MESSAGING_DESTINATION]:J}});$.headers=(X=$.headers)!==null&&X!==void 0?X:{},S9.propagation.inject(S9.trace.setSpan(S9.context.active(),Y),$.headers);let{producerHook:Q}=this.getConfig();if(Q)(0,p$.safeExecuteInTheMiddle)(()=>Q(Y,{topic:J,message:$}),(W)=>{if(W)this._diag.error("producerHook error",W)},!0);return Y}}PQ8.KafkaJsInstrumentation=wQ8});var SQ8=P((EQ8)=>{Object.defineProperty(EQ8,"__esModule",{value:!0})});var IQ8=P((AW)=>{var UX6=AW&&AW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),kQ8=AW&&AW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))UX6($,J,X)};Object.defineProperty(AW,"__esModule",{value:!0});kQ8(TQ8(),AW);kQ8(SQ8(),AW)});var hQ8=P((vQ8)=>{Object.defineProperty(vQ8,"__esModule",{value:!0});vQ8.PACKAGE_NAME=vQ8.PACKAGE_VERSION=void 0;vQ8.PACKAGE_VERSION="0.44.1";vQ8.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var dQ8=P((mQ8)=>{Object.defineProperty(mQ8,"__esModule",{value:!0});mQ8.LruMemoizerInstrumentation=void 0;var xQ8=_0(),fQ8=Z5(),bQ8=hQ8();class gQ8 extends fQ8.InstrumentationBase{constructor(J={}){super(bQ8.PACKAGE_NAME,bQ8.PACKAGE_VERSION,J)}init(){return[new fQ8.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <3"],(J)=>{let $=function(){let X=J.apply(this,arguments);return function(){let Y=[...arguments],Q=Y.pop(),W=typeof Q==="function"?xQ8.context.bind(xQ8.context.active(),Q):Q;return Y.push(W),X.apply(this,Y)}};return $.sync=J.sync,$},void 0)]}}mQ8.LruMemoizerInstrumentation=gQ8});var lQ8=P((WG)=>{var LX6=WG&&WG.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),jX6=WG&&WG.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))LX6($,J,X)};Object.defineProperty(WG,"__esModule",{value:!0});jX6(dQ8(),WG)});var iQ8=P((nQ8)=>{Object.defineProperty(nQ8,"__esModule",{value:!0});nQ8.MongodbCommandType=void 0;var NX6;(function(J){J.CREATE_INDEXES="createIndexes",J.FIND_AND_MODIFY="findAndModify",J.IS_MASTER="isMaster",J.COUNT="count",J.AGGREGATE="aggregate",J.UNKNOWN="unknown"})(NX6=nQ8.MongodbCommandType||(nQ8.MongodbCommandType={}))});var aQ8=P((sQ8)=>{Object.defineProperty(sQ8,"__esModule",{value:!0});sQ8.PACKAGE_NAME=sQ8.PACKAGE_VERSION=void 0;sQ8.PACKAGE_VERSION="0.52.0";sQ8.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var $W8=P((eQ8)=>{Object.defineProperty(eQ8,"__esModule",{value:!0});eQ8.MongoDBInstrumentation=void 0;var U6=_0(),i5=Z5(),v4=D5(),_W=iQ8(),oQ8=aQ8(),tQ8={requireParentSpan:!0};class ym extends i5.InstrumentationBase{constructor(J={}){super(oQ8.PACKAGE_NAME,oQ8.PACKAGE_VERSION,Object.assign(Object.assign({},tQ8),J))}setConfig(J={}){super.setConfig(Object.assign(Object.assign({},tQ8),J))}_updateMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter("db.client.connections.usage",{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}init(){let{v3PatchConnection:J,v3UnpatchConnection:$}=this._getV3ConnectionPatches(),{v4PatchConnect:X,v4UnpatchConnect:Y}=this._getV4ConnectPatches(),{v4PatchConnectionCallback:Q,v4PatchConnectionPromise:W,v4UnpatchConnection:K}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:Z,v4UnpatchConnectionPool:G}=this._getV4ConnectionPoolPatches(),{v4PatchSessions:V,v4UnpatchSessions:H}=this._getV4SessionsPatches();return[new i5.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new i5.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],J,$)]),new i5.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <7"],void 0,void 0,[new i5.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],Q,K),new i5.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <7"],W,K),new i5.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],Z,G),new i5.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <7"],X,Y),new i5.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <7"],V,H)])]}_getV3ConnectionPatches(){return{v3PatchConnection:(J)=>{if((0,i5.isWrapped)(J.insert))this._unwrap(J,"insert");if(this._wrap(J,"insert",this._getV3PatchOperation("insert")),(0,i5.isWrapped)(J.remove))this._unwrap(J,"remove");if(this._wrap(J,"remove",this._getV3PatchOperation("remove")),(0,i5.isWrapped)(J.update))this._unwrap(J,"update");if(this._wrap(J,"update",this._getV3PatchOperation("update")),(0,i5.isWrapped)(J.command))this._unwrap(J,"command");if(this._wrap(J,"command",this._getV3PatchCommand()),(0,i5.isWrapped)(J.query))this._unwrap(J,"query");if(this._wrap(J,"query",this._getV3PatchFind()),(0,i5.isWrapped)(J.getMore))this._unwrap(J,"getMore");return this._wrap(J,"getMore",this._getV3PatchCursor()),J},v3UnpatchConnection:(J)=>{if(J===void 0)return;this._unwrap(J,"insert"),this._unwrap(J,"remove"),this._unwrap(J,"update"),this._unwrap(J,"command"),this._unwrap(J,"query"),this._unwrap(J,"getMore")}}}_getV4SessionsPatches(){return{v4PatchSessions:(J)=>{if((0,i5.isWrapped)(J.acquire))this._unwrap(J,"acquire");if(this._wrap(J.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,i5.isWrapped)(J.release))this._unwrap(J,"release");return this._wrap(J.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),J},v4UnpatchSessions:(J)=>{if(J===void 0)return;if((0,i5.isWrapped)(J.acquire))this._unwrap(J,"acquire");if((0,i5.isWrapped)(J.release))this._unwrap(J,"release")}}}_getV4AcquireCommand(){let J=this;return($)=>{return function(){let Y=this.sessions.length,Q=$.call(this),W=this.sessions.length;if(Y===W)J._connectionsUsage.add(1,{state:"used","pool.name":J._poolName});else if(Y-1===W)J._connectionsUsage.add(-1,{state:"idle","pool.name":J._poolName}),J._connectionsUsage.add(1,{state:"used","pool.name":J._poolName});return Q}}}_getV4ReleaseCommand(){let J=this;return($)=>{return function(Y){let Q=$.call(this,Y);return J._connectionsUsage.add(-1,{state:"used","pool.name":J._poolName}),J._connectionsUsage.add(1,{state:"idle","pool.name":J._poolName}),Q}}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:(J)=>{let $=J.ConnectionPool.prototype;if((0,i5.isWrapped)($.checkOut))this._unwrap($,"checkOut");return this._wrap($,"checkOut",this._getV4ConnectionPoolCheckOut()),J},v4UnpatchConnectionPool:(J)=>{if(J===void 0)return;this._unwrap(J.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectPatches(){return{v4PatchConnect:(J)=>{if((0,i5.isWrapped)(J.connect))this._unwrap(J,"connect");return this._wrap(J,"connect",this._getV4ConnectCommand()),J},v4UnpatchConnect:(J)=>{if(J===void 0)return;this._unwrap(J,"connect")}}}_getV4ConnectionPoolCheckOut(){return(J)=>{return function(X){let Y=U6.context.bind(U6.context.active(),X);return J.call(this,Y)}}}_getV4ConnectCommand(){let J=this;return($)=>{return function(Y,Q){if($.length===1){let K=$.call(this,Y);if(K&&typeof K.then==="function")K.then(()=>J.setPoolName(Y),()=>{return});return K}let W=function(K,Z){if(K||!Z){Q(K,Z);return}J.setPoolName(Y),Q(K,Z)};return $.call(this,Y,W)}}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:(J)=>{if((0,i5.isWrapped)(J.Connection.prototype.command))this._unwrap(J.Connection.prototype,"command");return this._wrap(J.Connection.prototype,"command",this._getV4PatchCommandCallback()),J},v4PatchConnectionPromise:(J)=>{if((0,i5.isWrapped)(J.Connection.prototype.command))this._unwrap(J.Connection.prototype,"command");return this._wrap(J.Connection.prototype,"command",this._getV4PatchCommandPromise()),J},v4UnpatchConnection:(J)=>{if(J===void 0)return;this._unwrap(J.Connection.prototype,"command")}}}_getV3PatchOperation(J){let $=this;return(X)=>{return function(Q,W,K,Z,G){let V=U6.trace.getSpan(U6.context.active()),H=$._checkSkipInstrumentation(V),z=typeof Z==="function"?Z:G;if(H||typeof z!=="function"||typeof K!=="object")if(typeof Z==="function")return X.call(this,Q,W,K,Z);else return X.call(this,Q,W,K,Z,G);let q=$.tracer.startSpan(`mongodb.${J}`,{kind:U6.SpanKind.CLIENT});$._populateV3Attributes(q,W,Q,K[0],J);let U=$._patchEnd(q,z);if(typeof Z==="function")return X.call(this,Q,W,K,U);else return X.call(this,Q,W,K,Z,U)}}}_getV3PatchCommand(){let J=this;return($)=>{return function(Y,Q,W,K,Z){let G=U6.trace.getSpan(U6.context.active()),V=J._checkSkipInstrumentation(G),H=typeof K==="function"?K:Z;if(V||typeof H!=="function"||typeof W!=="object")if(typeof K==="function")return $.call(this,Y,Q,W,K);else return $.call(this,Y,Q,W,K,Z);let z=ym._getCommandType(W),q=z===_W.MongodbCommandType.UNKNOWN?"command":z,U=J.tracer.startSpan(`mongodb.${q}`,{kind:U6.SpanKind.CLIENT}),F=z===_W.MongodbCommandType.UNKNOWN?void 0:z;J._populateV3Attributes(U,Q,Y,W,F);let B=J._patchEnd(U,H);if(typeof K==="function")return $.call(this,Y,Q,W,B);else return $.call(this,Y,Q,W,K,B)}}}_getV4PatchCommandCallback(){let J=this;return($)=>{return function(Y,Q,W,K){let Z=U6.trace.getSpan(U6.context.active()),G=J._checkSkipInstrumentation(Z),V=K,H=Object.keys(Q)[0];if(typeof Q!=="object"||Q.ismaster||Q.hello)return $.call(this,Y,Q,W,K);let z=void 0;if(!G)z=J.tracer.startSpan(`mongodb.${H}`,{kind:U6.SpanKind.CLIENT}),J._populateV4Attributes(z,this,Y,Q,H);let q=J._patchEnd(z,V,this.id,H);return $.call(this,Y,Q,W,q)}}}_getV4PatchCommandPromise(){let J=this;return($)=>{return function(...Y){let[Q,W]=Y,K=U6.trace.getSpan(U6.context.active()),Z=J._checkSkipInstrumentation(K),G=Object.keys(W)[0],V=()=>{return};if(typeof W!=="object"||W.ismaster||W.hello)return $.apply(this,Y);let H=void 0;if(!Z)H=J.tracer.startSpan(`mongodb.${G}`,{kind:U6.SpanKind.CLIENT}),J._populateV4Attributes(H,this,Q,W,G);let z=J._patchEnd(H,V,this.id,G),q=$.apply(this,Y);return q.then((U)=>z(null,U),(U)=>z(U)),q}}}_getV3PatchFind(){let J=this;return($)=>{return function(Y,Q,W,K,Z,G){let V=U6.trace.getSpan(U6.context.active()),H=J._checkSkipInstrumentation(V),z=typeof Z==="function"?Z:G;if(H||typeof z!=="function"||typeof W!=="object")if(typeof Z==="function")return $.call(this,Y,Q,W,K,Z);else return $.call(this,Y,Q,W,K,Z,G);let q=J.tracer.startSpan("mongodb.find",{kind:U6.SpanKind.CLIENT});J._populateV3Attributes(q,Q,Y,W,"find");let U=J._patchEnd(q,z);if(typeof Z==="function")return $.call(this,Y,Q,W,K,U);else return $.call(this,Y,Q,W,K,Z,U)}}}_getV3PatchCursor(){let J=this;return($)=>{return function(Y,Q,W,K,Z,G){let V=U6.trace.getSpan(U6.context.active()),H=J._checkSkipInstrumentation(V),z=typeof Z==="function"?Z:G;if(H||typeof z!=="function")if(typeof Z==="function")return $.call(this,Y,Q,W,K,Z);else return $.call(this,Y,Q,W,K,Z,G);let q=J.tracer.startSpan("mongodb.getMore",{kind:U6.SpanKind.CLIENT});J._populateV3Attributes(q,Q,Y,W.cmd,"getMore");let U=J._patchEnd(q,z);if(typeof Z==="function")return $.call(this,Y,Q,W,K,U);else return $.call(this,Y,Q,W,K,Z,U)}}}static _getCommandType(J){if(J.createIndexes!==void 0)return _W.MongodbCommandType.CREATE_INDEXES;else if(J.findandmodify!==void 0)return _W.MongodbCommandType.FIND_AND_MODIFY;else if(J.ismaster!==void 0)return _W.MongodbCommandType.IS_MASTER;else if(J.count!==void 0)return _W.MongodbCommandType.COUNT;else if(J.aggregate!==void 0)return _W.MongodbCommandType.AGGREGATE;else return _W.MongodbCommandType.UNKNOWN}_populateV4Attributes(J,$,X,Y,Q){let W,K;if($){let G=typeof $.address==="string"?$.address.split(":"):"";if(G.length===2)W=G[0],K=G[1]}let Z;if((Y===null||Y===void 0?void 0:Y.documents)&&Y.documents[0])Z=Y.documents[0];else if(Y===null||Y===void 0?void 0:Y.cursors)Z=Y.cursors;else Z=Y;this._addAllSpanAttributes(J,X.db,X.collection,W,K,Z,Q)}_populateV3Attributes(J,$,X,Y,Q){var W,K,Z,G,V,H,z,q;let U,F;if(X&&X.s){if(U=(K=(W=X.s.options)===null||W===void 0?void 0:W.host)!==null&&K!==void 0?K:X.s.host,F=(V=(G=(Z=X.s.options)===null||Z===void 0?void 0:Z.port)!==null&&G!==void 0?G:X.s.port)===null||V===void 0?void 0:V.toString(),U==null||F==null){let M=(H=X.description)===null||H===void 0?void 0:H.address;if(M){let D=M.split(":");U=D[0],F=D[1]}}}let[B,L]=$.toString().split("."),j=(q=(z=Y===null||Y===void 0?void 0:Y.query)!==null&&z!==void 0?z:Y===null||Y===void 0?void 0:Y.q)!==null&&q!==void 0?q:Y;this._addAllSpanAttributes(J,B,L,U,F,j,Q)}_addAllSpanAttributes(J,$,X,Y,Q,W,K){if(J.setAttributes({[v4.SEMATTRS_DB_SYSTEM]:v4.DBSYSTEMVALUES_MONGODB,[v4.SEMATTRS_DB_NAME]:$,[v4.SEMATTRS_DB_MONGODB_COLLECTION]:X,[v4.SEMATTRS_DB_OPERATION]:K,[v4.SEMATTRS_DB_CONNECTION_STRING]:`mongodb://${Y}:${Q}/${$}`}),Y&&Q){J.setAttribute(v4.SEMATTRS_NET_PEER_NAME,Y);let V=parseInt(Q,10);if(!isNaN(V))J.setAttribute(v4.SEMATTRS_NET_PEER_PORT,V)}if(!W)return;let{dbStatementSerializer:Z}=this.getConfig(),G=typeof Z==="function"?Z:this._defaultDbStatementSerializer.bind(this);(0,i5.safeExecuteInTheMiddle)(()=>{let V=G(W);J.setAttribute(v4.SEMATTRS_DB_STATEMENT,V)},(V)=>{if(V)this._diag.error("Error running dbStatementSerializer hook",V)},!0)}_defaultDbStatementSerializer(J){let{enhancedDatabaseReporting:$}=this.getConfig(),X=$?J:this._scrubStatement(J);return JSON.stringify(X)}_scrubStatement(J){if(Array.isArray(J))return J.map(($)=>this._scrubStatement($));if(typeof J==="object"&&J!==null)return Object.fromEntries(Object.entries(J).map(([$,X])=>[$,this._scrubStatement(X)]));return"?"}_handleExecutionResult(J,$){let{responseHook:X}=this.getConfig();if(typeof X==="function")(0,i5.safeExecuteInTheMiddle)(()=>{X(J,{data:$})},(Y)=>{if(Y)this._diag.error("Error running response hook",Y)},!0)}_patchEnd(J,$,X,Y){let Q=U6.context.active(),W=this;return function(...Z){let G=Z[0];if(J){if(G instanceof Error)J===null||J===void 0||J.setStatus({code:U6.SpanStatusCode.ERROR,message:G.message});else{let V=Z[1];W._handleExecutionResult(J,V)}J.end()}return U6.context.with(Q,()=>{if(Y==="endSessions")W._connectionsUsage.add(-1,{state:"idle","pool.name":W._poolName});return $.apply(this,Z)})}}setPoolName(J){var $,X;let Y=($=J.hostAddress)===null||$===void 0?void 0:$.host,Q=(X=J.hostAddress)===null||X===void 0?void 0:X.port,W=J.dbName,K=`mongodb://${Y}:${Q}/${W}`;this._poolName=K}_checkSkipInstrumentation(J){return this.getConfig().requireParentSpan===!0&&J===void 0}}eQ8.MongoDBInstrumentation=ym});var YW8=P((XW8)=>{Object.defineProperty(XW8,"__esModule",{value:!0});XW8.MongodbCommandType=void 0;var RX6;(function(J){J.CREATE_INDEXES="createIndexes",J.FIND_AND_MODIFY="findAndModify",J.IS_MASTER="isMaster",J.COUNT="count",J.UNKNOWN="unknown"})(RX6=XW8.MongodbCommandType||(XW8.MongodbCommandType={}))});var WW8=P((vW)=>{var DX6=vW&&vW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),QW8=vW&&vW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))DX6($,J,X)};Object.defineProperty(vW,"__esModule",{value:!0});QW8($W8(),vW);QW8(YW8(),vW)});var zW8=P((HW8)=>{Object.defineProperty(HW8,"__esModule",{value:!0});HW8.handleCallbackResponse=HW8.handlePromiseResponse=HW8.getAttributesFromCollection=void 0;var GW8=_0(),SX6=Z5(),nB=D5();function kX6(J){return{[nB.SEMATTRS_DB_MONGODB_COLLECTION]:J.name,[nB.SEMATTRS_DB_NAME]:J.conn.name,[nB.SEMATTRS_DB_USER]:J.conn.user,[nB.SEMATTRS_NET_PEER_NAME]:J.conn.host,[nB.SEMATTRS_NET_PEER_PORT]:J.conn.port}}HW8.getAttributesFromCollection=kX6;function VW8(J,$={}){J.recordException($),J.setStatus({code:GW8.SpanStatusCode.ERROR,message:`${$.message} ${$.code?`
|
|
50
50
|
Mongoose Error Code: ${$.code}`:""}`})}function bm(J,$,X,Y=void 0){if(!X)return;(0,SX6.safeExecuteInTheMiddle)(()=>X(J,{moduleVersion:Y,response:$}),(Q)=>{if(Q)GW8.diag.error("mongoose instrumentation: responseHook error",Q)},!0)}function IX6(J,$,X,Y=void 0){if(!(J instanceof Promise))return bm($,J,X,Y),$.end(),J;return J.then((Q)=>{return bm($,Q,X,Y),Q}).catch((Q)=>{throw VW8($,Q),Q}).finally(()=>$.end())}HW8.handlePromiseResponse=IX6;function AX6(J,$,X,Y,Q,W,K=void 0){let Z=0;if(Q.length===2)Z=1;return Q[Z]=(G,V)=>{return G?VW8(Y,G):bm(Y,V,W,K),Y.end(),J(G,V)},$.apply(X,Q)}HW8.handleCallbackResponse=AX6});var BW8=P((UW8)=>{Object.defineProperty(UW8,"__esModule",{value:!0});UW8.PACKAGE_NAME=UW8.PACKAGE_VERSION=void 0;UW8.PACKAGE_VERSION="0.46.1";UW8.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var wW8=P((RW8)=>{Object.defineProperty(RW8,"__esModule",{value:!0});RW8.MongooseInstrumentation=RW8._STORED_PARENT_SPAN=void 0;var T7=_0(),hX6=V5(),gm=zW8(),LW8=Z5(),jW8=BW8(),iB=D5(),rw=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],xX6=["remove","count","findOneAndRemove",...rw],fX6=["count","findOneAndRemove",...rw],bX6=[...rw];function MW8(J){if(!J)return rw;else if(J.startsWith("6.")||J.startsWith("5."))return xX6;else if(J.startsWith("7."))return fX6;else return bX6}function NW8(J){return J&&(J.startsWith("5.")||J.startsWith("6."))||!1}RW8._STORED_PARENT_SPAN=Symbol("stored-parent-span");class OW8 extends LW8.InstrumentationBase{constructor(J={}){super(jW8.PACKAGE_NAME,jW8.PACKAGE_VERSION,J)}init(){return new LW8.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <9"],this.patch.bind(this),this.unpatch.bind(this))}patch(J,$){if(this._wrap(J.Model.prototype,"save",this.patchOnModelMethods("save",$)),J.Model.prototype.$save=J.Model.prototype.save,NW8($))this._wrap(J.Model.prototype,"remove",this.patchOnModelMethods("remove",$));return this._wrap(J.Query.prototype,"exec",this.patchQueryExec($)),this._wrap(J.Aggregate.prototype,"exec",this.patchAggregateExec($)),MW8($).forEach((Y)=>{this._wrap(J.Query.prototype,Y,this.patchAndCaptureSpanContext(Y))}),this._wrap(J.Model,"aggregate",this.patchModelAggregate()),J}unpatch(J,$){let X=MW8($);if(this._unwrap(J.Model.prototype,"save"),J.Model.prototype.$save=J.Model.prototype.save,NW8($))this._unwrap(J.Model.prototype,"remove");this._unwrap(J.Query.prototype,"exec"),this._unwrap(J.Aggregate.prototype,"exec"),X.forEach((Y)=>{this._unwrap(J.Query.prototype,Y)}),this._unwrap(J.Model,"aggregate")}patchAggregateExec(J){let $=this;return(X)=>{return function(Q){var W;if($.getConfig().requireParentSpan&&T7.trace.getSpan(T7.context.active())===void 0)return X.apply(this,arguments);let K=this[RW8._STORED_PARENT_SPAN],Z={},{dbStatementSerializer:G}=$.getConfig();if(G)Z[iB.SEMATTRS_DB_STATEMENT]=G("aggregate",{options:this.options,aggregatePipeline:this._pipeline});let V=$._startSpan(this._model.collection,(W=this._model)===null||W===void 0?void 0:W.modelName,"aggregate",Z,K);return $._handleResponse(V,X,this,arguments,Q,J)}}}patchQueryExec(J){let $=this;return(X)=>{return function(Q){if($.getConfig().requireParentSpan&&T7.trace.getSpan(T7.context.active())===void 0)return X.apply(this,arguments);let W=this[RW8._STORED_PARENT_SPAN],K={},{dbStatementSerializer:Z}=$.getConfig();if(Z)K[iB.SEMATTRS_DB_STATEMENT]=Z(this.op,{condition:this._conditions,updates:this._update,options:this.options,fields:this._fields});let G=$._startSpan(this.mongooseCollection,this.model.modelName,this.op,K,W);return $._handleResponse(G,X,this,arguments,Q,J)}}}patchOnModelMethods(J,$){let X=this;return(Y)=>{return function(W,K){if(X.getConfig().requireParentSpan&&T7.trace.getSpan(T7.context.active())===void 0)return Y.apply(this,arguments);let Z={document:this};if(W&&!(W instanceof Function))Z.options=W;let G={},{dbStatementSerializer:V}=X.getConfig();if(V)G[iB.SEMATTRS_DB_STATEMENT]=V(J,Z);let H=X._startSpan(this.constructor.collection,this.constructor.modelName,J,G);if(W instanceof Function)K=W,W=void 0;return X._handleResponse(H,Y,this,arguments,K,$)}}}patchModelAggregate(){let J=this;return($)=>{return function(){let Y=T7.trace.getSpan(T7.context.active()),Q=J._callOriginalFunction(()=>$.apply(this,arguments));if(Q)Q[RW8._STORED_PARENT_SPAN]=Y;return Q}}}patchAndCaptureSpanContext(J){let $=this;return(X)=>{return function(){return this[RW8._STORED_PARENT_SPAN]=T7.trace.getSpan(T7.context.active()),$._callOriginalFunction(()=>X.apply(this,arguments))}}}_startSpan(J,$,X,Y,Q){return this.tracer.startSpan(`mongoose.${$}.${X}`,{kind:T7.SpanKind.CLIENT,attributes:Object.assign(Object.assign(Object.assign({},Y),(0,gm.getAttributesFromCollection)(J)),{[iB.SEMATTRS_DB_OPERATION]:X,[iB.SEMATTRS_DB_SYSTEM]:"mongoose"})},Q?T7.trace.setSpan(T7.context.active(),Q):void 0)}_handleResponse(J,$,X,Y,Q,W=void 0){let K=this;if(Q instanceof Function)return K._callOriginalFunction(()=>(0,gm.handleCallbackResponse)(Q,$,X,J,Y,K.getConfig().responseHook,W));else{let Z=K._callOriginalFunction(()=>$.apply(X,Y));return(0,gm.handlePromiseResponse)(Z,J,K.getConfig().responseHook,W)}}_callOriginalFunction(J){if(this.getConfig().suppressInternalInstrumentation)return T7.context.with((0,hX6.suppressTracing)(T7.context.active()),J);else return J()}}RW8.MongooseInstrumentation=OW8});var CW8=P((PW8)=>{Object.defineProperty(PW8,"__esModule",{value:!0})});var EW8=P((yW)=>{var gX6=yW&&yW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),TW8=yW&&yW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))gX6($,J,X)};Object.defineProperty(yW,"__esModule",{value:!0});TW8(wW8(),yW);TW8(CW8(),yW)});var AW8=P((IW8)=>{Object.defineProperty(IW8,"__esModule",{value:!0});IW8.AttributeNames=void 0;var uX6;(function(J){J.MYSQL_VALUES="db.mysql.values"})(uX6=IW8.AttributeNames||(IW8.AttributeNames={}))});var hW8=P((vW8)=>{Object.defineProperty(vW8,"__esModule",{value:!0});vW8.getPoolName=vW8.arrayStringifyHelper=vW8.getSpanName=vW8.getDbValues=vW8.getDbStatement=vW8.getConnectionAttributes=void 0;var y4=D5();function dX6(J){let{host:$,port:X,database:Y,user:Q}=lX6(J),W=parseInt(X,10);if(!isNaN(W))return{[y4.SEMATTRS_NET_PEER_NAME]:$,[y4.SEMATTRS_NET_PEER_PORT]:W,[y4.SEMATTRS_DB_CONNECTION_STRING]:_W8($,X,Y),[y4.SEMATTRS_DB_NAME]:Y,[y4.SEMATTRS_DB_USER]:Q};return{[y4.SEMATTRS_NET_PEER_NAME]:$,[y4.SEMATTRS_DB_CONNECTION_STRING]:_W8($,X,Y),[y4.SEMATTRS_DB_NAME]:Y,[y4.SEMATTRS_DB_USER]:Q}}vW8.getConnectionAttributes=dX6;function lX6(J){let{host:$,port:X,database:Y,user:Q}=J&&J.connectionConfig||J||{};return{host:$,port:X,database:Y,user:Q}}function _W8(J,$,X){let Y=`jdbc:mysql://${J||"localhost"}`;if(typeof $==="number")Y+=`:${$}`;if(typeof X==="string")Y+=`/${X}`;return Y}function cX6(J){if(typeof J==="string")return J;else return J.sql}vW8.getDbStatement=cX6;function pX6(J,$){if(typeof J==="string")return dm($);else return dm($||J.values)}vW8.getDbValues=pX6;function nX6(J){let $=typeof J==="object"?J.sql:J,X=$===null||$===void 0?void 0:$.indexOf(" ");if(typeof X==="number"&&X!==-1)return $===null||$===void 0?void 0:$.substring(0,X);return $}vW8.getSpanName=nX6;function dm(J){if(J)return`[${J.toString()}]`;return""}vW8.arrayStringifyHelper=dm;function iX6(J){let $=J.config.connectionConfig,X="";if(X+=$.host?`host: '${$.host}', `:"",X+=$.port?`port: ${$.port}, `:"",X+=$.database?`database: '${$.database}', `:"",X+=$.user?`user: '${$.user}'`:"",!$.user)X=X.substring(0,X.length-2);return X.trim()}vW8.getPoolName=iX6});var bW8=P((xW8)=>{Object.defineProperty(xW8,"__esModule",{value:!0});xW8.PACKAGE_NAME=xW8.PACKAGE_VERSION=void 0;xW8.PACKAGE_VERSION="0.45.1";xW8.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var dW8=P((mW8)=>{Object.defineProperty(mW8,"__esModule",{value:!0});mW8.MySQLInstrumentation=void 0;var $J=_0(),_q=Z5(),lm=D5(),JY6=AW8(),vq=hW8(),gW8=bW8();class ow extends _q.InstrumentationBase{constructor(J={}){super(gW8.PACKAGE_NAME,gW8.PACKAGE_VERSION,J);this._setMetricInstruments()}setMeterProvider(J){super.setMeterProvider(J),this._setMetricInstruments()}_setMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter("db.client.connections.usage",{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}init(){return[new _q.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],(J)=>{if((0,_q.isWrapped)(J.createConnection))this._unwrap(J,"createConnection");if(this._wrap(J,"createConnection",this._patchCreateConnection()),(0,_q.isWrapped)(J.createPool))this._unwrap(J,"createPool");if(this._wrap(J,"createPool",this._patchCreatePool()),(0,_q.isWrapped)(J.createPoolCluster))this._unwrap(J,"createPoolCluster");return this._wrap(J,"createPoolCluster",this._patchCreatePoolCluster()),J},(J)=>{if(J===void 0)return;this._unwrap(J,"createConnection"),this._unwrap(J,"createPool"),this._unwrap(J,"createPoolCluster")})]}_patchCreateConnection(){return(J)=>{let $=this;return function(Y){let Q=J(...arguments);return $._wrap(Q,"query",$._patchQuery(Q)),Q}}}_patchCreatePool(){return(J)=>{let $=this;return function(Y){let Q=J(...arguments);return $._wrap(Q,"query",$._patchQuery(Q)),$._wrap(Q,"getConnection",$._patchGetConnection(Q)),$._wrap(Q,"end",$._patchPoolEnd(Q)),$._setPoolcallbacks(Q,$,""),Q}}}_patchPoolEnd(J){return($)=>{let X=this;return function(Q){let W=J._allConnections.length,K=J._freeConnections.length,Z=W-K,G=(0,vq.getPoolName)(J);X._connectionsUsage.add(-Z,{state:"used",name:G}),X._connectionsUsage.add(-K,{state:"idle",name:G}),$.apply(J,arguments)}}}_patchCreatePoolCluster(){return(J)=>{let $=this;return function(Y){let Q=J(...arguments);return $._wrap(Q,"getConnection",$._patchGetConnection(Q)),$._wrap(Q,"add",$._patchAdd(Q)),Q}}}_patchAdd(J){return($)=>{let X=this;return function(Q,W){if(!X._enabled)return X._unwrap(J,"add"),$.apply(J,arguments);$.apply(J,arguments);let K=J._nodes;if(K){let Z=typeof Q==="object"?"CLUSTER::"+J._lastId:String(Q),G=K[Z].pool;X._setPoolcallbacks(G,X,Q)}}}}_patchGetConnection(J){return($)=>{let X=this;return function(Q,W,K){if(!X._enabled)return X._unwrap(J,"getConnection"),$.apply(J,arguments);if(arguments.length===1&&typeof Q==="function"){let Z=X._getConnectionCallbackPatchFn(Q);return $.call(J,Z)}if(arguments.length===2&&typeof W==="function"){let Z=X._getConnectionCallbackPatchFn(W);return $.call(J,Q,Z)}if(arguments.length===3&&typeof K==="function"){let Z=X._getConnectionCallbackPatchFn(K);return $.call(J,Q,W,Z)}return $.apply(J,arguments)}}}_getConnectionCallbackPatchFn(J){let $=this,X=$J.context.active();return function(Y,Q){if(Q){if(!(0,_q.isWrapped)(Q.query))$._wrap(Q,"query",$._patchQuery(Q))}if(typeof J==="function")$J.context.with(X,J,this,Y,Q)}}_patchQuery(J){return($)=>{let X=this;return function(Y,Q,W){if(!X._enabled)return X._unwrap(J,"query"),$.apply(J,arguments);let K=X.tracer.startSpan((0,vq.getSpanName)(Y),{kind:$J.SpanKind.CLIENT,attributes:Object.assign(Object.assign({},ow.COMMON_ATTRIBUTES),(0,vq.getConnectionAttributes)(J.config))});if(K.setAttribute(lm.SEMATTRS_DB_STATEMENT,(0,vq.getDbStatement)(Y)),X.getConfig().enhancedDatabaseReporting){let V;if(Array.isArray(Q))V=Q;else if(arguments[2])V=[Q];K.setAttribute(JY6.AttributeNames.MYSQL_VALUES,(0,vq.getDbValues)(Y,V))}let Z=Array.from(arguments).findIndex((V)=>typeof V==="function"),G=$J.context.active();if(Z===-1){let V=$J.context.with($J.trace.setSpan($J.context.active(),K),()=>{return $.apply(J,arguments)});return $J.context.bind(G,V),V.on("error",(H)=>K.setStatus({code:$J.SpanStatusCode.ERROR,message:H.message})).on("end",()=>{K.end()})}else return X._wrap(arguments,Z,X._patchCallbackQuery(K,G)),$J.context.with($J.trace.setSpan($J.context.active(),K),()=>{return $.apply(J,arguments)})}}}_patchCallbackQuery(J,$){return(X)=>{return function(Y,Q,W){if(Y)J.setStatus({code:$J.SpanStatusCode.ERROR,message:Y.message});return J.end(),$J.context.with($,()=>X(...arguments))}}}_setPoolcallbacks(J,$,X){let Y=X||(0,vq.getPoolName)(J);J.on("connection",(Q)=>{$._connectionsUsage.add(1,{state:"idle",name:Y})}),J.on("acquire",(Q)=>{$._connectionsUsage.add(-1,{state:"idle",name:Y}),$._connectionsUsage.add(1,{state:"used",name:Y})}),J.on("release",(Q)=>{$._connectionsUsage.add(-1,{state:"used",name:Y}),$._connectionsUsage.add(1,{state:"idle",name:Y})})}}mW8.MySQLInstrumentation=ow;ow.COMMON_ATTRIBUTES={[lm.SEMATTRS_DB_SYSTEM]:lm.DBSYSTEMVALUES_MYSQL}});var cW8=P((lW8)=>{Object.defineProperty(lW8,"__esModule",{value:!0})});var nW8=P((hW)=>{var $Y6=hW&&hW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),pW8=hW&&hW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))$Y6($,J,X)};Object.defineProperty(hW,"__esModule",{value:!0});pW8(dW8(),hW);pW8(cW8(),hW)});var nm=P((rW8)=>{Object.defineProperty(rW8,"__esModule",{value:!0});rW8.addSqlCommenterComment=void 0;var pm=_0(),YY6=V5();function QY6(J){let $=J.indexOf("--");if($>=0)return!0;if(J.indexOf("/*")<0)return!1;let Y=J.indexOf("*/");return $<Y}function WY6(J){return encodeURIComponent(J).replace(/[!'()*]/g,($)=>`%${$.charCodeAt(0).toString(16).toUpperCase()}`)}function KY6(J,$){if(typeof $!=="string"||$.length===0)return $;if(QY6($))return $;let X=new YY6.W3CTraceContextPropagator,Y={};X.inject(pm.trace.setSpan(pm.ROOT_CONTEXT,J),Y,pm.defaultTextMapSetter);let Q=Object.keys(Y).sort();if(Q.length===0)return $;let W=Q.map((K)=>{let Z=WY6(Y[K]);return`${K}='${Z}'`}).join(",");return`${$} /*${W}*/`}rW8.addSqlCommenterComment=KY6});var JK8=P((tW8)=>{Object.defineProperty(tW8,"__esModule",{value:!0});tW8.getConnectionPrototypeToInstrument=tW8.once=tW8.getSpanName=tW8.getDbStatement=tW8.getConnectionAttributes=void 0;var h4=D5();function ZY6(J){let{host:$,port:X,database:Y,user:Q}=GY6(J),W=parseInt(X,10);if(!isNaN(W))return{[h4.SEMATTRS_NET_PEER_NAME]:$,[h4.SEMATTRS_NET_PEER_PORT]:W,[h4.SEMATTRS_DB_CONNECTION_STRING]:oW8($,X,Y),[h4.SEMATTRS_DB_NAME]:Y,[h4.SEMATTRS_DB_USER]:Q};return{[h4.SEMATTRS_NET_PEER_NAME]:$,[h4.SEMATTRS_DB_CONNECTION_STRING]:oW8($,X,Y),[h4.SEMATTRS_DB_NAME]:Y,[h4.SEMATTRS_DB_USER]:Q}}tW8.getConnectionAttributes=ZY6;function GY6(J){let{host:$,port:X,database:Y,user:Q}=J&&J.connectionConfig||J||{};return{host:$,port:X,database:Y,user:Q}}function oW8(J,$,X){let Y=`jdbc:mysql://${J||"localhost"}`;if(typeof $==="number")Y+=`:${$}`;if(typeof X==="string")Y+=`/${X}`;return Y}function VY6(J,$,X){if(!$)return typeof J==="string"?J:J.sql;if(typeof J==="string")return X?$(J,X):J;else return X||J.values?$(J.sql,X||J.values):J.sql}tW8.getDbStatement=VY6;function HY6(J){let $=typeof J==="object"?J.sql:J,X=$===null||$===void 0?void 0:$.indexOf(" ");if(typeof X==="number"&&X!==-1)return $===null||$===void 0?void 0:$.substring(0,X);return $}tW8.getSpanName=HY6;var qY6=(J)=>{let $=!1;return(...X)=>{if($)return;return $=!0,J(...X)}};tW8.once=qY6;function zY6(J){let $=J.prototype,X=Object.getPrototypeOf($);if(typeof(X===null||X===void 0?void 0:X.query)==="function"&&typeof(X===null||X===void 0?void 0:X.execute)==="function")return X;return $}tW8.getConnectionPrototypeToInstrument=zY6});var YK8=P(($K8)=>{Object.defineProperty($K8,"__esModule",{value:!0});$K8.PACKAGE_NAME=$K8.PACKAGE_VERSION=void 0;$K8.PACKAGE_VERSION="0.45.2";$K8.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var VK8=P((ZK8)=>{Object.defineProperty(ZK8,"__esModule",{value:!0});ZK8.MySQL2Instrumentation=void 0;var QK8=_0(),KG=Z5(),sm=D5(),WK8=nm(),yq=JK8(),KK8=YK8(),im=[">=1.4.2 <4"];class ew extends KG.InstrumentationBase{constructor(J={}){super(KK8.PACKAGE_NAME,KK8.PACKAGE_VERSION,J)}init(){let J;function $(Q){if(!J&&Q.format)J=Q.format}let X=(Q)=>{if((0,KG.isWrapped)(Q.query))this._unwrap(Q,"query");if(this._wrap(Q,"query",this._patchQuery(J,!1)),(0,KG.isWrapped)(Q.execute))this._unwrap(Q,"execute");this._wrap(Q,"execute",this._patchQuery(J,!0))},Y=(Q)=>{this._unwrap(Q,"query"),this._unwrap(Q,"execute")};return[new KG.InstrumentationNodeModuleDefinition("mysql2",im,(Q)=>{return $(Q),Q},()=>{},[new KG.InstrumentationNodeModuleFile("mysql2/promise.js",im,(Q)=>{return $(Q),Q},()=>{}),new KG.InstrumentationNodeModuleFile("mysql2/lib/connection.js",im,(Q)=>{let W=(0,yq.getConnectionPrototypeToInstrument)(Q);return X(W),Q},(Q)=>{if(Q===void 0)return;let W=(0,yq.getConnectionPrototypeToInstrument)(Q);Y(W)})])]}_patchQuery(J,$){return(X)=>{let Y=this;return function(Q,W,K){let Z;if(Array.isArray(W))Z=W;else if(arguments[2])Z=[W];let G=Y.tracer.startSpan((0,yq.getSpanName)(Q),{kind:QK8.SpanKind.CLIENT,attributes:Object.assign(Object.assign(Object.assign({},ew.COMMON_ATTRIBUTES),(0,yq.getConnectionAttributes)(this.config)),{[sm.SEMATTRS_DB_STATEMENT]:(0,yq.getDbStatement)(Q,J,Z)})});if(!$&&Y.getConfig().addSqlCommenterCommentToQueries)arguments[0]=Q=typeof Q==="string"?(0,WK8.addSqlCommenterComment)(G,Q):Object.assign(Q,{sql:(0,WK8.addSqlCommenterComment)(G,Q.sql)});let V=(0,yq.once)((H,z)=>{if(H)G.setStatus({code:QK8.SpanStatusCode.ERROR,message:H.message});else{let{responseHook:q}=Y.getConfig();if(typeof q==="function")(0,KG.safeExecuteInTheMiddle)(()=>{q(G,{queryResults:z})},(U)=>{if(U)Y._diag.warn("Failed executing responseHook",U)},!0)}G.end()});if(arguments.length===1){if(typeof Q.onResult==="function")Y._wrap(Q,"onResult",Y._patchCallbackQuery(V));let H=X.apply(this,arguments);return H.once("error",(z)=>{V(z)}).once("result",(z)=>{V(void 0,z)}),H}if(typeof arguments[1]==="function")Y._wrap(arguments,1,Y._patchCallbackQuery(V));else if(typeof arguments[2]==="function")Y._wrap(arguments,2,Y._patchCallbackQuery(V));return X.apply(this,arguments)}}}_patchCallbackQuery(J){return($)=>{return function(X,Y,Q){return J(X,Y),$(...arguments)}}}}ZK8.MySQL2Instrumentation=ew;ew.COMMON_ATTRIBUTES={[sm.SEMATTRS_DB_SYSTEM]:sm.DBSYSTEMVALUES_MYSQL}});var qK8=P((HK8)=>{Object.defineProperty(HK8,"__esModule",{value:!0})});var UK8=P((xW)=>{var MY6=xW&&xW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),zK8=xW&&xW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))MY6($,J,X)};Object.defineProperty(xW,"__esModule",{value:!0});zK8(VK8(),xW);zK8(qK8(),xW)});var MK8=P((LK8)=>{Object.defineProperty(LK8,"__esModule",{value:!0});LK8.endSpan=void 0;var OY6=_0(),RY6=(J,$)=>{if($)J.recordException($),J.setStatus({code:OY6.SpanStatusCode.ERROR,message:$.message});J.end()};LK8.endSpan=RY6});var am=P((NK8)=>{Object.defineProperty(NK8,"__esModule",{value:!0});NK8.defaultDbStatementSerializer=void 0;var DY6=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],wY6=(J,$)=>{var X,Y;if(Array.isArray($)&&$.length){let Q=(Y=(X=DY6.find(({regex:K})=>{return K.test(J)}))===null||X===void 0?void 0:X.args)!==null&&Y!==void 0?Y:0,W=Q>=0?$.slice(0,Q):$;if($.length>W.length)W.push(`[${$.length-Q} other arguments]`);return`${J} ${W.join(" ")}`}return J};NK8.defaultDbStatementSerializer=wY6});var wK8=P((RK8)=>{Object.defineProperty(RK8,"__esModule",{value:!0});RK8.PACKAGE_NAME=RK8.PACKAGE_VERSION=void 0;RK8.PACKAGE_VERSION="0.47.1";RK8.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var IK8=P((SK8)=>{Object.defineProperty(SK8,"__esModule",{value:!0});SK8.IORedisInstrumentation=void 0;var fW=_0(),$P=Z5(),d1=D5(),PK8=Z5(),rB=MK8(),CY6=am(),CK8=wK8(),TK8={requireParentSpan:!0};class EK8 extends $P.InstrumentationBase{constructor(J={}){super(CK8.PACKAGE_NAME,CK8.PACKAGE_VERSION,Object.assign(Object.assign({},TK8),J))}setConfig(J={}){super.setConfig(Object.assign(Object.assign({},TK8),J))}init(){return[new $P.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(J,$)=>{let X=J[Symbol.toStringTag]==="Module"?J.default:J;if((0,$P.isWrapped)(X.prototype.sendCommand))this._unwrap(X.prototype,"sendCommand");if(this._wrap(X.prototype,"sendCommand",this._patchSendCommand($)),(0,$P.isWrapped)(X.prototype.connect))this._unwrap(X.prototype,"connect");return this._wrap(X.prototype,"connect",this._patchConnection()),J},(J)=>{if(J===void 0)return;let $=J[Symbol.toStringTag]==="Module"?J.default:J;this._unwrap($.prototype,"sendCommand"),this._unwrap($.prototype,"connect")})]}_patchSendCommand(J){return($)=>{return this._traceSendCommand($,J)}}_patchConnection(){return(J)=>{return this._traceConnection(J)}}_traceSendCommand(J,$){let X=this;return function(Y){if(arguments.length<1||typeof Y!=="object")return J.apply(this,arguments);let Q=X.getConfig(),W=Q.dbStatementSerializer||CY6.defaultDbStatementSerializer,K=fW.trace.getSpan(fW.context.active())===void 0;if(Q.requireParentSpan===!0&&K)return J.apply(this,arguments);let Z=X.tracer.startSpan(Y.name,{kind:fW.SpanKind.CLIENT,attributes:{[d1.SEMATTRS_DB_SYSTEM]:d1.DBSYSTEMVALUES_REDIS,[d1.SEMATTRS_DB_STATEMENT]:W(Y.name,Y.args)}}),{requestHook:G}=Q;if(G)(0,PK8.safeExecuteInTheMiddle)(()=>G(Z,{moduleVersion:$,cmdName:Y.name,cmdArgs:Y.args}),(z)=>{if(z)fW.diag.error("ioredis instrumentation: request hook failed",z)},!0);let{host:V,port:H}=this.options;Z.setAttributes({[d1.SEMATTRS_NET_PEER_NAME]:V,[d1.SEMATTRS_NET_PEER_PORT]:H,[d1.SEMATTRS_DB_CONNECTION_STRING]:`redis://${V}:${H}`});try{let z=J.apply(this,arguments),q=Y.resolve;Y.resolve=function(F){(0,PK8.safeExecuteInTheMiddle)(()=>{var B;return(B=Q.responseHook)===null||B===void 0?void 0:B.call(Q,Z,Y.name,Y.args,F)},(B)=>{if(B)fW.diag.error("ioredis instrumentation: response hook failed",B)},!0),(0,rB.endSpan)(Z,null),q(F)};let U=Y.reject;return Y.reject=function(F){(0,rB.endSpan)(Z,F),U(F)},z}catch(z){throw(0,rB.endSpan)(Z,z),z}}}_traceConnection(J){let $=this;return function(){let X=fW.trace.getSpan(fW.context.active())===void 0;if($.getConfig().requireParentSpan===!0&&X)return J.apply(this,arguments);let Y=$.tracer.startSpan("connect",{kind:fW.SpanKind.CLIENT,attributes:{[d1.SEMATTRS_DB_SYSTEM]:d1.DBSYSTEMVALUES_REDIS,[d1.SEMATTRS_DB_STATEMENT]:"connect"}}),{host:Q,port:W}=this.options;Y.setAttributes({[d1.SEMATTRS_NET_PEER_NAME]:Q,[d1.SEMATTRS_NET_PEER_PORT]:W,[d1.SEMATTRS_DB_CONNECTION_STRING]:`redis://${Q}:${W}`});try{let K=J.apply(this,arguments);return(0,rB.endSpan)(Y,null),K}catch(K){throw(0,rB.endSpan)(Y,K),K}}}}SK8.IORedisInstrumentation=EK8});var _K8=P((AK8)=>{Object.defineProperty(AK8,"__esModule",{value:!0})});var yK8=P((bW)=>{var TY6=bW&&bW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),vK8=bW&&bW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))TY6($,J,X)};Object.defineProperty(bW,"__esModule",{value:!0});vK8(IK8(),bW);vK8(_K8(),bW)});var fK8=P((hK8)=>{Object.defineProperty(hK8,"__esModule",{value:!0});hK8.getClientAttributes=void 0;var aB=D5();function EY6(J,$){var X,Y;return{[aB.SEMATTRS_DB_SYSTEM]:aB.DBSYSTEMVALUES_REDIS,[aB.SEMATTRS_NET_PEER_NAME]:(X=$===null||$===void 0?void 0:$.socket)===null||X===void 0?void 0:X.host,[aB.SEMATTRS_NET_PEER_PORT]:(Y=$===null||$===void 0?void 0:$.socket)===null||Y===void 0?void 0:Y.port,[aB.SEMATTRS_DB_CONNECTION_STRING]:SY6(J,$===null||$===void 0?void 0:$.url)}}hK8.getClientAttributes=EY6;function SY6(J,$){if(typeof $!=="string"||!$)return;try{let X=new URL($);return X.searchParams.delete("user_pwd"),X.username="",X.password="",X.href}catch(X){J.error("failed to sanitize redis connection url",X)}return}});var mK8=P((bK8)=>{Object.defineProperty(bK8,"__esModule",{value:!0});bK8.PACKAGE_NAME=bK8.PACKAGE_VERSION=void 0;bK8.PACKAGE_VERSION="0.46.1";bK8.PACKAGE_NAME="@opentelemetry/instrumentation-redis-4"});var iK8=P((pK8)=>{Object.defineProperty(pK8,"__esModule",{value:!0});pK8.RedisInstrumentation=void 0;var l1=_0(),V9=Z5(),uK8=fK8(),IY6=am(),dK8=mK8(),AY6=D5(),oB=Symbol("opentelemetry.instrumentation.redis.open_spans"),lK8=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),cK8={requireParentSpan:!1};class tB extends V9.InstrumentationBase{constructor(J={}){super(dK8.PACKAGE_NAME,dK8.PACKAGE_VERSION,Object.assign(Object.assign({},cK8),J))}setConfig(J={}){super.setConfig(Object.assign(Object.assign({},cK8),J))}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(J){let $=new V9.InstrumentationNodeModuleFile(`${J}/dist/lib/commander.js`,["^1.0.0"],(Q,W)=>{let K=Q.transformCommandArguments;if(!K)return this._diag.error("internal instrumentation error, missing transformCommandArguments function"),Q;let Z=(W===null||W===void 0?void 0:W.startsWith("1.0."))?"extendWithCommands":"attachCommands";if((0,V9.isWrapped)(Q===null||Q===void 0?void 0:Q[Z]))this._unwrap(Q,Z);return this._wrap(Q,Z,this._getPatchExtendWithCommands(K)),Q},(Q)=>{if((0,V9.isWrapped)(Q===null||Q===void 0?void 0:Q.extendWithCommands))this._unwrap(Q,"extendWithCommands");if((0,V9.isWrapped)(Q===null||Q===void 0?void 0:Q.attachCommands))this._unwrap(Q,"attachCommands")}),X=new V9.InstrumentationNodeModuleFile(`${J}/dist/lib/client/multi-command.js`,["^1.0.0"],(Q)=>{var W;let K=(W=Q===null||Q===void 0?void 0:Q.default)===null||W===void 0?void 0:W.prototype;if((0,V9.isWrapped)(K===null||K===void 0?void 0:K.exec))this._unwrap(K,"exec");if(this._wrap(K,"exec",this._getPatchMultiCommandsExec()),(0,V9.isWrapped)(K===null||K===void 0?void 0:K.addCommand))this._unwrap(K,"addCommand");return this._wrap(K,"addCommand",this._getPatchMultiCommandsAddCommand()),Q},(Q)=>{var W;let K=(W=Q===null||Q===void 0?void 0:Q.default)===null||W===void 0?void 0:W.prototype;if((0,V9.isWrapped)(K===null||K===void 0?void 0:K.exec))this._unwrap(K,"exec");if((0,V9.isWrapped)(K===null||K===void 0?void 0:K.addCommand))this._unwrap(K,"addCommand")}),Y=new V9.InstrumentationNodeModuleFile(`${J}/dist/lib/client/index.js`,["^1.0.0"],(Q)=>{var W;let K=(W=Q===null||Q===void 0?void 0:Q.default)===null||W===void 0?void 0:W.prototype;if(K===null||K===void 0?void 0:K.multi){if((0,V9.isWrapped)(K===null||K===void 0?void 0:K.multi))this._unwrap(K,"multi");this._wrap(K,"multi",this._getPatchRedisClientMulti())}if(K===null||K===void 0?void 0:K.MULTI){if((0,V9.isWrapped)(K===null||K===void 0?void 0:K.MULTI))this._unwrap(K,"MULTI");this._wrap(K,"MULTI",this._getPatchRedisClientMulti())}if((0,V9.isWrapped)(K===null||K===void 0?void 0:K.sendCommand))this._unwrap(K,"sendCommand");return this._wrap(K,"sendCommand",this._getPatchRedisClientSendCommand()),this._wrap(K,"connect",this._getPatchedClientConnect()),Q},(Q)=>{var W;let K=(W=Q===null||Q===void 0?void 0:Q.default)===null||W===void 0?void 0:W.prototype;if((0,V9.isWrapped)(K===null||K===void 0?void 0:K.multi))this._unwrap(K,"multi");if((0,V9.isWrapped)(K===null||K===void 0?void 0:K.MULTI))this._unwrap(K,"MULTI");if((0,V9.isWrapped)(K===null||K===void 0?void 0:K.sendCommand))this._unwrap(K,"sendCommand")});return new V9.InstrumentationNodeModuleDefinition(J,["^1.0.0"],(Q)=>{return Q},()=>{},[$,X,Y])}_getPatchExtendWithCommands(J){let $=this;return function(Y){return function(W){var K;if(((K=W===null||W===void 0?void 0:W.BaseClass)===null||K===void 0?void 0:K.name)!=="RedisClient")return Y.apply(this,arguments);let Z=W.executor;return W.executor=function(G,V){let H=J(G,V).args;return $._traceClientCommand(Z,this,arguments,H)},Y.apply(this,arguments)}}}_getPatchMultiCommandsExec(){let J=this;return function(X){return function(){let Q=X.apply(this,arguments);if(typeof(Q===null||Q===void 0?void 0:Q.then)!=="function")return J._diag.error("got non promise result when patching RedisClientMultiCommand.exec"),Q;return Q.then((W)=>{let K=this[oB];return J._endSpansWithRedisReplies(K,W),W}).catch((W)=>{let K=this[oB];if(!K)J._diag.error("cannot find open spans to end for redis multi command");else{let Z=W.constructor.name==="MultiErrorReply"?W.replies:Array(K.length).fill(W);J._endSpansWithRedisReplies(K,Z)}return Promise.reject(W)})}}}_getPatchMultiCommandsAddCommand(){let J=this;return function(X){return function(Q){return J._traceClientCommand(X,this,arguments,Q)}}}_getPatchRedisClientMulti(){return function($){return function(){let Y=$.apply(this,arguments);return Y[lK8]=this.options,Y}}}_getPatchRedisClientSendCommand(){let J=this;return function(X){return function(Q){return J._traceClientCommand(X,this,arguments,Q)}}}_getPatchedClientConnect(){let J=this;return function(X){return function(){let Q=this.options,W=(0,uK8.getClientAttributes)(J._diag,Q),K=J.tracer.startSpan(`${tB.COMPONENT}-connect`,{kind:l1.SpanKind.CLIENT,attributes:W});return l1.context.with(l1.trace.setSpan(l1.context.active(),K),()=>{return X.apply(this)}).then((G)=>{return K.end(),G}).catch((G)=>{return K.recordException(G),K.setStatus({code:l1.SpanStatusCode.ERROR,message:G.message}),K.end(),Promise.reject(G)})}}}_traceClientCommand(J,$,X,Y){if(l1.trace.getSpan(l1.context.active())===void 0&&this.getConfig().requireParentSpan)return J.apply($,X);let W=$.options||$[lK8],K=Y[0],Z=Y.slice(1),G=this.getConfig().dbStatementSerializer||IY6.defaultDbStatementSerializer,V=(0,uK8.getClientAttributes)(this._diag,W);try{let q=G(K,Z);if(q!=null)V[AY6.SEMATTRS_DB_STATEMENT]=q}catch(q){this._diag.error("dbStatementSerializer throw an exception",q,{commandName:K})}let H=this.tracer.startSpan(`${tB.COMPONENT}-${K}`,{kind:l1.SpanKind.CLIENT,attributes:V}),z=l1.context.with(l1.trace.setSpan(l1.context.active(),H),()=>{return J.apply($,X)});if(typeof(z===null||z===void 0?void 0:z.then)==="function")z.then((q)=>{this._endSpanWithResponse(H,K,Z,q,void 0)},(q)=>{this._endSpanWithResponse(H,K,Z,null,q)});else{let q=z;q[oB]=q[oB]||[],q[oB].push({span:H,commandName:K,commandArgs:Z})}return z}_endSpansWithRedisReplies(J,$){if(!J)return this._diag.error("cannot find open spans to end for redis multi command");if($.length!==J.length)return this._diag.error("number of multi command spans does not match response from redis");for(let X=0;X<J.length;X++){let{span:Y,commandName:Q,commandArgs:W}=J[X],K=$[X],[Z,G]=K instanceof Error?[null,K]:[K,void 0];this._endSpanWithResponse(Y,Q,W,Z,G)}}_endSpanWithResponse(J,$,X,Y,Q){let{responseHook:W}=this.getConfig();if(!Q&&W)try{W(J,$,X,Y)}catch(K){this._diag.error("responseHook throw an exception",K)}if(Q)J.recordException(Q),J.setStatus({code:l1.SpanStatusCode.ERROR,message:Q===null||Q===void 0?void 0:Q.message});J.end()}}pK8.RedisInstrumentation=tB;tB.COMPONENT="redis"});var rK8=P((sK8)=>{Object.defineProperty(sK8,"__esModule",{value:!0})});var oK8=P((gW)=>{var _Y6=gW&&gW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),aK8=gW&&gW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))_Y6($,J,X)};Object.defineProperty(gW,"__esModule",{value:!0});aK8(iK8(),gW);aK8(rK8(),gW)});var GZ8=P((KZ8)=>{Object.defineProperty(KZ8,"__esModule",{value:!0});KZ8.EVENT_LISTENERS_SET=void 0;KZ8.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var Xu=P((VZ8)=>{Object.defineProperty(VZ8,"__esModule",{value:!0});VZ8.AttributeNames=void 0;var gY6;(function(J){J.PG_VALUES="db.postgresql.values",J.PG_PLAN="db.postgresql.plan",J.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",J.MAX_CLIENT="db.postgresql.max.client"})(gY6=VZ8.AttributeNames||(VZ8.AttributeNames={}))});var Yu=P((HZ8)=>{Object.defineProperty(HZ8,"__esModule",{value:!0});HZ8.METRIC_DB_CLIENT_OPERATION_DURATION=HZ8.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=HZ8.METRIC_DB_CLIENT_CONNECTION_COUNT=HZ8.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=HZ8.DB_CLIENT_CONNECTION_STATE_VALUE_USED=HZ8.ATTR_DB_OPERATION_NAME=HZ8.ATTR_DB_NAMESPACE=HZ8.ATTR_DB_CLIENT_CONNECTION_STATE=HZ8.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0;HZ8.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name";HZ8.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state";HZ8.ATTR_DB_NAMESPACE="db.namespace";HZ8.ATTR_DB_OPERATION_NAME="db.operation.name";HZ8.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used";HZ8.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle";HZ8.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count";HZ8.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests";HZ8.METRIC_DB_CLIENT_OPERATION_DURATION="db.client.operation.duration"});var Wu=P((zZ8)=>{Object.defineProperty(zZ8,"__esModule",{value:!0});zZ8.SpanNames=void 0;var sY6;(function(J){J.QUERY_PREFIX="pg.query",J.CONNECT="pg.connect",J.POOL_CONNECT="pg-pool.connect"})(sY6=zZ8.SpanNames||(zZ8.SpanNames={}))});var RZ8=P((NZ8)=>{Object.defineProperty(NZ8,"__esModule",{value:!0});NZ8.isObjectWithTextString=NZ8.getErrorMessage=NZ8.patchClientConnectCallback=NZ8.patchCallbackPGPool=NZ8.updateCounter=NZ8.getPoolName=NZ8.patchCallback=NZ8.handleExecutionResult=NZ8.handleConfigQuery=NZ8.shouldSkipInstrumentation=NZ8.getSemanticAttributesFromPool=NZ8.getSemanticAttributesFromConnection=NZ8.getConnectionString=NZ8.parseNormalizedOperationName=NZ8.getQuerySpanName=void 0;var mW=_0(),YP=Xu(),r9=D5(),ZG=Yu(),rY6=Z5(),UZ8=Wu();function FZ8(J,$){if(!$)return UZ8.SpanNames.QUERY_PREFIX;let X=typeof $.name==="string"&&$.name?$.name:BZ8($.text);return`${UZ8.SpanNames.QUERY_PREFIX}:${X}${J?` ${J}`:""}`}NZ8.getQuerySpanName=FZ8;function BZ8(J){let $=J.indexOf(" "),X=$===-1?J:J.slice(0,$);return X=X.toUpperCase(),X.endsWith(";")?X.slice(0,-1):X}NZ8.parseNormalizedOperationName=BZ8;function Ku(J){let $=J.host||"localhost",X=J.port||5432,Y=J.database||"";return`postgresql://${$}:${X}/${Y}`}NZ8.getConnectionString=Ku;function LZ8(J){if(Number.isInteger(J))return J;return}function jZ8(J){return{[r9.SEMATTRS_DB_SYSTEM]:r9.DBSYSTEMVALUES_POSTGRESQL,[r9.SEMATTRS_DB_NAME]:J.database,[r9.SEMATTRS_DB_CONNECTION_STRING]:Ku(J),[r9.SEMATTRS_NET_PEER_NAME]:J.host,[r9.SEMATTRS_NET_PEER_PORT]:LZ8(J.port),[r9.SEMATTRS_DB_USER]:J.user}}NZ8.getSemanticAttributesFromConnection=jZ8;function aY6(J){return{[r9.SEMATTRS_DB_SYSTEM]:r9.DBSYSTEMVALUES_POSTGRESQL,[r9.SEMATTRS_DB_NAME]:J.database,[r9.SEMATTRS_DB_CONNECTION_STRING]:Ku(J),[r9.SEMATTRS_NET_PEER_NAME]:J.host,[r9.SEMATTRS_NET_PEER_PORT]:LZ8(J.port),[r9.SEMATTRS_DB_USER]:J.user,[YP.AttributeNames.IDLE_TIMEOUT_MILLIS]:J.idleTimeoutMillis,[YP.AttributeNames.MAX_CLIENT]:J.maxClient}}NZ8.getSemanticAttributesFromPool=aY6;function oY6(J){return J.requireParentSpan===!0&&mW.trace.getSpan(mW.context.active())===void 0}NZ8.shouldSkipInstrumentation=oY6;function tY6(J,$,X){let{connectionParameters:Y}=this,Q=Y.database,W=FZ8(Q,X),K=J.startSpan(W,{kind:mW.SpanKind.CLIENT,attributes:jZ8(Y)});if(!X)return K;if(X.text)K.setAttribute(r9.SEMATTRS_DB_STATEMENT,X.text);if($.enhancedDatabaseReporting&&Array.isArray(X.values))try{let Z=X.values.map((G)=>{if(G==null)return"null";else if(G instanceof Buffer)return G.toString();else if(typeof G==="object"){if(typeof G.toPostgres==="function")return G.toPostgres();return JSON.stringify(G)}else return G.toString()});K.setAttribute(YP.AttributeNames.PG_VALUES,Z)}catch(Z){mW.diag.error("failed to stringify ",X.values,Z)}if(typeof X.name==="string")K.setAttribute(YP.AttributeNames.PG_PLAN,X.name);return K}NZ8.handleConfigQuery=tY6;function MZ8(J,$,X){if(typeof J.responseHook==="function")(0,rY6.safeExecuteInTheMiddle)(()=>{J.responseHook($,{data:X})},(Y)=>{if(Y)mW.diag.error("Error running response hook",Y)},!0)}NZ8.handleExecutionResult=MZ8;function eY6(J,$,X,Y,Q){return function(K,Z){if(K){if(Object.prototype.hasOwnProperty.call(K,"code"))Y[r9.ATTR_ERROR_TYPE]=K.code;$.setStatus({code:mW.SpanStatusCode.ERROR,message:K.message})}else MZ8(J,$,Z);Q(),$.end(),X.call(this,K,Z)}}NZ8.patchCallback=eY6;function J46(J){let $="";return $+=((J===null||J===void 0?void 0:J.host)?`${J.host}`:"unknown_host")+":",$+=((J===null||J===void 0?void 0:J.port)?`${J.port}`:"unknown_port")+"/",$+=(J===null||J===void 0?void 0:J.database)?`${J.database}`:"unknown_database",$.trim()}NZ8.getPoolName=J46;function $46(J,$,X,Y,Q){let{totalCount:W,waitingCount:K,idleCount:Z}=$,G=W-Z;return X.add(G-Q.used,{[ZG.ATTR_DB_CLIENT_CONNECTION_STATE]:ZG.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[ZG.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:J}),X.add(Z-Q.idle,{[ZG.ATTR_DB_CLIENT_CONNECTION_STATE]:ZG.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[ZG.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:J}),Y.add(K-Q.pending,{[ZG.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:J}),{used:G,idle:Z,pending:K}}NZ8.updateCounter=$46;function X46(J,$){return function(Y,Q,W){if(Y)J.setStatus({code:mW.SpanStatusCode.ERROR,message:Y.message});J.end(),$.call(this,Y,Q,W)}}NZ8.patchCallbackPGPool=X46;function Y46(J,$){return function(Y){if(Y)J.setStatus({code:mW.SpanStatusCode.ERROR,message:Y.message});J.end(),$.apply(this,arguments)}}NZ8.patchClientConnectCallback=Y46;function Q46(J){return typeof J==="object"&&J!==null&&"message"in J?String(J.message):void 0}NZ8.getErrorMessage=Q46;function W46(J){var $;return typeof J==="object"&&typeof(($=J)===null||$===void 0?void 0:$.text)==="string"}NZ8.isObjectWithTextString=W46});var PZ8=P((DZ8)=>{Object.defineProperty(DZ8,"__esModule",{value:!0});DZ8.PACKAGE_NAME=DZ8.PACKAGE_VERSION=void 0;DZ8.PACKAGE_VERSION="0.51.1";DZ8.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var vZ8=P((AZ8)=>{Object.defineProperty(AZ8,"__esModule",{value:!0});AZ8.PgInstrumentation=void 0;var c1=Z5(),S5=_0(),CZ8=GZ8(),c6=RZ8(),TZ8=nm(),EZ8=PZ8(),SZ8=Wu(),QP=V5(),uW=D5(),GG=Yu();function WP(J){return J[Symbol.toStringTag]==="Module"?J.default:J}class IZ8 extends c1.InstrumentationBase{constructor(J={}){super(EZ8.PACKAGE_NAME,EZ8.PACKAGE_VERSION,J);this._connectionsCounter={used:0,idle:0,pending:0}}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(GG.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:S5.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[0.001,0.005,0.01,0.05,0.1,0.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(GG.METRIC_DB_CLIENT_CONNECTION_COUNT,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"}),this._connectionPendingRequests=this.meter.createUpDownCounter(GG.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,{description:"The number of current pending requests for an open connection.",unit:"{connection}"})}init(){let J=[">=8.0.3 <9"],$=new c1.InstrumentationNodeModuleFile("pg/lib/native/client.js",J,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),X=new c1.InstrumentationNodeModuleFile("pg/lib/client.js",J,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),Y=new c1.InstrumentationNodeModuleDefinition("pg",J,(W)=>{let K=WP(W);return this._patchPgClient(K.Client),W},(W)=>{let K=WP(W);return this._unpatchPgClient(K.Client),W},[X,$]),Q=new c1.InstrumentationNodeModuleDefinition("pg-pool",[">=2.0.0 <4"],(W)=>{if((0,c1.isWrapped)(W.prototype.connect))this._unwrap(W.prototype,"connect");return this._wrap(W.prototype,"connect",this._getPoolConnectPatch()),W},(W)=>{if((0,c1.isWrapped)(W.prototype.connect))this._unwrap(W.prototype,"connect")});return[Y,Q]}_patchPgClient(J){if(!J)return;let $=WP(J);if((0,c1.isWrapped)($.prototype.query))this._unwrap($.prototype,"query");if((0,c1.isWrapped)($.prototype.connect))this._unwrap($.prototype,"connect");return this._wrap($.prototype,"query",this._getClientQueryPatch()),this._wrap($.prototype,"connect",this._getClientConnectPatch()),J}_unpatchPgClient(J){let $=WP(J);if((0,c1.isWrapped)($.prototype.query))this._unwrap($.prototype,"query");if((0,c1.isWrapped)($.prototype.connect))this._unwrap($.prototype,"connect");return J}_getClientConnectPatch(){let J=this;return($)=>{return function(Y){if(c6.shouldSkipInstrumentation(J.getConfig()))return $.call(this,Y);let Q=J.tracer.startSpan(SZ8.SpanNames.CONNECT,{kind:S5.SpanKind.CLIENT,attributes:c6.getSemanticAttributesFromConnection(this)});if(Y){let K=S5.trace.getSpan(S5.context.active());if(Y=c6.patchClientConnectCallback(Q,Y),K)Y=S5.context.bind(S5.context.active(),Y)}let W=S5.context.with(S5.trace.setSpan(S5.context.active(),Q),()=>{return $.call(this,Y)});return kZ8(Q,W)}}}recordOperationDuration(J,$){let X={};[uW.SEMATTRS_DB_SYSTEM,GG.ATTR_DB_NAMESPACE,uW.ATTR_ERROR_TYPE,uW.ATTR_SERVER_PORT,uW.ATTR_SERVER_ADDRESS,GG.ATTR_DB_OPERATION_NAME].forEach((W)=>{if(W in J)X[W]=J[W]});let Q=(0,QP.hrTimeToMilliseconds)((0,QP.hrTimeDuration)($,(0,QP.hrTime)()))/1000;this._operationDuration.record(Q,X)}_getClientQueryPatch(){let J=this;return($)=>{return this._diag.debug("Patching pg.Client.prototype.query"),function(...Y){if(c6.shouldSkipInstrumentation(J.getConfig()))return $.apply(this,Y);let Q=(0,QP.hrTime)(),W=Y[0],K=typeof W==="string",Z=c6.isObjectWithTextString(W),G=K?{text:W,values:Array.isArray(Y[1])?Y[1]:void 0}:Z?W:void 0,V={[uW.SEMATTRS_DB_SYSTEM]:uW.DBSYSTEMVALUES_POSTGRESQL,[GG.ATTR_DB_NAMESPACE]:this.database,[uW.ATTR_SERVER_PORT]:this.connectionParameters.port,[uW.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};if(G===null||G===void 0?void 0:G.text)V[GG.ATTR_DB_OPERATION_NAME]=c6.parseNormalizedOperationName(G===null||G===void 0?void 0:G.text);let H=()=>{J.recordOperationDuration(V,Q)},z=J.getConfig(),q=c6.handleConfigQuery.call(this,J.tracer,z,G);if(z.addSqlCommenterCommentToQueries){if(K)Y[0]=(0,TZ8.addSqlCommenterComment)(q,W);else if(Z&&!("name"in W))Y[0]=Object.assign(Object.assign({},W),{text:(0,TZ8.addSqlCommenterComment)(q,W.text)})}if(Y.length>0){let B=S5.trace.getSpan(S5.context.active());if(typeof Y[Y.length-1]==="function"){if(Y[Y.length-1]=c6.patchCallback(z,q,Y[Y.length-1],V,H),B)Y[Y.length-1]=S5.context.bind(S5.context.active(),Y[Y.length-1])}else if(typeof(G===null||G===void 0?void 0:G.callback)==="function"){let L=c6.patchCallback(J.getConfig(),q,G.callback,V,H);if(B)L=S5.context.bind(S5.context.active(),L);Y[0].callback=L}}let{requestHook:U}=z;if(typeof U==="function"&&G)(0,c1.safeExecuteInTheMiddle)(()=>{let{database:B,host:L,port:j,user:M}=this.connectionParameters;U(q,{connection:{database:B,host:L,port:j,user:M},query:{text:G.text,values:G.values,name:G.name}})},(B)=>{if(B)J._diag.error("Error running query hook",B)},!0);let F;try{F=$.apply(this,Y)}catch(B){throw q.setStatus({code:S5.SpanStatusCode.ERROR,message:c6.getErrorMessage(B)}),q.end(),B}if(F instanceof Promise)return F.then((B)=>{return new Promise((L)=>{c6.handleExecutionResult(J.getConfig(),q,B),H(),q.end(),L(B)})}).catch((B)=>{return new Promise((L,j)=>{q.setStatus({code:S5.SpanStatusCode.ERROR,message:B.message}),H(),q.end(),j(B)})});return F}}}_setPoolConnectEventListeners(J){if(J[CZ8.EVENT_LISTENERS_SET])return;let $=c6.getPoolName(J.options);J.on("connect",()=>{this._connectionsCounter=c6.updateCounter($,J,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),J.on("acquire",()=>{this._connectionsCounter=c6.updateCounter($,J,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),J.on("remove",()=>{this._connectionsCounter=c6.updateCounter($,J,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),J.on("release",()=>{this._connectionsCounter=c6.updateCounter($,J,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),J[CZ8.EVENT_LISTENERS_SET]=!0}_getPoolConnectPatch(){let J=this;return($)=>{return function(Y){if(c6.shouldSkipInstrumentation(J.getConfig()))return $.call(this,Y);let Q=J.tracer.startSpan(SZ8.SpanNames.POOL_CONNECT,{kind:S5.SpanKind.CLIENT,attributes:c6.getSemanticAttributesFromPool(this.options)});if(J._setPoolConnectEventListeners(this),Y){let K=S5.trace.getSpan(S5.context.active());if(Y=c6.patchCallbackPGPool(Q,Y),K)Y=S5.context.bind(S5.context.active(),Y)}let W=S5.context.with(S5.trace.setSpan(S5.context.active(),Q),()=>{return $.call(this,Y)});return kZ8(Q,W)}}}}AZ8.PgInstrumentation=IZ8;function kZ8(J,$){if(!($ instanceof Promise))return $;let X=$;return S5.context.bind(S5.context.active(),X.then((Y)=>{return J.end(),Y}).catch((Y)=>{return J.setStatus({code:S5.SpanStatusCode.ERROR,message:c6.getErrorMessage(Y)}),J.end(),Promise.reject(Y)}))}});var hZ8=P((yZ8)=>{Object.defineProperty(yZ8,"__esModule",{value:!0})});var xZ8=P((x4)=>{var R46=x4&&x4.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),Zu=x4&&x4.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))R46($,J,X)};Object.defineProperty(x4,"__esModule",{value:!0});Zu(vZ8(),x4);Zu(hZ8(),x4);Zu(Xu(),x4)});var oZ8=P((rZ8)=>{Object.defineProperty(rZ8,"__esModule",{value:!0});rZ8.PACKAGE_NAME=rZ8.PACKAGE_VERSION=void 0;rZ8.PACKAGE_VERSION="0.45.2";rZ8.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var qu=P((tZ8)=>{Object.defineProperty(tZ8,"__esModule",{value:!0});tZ8.HapiLifecycleMethodNames=tZ8.HapiLayerType=tZ8.handlerPatched=tZ8.HapiComponentName=void 0;tZ8.HapiComponentName="@hapi/hapi";tZ8.handlerPatched=Symbol("hapi-handler-patched");tZ8.HapiLayerType={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"};tZ8.HapiLifecycleMethodNames=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"])});var Uu=P((JG8)=>{Object.defineProperty(JG8,"__esModule",{value:!0});JG8.AttributeNames=void 0;var f46;(function(J){J.HAPI_TYPE="hapi.type",J.PLUGIN_NAME="hapi.plugin.name",J.EXT_TYPE="server.ext.type"})(f46=JG8.AttributeNames||(JG8.AttributeNames={}))});var YG8=P(($G8)=>{Object.defineProperty($G8,"__esModule",{value:!0});$G8.getPluginFromInput=$G8.getExtMetadata=$G8.getRouteMetadata=$G8.isPatchableExtMethod=$G8.isDirectExtInput=$G8.isLifecycleExtEventObj=$G8.isLifecycleExtType=$G8.getPluginName=void 0;var VP=D5(),JL=qu(),lW=Uu();function b46(J){if(J.name)return J.name;else return J.pkg.name}$G8.getPluginName=b46;var g46=(J)=>{return typeof J==="string"&&JL.HapiLifecycleMethodNames.has(J)};$G8.isLifecycleExtType=g46;var m46=(J)=>{var $;let X=($=J)===null||$===void 0?void 0:$.type;return X!==void 0&&$G8.isLifecycleExtType(X)};$G8.isLifecycleExtEventObj=m46;var u46=(J)=>{return Array.isArray(J)&&J.length<=3&&$G8.isLifecycleExtType(J[0])&&typeof J[1]==="function"};$G8.isDirectExtInput=u46;var d46=(J)=>{return!Array.isArray(J)};$G8.isPatchableExtMethod=d46;var l46=(J,$)=>{if($)return{attributes:{[VP.SEMATTRS_HTTP_ROUTE]:J.path,[VP.SEMATTRS_HTTP_METHOD]:J.method,[lW.AttributeNames.HAPI_TYPE]:JL.HapiLayerType.PLUGIN,[lW.AttributeNames.PLUGIN_NAME]:$},name:`${$}: route - ${J.path}`};return{attributes:{[VP.SEMATTRS_HTTP_ROUTE]:J.path,[VP.SEMATTRS_HTTP_METHOD]:J.method,[lW.AttributeNames.HAPI_TYPE]:JL.HapiLayerType.ROUTER},name:`route - ${J.path}`}};$G8.getRouteMetadata=l46;var c46=(J,$)=>{if($)return{attributes:{[lW.AttributeNames.EXT_TYPE]:J,[lW.AttributeNames.HAPI_TYPE]:JL.HapiLayerType.EXT,[lW.AttributeNames.PLUGIN_NAME]:$},name:`${$}: ext - ${J}`};return{attributes:{[lW.AttributeNames.EXT_TYPE]:J,[lW.AttributeNames.HAPI_TYPE]:JL.HapiLayerType.EXT},name:`ext - ${J}`}};$G8.getExtMetadata=c46;var p46=(J)=>{if("plugin"in J){if("plugin"in J.plugin)return J.plugin.plugin;return J.plugin}return J};$G8.getPluginFromInput=p46});var VG8=P((ZG8)=>{Object.defineProperty(ZG8,"__esModule",{value:!0});ZG8.HapiInstrumentation=void 0;var gJ=_0(),QG8=V5(),HP=Z5(),WG8=oZ8(),$L=qu(),f4=YG8();class KG8 extends HP.InstrumentationBase{constructor(J={}){super(WG8.PACKAGE_NAME,WG8.PACKAGE_VERSION,J)}init(){return new HP.InstrumentationNodeModuleDefinition($L.HapiComponentName,[">=17.0.0 <22"],(J)=>{let $=J[Symbol.toStringTag]==="Module"?J.default:J;if(!(0,HP.isWrapped)($.server))this._wrap($,"server",this._getServerPatch.bind(this));if(!(0,HP.isWrapped)($.Server))this._wrap($,"Server",this._getServerPatch.bind(this));return $},(J)=>{let $=J[Symbol.toStringTag]==="Module"?J.default:J;this._massUnwrap([$],["server","Server"])})}_getServerPatch(J){let $=this,X=this;return function(Q){let W=J.apply(this,[Q]);return X._wrap(W,"route",(K)=>{return $._getServerRoutePatch.bind($)(K)}),X._wrap(W,"ext",(K)=>{return $._getServerExtPatch.bind($)(K)}),X._wrap(W,"register",$._getServerRegisterPatch.bind($)),W}}_getServerRegisterPatch(J){let $=this;return function(Y,Q){if(Array.isArray(Y))for(let W of Y){let K=(0,f4.getPluginFromInput)(W);$._wrapRegisterHandler(K)}else{let W=(0,f4.getPluginFromInput)(Y);$._wrapRegisterHandler(W)}return J.apply(this,[Y,Q])}}_getServerExtPatch(J,$){let X=this;return function(...Q){if(Array.isArray(Q[0])){let W=Q[0];for(let K=0;K<W.length;K++){let Z=W[K];if((0,f4.isLifecycleExtType)(Z.type)){let G=Z,V=X._wrapExtMethods(G.method,Z.type,$);G.method=V,W[K]=G}}return J.apply(this,Q)}else if((0,f4.isDirectExtInput)(Q)){let W=Q,K=W[1],Z=X._wrapExtMethods(K,W[0],$);return J.apply(this,[W[0],Z,W[2]])}else if((0,f4.isLifecycleExtEventObj)(Q[0])){let W=Q[0],K=X._wrapExtMethods(W.method,W.type,$);return W.method=K,J.call(this,W)}return J.apply(this,Q)}}_getServerRoutePatch(J,$){let X=this;return function(Y){if(Array.isArray(Y))for(let Q=0;Q<Y.length;Q++){let W=X._wrapRouteHandler.call(X,Y[Q],$);Y[Q]=W}else Y=X._wrapRouteHandler.call(X,Y,$);return J.apply(this,[Y])}}_wrapRegisterHandler(J){let $=this,X=(0,f4.getPluginName)(J),Y=J.register,Q=this,W=function(K,Z){return Q._wrap(K,"route",(G)=>{return $._getServerRoutePatch.bind($)(G,X)}),Q._wrap(K,"ext",(G)=>{return $._getServerExtPatch.bind($)(G,X)}),Y.call(this,K,Z)};J.register=W}_wrapExtMethods(J,$,X){let Y=this;if(J instanceof Array){for(let Q=0;Q<J.length;Q++)J[Q]=Y._wrapExtMethods(J[Q],$);return J}else if((0,f4.isPatchableExtMethod)(J)){if(J[$L.handlerPatched]===!0)return J;return J[$L.handlerPatched]=!0,async function(...W){if(gJ.trace.getSpan(gJ.context.active())===void 0)return await J.apply(this,W);let K=(0,f4.getExtMetadata)($,X),Z=Y.tracer.startSpan(K.name,{attributes:K.attributes});try{return await gJ.context.with(gJ.trace.setSpan(gJ.context.active(),Z),J,void 0,...W)}catch(G){throw Z.recordException(G),Z.setStatus({code:gJ.SpanStatusCode.ERROR,message:G.message}),G}finally{Z.end()}}}return J}_wrapRouteHandler(J,$){var X;let Y=this;if(J[$L.handlerPatched]===!0)return J;J[$L.handlerPatched]=!0;let Q=(W)=>{return async function(...K){if(gJ.trace.getSpan(gJ.context.active())===void 0)return await W.call(this,...K);let Z=(0,QG8.getRPCMetadata)(gJ.context.active());if((Z===null||Z===void 0?void 0:Z.type)===QG8.RPCType.HTTP)Z.route=J.path;let G=(0,f4.getRouteMetadata)(J,$),V=Y.tracer.startSpan(G.name,{attributes:G.attributes});try{return await gJ.context.with(gJ.trace.setSpan(gJ.context.active(),V),()=>W.call(this,...K))}catch(H){throw V.recordException(H),V.setStatus({code:gJ.SpanStatusCode.ERROR,message:H.message}),H}finally{V.end()}}};if(typeof J.handler==="function")J.handler=Q(J.handler);else if(typeof J.options==="function"){let W=J.options;J.options=function(K){let Z=W(K);if(typeof Z.handler==="function")Z.handler=Q(Z.handler);return Z}}else if(typeof((X=J.options)===null||X===void 0?void 0:X.handler)==="function")J.options.handler=Q(J.options.handler);return J}}ZG8.HapiInstrumentation=KG8});var qG8=P((cW)=>{var t46=cW&&cW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),HG8=cW&&cW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))t46($,J,X)};Object.defineProperty(cW,"__esModule",{value:!0});HG8(VG8(),cW);HG8(Uu(),cW)});var UP=P((BG8)=>{Object.defineProperty(BG8,"__esModule",{value:!0});BG8.KoaLayerType=void 0;var QQ6;(function(J){J.ROUTER="router",J.MIDDLEWARE="middleware"})(QQ6=BG8.KoaLayerType||(BG8.KoaLayerType={}))});var MG8=P((LG8)=>{Object.defineProperty(LG8,"__esModule",{value:!0});LG8.PACKAGE_NAME=LG8.PACKAGE_VERSION=void 0;LG8.PACKAGE_VERSION="0.47.1";LG8.PACKAGE_NAME="@opentelemetry/instrumentation-koa"});var ju=P((NG8)=>{Object.defineProperty(NG8,"__esModule",{value:!0});NG8.AttributeNames=void 0;var KQ6;(function(J){J.KOA_TYPE="koa.type",J.KOA_NAME="koa.name"})(KQ6=NG8.AttributeNames||(NG8.AttributeNames={}))});var wG8=P((RG8)=>{Object.defineProperty(RG8,"__esModule",{value:!0});RG8.isLayerIgnored=RG8.getMiddlewareMetadata=void 0;var OG8=UP(),FP=ju(),ZQ6=D5(),GQ6=(J,$,X,Y)=>{var Q;if(X)return{attributes:{[FP.AttributeNames.KOA_NAME]:Y===null||Y===void 0?void 0:Y.toString(),[FP.AttributeNames.KOA_TYPE]:OG8.KoaLayerType.ROUTER,[ZQ6.SEMATTRS_HTTP_ROUTE]:Y===null||Y===void 0?void 0:Y.toString()},name:J._matchedRouteName||`router - ${Y}`};else return{attributes:{[FP.AttributeNames.KOA_NAME]:(Q=$.name)!==null&&Q!==void 0?Q:"middleware",[FP.AttributeNames.KOA_TYPE]:OG8.KoaLayerType.MIDDLEWARE},name:`middleware - ${$.name}`}};RG8.getMiddlewareMetadata=GQ6;var VQ6=(J,$)=>{var X;return!!(Array.isArray($===null||$===void 0?void 0:$.ignoreLayersType)&&((X=$===null||$===void 0?void 0:$.ignoreLayersType)===null||X===void 0?void 0:X.includes(J)))};RG8.isLayerIgnored=VQ6});var TG8=P((PG8)=>{Object.defineProperty(PG8,"__esModule",{value:!0});PG8.kLayerPatched=void 0;PG8.kLayerPatched=Symbol("koa-layer-patched")});var hG8=P((vG8)=>{Object.defineProperty(vG8,"__esModule",{value:!0});vG8.KoaInstrumentation=void 0;var sX=_0(),XL=Z5(),EG8=UP(),SG8=MG8(),kG8=wG8(),IG8=V5(),AG8=TG8();class _G8 extends XL.InstrumentationBase{constructor(J={}){super(SG8.PACKAGE_NAME,SG8.PACKAGE_VERSION,J)}init(){return new XL.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <3"],(J)=>{let $=J[Symbol.toStringTag]==="Module"?J.default:J;if($==null)return $;if((0,XL.isWrapped)($.prototype.use))this._unwrap($.prototype,"use");return this._wrap($.prototype,"use",this._getKoaUsePatch.bind(this)),J},(J)=>{let $=J[Symbol.toStringTag]==="Module"?J.default:J;if((0,XL.isWrapped)($.prototype.use))this._unwrap($.prototype,"use")})}_getKoaUsePatch(J){let $=this;return function(Y){let Q;if(Y.router)Q=$._patchRouterDispatch(Y);else Q=$._patchLayer(Y,!1);return J.apply(this,[Q])}}_patchRouterDispatch(J){var $;sX.diag.debug("Patching @koa/router dispatch");let X=J.router,Y=($=X===null||X===void 0?void 0:X.stack)!==null&&$!==void 0?$:[];for(let Q of Y){let{path:W,stack:K}=Q;for(let Z=0;Z<K.length;Z++){let G=K[Z];K[Z]=this._patchLayer(G,!0,W)}}return J}_patchLayer(J,$,X){let Y=$?EG8.KoaLayerType.ROUTER:EG8.KoaLayerType.MIDDLEWARE;if(J[AG8.kLayerPatched]===!0||(0,kG8.isLayerIgnored)(Y,this.getConfig()))return J;if(J.constructor.name==="GeneratorFunction"||J.constructor.name==="AsyncGeneratorFunction")return sX.diag.debug("ignoring generator-based Koa middleware layer"),J;return J[AG8.kLayerPatched]=!0,sX.diag.debug("patching Koa middleware layer"),async(Q,W)=>{if(sX.trace.getSpan(sX.context.active())===void 0)return J(Q,W);let Z=(0,kG8.getMiddlewareMetadata)(Q,J,$,X),G=this.tracer.startSpan(Z.name,{attributes:Z.attributes}),V=(0,IG8.getRPCMetadata)(sX.context.active());if((V===null||V===void 0?void 0:V.type)===IG8.RPCType.HTTP&&Q._matchedRoute)V.route=Q._matchedRoute.toString();let{requestHook:H}=this.getConfig();if(H)(0,XL.safeExecuteInTheMiddle)(()=>H(G,{context:Q,middlewareLayer:J,layerType:Y}),(q)=>{if(q)sX.diag.error("koa instrumentation: request hook failed",q)},!0);let z=sX.trace.setSpan(sX.context.active(),G);return sX.context.with(z,async()=>{try{return await J(Q,W)}catch(q){throw G.recordException(q),q}finally{G.end()}})}}}vG8.KoaInstrumentation=_G8});var xG8=P((b4)=>{var qQ6=b4&&b4.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),Mu=b4&&b4.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))qQ6($,J,X)};Object.defineProperty(b4,"__esModule",{value:!0});Mu(hG8(),b4);Mu(UP(),b4);Mu(ju(),b4)});var Ru=P((lG8)=>{Object.defineProperty(lG8,"__esModule",{value:!0});lG8.ConnectNames=lG8.ConnectTypes=lG8.AttributeNames=void 0;var FQ6;(function(J){J.CONNECT_TYPE="connect.type",J.CONNECT_NAME="connect.name"})(FQ6=lG8.AttributeNames||(lG8.AttributeNames={}));var BQ6;(function(J){J.MIDDLEWARE="middleware",J.REQUEST_HANDLER="request_handler"})(BQ6=lG8.ConnectTypes||(lG8.ConnectTypes={}));var LQ6;(function(J){J.MIDDLEWARE="middleware",J.REQUEST_HANDLER="request handler"})(LQ6=lG8.ConnectNames||(lG8.ConnectNames={}))});var nG8=P((cG8)=>{Object.defineProperty(cG8,"__esModule",{value:!0});cG8.PACKAGE_NAME=cG8.PACKAGE_VERSION=void 0;cG8.PACKAGE_VERSION="0.43.1";cG8.PACKAGE_NAME="@opentelemetry/instrumentation-connect"});var rG8=P((iG8)=>{Object.defineProperty(iG8,"__esModule",{value:!0});iG8._LAYERS_STORE_PROPERTY=void 0;iG8._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var tG8=P((aG8)=>{Object.defineProperty(aG8,"__esModule",{value:!0});aG8.generateRoute=aG8.replaceCurrentStackRoute=aG8.addNewStackLayer=void 0;var MQ6=_0(),pW=rG8(),NQ6=(J)=>{if(Array.isArray(J[pW._LAYERS_STORE_PROPERTY])===!1)Object.defineProperty(J,pW._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]});J[pW._LAYERS_STORE_PROPERTY].push("/");let $=J[pW._LAYERS_STORE_PROPERTY].length;return()=>{if($===J[pW._LAYERS_STORE_PROPERTY].length)J[pW._LAYERS_STORE_PROPERTY].pop();else MQ6.diag.warn("Connect: Trying to pop the stack multiple time")}};aG8.addNewStackLayer=NQ6;var OQ6=(J,$)=>{if($)J[pW._LAYERS_STORE_PROPERTY].splice(-1,1,$)};aG8.replaceCurrentStackRoute=OQ6;var RQ6=(J)=>{return J[pW._LAYERS_STORE_PROPERTY].reduce(($,X)=>$.replace(/\/+$/,"")+X)};aG8.generateRoute=RQ6});var QV8=P((XV8)=>{Object.defineProperty(XV8,"__esModule",{value:!0});XV8.ConnectInstrumentation=XV8.ANONYMOUS_NAME=void 0;var PQ6=_0(),eG8=V5(),hq=Ru(),JV8=nG8(),LP=Z5(),CQ6=D5(),Du=tG8();XV8.ANONYMOUS_NAME="anonymous";class $V8 extends LP.InstrumentationBase{constructor(J={}){super(JV8.PACKAGE_NAME,JV8.PACKAGE_VERSION,J)}init(){return[new LP.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],(J)=>{return this._patchConstructor(J)})]}_patchApp(J){if(!(0,LP.isWrapped)(J.use))this._wrap(J,"use",this._patchUse.bind(this));if(!(0,LP.isWrapped)(J.handle))this._wrap(J,"handle",this._patchHandle.bind(this))}_patchConstructor(J){let $=this;return function(...X){let Y=J.apply(this,X);return $._patchApp(Y),Y}}_patchNext(J,$){return function(Y){let Q=J.apply(this,[Y]);return $(),Q}}_startSpan(J,$){let X,Y,Q;if(J)X=hq.ConnectTypes.REQUEST_HANDLER,Q=hq.ConnectNames.REQUEST_HANDLER,Y=J;else X=hq.ConnectTypes.MIDDLEWARE,Q=hq.ConnectNames.MIDDLEWARE,Y=$.name||XV8.ANONYMOUS_NAME;let W=`${Q} - ${Y}`,K={attributes:{[CQ6.SEMATTRS_HTTP_ROUTE]:J.length>0?J:"/",[hq.AttributeNames.CONNECT_TYPE]:X,[hq.AttributeNames.CONNECT_NAME]:Y}};return this.tracer.startSpan(W,K)}_patchMiddleware(J,$){let X=this,Y=$.length===4;function Q(){if(!X.isEnabled())return $.apply(this,arguments);let[W,K,Z]=Y?[1,2,3]:[0,1,2],G=arguments[W],V=arguments[K],H=arguments[Z];(0,Du.replaceCurrentStackRoute)(G,J);let z=(0,eG8.getRPCMetadata)(PQ6.context.active());if(J&&(z===null||z===void 0?void 0:z.type)===eG8.RPCType.HTTP)z.route=(0,Du.generateRoute)(G);let q="";if(J)q=`request handler - ${J}`;else q=`middleware - ${$.name||XV8.ANONYMOUS_NAME}`;let U=X._startSpan(J,$);X._diag.debug("start span",q);let F=!1;function B(){if(!F)F=!0,X._diag.debug(`finishing span ${U.name}`),U.end();else X._diag.debug(`span ${U.name} - already finished`);V.removeListener("close",B)}return V.addListener("close",B),arguments[Z]=X._patchNext(H,B),$.apply(this,arguments)}return Object.defineProperty(Q,"length",{value:$.length,writable:!1,configurable:!0}),Q}_patchUse(J){let $=this;return function(...X){let Y=X[X.length-1],Q=X[X.length-2]||"";return X[X.length-1]=$._patchMiddleware(Q,Y),J.apply(this,X)}}_patchHandle(J){let $=this;return function(){let[X,Y]=[0,2],Q=arguments[X],W=arguments[Y],K=(0,Du.addNewStackLayer)(Q);if(typeof W==="function")arguments[Y]=$._patchOut(W,K);return J.apply(this,arguments)}}_patchOut(J,$){return function(...Y){return $(),Reflect.apply(J,this,Y)}}}XV8.ConnectInstrumentation=$V8});var KV8=P((nW)=>{var TQ6=nW&&nW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),WV8=nW&&nW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))TQ6($,J,X)};Object.defineProperty(nW,"__esModule",{value:!0});WV8(Ru(),nW);WV8(QV8(),nW)});var zV8=P((HV8)=>{Object.defineProperty(HV8,"__esModule",{value:!0});HV8.PACKAGE_NAME=HV8.PACKAGE_VERSION=void 0;HV8.PACKAGE_VERSION="0.44.1";HV8.PACKAGE_NAME="@opentelemetry/instrumentation-knex"});var BV8=P((UV8)=>{Object.defineProperty(UV8,"__esModule",{value:!0});UV8.SUPPORTED_VERSIONS=UV8.MODULE_NAME=void 0;UV8.MODULE_NAME="knex";UV8.SUPPORTED_VERSIONS=[">=0.22.0 <4",">=0.10.0 <0.18.0",">=0.19.0 <0.22.0",">=0.18.0 <0.19.0"]});var MV8=P((jV8)=>{Object.defineProperty(jV8,"__esModule",{value:!0});jV8.extractTableName=jV8.limitLength=jV8.getName=jV8.mapSystem=jV8.otelExceptionFromKnexError=jV8.getFormatter=void 0;var LV8=D5(),bQ6=(J)=>{if(J){if(J.client){if(J.client._formatQuery)return J.client._formatQuery.bind(J.client);else if(J.client.SqlString)return J.client.SqlString.format.bind(J.client.SqlString)}if(J.builder)return J.builder.toString.bind(J.builder)}return()=>"<noop formatter>"};jV8.getFormatter=bQ6;function gQ6(J,$){if(!(J&&J instanceof Error))return J;return{message:$,code:J.code,stack:J.stack,name:J.name}}jV8.otelExceptionFromKnexError=gQ6;var mQ6=new Map([["sqlite3",LV8.DBSYSTEMVALUES_SQLITE],["pg",LV8.DBSYSTEMVALUES_POSTGRESQL]]),uQ6=(J)=>{return mQ6.get(J)||J};jV8.mapSystem=uQ6;var dQ6=(J,$,X)=>{if($){if(X)return`${$} ${J}.${X}`;return`${$} ${J}`}return J};jV8.getName=dQ6;var lQ6=(J,$)=>{if(typeof J==="string"&&typeof $==="number"&&0<$&&$<J.length)return J.substring(0,$)+"..";return J};jV8.limitLength=lQ6;var cQ6=(J)=>{var $;let X=($=J===null||J===void 0?void 0:J._single)===null||$===void 0?void 0:$.table;if(typeof X==="object")return jV8.extractTableName(X);return X};jV8.extractTableName=cQ6});var CV8=P((wV8)=>{Object.defineProperty(wV8,"__esModule",{value:!0});wV8.KnexInstrumentation=void 0;var g4=_0(),NV8=zV8(),NP=BV8(),YL=Z5(),m4=D5(),xq=MV8(),OV8=Symbol("opentelemetry.instrumentation-knex.context"),RV8={maxQueryLength:1022,requireParentSpan:!1};class DV8 extends YL.InstrumentationBase{constructor(J={}){super(NV8.PACKAGE_NAME,NV8.PACKAGE_VERSION,Object.assign(Object.assign({},RV8),J))}setConfig(J={}){super.setConfig(Object.assign(Object.assign({},RV8),J))}init(){let J=new YL.InstrumentationNodeModuleDefinition(NP.MODULE_NAME,NP.SUPPORTED_VERSIONS);return J.files.push(this.getClientNodeModuleFileInstrumentation("src"),this.getClientNodeModuleFileInstrumentation("lib"),this.getRunnerNodeModuleFileInstrumentation("src"),this.getRunnerNodeModuleFileInstrumentation("lib"),this.getRunnerNodeModuleFileInstrumentation("lib/execution")),J}getRunnerNodeModuleFileInstrumentation(J){return new YL.InstrumentationNodeModuleFile(`knex/${J}/runner.js`,NP.SUPPORTED_VERSIONS,($,X)=>{return this.ensureWrapped($.prototype,"query",this.createQueryWrapper(X)),$},($,X)=>{return this._unwrap($.prototype,"query"),$})}getClientNodeModuleFileInstrumentation(J){return new YL.InstrumentationNodeModuleFile(`knex/${J}/client.js`,NP.SUPPORTED_VERSIONS,($)=>{return this.ensureWrapped($.prototype,"queryBuilder",this.storeContext.bind(this)),this.ensureWrapped($.prototype,"schemaBuilder",this.storeContext.bind(this)),this.ensureWrapped($.prototype,"raw",this.storeContext.bind(this)),$},($)=>{return this._unwrap($.prototype,"queryBuilder"),this._unwrap($.prototype,"schemaBuilder"),this._unwrap($.prototype,"raw"),$})}createQueryWrapper(J){let $=this;return function(Y){return function(W){var K,Z,G,V,H,z;let q=this.client.config,U=xq.extractTableName(this.builder),F=W===null||W===void 0?void 0:W.method,B=((K=q===null||q===void 0?void 0:q.connection)===null||K===void 0?void 0:K.filename)||((Z=q===null||q===void 0?void 0:q.connection)===null||Z===void 0?void 0:Z.database),{maxQueryLength:L}=$.getConfig(),j={"knex.version":J,[m4.SEMATTRS_DB_SYSTEM]:xq.mapSystem(q.client),[m4.SEMATTRS_DB_SQL_TABLE]:U,[m4.SEMATTRS_DB_OPERATION]:F,[m4.SEMATTRS_DB_USER]:(G=q===null||q===void 0?void 0:q.connection)===null||G===void 0?void 0:G.user,[m4.SEMATTRS_DB_NAME]:B,[m4.SEMATTRS_NET_PEER_NAME]:(V=q===null||q===void 0?void 0:q.connection)===null||V===void 0?void 0:V.host,[m4.SEMATTRS_NET_PEER_PORT]:(H=q===null||q===void 0?void 0:q.connection)===null||H===void 0?void 0:H.port,[m4.SEMATTRS_NET_TRANSPORT]:((z=q===null||q===void 0?void 0:q.connection)===null||z===void 0?void 0:z.filename)===":memory:"?"inproc":void 0};if(L)j[m4.SEMATTRS_DB_STATEMENT]=xq.limitLength(W===null||W===void 0?void 0:W.sql,L);let M=this.builder[OV8]||g4.context.active(),D=g4.trace.getSpan(M),w=D&&g4.trace.isSpanContextValid(D.spanContext());if($._config.requireParentSpan&&!w)return Y.bind(this)(...arguments);let R=$.tracer.startSpan(xq.getName(B,F,U),{kind:g4.SpanKind.CLIENT,attributes:j},M),N=g4.trace.setSpan(g4.context.active(),R);return g4.context.with(N,Y,this,...arguments).then((O)=>{return R.end(),O}).catch((O)=>{let S=xq.getFormatter(this)(W.sql,W.bindings||[]),_=O.message.replace(S+" - ",""),E=xq.otelExceptionFromKnexError(O,_);throw R.recordException(E),R.setStatus({code:g4.SpanStatusCode.ERROR,message:_}),R.end(),O})}}}storeContext(J){return function(){let X=J.apply(this,arguments);return Object.defineProperty(X,OV8,{value:g4.context.active()}),X}}ensureWrapped(J,$,X){if((0,YL.isWrapped)(J[$]))this._unwrap(J,$);this._wrap(J,$,X)}}wV8.KnexInstrumentation=DV8});var EV8=P((TV8)=>{Object.defineProperty(TV8,"__esModule",{value:!0})});var kV8=P((iW)=>{var aQ6=iW&&iW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),SV8=iW&&iW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))aQ6($,J,X)};Object.defineProperty(iW,"__esModule",{value:!0});SV8(CV8(),iW);SV8(EV8(),iW)});var hV8=P((vV8)=>{Object.defineProperty(vV8,"__esModule",{value:!0});vV8.once=vV8.getSpanName=void 0;function eQ6(J,$,X,Y){if(J==="execBulkLoad"&&Y&&$)return`${J} ${Y} ${$}`;if(J==="callProcedure"){if($)return`${J} ${X} ${$}`;return`${J} ${X}`}if($)return`${J} ${$}`;return`${J}`}vV8.getSpanName=eQ6;var JW6=(J)=>{let $=!1;return(...X)=>{if($)return;return $=!0,J(...X)}};vV8.once=JW6});var bV8=P((xV8)=>{Object.defineProperty(xV8,"__esModule",{value:!0});xV8.PACKAGE_NAME=xV8.PACKAGE_VERSION=void 0;xV8.PACKAGE_VERSION="0.18.1";xV8.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var pV8=P((lV8)=>{Object.defineProperty(lV8,"__esModule",{value:!0});lV8.TediousInstrumentation=void 0;var QL=_0(),YW6=H0("events"),OP=Z5(),sW=D5(),gV8=hV8(),mV8=bV8(),dV8=Symbol("opentelemetry.instrumentation-tedious.current-database"),uV8=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function RP(J){Object.defineProperty(this,dV8,{value:J,writable:!0})}class DP extends OP.InstrumentationBase{constructor(J={}){super(mV8.PACKAGE_NAME,mV8.PACKAGE_VERSION,J)}init(){return[new OP.InstrumentationNodeModuleDefinition(DP.COMPONENT,[">=1.11.0 <20"],(J)=>{let $=J.Connection.prototype;for(let X of uV8){if((0,OP.isWrapped)($[X]))this._unwrap($,X);this._wrap($,X,this._patchQuery(X))}if((0,OP.isWrapped)($.connect))this._unwrap($,"connect");return this._wrap($,"connect",this._patchConnect),J},(J)=>{if(J===void 0)return;let $=J.Connection.prototype;for(let X of uV8)this._unwrap($,X);this._unwrap($,"connect")})]}_patchConnect(J){return function(){var X,Y;return RP.call(this,(Y=(X=this.config)===null||X===void 0?void 0:X.options)===null||Y===void 0?void 0:Y.database),this.removeListener("databaseChange",RP),this.on("databaseChange",RP),this.once("end",()=>{this.removeListener("databaseChange",RP)}),J.apply(this,arguments)}}_patchQuery(J){return($)=>{let X=this;function Y(Q){var W,K,Z,G,V,H,z,q;if(!(Q instanceof YW6.EventEmitter))return X._diag.warn(`Unexpected invocation of patched ${J} method. Span not recorded`),$.apply(this,arguments);let U=0,F=0,B=()=>F++,L=()=>U++,j=this[dV8],M=((R)=>{var N,O;if(R.sqlTextOrProcedure==="sp_prepare"&&((O=(N=R.parametersByName)===null||N===void 0?void 0:N.stmt)===null||O===void 0?void 0:O.value))return R.parametersByName.stmt.value;return R.sqlTextOrProcedure})(Q),D=X.tracer.startSpan((0,gV8.getSpanName)(J,j,M,Q.table),{kind:QL.SpanKind.CLIENT,attributes:{[sW.SEMATTRS_DB_SYSTEM]:sW.DBSYSTEMVALUES_MSSQL,[sW.SEMATTRS_DB_NAME]:j,[sW.SEMATTRS_NET_PEER_PORT]:(K=(W=this.config)===null||W===void 0?void 0:W.options)===null||K===void 0?void 0:K.port,[sW.SEMATTRS_NET_PEER_NAME]:(Z=this.config)===null||Z===void 0?void 0:Z.server,[sW.SEMATTRS_DB_USER]:(V=(G=this.config)===null||G===void 0?void 0:G.userName)!==null&&V!==void 0?V:(q=(z=(H=this.config)===null||H===void 0?void 0:H.authentication)===null||z===void 0?void 0:z.options)===null||q===void 0?void 0:q.userName,[sW.SEMATTRS_DB_STATEMENT]:M,[sW.SEMATTRS_DB_SQL_TABLE]:Q.table}}),w=(0,gV8.once)((R)=>{if(Q.removeListener("done",B),Q.removeListener("doneInProc",B),Q.removeListener("doneProc",L),Q.removeListener("error",w),this.removeListener("end",w),D.setAttribute("tedious.procedure_count",U),D.setAttribute("tedious.statement_count",F),R)D.setStatus({code:QL.SpanStatusCode.ERROR,message:R.message});D.end()});if(Q.on("done",B),Q.on("doneInProc",B),Q.on("doneProc",L),Q.once("error",w),this.on("end",w),typeof Q.callback==="function")X._wrap(Q,"callback",X._patchCallbackQuery(w));else X._diag.error("Expected request.callback to be a function");return QL.context.with(QL.trace.setSpan(QL.context.active(),D),$,this,...arguments)}return Object.defineProperty(Y,"length",{value:$.length,writable:!1}),Y}}_patchCallbackQuery(J){return($)=>{return function(X,Y,Q){return J(X),$.apply(this,arguments)}}}}lV8.TediousInstrumentation=DP;DP.COMPONENT="tedious"});var iV8=P((nV8)=>{Object.defineProperty(nV8,"__esModule",{value:!0})});var rV8=P((rW)=>{var QW6=rW&&rW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),sV8=rW&&rW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))QW6($,J,X)};Object.defineProperty(rW,"__esModule",{value:!0});sV8(pV8(),rW);sV8(iV8(),rW)});var JH8=P((tV8)=>{Object.defineProperty(tV8,"__esModule",{value:!0});tV8.PACKAGE_NAME=tV8.PACKAGE_VERSION=void 0;tV8.PACKAGE_VERSION="0.43.1";tV8.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var WH8=P((YH8)=>{Object.defineProperty(YH8,"__esModule",{value:!0});YH8.GenericPoolInstrumentation=void 0;var fq=_0(),VG=Z5(),$H8=JH8(),Su="generic-pool";class XH8 extends VG.InstrumentationBase{constructor(J={}){super($H8.PACKAGE_NAME,$H8.PACKAGE_VERSION,J);this._isDisabled=!1}init(){return[new VG.InstrumentationNodeModuleDefinition(Su,[">=3.0.0 <4"],(J)=>{let $=J.Pool;if((0,VG.isWrapped)($.prototype.acquire))this._unwrap($.prototype,"acquire");return this._wrap($.prototype,"acquire",this._acquirePatcher.bind(this)),J},(J)=>{let $=J.Pool;return this._unwrap($.prototype,"acquire"),J}),new VG.InstrumentationNodeModuleDefinition(Su,[">=2.4.0 <3"],(J)=>{let $=J.Pool;if((0,VG.isWrapped)($.prototype.acquire))this._unwrap($.prototype,"acquire");return this._wrap($.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),J},(J)=>{let $=J.Pool;return this._unwrap($.prototype,"acquire"),J}),new VG.InstrumentationNodeModuleDefinition(Su,[">=2.0.0 <2.4"],(J)=>{if(this._isDisabled=!1,(0,VG.isWrapped)(J.Pool))this._unwrap(J,"Pool");return this._wrap(J,"Pool",this._poolWrapper.bind(this)),J},(J)=>{return this._isDisabled=!0,J})]}_acquirePatcher(J){let $=this;return function(...Y){let Q=fq.context.active(),W=$.tracer.startSpan("generic-pool.acquire",{},Q);return fq.context.with(fq.trace.setSpan(Q,W),()=>{return J.call(this,...Y).then((K)=>{return W.end(),K},(K)=>{throw W.recordException(K),W.end(),K})})}}_poolWrapper(J){let $=this;return function(){let Y=J.apply(this,arguments);return $._wrap(Y,"acquire",$._acquireWithCallbacksPatcher.bind($)),Y}}_acquireWithCallbacksPatcher(J){let $=this;return function(Y,Q){if($._isDisabled)return J.call(this,Y,Q);let W=fq.context.active(),K=$.tracer.startSpan("generic-pool.acquire",{},W);return fq.context.with(fq.trace.setSpan(W,K),()=>{J.call(this,(Z,G)=>{if(K.end(),Y)return Y(Z,G)},Q)})}}}YH8.GenericPoolInstrumentation=XH8});var KH8=P((HG)=>{var GW6=HG&&HG.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),VW6=HG&&HG.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))GW6($,J,X)};Object.defineProperty(HG,"__esModule",{value:!0});VW6(WH8(),HG)});var HH8=P((VH8)=>{Object.defineProperty(VH8,"__esModule",{value:!0})});var UH8=P((qH8)=>{Object.defineProperty(qH8,"__esModule",{value:!0});qH8.PACKAGE_NAME=qH8.PACKAGE_VERSION=void 0;qH8.PACKAGE_VERSION="0.16.1";qH8.PACKAGE_NAME="@opentelemetry/instrumentation-dataloader"});var MH8=P((LH8)=>{Object.defineProperty(LH8,"__esModule",{value:!0});LH8.DataloaderInstrumentation=void 0;var qG=Z5(),E7=_0(),FH8=UH8(),Iu="dataloader";class BH8 extends qG.InstrumentationBase{constructor(J={}){super(FH8.PACKAGE_NAME,FH8.PACKAGE_VERSION,J)}init(){return[new qG.InstrumentationNodeModuleDefinition(Iu,[">=2.0.0 <3"],(J)=>{return this._patchLoad(J.prototype),this._patchLoadMany(J.prototype),this._getPatchedConstructor(J)},(J)=>{if((0,qG.isWrapped)(J.prototype.load))this._unwrap(J.prototype,"load");if((0,qG.isWrapped)(J.prototype.loadMany))this._unwrap(J.prototype,"loadMany")})]}shouldCreateSpans(){let J=this.getConfig();return E7.trace.getSpan(E7.context.active())!==void 0||!J.requireParentSpan}getSpanName(J,$){let X=J.name;if(X===void 0||X===null)return`${Iu}.${$}`;return`${Iu}.${$} ${X}`}_getPatchedConstructor(J){let $=J.prototype,X=this;function Y(...Q){let W=new J(...Q);if(!X.isEnabled())return W;if((0,qG.isWrapped)(W._batchLoadFn))X._unwrap(W,"_batchLoadFn");return X._wrap(W,"_batchLoadFn",(K)=>{return function(...G){var V;if(!X.isEnabled()||!X.shouldCreateSpans())return K.call(this,...G);let H=E7.context.active(),z=X.tracer.startSpan(X.getSpanName(W,"batch"),{links:(V=this._batch)===null||V===void 0?void 0:V.spanLinks},H);return E7.context.with(E7.trace.setSpan(H,z),()=>{return K.apply(this,G).then((q)=>{return z.end(),q}).catch((q)=>{throw z.recordException(q),z.setStatus({code:E7.SpanStatusCode.ERROR,message:q.message}),z.end(),q})})}}),W}return Y.prototype=$,Y}_patchLoad(J){if((0,qG.isWrapped)(J.load))this._unwrap(J,"load");this._wrap(J,"load",this._getPatchedLoad.bind(this))}_getPatchedLoad(J){let $=this;return function(...Y){if(!$.shouldCreateSpans())return J.call(this,...Y);let Q=E7.context.active(),W=$.tracer.startSpan($.getSpanName(this,"load"),{kind:E7.SpanKind.CLIENT},Q);return E7.context.with(E7.trace.setSpan(Q,W),()=>{let K=J.call(this,...Y).then((G)=>{return W.end(),G}).catch((G)=>{throw W.recordException(G),W.setStatus({code:E7.SpanStatusCode.ERROR,message:G.message}),W.end(),G}),Z=this;if(Z._batch){if(!Z._batch.spanLinks)Z._batch.spanLinks=[];Z._batch.spanLinks.push({context:W.spanContext()})}return K})}}_patchLoadMany(J){if((0,qG.isWrapped)(J.loadMany))this._unwrap(J,"loadMany");this._wrap(J,"loadMany",this._getPatchedLoadMany.bind(this))}_getPatchedLoadMany(J){let $=this;return function(...Y){if(!$.shouldCreateSpans())return J.call(this,...Y);let Q=E7.context.active(),W=$.tracer.startSpan($.getSpanName(this,"loadMany"),{kind:E7.SpanKind.CLIENT},Q);return E7.context.with(E7.trace.setSpan(Q,W),()=>{return J.call(this,...Y).then((K)=>{return W.end(),K})})}}}LH8.DataloaderInstrumentation=BH8});var OH8=P((aW)=>{var zW6=aW&&aW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),NH8=aW&&aW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))zW6($,J,X)};Object.defineProperty(aW,"__esModule",{value:!0});NH8(HH8(),aW);NH8(MH8(),aW)});var Au=P((CH8)=>{Object.defineProperty(CH8,"__esModule",{value:!0});CH8.DEFAULT_CONFIG=CH8.EndOperation=void 0;var BW6;(function(J){J.AutoAck="auto ack",J.Ack="ack",J.AckAll="ackAll",J.Reject="reject",J.Nack="nack",J.NackAll="nackAll",J.ChannelClosed="channel closed",J.ChannelError="channel error",J.InstrumentationTimeout="instrumentation timeout"})(BW6=CH8.EndOperation||(CH8.EndOperation={}));CH8.DEFAULT_CONFIG={consumeTimeoutMs:60000,useLinksForConsume:!1}});var _H8=P((IH8)=>{Object.defineProperty(IH8,"__esModule",{value:!0});IH8.isConfirmChannelTracing=IH8.unmarkConfirmChannelTracing=IH8.markConfirmChannelTracing=IH8.getConnectionAttributesFromUrl=IH8.getConnectionAttributesFromServer=IH8.normalizeExchange=IH8.CONNECTION_ATTRIBUTES=IH8.CHANNEL_CONSUME_TIMEOUT_TIMER=IH8.CHANNEL_SPANS_NOT_ENDED=IH8.MESSAGE_STORED_SPAN=void 0;var _u=_0(),u4=D5();IH8.MESSAGE_STORED_SPAN=Symbol("opentelemetry.amqplib.message.stored-span");IH8.CHANNEL_SPANS_NOT_ENDED=Symbol("opentelemetry.amqplib.channel.spans-not-ended");IH8.CHANNEL_CONSUME_TIMEOUT_TIMER=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer");IH8.CONNECTION_ATTRIBUTES=Symbol("opentelemetry.amqplib.connection.attributes");var vu=(0,_u.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),LW6=(J)=>J!==""?J:"<default>";IH8.normalizeExchange=LW6;var jW6=(J)=>{return J.replace(/:[^:@/]*@/,":***@")},EH8=(J,$)=>{return J||($==="AMQP"?5672:5671)},SH8=(J)=>{let $=J||"amqp";return($.endsWith(":")?$.substring(0,$.length-1):$).toUpperCase()},kH8=(J)=>{return J||"localhost"},bq=(J,$,X,Y)=>{if(X)return{[$]:X};else return _u.diag.error(`amqplib instrumentation: could not extract connection attribute ${Y} from user supplied url`,{url:J}),{}},MW6=(J)=>{var $,X;let Y=(X=($=J.serverProperties.product)===null||$===void 0?void 0:$.toLowerCase)===null||X===void 0?void 0:X.call($);if(Y)return{[u4.SEMATTRS_MESSAGING_SYSTEM]:Y};else return{}};IH8.getConnectionAttributesFromServer=MW6;var NW6=(J)=>{let $={[u4.SEMATTRS_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(J=J||"amqp://localhost",typeof J==="object"){let X=J,Y=SH8(X===null||X===void 0?void 0:X.protocol);Object.assign($,Object.assign({},bq(J,u4.SEMATTRS_MESSAGING_PROTOCOL,Y,"protocol")));let Q=kH8(X===null||X===void 0?void 0:X.hostname);Object.assign($,Object.assign({},bq(J,u4.SEMATTRS_NET_PEER_NAME,Q,"hostname")));let W=EH8(X.port,Y);Object.assign($,Object.assign({},bq(J,u4.SEMATTRS_NET_PEER_PORT,W,"port")))}else{let X=jW6(J);$[u4.SEMATTRS_MESSAGING_URL]=X;try{let Y=new URL(X),Q=SH8(Y.protocol);Object.assign($,Object.assign({},bq(X,u4.SEMATTRS_MESSAGING_PROTOCOL,Q,"protocol")));let W=kH8(Y.hostname);Object.assign($,Object.assign({},bq(X,u4.SEMATTRS_NET_PEER_NAME,W,"hostname")));let K=EH8(Y.port?parseInt(Y.port):void 0,Q);Object.assign($,Object.assign({},bq(X,u4.SEMATTRS_NET_PEER_PORT,K,"port")))}catch(Y){_u.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:X,err:Y})}}return $};IH8.getConnectionAttributesFromUrl=NW6;var OW6=(J)=>{return J.setValue(vu,!0)};IH8.markConfirmChannelTracing=OW6;var RW6=(J)=>{return J.deleteValue(vu)};IH8.unmarkConfirmChannelTracing=RW6;var DW6=(J)=>{return J.getValue(vu)===!0};IH8.isConfirmChannelTracing=DW6});var hH8=P((vH8)=>{Object.defineProperty(vH8,"__esModule",{value:!0});vH8.PACKAGE_NAME=vH8.PACKAGE_VERSION=void 0;vH8.PACKAGE_VERSION="0.46.1";vH8.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var mH8=P((bH8)=>{Object.defineProperty(bH8,"__esModule",{value:!0});bH8.AmqplibInstrumentation=void 0;var F6=_0(),CP=V5(),O5=Z5(),XJ=D5(),S7=Au(),D6=_H8(),xH8=hH8(),TP=[">=0.5.5 <1"];class fH8 extends O5.InstrumentationBase{constructor(J={}){super(xH8.PACKAGE_NAME,xH8.PACKAGE_VERSION,Object.assign(Object.assign({},S7.DEFAULT_CONFIG),J))}setConfig(J={}){super.setConfig(Object.assign(Object.assign({},S7.DEFAULT_CONFIG),J))}init(){let J=new O5.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",TP,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),$=new O5.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",TP,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),X=new O5.InstrumentationNodeModuleFile("amqplib/lib/connect.js",TP,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new O5.InstrumentationNodeModuleDefinition("amqplib",TP,void 0,void 0,[J,X,$])}patchConnect(J){if(J=this.unpatchConnect(J),!(0,O5.isWrapped)(J.connect))this._wrap(J,"connect",this.getConnectPatch.bind(this));return J}unpatchConnect(J){if((0,O5.isWrapped)(J.connect))this._unwrap(J,"connect");return J}patchChannelModel(J,$){if(!(0,O5.isWrapped)(J.Channel.prototype.publish))this._wrap(J.Channel.prototype,"publish",this.getPublishPatch.bind(this,$));if(!(0,O5.isWrapped)(J.Channel.prototype.consume))this._wrap(J.Channel.prototype,"consume",this.getConsumePatch.bind(this,$));if(!(0,O5.isWrapped)(J.Channel.prototype.ack))this._wrap(J.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,S7.EndOperation.Ack));if(!(0,O5.isWrapped)(J.Channel.prototype.nack))this._wrap(J.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,S7.EndOperation.Nack));if(!(0,O5.isWrapped)(J.Channel.prototype.reject))this._wrap(J.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,S7.EndOperation.Reject));if(!(0,O5.isWrapped)(J.Channel.prototype.ackAll))this._wrap(J.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,S7.EndOperation.AckAll));if(!(0,O5.isWrapped)(J.Channel.prototype.nackAll))this._wrap(J.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,S7.EndOperation.NackAll));if(!(0,O5.isWrapped)(J.Channel.prototype.emit))this._wrap(J.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this));if(!(0,O5.isWrapped)(J.ConfirmChannel.prototype.publish))this._wrap(J.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,$));return J}unpatchChannelModel(J){if((0,O5.isWrapped)(J.Channel.prototype.publish))this._unwrap(J.Channel.prototype,"publish");if((0,O5.isWrapped)(J.Channel.prototype.consume))this._unwrap(J.Channel.prototype,"consume");if((0,O5.isWrapped)(J.Channel.prototype.ack))this._unwrap(J.Channel.prototype,"ack");if((0,O5.isWrapped)(J.Channel.prototype.nack))this._unwrap(J.Channel.prototype,"nack");if((0,O5.isWrapped)(J.Channel.prototype.reject))this._unwrap(J.Channel.prototype,"reject");if((0,O5.isWrapped)(J.Channel.prototype.ackAll))this._unwrap(J.Channel.prototype,"ackAll");if((0,O5.isWrapped)(J.Channel.prototype.nackAll))this._unwrap(J.Channel.prototype,"nackAll");if((0,O5.isWrapped)(J.Channel.prototype.emit))this._unwrap(J.Channel.prototype,"emit");if((0,O5.isWrapped)(J.ConfirmChannel.prototype.publish))this._unwrap(J.ConfirmChannel.prototype,"publish");return J}getConnectPatch(J){return function(X,Y,Q){return J.call(this,X,Y,function(W,K){if(W==null){let Z=(0,D6.getConnectionAttributesFromUrl)(X),G=(0,D6.getConnectionAttributesFromServer)(K);K[D6.CONNECTION_ATTRIBUTES]=Object.assign(Object.assign({},Z),G)}Q.apply(this,arguments)})}}getChannelEmitPatch(J){let $=this;return function(Y){if(Y==="close"){$.endAllSpansOnChannel(this,!0,S7.EndOperation.ChannelClosed,void 0);let Q=this[D6.CHANNEL_CONSUME_TIMEOUT_TIMER];if(Q)clearInterval(Q);this[D6.CHANNEL_CONSUME_TIMEOUT_TIMER]=void 0}else if(Y==="error")$.endAllSpansOnChannel(this,!0,S7.EndOperation.ChannelError,void 0);return J.apply(this,arguments)}}getAckAllPatch(J,$,X){let Y=this;return function(W){return Y.endAllSpansOnChannel(this,J,$,W),X.apply(this,arguments)}}getAckPatch(J,$,X){let Y=this;return function(W,K,Z){var G;let V=this,H=$===S7.EndOperation.Reject?K:Z,z=(G=V[D6.CHANNEL_SPANS_NOT_ENDED])!==null&&G!==void 0?G:[],q=z.findIndex((U)=>U.msg===W);if(q<0)Y.endConsumerSpan(W,J,$,H);else if($!==S7.EndOperation.Reject&&K){for(let U=0;U<=q;U++)Y.endConsumerSpan(z[U].msg,J,$,H);z.splice(0,q+1)}else Y.endConsumerSpan(W,J,$,H),z.splice(q,1);return X.apply(this,arguments)}}getConsumePatch(J,$){let X=this;return function(Q,W,K){let Z=this;if(!Object.prototype.hasOwnProperty.call(Z,D6.CHANNEL_SPANS_NOT_ENDED)){let{consumeTimeoutMs:V}=X.getConfig();if(V){let H=setInterval(()=>{X.checkConsumeTimeoutOnChannel(Z)},V);H.unref(),Z[D6.CHANNEL_CONSUME_TIMEOUT_TIMER]=H}Z[D6.CHANNEL_SPANS_NOT_ENDED]=[]}let G=function(V){var H,z,q,U,F;if(!V)return W.call(this,V);let B=(H=V.properties.headers)!==null&&H!==void 0?H:{},L=F6.propagation.extract(F6.ROOT_CONTEXT,B),j=(z=V.fields)===null||z===void 0?void 0:z.exchange,M;if(X._config.useLinksForConsume){let N=L?(q=F6.trace.getSpan(L))===null||q===void 0?void 0:q.spanContext():void 0;if(L=void 0,N)M=[{context:N}]}let D=X.tracer.startSpan(`${Q} process`,{kind:F6.SpanKind.CONSUMER,attributes:Object.assign(Object.assign({},(U=Z===null||Z===void 0?void 0:Z.connection)===null||U===void 0?void 0:U[D6.CONNECTION_ATTRIBUTES]),{[XJ.SEMATTRS_MESSAGING_DESTINATION]:j,[XJ.SEMATTRS_MESSAGING_DESTINATION_KIND]:XJ.MESSAGINGDESTINATIONKINDVALUES_TOPIC,[XJ.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY]:(F=V.fields)===null||F===void 0?void 0:F.routingKey,[XJ.SEMATTRS_MESSAGING_OPERATION]:XJ.MESSAGINGOPERATIONVALUES_PROCESS,[XJ.SEMATTRS_MESSAGING_MESSAGE_ID]:V===null||V===void 0?void 0:V.properties.messageId,[XJ.SEMATTRS_MESSAGING_CONVERSATION_ID]:V===null||V===void 0?void 0:V.properties.correlationId}),links:M},L),{consumeHook:w}=X.getConfig();if(w)(0,O5.safeExecuteInTheMiddle)(()=>w(D,{moduleVersion:J,msg:V}),(N)=>{if(N)F6.diag.error("amqplib instrumentation: consumerHook error",N)},!0);if(!(K===null||K===void 0?void 0:K.noAck))Z[D6.CHANNEL_SPANS_NOT_ENDED].push({msg:V,timeOfConsume:(0,CP.hrTime)()}),V[D6.MESSAGE_STORED_SPAN]=D;let R=L?L:F6.ROOT_CONTEXT;if(F6.context.with(F6.trace.setSpan(R,D),()=>{W.call(this,V)}),K===null||K===void 0?void 0:K.noAck)X.callConsumeEndHook(D,V,!1,S7.EndOperation.AutoAck),D.end()};return arguments[1]=G,$.apply(this,arguments)}}getConfirmedPublishPatch(J,$){let X=this;return function(Q,W,K,Z,G){let V=this,{span:H,modifiedOptions:z}=X.createPublishSpan(X,Q,W,V,Z),{publishHook:q}=X.getConfig();if(q)(0,O5.safeExecuteInTheMiddle)(()=>q(H,{moduleVersion:J,exchange:Q,routingKey:W,content:K,options:z,isConfirmChannel:!0}),(L)=>{if(L)F6.diag.error("amqplib instrumentation: publishHook error",L)},!0);let U=function(L,j){try{G===null||G===void 0||G.call(this,L,j)}finally{let{publishConfirmHook:M}=X.getConfig();if(M)(0,O5.safeExecuteInTheMiddle)(()=>M(H,{moduleVersion:J,exchange:Q,routingKey:W,content:K,options:Z,isConfirmChannel:!0,confirmError:L}),(D)=>{if(D)F6.diag.error("amqplib instrumentation: publishConfirmHook error",D)},!0);if(L)H.setStatus({code:F6.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"});H.end()}},F=(0,D6.markConfirmChannelTracing)(F6.context.active()),B=[...arguments];return B[3]=z,B[4]=F6.context.bind((0,D6.unmarkConfirmChannelTracing)(F6.trace.setSpan(F,H)),U),F6.context.with(F,$.bind(this,...B))}}getPublishPatch(J,$){let X=this;return function(Q,W,K,Z){if((0,D6.isConfirmChannelTracing)(F6.context.active()))return $.apply(this,arguments);else{let G=this,{span:V,modifiedOptions:H}=X.createPublishSpan(X,Q,W,G,Z),{publishHook:z}=X.getConfig();if(z)(0,O5.safeExecuteInTheMiddle)(()=>z(V,{moduleVersion:J,exchange:Q,routingKey:W,content:K,options:H,isConfirmChannel:!1}),(F)=>{if(F)F6.diag.error("amqplib instrumentation: publishHook error",F)},!0);let q=[...arguments];q[3]=H;let U=$.apply(this,q);return V.end(),U}}}createPublishSpan(J,$,X,Y,Q){var W;let K=(0,D6.normalizeExchange)($),Z=J.tracer.startSpan(`publish ${K}`,{kind:F6.SpanKind.PRODUCER,attributes:Object.assign(Object.assign({},Y.connection[D6.CONNECTION_ATTRIBUTES]),{[XJ.SEMATTRS_MESSAGING_DESTINATION]:$,[XJ.SEMATTRS_MESSAGING_DESTINATION_KIND]:XJ.MESSAGINGDESTINATIONKINDVALUES_TOPIC,[XJ.SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY]:X,[XJ.SEMATTRS_MESSAGING_MESSAGE_ID]:Q===null||Q===void 0?void 0:Q.messageId,[XJ.SEMATTRS_MESSAGING_CONVERSATION_ID]:Q===null||Q===void 0?void 0:Q.correlationId})}),G=Q!==null&&Q!==void 0?Q:{};return G.headers=(W=G.headers)!==null&&W!==void 0?W:{},F6.propagation.inject(F6.trace.setSpan(F6.context.active(),Z),G.headers),{span:Z,modifiedOptions:G}}endConsumerSpan(J,$,X,Y){let Q=J[D6.MESSAGE_STORED_SPAN];if(!Q)return;if($!==!1)Q.setStatus({code:F6.SpanStatusCode.ERROR,message:X!==S7.EndOperation.ChannelClosed&&X!==S7.EndOperation.ChannelError?`${X} called on message${Y===!0?" with requeue":Y===!1?" without requeue":""}`:X});this.callConsumeEndHook(Q,J,$,X),Q.end(),J[D6.MESSAGE_STORED_SPAN]=void 0}endAllSpansOnChannel(J,$,X,Y){var Q;((Q=J[D6.CHANNEL_SPANS_NOT_ENDED])!==null&&Q!==void 0?Q:[]).forEach((K)=>{this.endConsumerSpan(K.msg,$,X,Y)}),J[D6.CHANNEL_SPANS_NOT_ENDED]=[]}callConsumeEndHook(J,$,X,Y){let{consumeEndHook:Q}=this.getConfig();if(!Q)return;(0,O5.safeExecuteInTheMiddle)(()=>Q(J,{msg:$,rejected:X,endOperation:Y}),(W)=>{if(W)F6.diag.error("amqplib instrumentation: consumerEndHook error",W)},!0)}checkConsumeTimeoutOnChannel(J){var $;let X=(0,CP.hrTime)(),Y=($=J[D6.CHANNEL_SPANS_NOT_ENDED])!==null&&$!==void 0?$:[],Q,{consumeTimeoutMs:W}=this.getConfig();for(Q=0;Q<Y.length;Q++){let K=Y[Q],Z=(0,CP.hrTimeDuration)(K.timeOfConsume,X);if((0,CP.hrTimeToMilliseconds)(Z)<W)break;this.endConsumerSpan(K.msg,null,S7.EndOperation.InstrumentationTimeout,!0)}Y.splice(0,Q)}}bH8.AmqplibInstrumentation=fH8});var dH8=P((oW)=>{var vW6=oW&&oW.__createBinding||(Object.create?function(J,$,X,Y){if(Y===void 0)Y=X;Object.defineProperty(J,Y,{enumerable:!0,get:function(){return $[X]}})}:function(J,$,X,Y){if(Y===void 0)Y=X;J[Y]=$[X]}),uH8=oW&&oW.__exportStar||function(J,$){for(var X in J)if(X!=="default"&&!Object.prototype.hasOwnProperty.call($,X))vW6($,J,X)};Object.defineProperty(oW,"__esModule",{value:!0});uH8(mH8(),oW);uH8(Au(),oW)});var fu=P((aH8)=>{Object.defineProperty(aH8,"__esModule",{value:!0});aH8.AbstractAsyncHooksContextManager=void 0;var pW6=H0("events"),nW6=["addListener","on","once","prependListener","prependOnceListener"];class rH8{constructor(){this._kOtListeners=Symbol("OtListeners"),this._wrapped=!1}bind(J,$){if($ instanceof pW6.EventEmitter)return this._bindEventEmitter(J,$);if(typeof $==="function")return this._bindFunction(J,$);return $}_bindFunction(J,$){let X=this,Y=function(...Q){return X.with(J,()=>$.apply(this,Q))};return Object.defineProperty(Y,"length",{enumerable:!1,configurable:!0,writable:!1,value:$.length}),Y}_bindEventEmitter(J,$){if(this._getPatchMap($)!==void 0)return $;if(this._createPatchMap($),nW6.forEach((Y)=>{if($[Y]===void 0)return;$[Y]=this._patchAddListener($,$[Y],J)}),typeof $.removeListener==="function")$.removeListener=this._patchRemoveListener($,$.removeListener);if(typeof $.off==="function")$.off=this._patchRemoveListener($,$.off);if(typeof $.removeAllListeners==="function")$.removeAllListeners=this._patchRemoveAllListeners($,$.removeAllListeners);return $}_patchRemoveListener(J,$){let X=this;return function(Y,Q){var W;let K=(W=X._getPatchMap(J))===null||W===void 0?void 0:W[Y];if(K===void 0)return $.call(this,Y,Q);let Z=K.get(Q);return $.call(this,Y,Z||Q)}}_patchRemoveAllListeners(J,$){let X=this;return function(Y){let Q=X._getPatchMap(J);if(Q!==void 0){if(arguments.length===0)X._createPatchMap(J);else if(Q[Y]!==void 0)delete Q[Y]}return $.apply(this,arguments)}}_patchAddListener(J,$,X){let Y=this;return function(Q,W){if(Y._wrapped)return $.call(this,Q,W);let K=Y._getPatchMap(J);if(K===void 0)K=Y._createPatchMap(J);let Z=K[Q];if(Z===void 0)Z=new WeakMap,K[Q]=Z;let G=Y.bind(X,W);Z.set(W,G),Y._wrapped=!0;try{return $.call(this,Q,G)}finally{Y._wrapped=!1}}}_createPatchMap(J){let $=Object.create(null);return J[this._kOtListeners]=$,$}_getPatchMap(J){return J[this._kOtListeners]}}aH8.AbstractAsyncHooksContextManager=rH8});var $q8=P((eH8)=>{Object.defineProperty(eH8,"__esModule",{value:!0});eH8.AsyncHooksContextManager=void 0;var iW6=_0(),sW6=H0("async_hooks"),rW6=fu();class tH8 extends rW6.AbstractAsyncHooksContextManager{constructor(){super();this._contexts=new Map,this._stack=[],this._asyncHook=sW6.createHook({init:this._init.bind(this),before:this._before.bind(this),after:this._after.bind(this),destroy:this._destroy.bind(this),promiseResolve:this._destroy.bind(this)})}active(){var J;return(J=this._stack[this._stack.length-1])!==null&&J!==void 0?J:iW6.ROOT_CONTEXT}with(J,$,X,...Y){this._enterContext(J);try{return $.call(X,...Y)}finally{this._exitContext()}}enable(){return this._asyncHook.enable(),this}disable(){return this._asyncHook.disable(),this._contexts.clear(),this._stack=[],this}_init(J,$){if($==="TIMERWRAP")return;let X=this._stack[this._stack.length-1];if(X!==void 0)this._contexts.set(J,X)}_destroy(J){this._contexts.delete(J)}_before(J){let $=this._contexts.get(J);if($!==void 0)this._enterContext($)}_after(){this._exitContext()}_enterContext(J){this._stack.push(J)}_exitContext(){this._stack.pop()}}eH8.AsyncHooksContextManager=tH8});var Wq8=P((Yq8)=>{Object.defineProperty(Yq8,"__esModule",{value:!0});Yq8.AsyncLocalStorageContextManager=void 0;var aW6=_0(),oW6=H0("async_hooks"),tW6=fu();class Xq8 extends tW6.AbstractAsyncHooksContextManager{constructor(){super();this._asyncLocalStorage=new oW6.AsyncLocalStorage}active(){var J;return(J=this._asyncLocalStorage.getStore())!==null&&J!==void 0?J:aW6.ROOT_CONTEXT}with(J,$,X,...Y){let Q=X==null?$:$.bind(X);return this._asyncLocalStorage.run(J,Q,...Y)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}}Yq8.AsyncLocalStorageContextManager=Xq8});var Kq8=P((AP)=>{Object.defineProperty(AP,"__esModule",{value:!0});AP.AsyncLocalStorageContextManager=AP.AsyncHooksContextManager=void 0;var eW6=$q8();Object.defineProperty(AP,"AsyncHooksContextManager",{enumerable:!0,get:function(){return eW6.AsyncHooksContextManager}});var JK6=Wq8();Object.defineProperty(AP,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return JK6.AsyncLocalStorageContextManager}})});var r$=P((xq8)=>{Object.defineProperty(xq8,"__esModule",{value:!0});xq8.setMatrixArrayType=lK6;xq8.toRadian=pK6;xq8.equals=nK6;xq8.RANDOM=xq8.ARRAY_TYPE=xq8.EPSILON=void 0;var yq8=0.000001;xq8.EPSILON=yq8;var hq8=typeof Float32Array<"u"?Float32Array:Array;xq8.ARRAY_TYPE=hq8;var dK6=Math.random;xq8.RANDOM=dK6;function lK6(J){xq8.ARRAY_TYPE=hq8=J}var cK6=Math.PI/180;function pK6(J){return J*cK6}function nK6(J,$){return Math.abs(J-$)<=yq8*Math.max(1,Math.abs(J),Math.abs($))}if(!Math.hypot)Math.hypot=function(){var J=0,$=arguments.length;while($--)J+=arguments[$]*arguments[$];return Math.sqrt(J)}});var cq8=P((dq8)=>{function iP(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")iP=function(X){return typeof X};else iP=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return iP(J)}Object.defineProperty(dq8,"__esModule",{value:!0});dq8.create=tK6;dq8.clone=eK6;dq8.copy=JZ6;dq8.identity=$Z6;dq8.fromValues=XZ6;dq8.set=YZ6;dq8.transpose=QZ6;dq8.invert=WZ6;dq8.adjoint=KZ6;dq8.determinant=ZZ6;dq8.multiply=mq8;dq8.rotate=GZ6;dq8.scale=VZ6;dq8.fromRotation=HZ6;dq8.fromScaling=qZ6;dq8.str=zZ6;dq8.frob=UZ6;dq8.LDU=FZ6;dq8.add=BZ6;dq8.subtract=uq8;dq8.exactEquals=LZ6;dq8.equals=jZ6;dq8.multiplyScalar=MZ6;dq8.multiplyScalarAndAdd=NZ6;dq8.sub=dq8.mul=void 0;var JK=oK6(r$());function gq8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(gq8=function(Q){return Q?X:$})(J)}function oK6(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||iP(J)!=="object"&&typeof J!=="function")return{default:J};var X=gq8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}function tK6(){var J=new JK.ARRAY_TYPE(4);if(JK.ARRAY_TYPE!=Float32Array)J[1]=0,J[2]=0;return J[0]=1,J[3]=1,J}function eK6(J){var $=new JK.ARRAY_TYPE(4);return $[0]=J[0],$[1]=J[1],$[2]=J[2],$[3]=J[3],$}function JZ6(J,$){return J[0]=$[0],J[1]=$[1],J[2]=$[2],J[3]=$[3],J}function $Z6(J){return J[0]=1,J[1]=0,J[2]=0,J[3]=1,J}function XZ6(J,$,X,Y){var Q=new JK.ARRAY_TYPE(4);return Q[0]=J,Q[1]=$,Q[2]=X,Q[3]=Y,Q}function YZ6(J,$,X,Y,Q){return J[0]=$,J[1]=X,J[2]=Y,J[3]=Q,J}function QZ6(J,$){if(J===$){var X=$[1];J[1]=$[2],J[2]=X}else J[0]=$[0],J[1]=$[2],J[2]=$[1],J[3]=$[3];return J}function WZ6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=X*W-Q*Y;if(!K)return null;return K=1/K,J[0]=W*K,J[1]=-Y*K,J[2]=-Q*K,J[3]=X*K,J}function KZ6(J,$){var X=$[0];return J[0]=$[3],J[1]=-$[1],J[2]=-$[2],J[3]=X,J}function ZZ6(J){return J[0]*J[3]-J[2]*J[1]}function mq8(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=X[0],G=X[1],V=X[2],H=X[3];return J[0]=Y*Z+W*G,J[1]=Q*Z+K*G,J[2]=Y*V+W*H,J[3]=Q*V+K*H,J}function GZ6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=Math.sin(X),G=Math.cos(X);return J[0]=Y*G+W*Z,J[1]=Q*G+K*Z,J[2]=Y*-Z+W*G,J[3]=Q*-Z+K*G,J}function VZ6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=X[0],G=X[1];return J[0]=Y*Z,J[1]=Q*Z,J[2]=W*G,J[3]=K*G,J}function HZ6(J,$){var X=Math.sin($),Y=Math.cos($);return J[0]=Y,J[1]=X,J[2]=-X,J[3]=Y,J}function qZ6(J,$){return J[0]=$[0],J[1]=0,J[2]=0,J[3]=$[1],J}function zZ6(J){return"mat2("+J[0]+", "+J[1]+", "+J[2]+", "+J[3]+")"}function UZ6(J){return Math.hypot(J[0],J[1],J[2],J[3])}function FZ6(J,$,X,Y){return J[2]=Y[2]/Y[0],X[0]=Y[0],X[1]=Y[1],X[3]=Y[3]-J[2]*X[1],[J,$,X]}function BZ6(J,$,X){return J[0]=$[0]+X[0],J[1]=$[1]+X[1],J[2]=$[2]+X[2],J[3]=$[3]+X[3],J}function uq8(J,$,X){return J[0]=$[0]-X[0],J[1]=$[1]-X[1],J[2]=$[2]-X[2],J[3]=$[3]-X[3],J}function LZ6(J,$){return J[0]===$[0]&&J[1]===$[1]&&J[2]===$[2]&&J[3]===$[3]}function jZ6(J,$){var X=J[0],Y=J[1],Q=J[2],W=J[3],K=$[0],Z=$[1],G=$[2],V=$[3];return Math.abs(X-K)<=JK.EPSILON*Math.max(1,Math.abs(X),Math.abs(K))&&Math.abs(Y-Z)<=JK.EPSILON*Math.max(1,Math.abs(Y),Math.abs(Z))&&Math.abs(Q-G)<=JK.EPSILON*Math.max(1,Math.abs(Q),Math.abs(G))&&Math.abs(W-V)<=JK.EPSILON*Math.max(1,Math.abs(W),Math.abs(V))}function MZ6(J,$,X){return J[0]=$[0]*X,J[1]=$[1]*X,J[2]=$[2]*X,J[3]=$[3]*X,J}function NZ6(J,$,X,Y){return J[0]=$[0]+X[0]*Y,J[1]=$[1]+X[1]*Y,J[2]=$[2]+X[2]*Y,J[3]=$[3]+X[3]*Y,J}var OZ6=mq8;dq8.mul=OZ6;var RZ6=uq8;dq8.sub=RZ6});var aq8=P((sq8)=>{function sP(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")sP=function(X){return typeof X};else sP=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return sP(J)}Object.defineProperty(sq8,"__esModule",{value:!0});sq8.create=sZ6;sq8.clone=rZ6;sq8.copy=aZ6;sq8.identity=oZ6;sq8.fromValues=tZ6;sq8.set=eZ6;sq8.invert=JG6;sq8.determinant=$G6;sq8.multiply=nq8;sq8.rotate=XG6;sq8.scale=YG6;sq8.translate=QG6;sq8.fromRotation=WG6;sq8.fromScaling=KG6;sq8.fromTranslation=ZG6;sq8.str=GG6;sq8.frob=VG6;sq8.add=HG6;sq8.subtract=iq8;sq8.multiplyScalar=qG6;sq8.multiplyScalarAndAdd=zG6;sq8.exactEquals=UG6;sq8.equals=FG6;sq8.sub=sq8.mul=void 0;var aX=iZ6(r$());function pq8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(pq8=function(Q){return Q?X:$})(J)}function iZ6(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||sP(J)!=="object"&&typeof J!=="function")return{default:J};var X=pq8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}function sZ6(){var J=new aX.ARRAY_TYPE(6);if(aX.ARRAY_TYPE!=Float32Array)J[1]=0,J[2]=0,J[4]=0,J[5]=0;return J[0]=1,J[3]=1,J}function rZ6(J){var $=new aX.ARRAY_TYPE(6);return $[0]=J[0],$[1]=J[1],$[2]=J[2],$[3]=J[3],$[4]=J[4],$[5]=J[5],$}function aZ6(J,$){return J[0]=$[0],J[1]=$[1],J[2]=$[2],J[3]=$[3],J[4]=$[4],J[5]=$[5],J}function oZ6(J){return J[0]=1,J[1]=0,J[2]=0,J[3]=1,J[4]=0,J[5]=0,J}function tZ6(J,$,X,Y,Q,W){var K=new aX.ARRAY_TYPE(6);return K[0]=J,K[1]=$,K[2]=X,K[3]=Y,K[4]=Q,K[5]=W,K}function eZ6(J,$,X,Y,Q,W,K){return J[0]=$,J[1]=X,J[2]=Y,J[3]=Q,J[4]=W,J[5]=K,J}function JG6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=$[4],Z=$[5],G=X*W-Y*Q;if(!G)return null;return G=1/G,J[0]=W*G,J[1]=-Y*G,J[2]=-Q*G,J[3]=X*G,J[4]=(Q*Z-W*K)*G,J[5]=(Y*K-X*Z)*G,J}function $G6(J){return J[0]*J[3]-J[1]*J[2]}function nq8(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=$[4],G=$[5],V=X[0],H=X[1],z=X[2],q=X[3],U=X[4],F=X[5];return J[0]=Y*V+W*H,J[1]=Q*V+K*H,J[2]=Y*z+W*q,J[3]=Q*z+K*q,J[4]=Y*U+W*F+Z,J[5]=Q*U+K*F+G,J}function XG6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=$[4],G=$[5],V=Math.sin(X),H=Math.cos(X);return J[0]=Y*H+W*V,J[1]=Q*H+K*V,J[2]=Y*-V+W*H,J[3]=Q*-V+K*H,J[4]=Z,J[5]=G,J}function YG6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=$[4],G=$[5],V=X[0],H=X[1];return J[0]=Y*V,J[1]=Q*V,J[2]=W*H,J[3]=K*H,J[4]=Z,J[5]=G,J}function QG6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=$[4],G=$[5],V=X[0],H=X[1];return J[0]=Y,J[1]=Q,J[2]=W,J[3]=K,J[4]=Y*V+W*H+Z,J[5]=Q*V+K*H+G,J}function WG6(J,$){var X=Math.sin($),Y=Math.cos($);return J[0]=Y,J[1]=X,J[2]=-X,J[3]=Y,J[4]=0,J[5]=0,J}function KG6(J,$){return J[0]=$[0],J[1]=0,J[2]=0,J[3]=$[1],J[4]=0,J[5]=0,J}function ZG6(J,$){return J[0]=1,J[1]=0,J[2]=0,J[3]=1,J[4]=$[0],J[5]=$[1],J}function GG6(J){return"mat2d("+J[0]+", "+J[1]+", "+J[2]+", "+J[3]+", "+J[4]+", "+J[5]+")"}function VG6(J){return Math.hypot(J[0],J[1],J[2],J[3],J[4],J[5],1)}function HG6(J,$,X){return J[0]=$[0]+X[0],J[1]=$[1]+X[1],J[2]=$[2]+X[2],J[3]=$[3]+X[3],J[4]=$[4]+X[4],J[5]=$[5]+X[5],J}function iq8(J,$,X){return J[0]=$[0]-X[0],J[1]=$[1]-X[1],J[2]=$[2]-X[2],J[3]=$[3]-X[3],J[4]=$[4]-X[4],J[5]=$[5]-X[5],J}function qG6(J,$,X){return J[0]=$[0]*X,J[1]=$[1]*X,J[2]=$[2]*X,J[3]=$[3]*X,J[4]=$[4]*X,J[5]=$[5]*X,J}function zG6(J,$,X,Y){return J[0]=$[0]+X[0]*Y,J[1]=$[1]+X[1]*Y,J[2]=$[2]+X[2]*Y,J[3]=$[3]+X[3]*Y,J[4]=$[4]+X[4]*Y,J[5]=$[5]+X[5]*Y,J}function UG6(J,$){return J[0]===$[0]&&J[1]===$[1]&&J[2]===$[2]&&J[3]===$[3]&&J[4]===$[4]&&J[5]===$[5]}function FG6(J,$){var X=J[0],Y=J[1],Q=J[2],W=J[3],K=J[4],Z=J[5],G=$[0],V=$[1],H=$[2],z=$[3],q=$[4],U=$[5];return Math.abs(X-G)<=aX.EPSILON*Math.max(1,Math.abs(X),Math.abs(G))&&Math.abs(Y-V)<=aX.EPSILON*Math.max(1,Math.abs(Y),Math.abs(V))&&Math.abs(Q-H)<=aX.EPSILON*Math.max(1,Math.abs(Q),Math.abs(H))&&Math.abs(W-z)<=aX.EPSILON*Math.max(1,Math.abs(W),Math.abs(z))&&Math.abs(K-q)<=aX.EPSILON*Math.max(1,Math.abs(K),Math.abs(q))&&Math.abs(Z-U)<=aX.EPSILON*Math.max(1,Math.abs(Z),Math.abs(U))}var BG6=nq8;sq8.mul=BG6;var LG6=iq8;sq8.sub=LG6});var Yd=P((Jz8)=>{function rP(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")rP=function(X){return typeof X};else rP=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return rP(J)}Object.defineProperty(Jz8,"__esModule",{value:!0});Jz8.create=dG6;Jz8.fromMat4=lG6;Jz8.clone=cG6;Jz8.copy=pG6;Jz8.fromValues=nG6;Jz8.set=iG6;Jz8.identity=sG6;Jz8.transpose=rG6;Jz8.invert=aG6;Jz8.adjoint=oG6;Jz8.determinant=tG6;Jz8.multiply=tq8;Jz8.translate=eG6;Jz8.rotate=JV6;Jz8.scale=$V6;Jz8.fromTranslation=XV6;Jz8.fromRotation=YV6;Jz8.fromScaling=QV6;Jz8.fromMat2d=WV6;Jz8.fromQuat=KV6;Jz8.normalFromMat4=ZV6;Jz8.projection=GV6;Jz8.str=VV6;Jz8.frob=HV6;Jz8.add=qV6;Jz8.subtract=eq8;Jz8.multiplyScalar=zV6;Jz8.multiplyScalarAndAdd=UV6;Jz8.exactEquals=FV6;Jz8.equals=BV6;Jz8.sub=Jz8.mul=void 0;var mJ=uG6(r$());function oq8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(oq8=function(Q){return Q?X:$})(J)}function uG6(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||rP(J)!=="object"&&typeof J!=="function")return{default:J};var X=oq8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}function dG6(){var J=new mJ.ARRAY_TYPE(9);if(mJ.ARRAY_TYPE!=Float32Array)J[1]=0,J[2]=0,J[3]=0,J[5]=0,J[6]=0,J[7]=0;return J[0]=1,J[4]=1,J[8]=1,J}function lG6(J,$){return J[0]=$[0],J[1]=$[1],J[2]=$[2],J[3]=$[4],J[4]=$[5],J[5]=$[6],J[6]=$[8],J[7]=$[9],J[8]=$[10],J}function cG6(J){var $=new mJ.ARRAY_TYPE(9);return $[0]=J[0],$[1]=J[1],$[2]=J[2],$[3]=J[3],$[4]=J[4],$[5]=J[5],$[6]=J[6],$[7]=J[7],$[8]=J[8],$}function pG6(J,$){return J[0]=$[0],J[1]=$[1],J[2]=$[2],J[3]=$[3],J[4]=$[4],J[5]=$[5],J[6]=$[6],J[7]=$[7],J[8]=$[8],J}function nG6(J,$,X,Y,Q,W,K,Z,G){var V=new mJ.ARRAY_TYPE(9);return V[0]=J,V[1]=$,V[2]=X,V[3]=Y,V[4]=Q,V[5]=W,V[6]=K,V[7]=Z,V[8]=G,V}function iG6(J,$,X,Y,Q,W,K,Z,G,V){return J[0]=$,J[1]=X,J[2]=Y,J[3]=Q,J[4]=W,J[5]=K,J[6]=Z,J[7]=G,J[8]=V,J}function sG6(J){return J[0]=1,J[1]=0,J[2]=0,J[3]=0,J[4]=1,J[5]=0,J[6]=0,J[7]=0,J[8]=1,J}function rG6(J,$){if(J===$){var X=$[1],Y=$[2],Q=$[5];J[1]=$[3],J[2]=$[6],J[3]=X,J[5]=$[7],J[6]=Y,J[7]=Q}else J[0]=$[0],J[1]=$[3],J[2]=$[6],J[3]=$[1],J[4]=$[4],J[5]=$[7],J[6]=$[2],J[7]=$[5],J[8]=$[8];return J}function aG6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=$[4],Z=$[5],G=$[6],V=$[7],H=$[8],z=H*K-Z*V,q=-H*W+Z*G,U=V*W-K*G,F=X*z+Y*q+Q*U;if(!F)return null;return F=1/F,J[0]=z*F,J[1]=(-H*Y+Q*V)*F,J[2]=(Z*Y-Q*K)*F,J[3]=q*F,J[4]=(H*X-Q*G)*F,J[5]=(-Z*X+Q*W)*F,J[6]=U*F,J[7]=(-V*X+Y*G)*F,J[8]=(K*X-Y*W)*F,J}function oG6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=$[4],Z=$[5],G=$[6],V=$[7],H=$[8];return J[0]=K*H-Z*V,J[1]=Q*V-Y*H,J[2]=Y*Z-Q*K,J[3]=Z*G-W*H,J[4]=X*H-Q*G,J[5]=Q*W-X*Z,J[6]=W*V-K*G,J[7]=Y*G-X*V,J[8]=X*K-Y*W,J}function tG6(J){var $=J[0],X=J[1],Y=J[2],Q=J[3],W=J[4],K=J[5],Z=J[6],G=J[7],V=J[8];return $*(V*W-K*G)+X*(-V*Q+K*Z)+Y*(G*Q-W*Z)}function tq8(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=$[4],G=$[5],V=$[6],H=$[7],z=$[8],q=X[0],U=X[1],F=X[2],B=X[3],L=X[4],j=X[5],M=X[6],D=X[7],w=X[8];return J[0]=q*Y+U*K+F*V,J[1]=q*Q+U*Z+F*H,J[2]=q*W+U*G+F*z,J[3]=B*Y+L*K+j*V,J[4]=B*Q+L*Z+j*H,J[5]=B*W+L*G+j*z,J[6]=M*Y+D*K+w*V,J[7]=M*Q+D*Z+w*H,J[8]=M*W+D*G+w*z,J}function eG6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=$[4],G=$[5],V=$[6],H=$[7],z=$[8],q=X[0],U=X[1];return J[0]=Y,J[1]=Q,J[2]=W,J[3]=K,J[4]=Z,J[5]=G,J[6]=q*Y+U*K+V,J[7]=q*Q+U*Z+H,J[8]=q*W+U*G+z,J}function JV6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=$[4],G=$[5],V=$[6],H=$[7],z=$[8],q=Math.sin(X),U=Math.cos(X);return J[0]=U*Y+q*K,J[1]=U*Q+q*Z,J[2]=U*W+q*G,J[3]=U*K-q*Y,J[4]=U*Z-q*Q,J[5]=U*G-q*W,J[6]=V,J[7]=H,J[8]=z,J}function $V6(J,$,X){var Y=X[0],Q=X[1];return J[0]=Y*$[0],J[1]=Y*$[1],J[2]=Y*$[2],J[3]=Q*$[3],J[4]=Q*$[4],J[5]=Q*$[5],J[6]=$[6],J[7]=$[7],J[8]=$[8],J}function XV6(J,$){return J[0]=1,J[1]=0,J[2]=0,J[3]=0,J[4]=1,J[5]=0,J[6]=$[0],J[7]=$[1],J[8]=1,J}function YV6(J,$){var X=Math.sin($),Y=Math.cos($);return J[0]=Y,J[1]=X,J[2]=0,J[3]=-X,J[4]=Y,J[5]=0,J[6]=0,J[7]=0,J[8]=1,J}function QV6(J,$){return J[0]=$[0],J[1]=0,J[2]=0,J[3]=0,J[4]=$[1],J[5]=0,J[6]=0,J[7]=0,J[8]=1,J}function WV6(J,$){return J[0]=$[0],J[1]=$[1],J[2]=0,J[3]=$[2],J[4]=$[3],J[5]=0,J[6]=$[4],J[7]=$[5],J[8]=1,J}function KV6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=X+X,Z=Y+Y,G=Q+Q,V=X*K,H=Y*K,z=Y*Z,q=Q*K,U=Q*Z,F=Q*G,B=W*K,L=W*Z,j=W*G;return J[0]=1-z-F,J[3]=H-j,J[6]=q+L,J[1]=H+j,J[4]=1-V-F,J[7]=U-B,J[2]=q-L,J[5]=U+B,J[8]=1-V-z,J}function ZV6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=$[4],Z=$[5],G=$[6],V=$[7],H=$[8],z=$[9],q=$[10],U=$[11],F=$[12],B=$[13],L=$[14],j=$[15],M=X*Z-Y*K,D=X*G-Q*K,w=X*V-W*K,R=Y*G-Q*Z,N=Y*V-W*Z,O=Q*V-W*G,C=H*B-z*F,S=H*L-q*F,_=H*j-U*F,E=z*L-q*B,A=z*j-U*B,k=q*j-U*L,I=M*k-D*A+w*E+R*_-N*S+O*C;if(!I)return null;return I=1/I,J[0]=(Z*k-G*A+V*E)*I,J[1]=(G*_-K*k-V*S)*I,J[2]=(K*A-Z*_+V*C)*I,J[3]=(Q*A-Y*k-W*E)*I,J[4]=(X*k-Q*_+W*S)*I,J[5]=(Y*_-X*A-W*C)*I,J[6]=(B*O-L*N+j*R)*I,J[7]=(L*w-F*O-j*D)*I,J[8]=(F*N-B*w+j*M)*I,J}function GV6(J,$,X){return J[0]=2/$,J[1]=0,J[2]=0,J[3]=0,J[4]=-2/X,J[5]=0,J[6]=-1,J[7]=1,J[8]=1,J}function VV6(J){return"mat3("+J[0]+", "+J[1]+", "+J[2]+", "+J[3]+", "+J[4]+", "+J[5]+", "+J[6]+", "+J[7]+", "+J[8]+")"}function HV6(J){return Math.hypot(J[0],J[1],J[2],J[3],J[4],J[5],J[6],J[7],J[8])}function qV6(J,$,X){return J[0]=$[0]+X[0],J[1]=$[1]+X[1],J[2]=$[2]+X[2],J[3]=$[3]+X[3],J[4]=$[4]+X[4],J[5]=$[5]+X[5],J[6]=$[6]+X[6],J[7]=$[7]+X[7],J[8]=$[8]+X[8],J}function eq8(J,$,X){return J[0]=$[0]-X[0],J[1]=$[1]-X[1],J[2]=$[2]-X[2],J[3]=$[3]-X[3],J[4]=$[4]-X[4],J[5]=$[5]-X[5],J[6]=$[6]-X[6],J[7]=$[7]-X[7],J[8]=$[8]-X[8],J}function zV6(J,$,X){return J[0]=$[0]*X,J[1]=$[1]*X,J[2]=$[2]*X,J[3]=$[3]*X,J[4]=$[4]*X,J[5]=$[5]*X,J[6]=$[6]*X,J[7]=$[7]*X,J[8]=$[8]*X,J}function UV6(J,$,X,Y){return J[0]=$[0]+X[0]*Y,J[1]=$[1]+X[1]*Y,J[2]=$[2]+X[2]*Y,J[3]=$[3]+X[3]*Y,J[4]=$[4]+X[4]*Y,J[5]=$[5]+X[5]*Y,J[6]=$[6]+X[6]*Y,J[7]=$[7]+X[7]*Y,J[8]=$[8]+X[8]*Y,J}function FV6(J,$){return J[0]===$[0]&&J[1]===$[1]&&J[2]===$[2]&&J[3]===$[3]&&J[4]===$[4]&&J[5]===$[5]&&J[6]===$[6]&&J[7]===$[7]&&J[8]===$[8]}function BV6(J,$){var X=J[0],Y=J[1],Q=J[2],W=J[3],K=J[4],Z=J[5],G=J[6],V=J[7],H=J[8],z=$[0],q=$[1],U=$[2],F=$[3],B=$[4],L=$[5],j=$[6],M=$[7],D=$[8];return Math.abs(X-z)<=mJ.EPSILON*Math.max(1,Math.abs(X),Math.abs(z))&&Math.abs(Y-q)<=mJ.EPSILON*Math.max(1,Math.abs(Y),Math.abs(q))&&Math.abs(Q-U)<=mJ.EPSILON*Math.max(1,Math.abs(Q),Math.abs(U))&&Math.abs(W-F)<=mJ.EPSILON*Math.max(1,Math.abs(W),Math.abs(F))&&Math.abs(K-B)<=mJ.EPSILON*Math.max(1,Math.abs(K),Math.abs(B))&&Math.abs(Z-L)<=mJ.EPSILON*Math.max(1,Math.abs(Z),Math.abs(L))&&Math.abs(G-j)<=mJ.EPSILON*Math.max(1,Math.abs(G),Math.abs(j))&&Math.abs(V-M)<=mJ.EPSILON*Math.max(1,Math.abs(V),Math.abs(M))&&Math.abs(H-D)<=mJ.EPSILON*Math.max(1,Math.abs(H),Math.abs(D))}var LV6=tq8;Jz8.mul=LV6;var jV6=eq8;Jz8.sub=jV6});var Qd=P((Hz8)=>{function aP(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")aP=function(X){return typeof X};else aP=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return aP(J)}Object.defineProperty(Hz8,"__esModule",{value:!0});Hz8.create=aV6;Hz8.clone=oV6;Hz8.copy=tV6;Hz8.fromValues=eV6;Hz8.set=JH6;Hz8.identity=Yz8;Hz8.transpose=$H6;Hz8.invert=XH6;Hz8.adjoint=YH6;Hz8.determinant=QH6;Hz8.multiply=Qz8;Hz8.translate=WH6;Hz8.scale=KH6;Hz8.rotate=ZH6;Hz8.rotateX=GH6;Hz8.rotateY=VH6;Hz8.rotateZ=HH6;Hz8.fromTranslation=qH6;Hz8.fromScaling=zH6;Hz8.fromRotation=UH6;Hz8.fromXRotation=FH6;Hz8.fromYRotation=BH6;Hz8.fromZRotation=LH6;Hz8.fromRotationTranslation=Wz8;Hz8.fromQuat2=jH6;Hz8.getTranslation=MH6;Hz8.getScaling=Kz8;Hz8.getRotation=NH6;Hz8.fromRotationTranslationScale=OH6;Hz8.fromRotationTranslationScaleOrigin=RH6;Hz8.fromQuat=DH6;Hz8.frustum=wH6;Hz8.perspectiveNO=Zz8;Hz8.perspectiveZO=CH6;Hz8.perspectiveFromFieldOfView=TH6;Hz8.orthoNO=Gz8;Hz8.orthoZO=SH6;Hz8.lookAt=kH6;Hz8.targetTo=IH6;Hz8.str=AH6;Hz8.frob=_H6;Hz8.add=vH6;Hz8.subtract=Vz8;Hz8.multiplyScalar=yH6;Hz8.multiplyScalarAndAdd=hH6;Hz8.exactEquals=xH6;Hz8.equals=fH6;Hz8.sub=Hz8.mul=Hz8.ortho=Hz8.perspective=void 0;var y5=rV6(r$());function Xz8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(Xz8=function(Q){return Q?X:$})(J)}function rV6(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||aP(J)!=="object"&&typeof J!=="function")return{default:J};var X=Xz8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}function aV6(){var J=new y5.ARRAY_TYPE(16);if(y5.ARRAY_TYPE!=Float32Array)J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[6]=0,J[7]=0,J[8]=0,J[9]=0,J[11]=0,J[12]=0,J[13]=0,J[14]=0;return J[0]=1,J[5]=1,J[10]=1,J[15]=1,J}function oV6(J){var $=new y5.ARRAY_TYPE(16);return $[0]=J[0],$[1]=J[1],$[2]=J[2],$[3]=J[3],$[4]=J[4],$[5]=J[5],$[6]=J[6],$[7]=J[7],$[8]=J[8],$[9]=J[9],$[10]=J[10],$[11]=J[11],$[12]=J[12],$[13]=J[13],$[14]=J[14],$[15]=J[15],$}function tV6(J,$){return J[0]=$[0],J[1]=$[1],J[2]=$[2],J[3]=$[3],J[4]=$[4],J[5]=$[5],J[6]=$[6],J[7]=$[7],J[8]=$[8],J[9]=$[9],J[10]=$[10],J[11]=$[11],J[12]=$[12],J[13]=$[13],J[14]=$[14],J[15]=$[15],J}function eV6(J,$,X,Y,Q,W,K,Z,G,V,H,z,q,U,F,B){var L=new y5.ARRAY_TYPE(16);return L[0]=J,L[1]=$,L[2]=X,L[3]=Y,L[4]=Q,L[5]=W,L[6]=K,L[7]=Z,L[8]=G,L[9]=V,L[10]=H,L[11]=z,L[12]=q,L[13]=U,L[14]=F,L[15]=B,L}function JH6(J,$,X,Y,Q,W,K,Z,G,V,H,z,q,U,F,B,L){return J[0]=$,J[1]=X,J[2]=Y,J[3]=Q,J[4]=W,J[5]=K,J[6]=Z,J[7]=G,J[8]=V,J[9]=H,J[10]=z,J[11]=q,J[12]=U,J[13]=F,J[14]=B,J[15]=L,J}function Yz8(J){return J[0]=1,J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=1,J[6]=0,J[7]=0,J[8]=0,J[9]=0,J[10]=1,J[11]=0,J[12]=0,J[13]=0,J[14]=0,J[15]=1,J}function $H6(J,$){if(J===$){var X=$[1],Y=$[2],Q=$[3],W=$[6],K=$[7],Z=$[11];J[1]=$[4],J[2]=$[8],J[3]=$[12],J[4]=X,J[6]=$[9],J[7]=$[13],J[8]=Y,J[9]=W,J[11]=$[14],J[12]=Q,J[13]=K,J[14]=Z}else J[0]=$[0],J[1]=$[4],J[2]=$[8],J[3]=$[12],J[4]=$[1],J[5]=$[5],J[6]=$[9],J[7]=$[13],J[8]=$[2],J[9]=$[6],J[10]=$[10],J[11]=$[14],J[12]=$[3],J[13]=$[7],J[14]=$[11],J[15]=$[15];return J}function XH6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=$[4],Z=$[5],G=$[6],V=$[7],H=$[8],z=$[9],q=$[10],U=$[11],F=$[12],B=$[13],L=$[14],j=$[15],M=X*Z-Y*K,D=X*G-Q*K,w=X*V-W*K,R=Y*G-Q*Z,N=Y*V-W*Z,O=Q*V-W*G,C=H*B-z*F,S=H*L-q*F,_=H*j-U*F,E=z*L-q*B,A=z*j-U*B,k=q*j-U*L,I=M*k-D*A+w*E+R*_-N*S+O*C;if(!I)return null;return I=1/I,J[0]=(Z*k-G*A+V*E)*I,J[1]=(Q*A-Y*k-W*E)*I,J[2]=(B*O-L*N+j*R)*I,J[3]=(q*N-z*O-U*R)*I,J[4]=(G*_-K*k-V*S)*I,J[5]=(X*k-Q*_+W*S)*I,J[6]=(L*w-F*O-j*D)*I,J[7]=(H*O-q*w+U*D)*I,J[8]=(K*A-Z*_+V*C)*I,J[9]=(Y*_-X*A-W*C)*I,J[10]=(F*N-B*w+j*M)*I,J[11]=(z*w-H*N-U*M)*I,J[12]=(Z*S-K*E-G*C)*I,J[13]=(X*E-Y*S+Q*C)*I,J[14]=(B*D-F*R-L*M)*I,J[15]=(H*R-z*D+q*M)*I,J}function YH6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=$[4],Z=$[5],G=$[6],V=$[7],H=$[8],z=$[9],q=$[10],U=$[11],F=$[12],B=$[13],L=$[14],j=$[15];return J[0]=Z*(q*j-U*L)-z*(G*j-V*L)+B*(G*U-V*q),J[1]=-(Y*(q*j-U*L)-z*(Q*j-W*L)+B*(Q*U-W*q)),J[2]=Y*(G*j-V*L)-Z*(Q*j-W*L)+B*(Q*V-W*G),J[3]=-(Y*(G*U-V*q)-Z*(Q*U-W*q)+z*(Q*V-W*G)),J[4]=-(K*(q*j-U*L)-H*(G*j-V*L)+F*(G*U-V*q)),J[5]=X*(q*j-U*L)-H*(Q*j-W*L)+F*(Q*U-W*q),J[6]=-(X*(G*j-V*L)-K*(Q*j-W*L)+F*(Q*V-W*G)),J[7]=X*(G*U-V*q)-K*(Q*U-W*q)+H*(Q*V-W*G),J[8]=K*(z*j-U*B)-H*(Z*j-V*B)+F*(Z*U-V*z),J[9]=-(X*(z*j-U*B)-H*(Y*j-W*B)+F*(Y*U-W*z)),J[10]=X*(Z*j-V*B)-K*(Y*j-W*B)+F*(Y*V-W*Z),J[11]=-(X*(Z*U-V*z)-K*(Y*U-W*z)+H*(Y*V-W*Z)),J[12]=-(K*(z*L-q*B)-H*(Z*L-G*B)+F*(Z*q-G*z)),J[13]=X*(z*L-q*B)-H*(Y*L-Q*B)+F*(Y*q-Q*z),J[14]=-(X*(Z*L-G*B)-K*(Y*L-Q*B)+F*(Y*G-Q*Z)),J[15]=X*(Z*q-G*z)-K*(Y*q-Q*z)+H*(Y*G-Q*Z),J}function QH6(J){var $=J[0],X=J[1],Y=J[2],Q=J[3],W=J[4],K=J[5],Z=J[6],G=J[7],V=J[8],H=J[9],z=J[10],q=J[11],U=J[12],F=J[13],B=J[14],L=J[15],j=$*K-X*W,M=$*Z-Y*W,D=$*G-Q*W,w=X*Z-Y*K,R=X*G-Q*K,N=Y*G-Q*Z,O=V*F-H*U,C=V*B-z*U,S=V*L-q*U,_=H*B-z*F,E=H*L-q*F,A=z*L-q*B;return j*A-M*E+D*_+w*S-R*C+N*O}function Qz8(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=$[4],G=$[5],V=$[6],H=$[7],z=$[8],q=$[9],U=$[10],F=$[11],B=$[12],L=$[13],j=$[14],M=$[15],D=X[0],w=X[1],R=X[2],N=X[3];return J[0]=D*Y+w*Z+R*z+N*B,J[1]=D*Q+w*G+R*q+N*L,J[2]=D*W+w*V+R*U+N*j,J[3]=D*K+w*H+R*F+N*M,D=X[4],w=X[5],R=X[6],N=X[7],J[4]=D*Y+w*Z+R*z+N*B,J[5]=D*Q+w*G+R*q+N*L,J[6]=D*W+w*V+R*U+N*j,J[7]=D*K+w*H+R*F+N*M,D=X[8],w=X[9],R=X[10],N=X[11],J[8]=D*Y+w*Z+R*z+N*B,J[9]=D*Q+w*G+R*q+N*L,J[10]=D*W+w*V+R*U+N*j,J[11]=D*K+w*H+R*F+N*M,D=X[12],w=X[13],R=X[14],N=X[15],J[12]=D*Y+w*Z+R*z+N*B,J[13]=D*Q+w*G+R*q+N*L,J[14]=D*W+w*V+R*U+N*j,J[15]=D*K+w*H+R*F+N*M,J}function WH6(J,$,X){var Y=X[0],Q=X[1],W=X[2],K,Z,G,V,H,z,q,U,F,B,L,j;if($===J)J[12]=$[0]*Y+$[4]*Q+$[8]*W+$[12],J[13]=$[1]*Y+$[5]*Q+$[9]*W+$[13],J[14]=$[2]*Y+$[6]*Q+$[10]*W+$[14],J[15]=$[3]*Y+$[7]*Q+$[11]*W+$[15];else K=$[0],Z=$[1],G=$[2],V=$[3],H=$[4],z=$[5],q=$[6],U=$[7],F=$[8],B=$[9],L=$[10],j=$[11],J[0]=K,J[1]=Z,J[2]=G,J[3]=V,J[4]=H,J[5]=z,J[6]=q,J[7]=U,J[8]=F,J[9]=B,J[10]=L,J[11]=j,J[12]=K*Y+H*Q+F*W+$[12],J[13]=Z*Y+z*Q+B*W+$[13],J[14]=G*Y+q*Q+L*W+$[14],J[15]=V*Y+U*Q+j*W+$[15];return J}function KH6(J,$,X){var Y=X[0],Q=X[1],W=X[2];return J[0]=$[0]*Y,J[1]=$[1]*Y,J[2]=$[2]*Y,J[3]=$[3]*Y,J[4]=$[4]*Q,J[5]=$[5]*Q,J[6]=$[6]*Q,J[7]=$[7]*Q,J[8]=$[8]*W,J[9]=$[9]*W,J[10]=$[10]*W,J[11]=$[11]*W,J[12]=$[12],J[13]=$[13],J[14]=$[14],J[15]=$[15],J}function ZH6(J,$,X,Y){var Q=Y[0],W=Y[1],K=Y[2],Z=Math.hypot(Q,W,K),G,V,H,z,q,U,F,B,L,j,M,D,w,R,N,O,C,S,_,E,A,k,I,y;if(Z<y5.EPSILON)return null;if(Z=1/Z,Q*=Z,W*=Z,K*=Z,G=Math.sin(X),V=Math.cos(X),H=1-V,z=$[0],q=$[1],U=$[2],F=$[3],B=$[4],L=$[5],j=$[6],M=$[7],D=$[8],w=$[9],R=$[10],N=$[11],O=Q*Q*H+V,C=W*Q*H+K*G,S=K*Q*H-W*G,_=Q*W*H-K*G,E=W*W*H+V,A=K*W*H+Q*G,k=Q*K*H+W*G,I=W*K*H-Q*G,y=K*K*H+V,J[0]=z*O+B*C+D*S,J[1]=q*O+L*C+w*S,J[2]=U*O+j*C+R*S,J[3]=F*O+M*C+N*S,J[4]=z*_+B*E+D*A,J[5]=q*_+L*E+w*A,J[6]=U*_+j*E+R*A,J[7]=F*_+M*E+N*A,J[8]=z*k+B*I+D*y,J[9]=q*k+L*I+w*y,J[10]=U*k+j*I+R*y,J[11]=F*k+M*I+N*y,$!==J)J[12]=$[12],J[13]=$[13],J[14]=$[14],J[15]=$[15];return J}function GH6(J,$,X){var Y=Math.sin(X),Q=Math.cos(X),W=$[4],K=$[5],Z=$[6],G=$[7],V=$[8],H=$[9],z=$[10],q=$[11];if($!==J)J[0]=$[0],J[1]=$[1],J[2]=$[2],J[3]=$[3],J[12]=$[12],J[13]=$[13],J[14]=$[14],J[15]=$[15];return J[4]=W*Q+V*Y,J[5]=K*Q+H*Y,J[6]=Z*Q+z*Y,J[7]=G*Q+q*Y,J[8]=V*Q-W*Y,J[9]=H*Q-K*Y,J[10]=z*Q-Z*Y,J[11]=q*Q-G*Y,J}function VH6(J,$,X){var Y=Math.sin(X),Q=Math.cos(X),W=$[0],K=$[1],Z=$[2],G=$[3],V=$[8],H=$[9],z=$[10],q=$[11];if($!==J)J[4]=$[4],J[5]=$[5],J[6]=$[6],J[7]=$[7],J[12]=$[12],J[13]=$[13],J[14]=$[14],J[15]=$[15];return J[0]=W*Q-V*Y,J[1]=K*Q-H*Y,J[2]=Z*Q-z*Y,J[3]=G*Q-q*Y,J[8]=W*Y+V*Q,J[9]=K*Y+H*Q,J[10]=Z*Y+z*Q,J[11]=G*Y+q*Q,J}function HH6(J,$,X){var Y=Math.sin(X),Q=Math.cos(X),W=$[0],K=$[1],Z=$[2],G=$[3],V=$[4],H=$[5],z=$[6],q=$[7];if($!==J)J[8]=$[8],J[9]=$[9],J[10]=$[10],J[11]=$[11],J[12]=$[12],J[13]=$[13],J[14]=$[14],J[15]=$[15];return J[0]=W*Q+V*Y,J[1]=K*Q+H*Y,J[2]=Z*Q+z*Y,J[3]=G*Q+q*Y,J[4]=V*Q-W*Y,J[5]=H*Q-K*Y,J[6]=z*Q-Z*Y,J[7]=q*Q-G*Y,J}function qH6(J,$){return J[0]=1,J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=1,J[6]=0,J[7]=0,J[8]=0,J[9]=0,J[10]=1,J[11]=0,J[12]=$[0],J[13]=$[1],J[14]=$[2],J[15]=1,J}function zH6(J,$){return J[0]=$[0],J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=$[1],J[6]=0,J[7]=0,J[8]=0,J[9]=0,J[10]=$[2],J[11]=0,J[12]=0,J[13]=0,J[14]=0,J[15]=1,J}function UH6(J,$,X){var Y=X[0],Q=X[1],W=X[2],K=Math.hypot(Y,Q,W),Z,G,V;if(K<y5.EPSILON)return null;return K=1/K,Y*=K,Q*=K,W*=K,Z=Math.sin($),G=Math.cos($),V=1-G,J[0]=Y*Y*V+G,J[1]=Q*Y*V+W*Z,J[2]=W*Y*V-Q*Z,J[3]=0,J[4]=Y*Q*V-W*Z,J[5]=Q*Q*V+G,J[6]=W*Q*V+Y*Z,J[7]=0,J[8]=Y*W*V+Q*Z,J[9]=Q*W*V-Y*Z,J[10]=W*W*V+G,J[11]=0,J[12]=0,J[13]=0,J[14]=0,J[15]=1,J}function FH6(J,$){var X=Math.sin($),Y=Math.cos($);return J[0]=1,J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=Y,J[6]=X,J[7]=0,J[8]=0,J[9]=-X,J[10]=Y,J[11]=0,J[12]=0,J[13]=0,J[14]=0,J[15]=1,J}function BH6(J,$){var X=Math.sin($),Y=Math.cos($);return J[0]=Y,J[1]=0,J[2]=-X,J[3]=0,J[4]=0,J[5]=1,J[6]=0,J[7]=0,J[8]=X,J[9]=0,J[10]=Y,J[11]=0,J[12]=0,J[13]=0,J[14]=0,J[15]=1,J}function LH6(J,$){var X=Math.sin($),Y=Math.cos($);return J[0]=Y,J[1]=X,J[2]=0,J[3]=0,J[4]=-X,J[5]=Y,J[6]=0,J[7]=0,J[8]=0,J[9]=0,J[10]=1,J[11]=0,J[12]=0,J[13]=0,J[14]=0,J[15]=1,J}function Wz8(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=Y+Y,G=Q+Q,V=W+W,H=Y*Z,z=Y*G,q=Y*V,U=Q*G,F=Q*V,B=W*V,L=K*Z,j=K*G,M=K*V;return J[0]=1-(U+B),J[1]=z+M,J[2]=q-j,J[3]=0,J[4]=z-M,J[5]=1-(H+B),J[6]=F+L,J[7]=0,J[8]=q+j,J[9]=F-L,J[10]=1-(H+U),J[11]=0,J[12]=X[0],J[13]=X[1],J[14]=X[2],J[15]=1,J}function jH6(J,$){var X=new y5.ARRAY_TYPE(3),Y=-$[0],Q=-$[1],W=-$[2],K=$[3],Z=$[4],G=$[5],V=$[6],H=$[7],z=Y*Y+Q*Q+W*W+K*K;if(z>0)X[0]=(Z*K+H*Y+G*W-V*Q)*2/z,X[1]=(G*K+H*Q+V*Y-Z*W)*2/z,X[2]=(V*K+H*W+Z*Q-G*Y)*2/z;else X[0]=(Z*K+H*Y+G*W-V*Q)*2,X[1]=(G*K+H*Q+V*Y-Z*W)*2,X[2]=(V*K+H*W+Z*Q-G*Y)*2;return Wz8(J,$,X),J}function MH6(J,$){return J[0]=$[12],J[1]=$[13],J[2]=$[14],J}function Kz8(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[4],K=$[5],Z=$[6],G=$[8],V=$[9],H=$[10];return J[0]=Math.hypot(X,Y,Q),J[1]=Math.hypot(W,K,Z),J[2]=Math.hypot(G,V,H),J}function NH6(J,$){var X=new y5.ARRAY_TYPE(3);Kz8(X,$);var Y=1/X[0],Q=1/X[1],W=1/X[2],K=$[0]*Y,Z=$[1]*Q,G=$[2]*W,V=$[4]*Y,H=$[5]*Q,z=$[6]*W,q=$[8]*Y,U=$[9]*Q,F=$[10]*W,B=K+H+F,L=0;if(B>0)L=Math.sqrt(B+1)*2,J[3]=0.25*L,J[0]=(z-U)/L,J[1]=(q-G)/L,J[2]=(Z-V)/L;else if(K>H&&K>F)L=Math.sqrt(1+K-H-F)*2,J[3]=(z-U)/L,J[0]=0.25*L,J[1]=(Z+V)/L,J[2]=(q+G)/L;else if(H>F)L=Math.sqrt(1+H-K-F)*2,J[3]=(q-G)/L,J[0]=(Z+V)/L,J[1]=0.25*L,J[2]=(z+U)/L;else L=Math.sqrt(1+F-K-H)*2,J[3]=(Z-V)/L,J[0]=(q+G)/L,J[1]=(z+U)/L,J[2]=0.25*L;return J}function OH6(J,$,X,Y){var Q=$[0],W=$[1],K=$[2],Z=$[3],G=Q+Q,V=W+W,H=K+K,z=Q*G,q=Q*V,U=Q*H,F=W*V,B=W*H,L=K*H,j=Z*G,M=Z*V,D=Z*H,w=Y[0],R=Y[1],N=Y[2];return J[0]=(1-(F+L))*w,J[1]=(q+D)*w,J[2]=(U-M)*w,J[3]=0,J[4]=(q-D)*R,J[5]=(1-(z+L))*R,J[6]=(B+j)*R,J[7]=0,J[8]=(U+M)*N,J[9]=(B-j)*N,J[10]=(1-(z+F))*N,J[11]=0,J[12]=X[0],J[13]=X[1],J[14]=X[2],J[15]=1,J}function RH6(J,$,X,Y,Q){var W=$[0],K=$[1],Z=$[2],G=$[3],V=W+W,H=K+K,z=Z+Z,q=W*V,U=W*H,F=W*z,B=K*H,L=K*z,j=Z*z,M=G*V,D=G*H,w=G*z,R=Y[0],N=Y[1],O=Y[2],C=Q[0],S=Q[1],_=Q[2],E=(1-(B+j))*R,A=(U+w)*R,k=(F-D)*R,I=(U-w)*N,y=(1-(q+j))*N,v=(L+M)*N,x=(F+D)*O,h=(L-M)*O,m=(1-(q+B))*O;return J[0]=E,J[1]=A,J[2]=k,J[3]=0,J[4]=I,J[5]=y,J[6]=v,J[7]=0,J[8]=x,J[9]=h,J[10]=m,J[11]=0,J[12]=X[0]+C-(E*C+I*S+x*_),J[13]=X[1]+S-(A*C+y*S+h*_),J[14]=X[2]+_-(k*C+v*S+m*_),J[15]=1,J}function DH6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=X+X,Z=Y+Y,G=Q+Q,V=X*K,H=Y*K,z=Y*Z,q=Q*K,U=Q*Z,F=Q*G,B=W*K,L=W*Z,j=W*G;return J[0]=1-z-F,J[1]=H+j,J[2]=q-L,J[3]=0,J[4]=H-j,J[5]=1-V-F,J[6]=U+B,J[7]=0,J[8]=q+L,J[9]=U-B,J[10]=1-V-z,J[11]=0,J[12]=0,J[13]=0,J[14]=0,J[15]=1,J}function wH6(J,$,X,Y,Q,W,K){var Z=1/(X-$),G=1/(Q-Y),V=1/(W-K);return J[0]=W*2*Z,J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=W*2*G,J[6]=0,J[7]=0,J[8]=(X+$)*Z,J[9]=(Q+Y)*G,J[10]=(K+W)*V,J[11]=-1,J[12]=0,J[13]=0,J[14]=K*W*2*V,J[15]=0,J}function Zz8(J,$,X,Y,Q){var W=1/Math.tan($/2),K;if(J[0]=W/X,J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=W,J[6]=0,J[7]=0,J[8]=0,J[9]=0,J[11]=-1,J[12]=0,J[13]=0,J[15]=0,Q!=null&&Q!==1/0)K=1/(Y-Q),J[10]=(Q+Y)*K,J[14]=2*Q*Y*K;else J[10]=-1,J[14]=-2*Y;return J}var PH6=Zz8;Hz8.perspective=PH6;function CH6(J,$,X,Y,Q){var W=1/Math.tan($/2),K;if(J[0]=W/X,J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=W,J[6]=0,J[7]=0,J[8]=0,J[9]=0,J[11]=-1,J[12]=0,J[13]=0,J[15]=0,Q!=null&&Q!==1/0)K=1/(Y-Q),J[10]=Q*K,J[14]=Q*Y*K;else J[10]=-1,J[14]=-Y;return J}function TH6(J,$,X,Y){var Q=Math.tan($.upDegrees*Math.PI/180),W=Math.tan($.downDegrees*Math.PI/180),K=Math.tan($.leftDegrees*Math.PI/180),Z=Math.tan($.rightDegrees*Math.PI/180),G=2/(K+Z),V=2/(Q+W);return J[0]=G,J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=V,J[6]=0,J[7]=0,J[8]=-((K-Z)*G*0.5),J[9]=(Q-W)*V*0.5,J[10]=Y/(X-Y),J[11]=-1,J[12]=0,J[13]=0,J[14]=Y*X/(X-Y),J[15]=0,J}function Gz8(J,$,X,Y,Q,W,K){var Z=1/($-X),G=1/(Y-Q),V=1/(W-K);return J[0]=-2*Z,J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=-2*G,J[6]=0,J[7]=0,J[8]=0,J[9]=0,J[10]=2*V,J[11]=0,J[12]=($+X)*Z,J[13]=(Q+Y)*G,J[14]=(K+W)*V,J[15]=1,J}var EH6=Gz8;Hz8.ortho=EH6;function SH6(J,$,X,Y,Q,W,K){var Z=1/($-X),G=1/(Y-Q),V=1/(W-K);return J[0]=-2*Z,J[1]=0,J[2]=0,J[3]=0,J[4]=0,J[5]=-2*G,J[6]=0,J[7]=0,J[8]=0,J[9]=0,J[10]=V,J[11]=0,J[12]=($+X)*Z,J[13]=(Q+Y)*G,J[14]=W*V,J[15]=1,J}function kH6(J,$,X,Y){var Q,W,K,Z,G,V,H,z,q,U,F=$[0],B=$[1],L=$[2],j=Y[0],M=Y[1],D=Y[2],w=X[0],R=X[1],N=X[2];if(Math.abs(F-w)<y5.EPSILON&&Math.abs(B-R)<y5.EPSILON&&Math.abs(L-N)<y5.EPSILON)return Yz8(J);if(H=F-w,z=B-R,q=L-N,U=1/Math.hypot(H,z,q),H*=U,z*=U,q*=U,Q=M*q-D*z,W=D*H-j*q,K=j*z-M*H,U=Math.hypot(Q,W,K),!U)Q=0,W=0,K=0;else U=1/U,Q*=U,W*=U,K*=U;if(Z=z*K-q*W,G=q*Q-H*K,V=H*W-z*Q,U=Math.hypot(Z,G,V),!U)Z=0,G=0,V=0;else U=1/U,Z*=U,G*=U,V*=U;return J[0]=Q,J[1]=Z,J[2]=H,J[3]=0,J[4]=W,J[5]=G,J[6]=z,J[7]=0,J[8]=K,J[9]=V,J[10]=q,J[11]=0,J[12]=-(Q*F+W*B+K*L),J[13]=-(Z*F+G*B+V*L),J[14]=-(H*F+z*B+q*L),J[15]=1,J}function IH6(J,$,X,Y){var Q=$[0],W=$[1],K=$[2],Z=Y[0],G=Y[1],V=Y[2],H=Q-X[0],z=W-X[1],q=K-X[2],U=H*H+z*z+q*q;if(U>0)U=1/Math.sqrt(U),H*=U,z*=U,q*=U;var F=G*q-V*z,B=V*H-Z*q,L=Z*z-G*H;if(U=F*F+B*B+L*L,U>0)U=1/Math.sqrt(U),F*=U,B*=U,L*=U;return J[0]=F,J[1]=B,J[2]=L,J[3]=0,J[4]=z*L-q*B,J[5]=q*F-H*L,J[6]=H*B-z*F,J[7]=0,J[8]=H,J[9]=z,J[10]=q,J[11]=0,J[12]=Q,J[13]=W,J[14]=K,J[15]=1,J}function AH6(J){return"mat4("+J[0]+", "+J[1]+", "+J[2]+", "+J[3]+", "+J[4]+", "+J[5]+", "+J[6]+", "+J[7]+", "+J[8]+", "+J[9]+", "+J[10]+", "+J[11]+", "+J[12]+", "+J[13]+", "+J[14]+", "+J[15]+")"}function _H6(J){return Math.hypot(J[0],J[1],J[2],J[3],J[4],J[5],J[6],J[7],J[8],J[9],J[10],J[11],J[12],J[13],J[14],J[15])}function vH6(J,$,X){return J[0]=$[0]+X[0],J[1]=$[1]+X[1],J[2]=$[2]+X[2],J[3]=$[3]+X[3],J[4]=$[4]+X[4],J[5]=$[5]+X[5],J[6]=$[6]+X[6],J[7]=$[7]+X[7],J[8]=$[8]+X[8],J[9]=$[9]+X[9],J[10]=$[10]+X[10],J[11]=$[11]+X[11],J[12]=$[12]+X[12],J[13]=$[13]+X[13],J[14]=$[14]+X[14],J[15]=$[15]+X[15],J}function Vz8(J,$,X){return J[0]=$[0]-X[0],J[1]=$[1]-X[1],J[2]=$[2]-X[2],J[3]=$[3]-X[3],J[4]=$[4]-X[4],J[5]=$[5]-X[5],J[6]=$[6]-X[6],J[7]=$[7]-X[7],J[8]=$[8]-X[8],J[9]=$[9]-X[9],J[10]=$[10]-X[10],J[11]=$[11]-X[11],J[12]=$[12]-X[12],J[13]=$[13]-X[13],J[14]=$[14]-X[14],J[15]=$[15]-X[15],J}function yH6(J,$,X){return J[0]=$[0]*X,J[1]=$[1]*X,J[2]=$[2]*X,J[3]=$[3]*X,J[4]=$[4]*X,J[5]=$[5]*X,J[6]=$[6]*X,J[7]=$[7]*X,J[8]=$[8]*X,J[9]=$[9]*X,J[10]=$[10]*X,J[11]=$[11]*X,J[12]=$[12]*X,J[13]=$[13]*X,J[14]=$[14]*X,J[15]=$[15]*X,J}function hH6(J,$,X,Y){return J[0]=$[0]+X[0]*Y,J[1]=$[1]+X[1]*Y,J[2]=$[2]+X[2]*Y,J[3]=$[3]+X[3]*Y,J[4]=$[4]+X[4]*Y,J[5]=$[5]+X[5]*Y,J[6]=$[6]+X[6]*Y,J[7]=$[7]+X[7]*Y,J[8]=$[8]+X[8]*Y,J[9]=$[9]+X[9]*Y,J[10]=$[10]+X[10]*Y,J[11]=$[11]+X[11]*Y,J[12]=$[12]+X[12]*Y,J[13]=$[13]+X[13]*Y,J[14]=$[14]+X[14]*Y,J[15]=$[15]+X[15]*Y,J}function xH6(J,$){return J[0]===$[0]&&J[1]===$[1]&&J[2]===$[2]&&J[3]===$[3]&&J[4]===$[4]&&J[5]===$[5]&&J[6]===$[6]&&J[7]===$[7]&&J[8]===$[8]&&J[9]===$[9]&&J[10]===$[10]&&J[11]===$[11]&&J[12]===$[12]&&J[13]===$[13]&&J[14]===$[14]&&J[15]===$[15]}function fH6(J,$){var X=J[0],Y=J[1],Q=J[2],W=J[3],K=J[4],Z=J[5],G=J[6],V=J[7],H=J[8],z=J[9],q=J[10],U=J[11],F=J[12],B=J[13],L=J[14],j=J[15],M=$[0],D=$[1],w=$[2],R=$[3],N=$[4],O=$[5],C=$[6],S=$[7],_=$[8],E=$[9],A=$[10],k=$[11],I=$[12],y=$[13],v=$[14],x=$[15];return Math.abs(X-M)<=y5.EPSILON*Math.max(1,Math.abs(X),Math.abs(M))&&Math.abs(Y-D)<=y5.EPSILON*Math.max(1,Math.abs(Y),Math.abs(D))&&Math.abs(Q-w)<=y5.EPSILON*Math.max(1,Math.abs(Q),Math.abs(w))&&Math.abs(W-R)<=y5.EPSILON*Math.max(1,Math.abs(W),Math.abs(R))&&Math.abs(K-N)<=y5.EPSILON*Math.max(1,Math.abs(K),Math.abs(N))&&Math.abs(Z-O)<=y5.EPSILON*Math.max(1,Math.abs(Z),Math.abs(O))&&Math.abs(G-C)<=y5.EPSILON*Math.max(1,Math.abs(G),Math.abs(C))&&Math.abs(V-S)<=y5.EPSILON*Math.max(1,Math.abs(V),Math.abs(S))&&Math.abs(H-_)<=y5.EPSILON*Math.max(1,Math.abs(H),Math.abs(_))&&Math.abs(z-E)<=y5.EPSILON*Math.max(1,Math.abs(z),Math.abs(E))&&Math.abs(q-A)<=y5.EPSILON*Math.max(1,Math.abs(q),Math.abs(A))&&Math.abs(U-k)<=y5.EPSILON*Math.max(1,Math.abs(U),Math.abs(k))&&Math.abs(F-I)<=y5.EPSILON*Math.max(1,Math.abs(F),Math.abs(I))&&Math.abs(B-y)<=y5.EPSILON*Math.max(1,Math.abs(B),Math.abs(y))&&Math.abs(L-v)<=y5.EPSILON*Math.max(1,Math.abs(L),Math.abs(v))&&Math.abs(j-x)<=y5.EPSILON*Math.max(1,Math.abs(j),Math.abs(x))}var bH6=Qz8;Hz8.mul=bH6;var gH6=Vz8;Hz8.sub=gH6});var Wd=P((Dz8)=>{function oP(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")oP=function(X){return typeof X};else oP=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return oP(J)}Object.defineProperty(Dz8,"__esModule",{value:!0});Dz8.create=Uz8;Dz8.clone=fq6;Dz8.length=Fz8;Dz8.fromValues=bq6;Dz8.copy=gq6;Dz8.set=mq6;Dz8.add=uq6;Dz8.subtract=Bz8;Dz8.multiply=Lz8;Dz8.divide=jz8;Dz8.ceil=dq6;Dz8.floor=lq6;Dz8.min=cq6;Dz8.max=pq6;Dz8.round=nq6;Dz8.scale=iq6;Dz8.scaleAndAdd=sq6;Dz8.distance=Mz8;Dz8.squaredDistance=Nz8;Dz8.squaredLength=Oz8;Dz8.negate=rq6;Dz8.inverse=aq6;Dz8.normalize=oq6;Dz8.dot=Rz8;Dz8.cross=tq6;Dz8.lerp=eq6;Dz8.hermite=Jz6;Dz8.bezier=$z6;Dz8.random=Xz6;Dz8.transformMat4=Yz6;Dz8.transformMat3=Qz6;Dz8.transformQuat=Wz6;Dz8.rotateX=Kz6;Dz8.rotateY=Zz6;Dz8.rotateZ=Gz6;Dz8.angle=Vz6;Dz8.zero=Hz6;Dz8.str=qz6;Dz8.exactEquals=zz6;Dz8.equals=Uz6;Dz8.forEach=Dz8.sqrLen=Dz8.len=Dz8.sqrDist=Dz8.dist=Dz8.div=Dz8.mul=Dz8.sub=void 0;var l4=xq6(r$());function zz8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(zz8=function(Q){return Q?X:$})(J)}function xq6(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||oP(J)!=="object"&&typeof J!=="function")return{default:J};var X=zz8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}function Uz8(){var J=new l4.ARRAY_TYPE(3);if(l4.ARRAY_TYPE!=Float32Array)J[0]=0,J[1]=0,J[2]=0;return J}function fq6(J){var $=new l4.ARRAY_TYPE(3);return $[0]=J[0],$[1]=J[1],$[2]=J[2],$}function Fz8(J){var $=J[0],X=J[1],Y=J[2];return Math.hypot($,X,Y)}function bq6(J,$,X){var Y=new l4.ARRAY_TYPE(3);return Y[0]=J,Y[1]=$,Y[2]=X,Y}function gq6(J,$){return J[0]=$[0],J[1]=$[1],J[2]=$[2],J}function mq6(J,$,X,Y){return J[0]=$,J[1]=X,J[2]=Y,J}function uq6(J,$,X){return J[0]=$[0]+X[0],J[1]=$[1]+X[1],J[2]=$[2]+X[2],J}function Bz8(J,$,X){return J[0]=$[0]-X[0],J[1]=$[1]-X[1],J[2]=$[2]-X[2],J}function Lz8(J,$,X){return J[0]=$[0]*X[0],J[1]=$[1]*X[1],J[2]=$[2]*X[2],J}function jz8(J,$,X){return J[0]=$[0]/X[0],J[1]=$[1]/X[1],J[2]=$[2]/X[2],J}function dq6(J,$){return J[0]=Math.ceil($[0]),J[1]=Math.ceil($[1]),J[2]=Math.ceil($[2]),J}function lq6(J,$){return J[0]=Math.floor($[0]),J[1]=Math.floor($[1]),J[2]=Math.floor($[2]),J}function cq6(J,$,X){return J[0]=Math.min($[0],X[0]),J[1]=Math.min($[1],X[1]),J[2]=Math.min($[2],X[2]),J}function pq6(J,$,X){return J[0]=Math.max($[0],X[0]),J[1]=Math.max($[1],X[1]),J[2]=Math.max($[2],X[2]),J}function nq6(J,$){return J[0]=Math.round($[0]),J[1]=Math.round($[1]),J[2]=Math.round($[2]),J}function iq6(J,$,X){return J[0]=$[0]*X,J[1]=$[1]*X,J[2]=$[2]*X,J}function sq6(J,$,X,Y){return J[0]=$[0]+X[0]*Y,J[1]=$[1]+X[1]*Y,J[2]=$[2]+X[2]*Y,J}function Mz8(J,$){var X=$[0]-J[0],Y=$[1]-J[1],Q=$[2]-J[2];return Math.hypot(X,Y,Q)}function Nz8(J,$){var X=$[0]-J[0],Y=$[1]-J[1],Q=$[2]-J[2];return X*X+Y*Y+Q*Q}function Oz8(J){var $=J[0],X=J[1],Y=J[2];return $*$+X*X+Y*Y}function rq6(J,$){return J[0]=-$[0],J[1]=-$[1],J[2]=-$[2],J}function aq6(J,$){return J[0]=1/$[0],J[1]=1/$[1],J[2]=1/$[2],J}function oq6(J,$){var X=$[0],Y=$[1],Q=$[2],W=X*X+Y*Y+Q*Q;if(W>0)W=1/Math.sqrt(W);return J[0]=$[0]*W,J[1]=$[1]*W,J[2]=$[2]*W,J}function Rz8(J,$){return J[0]*$[0]+J[1]*$[1]+J[2]*$[2]}function tq6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=X[0],Z=X[1],G=X[2];return J[0]=Q*G-W*Z,J[1]=W*K-Y*G,J[2]=Y*Z-Q*K,J}function eq6(J,$,X,Y){var Q=$[0],W=$[1],K=$[2];return J[0]=Q+Y*(X[0]-Q),J[1]=W+Y*(X[1]-W),J[2]=K+Y*(X[2]-K),J}function Jz6(J,$,X,Y,Q,W){var K=W*W,Z=K*(2*W-3)+1,G=K*(W-2)+W,V=K*(W-1),H=K*(3-2*W);return J[0]=$[0]*Z+X[0]*G+Y[0]*V+Q[0]*H,J[1]=$[1]*Z+X[1]*G+Y[1]*V+Q[1]*H,J[2]=$[2]*Z+X[2]*G+Y[2]*V+Q[2]*H,J}function $z6(J,$,X,Y,Q,W){var K=1-W,Z=K*K,G=W*W,V=Z*K,H=3*W*Z,z=3*G*K,q=G*W;return J[0]=$[0]*V+X[0]*H+Y[0]*z+Q[0]*q,J[1]=$[1]*V+X[1]*H+Y[1]*z+Q[1]*q,J[2]=$[2]*V+X[2]*H+Y[2]*z+Q[2]*q,J}function Xz6(J,$){$=$||1;var X=l4.RANDOM()*2*Math.PI,Y=l4.RANDOM()*2-1,Q=Math.sqrt(1-Y*Y)*$;return J[0]=Math.cos(X)*Q,J[1]=Math.sin(X)*Q,J[2]=Y*$,J}function Yz6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=X[3]*Y+X[7]*Q+X[11]*W+X[15];return K=K||1,J[0]=(X[0]*Y+X[4]*Q+X[8]*W+X[12])/K,J[1]=(X[1]*Y+X[5]*Q+X[9]*W+X[13])/K,J[2]=(X[2]*Y+X[6]*Q+X[10]*W+X[14])/K,J}function Qz6(J,$,X){var Y=$[0],Q=$[1],W=$[2];return J[0]=Y*X[0]+Q*X[3]+W*X[6],J[1]=Y*X[1]+Q*X[4]+W*X[7],J[2]=Y*X[2]+Q*X[5]+W*X[8],J}function Wz6(J,$,X){var Y=X[0],Q=X[1],W=X[2],K=X[3],Z=$[0],G=$[1],V=$[2],H=Q*V-W*G,z=W*Z-Y*V,q=Y*G-Q*Z,U=Q*q-W*z,F=W*H-Y*q,B=Y*z-Q*H,L=K*2;return H*=L,z*=L,q*=L,U*=2,F*=2,B*=2,J[0]=Z+H+U,J[1]=G+z+F,J[2]=V+q+B,J}function Kz6(J,$,X,Y){var Q=[],W=[];return Q[0]=$[0]-X[0],Q[1]=$[1]-X[1],Q[2]=$[2]-X[2],W[0]=Q[0],W[1]=Q[1]*Math.cos(Y)-Q[2]*Math.sin(Y),W[2]=Q[1]*Math.sin(Y)+Q[2]*Math.cos(Y),J[0]=W[0]+X[0],J[1]=W[1]+X[1],J[2]=W[2]+X[2],J}function Zz6(J,$,X,Y){var Q=[],W=[];return Q[0]=$[0]-X[0],Q[1]=$[1]-X[1],Q[2]=$[2]-X[2],W[0]=Q[2]*Math.sin(Y)+Q[0]*Math.cos(Y),W[1]=Q[1],W[2]=Q[2]*Math.cos(Y)-Q[0]*Math.sin(Y),J[0]=W[0]+X[0],J[1]=W[1]+X[1],J[2]=W[2]+X[2],J}function Gz6(J,$,X,Y){var Q=[],W=[];return Q[0]=$[0]-X[0],Q[1]=$[1]-X[1],Q[2]=$[2]-X[2],W[0]=Q[0]*Math.cos(Y)-Q[1]*Math.sin(Y),W[1]=Q[0]*Math.sin(Y)+Q[1]*Math.cos(Y),W[2]=Q[2],J[0]=W[0]+X[0],J[1]=W[1]+X[1],J[2]=W[2]+X[2],J}function Vz6(J,$){var X=J[0],Y=J[1],Q=J[2],W=$[0],K=$[1],Z=$[2],G=Math.sqrt(X*X+Y*Y+Q*Q),V=Math.sqrt(W*W+K*K+Z*Z),H=G*V,z=H&&Rz8(J,$)/H;return Math.acos(Math.min(Math.max(z,-1),1))}function Hz6(J){return J[0]=0,J[1]=0,J[2]=0,J}function qz6(J){return"vec3("+J[0]+", "+J[1]+", "+J[2]+")"}function zz6(J,$){return J[0]===$[0]&&J[1]===$[1]&&J[2]===$[2]}function Uz6(J,$){var X=J[0],Y=J[1],Q=J[2],W=$[0],K=$[1],Z=$[2];return Math.abs(X-W)<=l4.EPSILON*Math.max(1,Math.abs(X),Math.abs(W))&&Math.abs(Y-K)<=l4.EPSILON*Math.max(1,Math.abs(Y),Math.abs(K))&&Math.abs(Q-Z)<=l4.EPSILON*Math.max(1,Math.abs(Q),Math.abs(Z))}var Fz6=Bz8;Dz8.sub=Fz6;var Bz6=Lz8;Dz8.mul=Bz6;var Lz6=jz8;Dz8.div=Lz6;var jz6=Mz8;Dz8.dist=jz6;var Mz6=Nz8;Dz8.sqrDist=Mz6;var Nz6=Fz8;Dz8.len=Nz6;var Oz6=Oz8;Dz8.sqrLen=Oz6;var Rz6=function(){var J=Uz8();return function($,X,Y,Q,W,K){var Z,G;if(!X)X=3;if(!Y)Y=0;if(Q)G=Math.min(Q*X+Y,$.length);else G=$.length;for(Z=Y;Z<G;Z+=X)J[0]=$[Z],J[1]=$[Z+1],J[2]=$[Z+2],W(J,J,K),$[Z]=J[0],$[Z+1]=J[1],$[Z+2]=J[2];return $}}();Dz8.forEach=Rz6});var Kd=P((vz8)=>{function tP(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")tP=function(X){return typeof X};else tP=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return tP(J)}Object.defineProperty(vz8,"__esModule",{value:!0});vz8.create=Cz8;vz8.clone=LU6;vz8.fromValues=jU6;vz8.copy=MU6;vz8.set=NU6;vz8.add=OU6;vz8.subtract=Tz8;vz8.multiply=Ez8;vz8.divide=Sz8;vz8.ceil=RU6;vz8.floor=DU6;vz8.min=wU6;vz8.max=PU6;vz8.round=CU6;vz8.scale=TU6;vz8.scaleAndAdd=EU6;vz8.distance=kz8;vz8.squaredDistance=Iz8;vz8.length=Az8;vz8.squaredLength=_z8;vz8.negate=SU6;vz8.inverse=kU6;vz8.normalize=IU6;vz8.dot=AU6;vz8.cross=_U6;vz8.lerp=vU6;vz8.random=yU6;vz8.transformMat4=hU6;vz8.transformQuat=xU6;vz8.zero=fU6;vz8.str=bU6;vz8.exactEquals=gU6;vz8.equals=mU6;vz8.forEach=vz8.sqrLen=vz8.len=vz8.sqrDist=vz8.dist=vz8.div=vz8.mul=vz8.sub=void 0;var p1=BU6(r$());function Pz8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(Pz8=function(Q){return Q?X:$})(J)}function BU6(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||tP(J)!=="object"&&typeof J!=="function")return{default:J};var X=Pz8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}function Cz8(){var J=new p1.ARRAY_TYPE(4);if(p1.ARRAY_TYPE!=Float32Array)J[0]=0,J[1]=0,J[2]=0,J[3]=0;return J}function LU6(J){var $=new p1.ARRAY_TYPE(4);return $[0]=J[0],$[1]=J[1],$[2]=J[2],$[3]=J[3],$}function jU6(J,$,X,Y){var Q=new p1.ARRAY_TYPE(4);return Q[0]=J,Q[1]=$,Q[2]=X,Q[3]=Y,Q}function MU6(J,$){return J[0]=$[0],J[1]=$[1],J[2]=$[2],J[3]=$[3],J}function NU6(J,$,X,Y,Q){return J[0]=$,J[1]=X,J[2]=Y,J[3]=Q,J}function OU6(J,$,X){return J[0]=$[0]+X[0],J[1]=$[1]+X[1],J[2]=$[2]+X[2],J[3]=$[3]+X[3],J}function Tz8(J,$,X){return J[0]=$[0]-X[0],J[1]=$[1]-X[1],J[2]=$[2]-X[2],J[3]=$[3]-X[3],J}function Ez8(J,$,X){return J[0]=$[0]*X[0],J[1]=$[1]*X[1],J[2]=$[2]*X[2],J[3]=$[3]*X[3],J}function Sz8(J,$,X){return J[0]=$[0]/X[0],J[1]=$[1]/X[1],J[2]=$[2]/X[2],J[3]=$[3]/X[3],J}function RU6(J,$){return J[0]=Math.ceil($[0]),J[1]=Math.ceil($[1]),J[2]=Math.ceil($[2]),J[3]=Math.ceil($[3]),J}function DU6(J,$){return J[0]=Math.floor($[0]),J[1]=Math.floor($[1]),J[2]=Math.floor($[2]),J[3]=Math.floor($[3]),J}function wU6(J,$,X){return J[0]=Math.min($[0],X[0]),J[1]=Math.min($[1],X[1]),J[2]=Math.min($[2],X[2]),J[3]=Math.min($[3],X[3]),J}function PU6(J,$,X){return J[0]=Math.max($[0],X[0]),J[1]=Math.max($[1],X[1]),J[2]=Math.max($[2],X[2]),J[3]=Math.max($[3],X[3]),J}function CU6(J,$){return J[0]=Math.round($[0]),J[1]=Math.round($[1]),J[2]=Math.round($[2]),J[3]=Math.round($[3]),J}function TU6(J,$,X){return J[0]=$[0]*X,J[1]=$[1]*X,J[2]=$[2]*X,J[3]=$[3]*X,J}function EU6(J,$,X,Y){return J[0]=$[0]+X[0]*Y,J[1]=$[1]+X[1]*Y,J[2]=$[2]+X[2]*Y,J[3]=$[3]+X[3]*Y,J}function kz8(J,$){var X=$[0]-J[0],Y=$[1]-J[1],Q=$[2]-J[2],W=$[3]-J[3];return Math.hypot(X,Y,Q,W)}function Iz8(J,$){var X=$[0]-J[0],Y=$[1]-J[1],Q=$[2]-J[2],W=$[3]-J[3];return X*X+Y*Y+Q*Q+W*W}function Az8(J){var $=J[0],X=J[1],Y=J[2],Q=J[3];return Math.hypot($,X,Y,Q)}function _z8(J){var $=J[0],X=J[1],Y=J[2],Q=J[3];return $*$+X*X+Y*Y+Q*Q}function SU6(J,$){return J[0]=-$[0],J[1]=-$[1],J[2]=-$[2],J[3]=-$[3],J}function kU6(J,$){return J[0]=1/$[0],J[1]=1/$[1],J[2]=1/$[2],J[3]=1/$[3],J}function IU6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=X*X+Y*Y+Q*Q+W*W;if(K>0)K=1/Math.sqrt(K);return J[0]=X*K,J[1]=Y*K,J[2]=Q*K,J[3]=W*K,J}function AU6(J,$){return J[0]*$[0]+J[1]*$[1]+J[2]*$[2]+J[3]*$[3]}function _U6(J,$,X,Y){var Q=X[0]*Y[1]-X[1]*Y[0],W=X[0]*Y[2]-X[2]*Y[0],K=X[0]*Y[3]-X[3]*Y[0],Z=X[1]*Y[2]-X[2]*Y[1],G=X[1]*Y[3]-X[3]*Y[1],V=X[2]*Y[3]-X[3]*Y[2],H=$[0],z=$[1],q=$[2],U=$[3];return J[0]=z*V-q*G+U*Z,J[1]=-(H*V)+q*K-U*W,J[2]=H*G-z*K+U*Q,J[3]=-(H*Z)+z*W-q*Q,J}function vU6(J,$,X,Y){var Q=$[0],W=$[1],K=$[2],Z=$[3];return J[0]=Q+Y*(X[0]-Q),J[1]=W+Y*(X[1]-W),J[2]=K+Y*(X[2]-K),J[3]=Z+Y*(X[3]-Z),J}function yU6(J,$){$=$||1;var X,Y,Q,W,K,Z;do X=p1.RANDOM()*2-1,Y=p1.RANDOM()*2-1,K=X*X+Y*Y;while(K>=1);do Q=p1.RANDOM()*2-1,W=p1.RANDOM()*2-1,Z=Q*Q+W*W;while(Z>=1);var G=Math.sqrt((1-K)/Z);return J[0]=$*X,J[1]=$*Y,J[2]=$*Q*G,J[3]=$*W*G,J}function hU6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3];return J[0]=X[0]*Y+X[4]*Q+X[8]*W+X[12]*K,J[1]=X[1]*Y+X[5]*Q+X[9]*W+X[13]*K,J[2]=X[2]*Y+X[6]*Q+X[10]*W+X[14]*K,J[3]=X[3]*Y+X[7]*Q+X[11]*W+X[15]*K,J}function xU6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=X[0],Z=X[1],G=X[2],V=X[3],H=V*Y+Z*W-G*Q,z=V*Q+G*Y-K*W,q=V*W+K*Q-Z*Y,U=-K*Y-Z*Q-G*W;return J[0]=H*V+U*-K+z*-G-q*-Z,J[1]=z*V+U*-Z+q*-K-H*-G,J[2]=q*V+U*-G+H*-Z-z*-K,J[3]=$[3],J}function fU6(J){return J[0]=0,J[1]=0,J[2]=0,J[3]=0,J}function bU6(J){return"vec4("+J[0]+", "+J[1]+", "+J[2]+", "+J[3]+")"}function gU6(J,$){return J[0]===$[0]&&J[1]===$[1]&&J[2]===$[2]&&J[3]===$[3]}function mU6(J,$){var X=J[0],Y=J[1],Q=J[2],W=J[3],K=$[0],Z=$[1],G=$[2],V=$[3];return Math.abs(X-K)<=p1.EPSILON*Math.max(1,Math.abs(X),Math.abs(K))&&Math.abs(Y-Z)<=p1.EPSILON*Math.max(1,Math.abs(Y),Math.abs(Z))&&Math.abs(Q-G)<=p1.EPSILON*Math.max(1,Math.abs(Q),Math.abs(G))&&Math.abs(W-V)<=p1.EPSILON*Math.max(1,Math.abs(W),Math.abs(V))}var uU6=Tz8;vz8.sub=uU6;var dU6=Ez8;vz8.mul=dU6;var lU6=Sz8;vz8.div=lU6;var cU6=kz8;vz8.dist=cU6;var pU6=Iz8;vz8.sqrDist=pU6;var nU6=Az8;vz8.len=nU6;var iU6=_z8;vz8.sqrLen=iU6;var sU6=function(){var J=Cz8();return function($,X,Y,Q,W,K){var Z,G;if(!X)X=4;if(!Y)Y=0;if(Q)G=Math.min(Q*X+Y,$.length);else G=$.length;for(Z=Y;Z<G;Z+=X)J[0]=$[Z],J[1]=$[Z+1],J[2]=$[Z+2],J[3]=$[Z+3],W(J,J,K),$[Z]=J[0],$[Z+1]=J[1],$[Z+2]=J[2],$[Z+3]=J[3];return $}}();vz8.forEach=sU6});var Vd=P((pz8)=>{function eP(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")eP=function(X){return typeof X};else eP=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return eP(J)}Object.defineProperty(pz8,"__esModule",{value:!0});pz8.create=Zd;pz8.identity=xF6;pz8.setAxisAngle=xz8;pz8.getAxisAngle=fF6;pz8.getAngle=bF6;pz8.multiply=fz8;pz8.rotateX=gF6;pz8.rotateY=mF6;pz8.rotateZ=uF6;pz8.calculateW=dF6;pz8.exp=bz8;pz8.ln=gz8;pz8.pow=lF6;pz8.slerp=JC;pz8.random=cF6;pz8.invert=pF6;pz8.conjugate=nF6;pz8.fromMat3=mz8;pz8.fromEuler=iF6;pz8.str=sF6;pz8.setAxes=pz8.sqlerp=pz8.rotationTo=pz8.equals=pz8.exactEquals=pz8.normalize=pz8.sqrLen=pz8.squaredLength=pz8.len=pz8.length=pz8.lerp=pz8.dot=pz8.scale=pz8.mul=pz8.add=pz8.set=pz8.copy=pz8.fromValues=pz8.clone=void 0;var FG=$C(r$()),hF6=$C(Yd()),c4=$C(Wd()),uJ=$C(Kd());function hz8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(hz8=function(Q){return Q?X:$})(J)}function $C(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||eP(J)!=="object"&&typeof J!=="function")return{default:J};var X=hz8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}function Zd(){var J=new FG.ARRAY_TYPE(4);if(FG.ARRAY_TYPE!=Float32Array)J[0]=0,J[1]=0,J[2]=0;return J[3]=1,J}function xF6(J){return J[0]=0,J[1]=0,J[2]=0,J[3]=1,J}function xz8(J,$,X){X=X*0.5;var Y=Math.sin(X);return J[0]=Y*$[0],J[1]=Y*$[1],J[2]=Y*$[2],J[3]=Math.cos(X),J}function fF6(J,$){var X=Math.acos($[3])*2,Y=Math.sin(X/2);if(Y>FG.EPSILON)J[0]=$[0]/Y,J[1]=$[1]/Y,J[2]=$[2]/Y;else J[0]=1,J[1]=0,J[2]=0;return X}function bF6(J,$){var X=dz8(J,$);return Math.acos(2*X*X-1)}function fz8(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=X[0],G=X[1],V=X[2],H=X[3];return J[0]=Y*H+K*Z+Q*V-W*G,J[1]=Q*H+K*G+W*Z-Y*V,J[2]=W*H+K*V+Y*G-Q*Z,J[3]=K*H-Y*Z-Q*G-W*V,J}function gF6(J,$,X){X*=0.5;var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=Math.sin(X),G=Math.cos(X);return J[0]=Y*G+K*Z,J[1]=Q*G+W*Z,J[2]=W*G-Q*Z,J[3]=K*G-Y*Z,J}function mF6(J,$,X){X*=0.5;var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=Math.sin(X),G=Math.cos(X);return J[0]=Y*G-W*Z,J[1]=Q*G+K*Z,J[2]=W*G+Y*Z,J[3]=K*G-Q*Z,J}function uF6(J,$,X){X*=0.5;var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=Math.sin(X),G=Math.cos(X);return J[0]=Y*G+Q*Z,J[1]=Q*G-Y*Z,J[2]=W*G+K*Z,J[3]=K*G-W*Z,J}function dF6(J,$){var X=$[0],Y=$[1],Q=$[2];return J[0]=X,J[1]=Y,J[2]=Q,J[3]=Math.sqrt(Math.abs(1-X*X-Y*Y-Q*Q)),J}function bz8(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=Math.sqrt(X*X+Y*Y+Q*Q),Z=Math.exp(W),G=K>0?Z*Math.sin(K)/K:0;return J[0]=X*G,J[1]=Y*G,J[2]=Q*G,J[3]=Z*Math.cos(K),J}function gz8(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=Math.sqrt(X*X+Y*Y+Q*Q),Z=K>0?Math.atan2(K,W)/K:0;return J[0]=X*Z,J[1]=Y*Z,J[2]=Q*Z,J[3]=0.5*Math.log(X*X+Y*Y+Q*Q+W*W),J}function lF6(J,$,X){return gz8(J,$),uz8(J,J,X),bz8(J,J),J}function JC(J,$,X,Y){var Q=$[0],W=$[1],K=$[2],Z=$[3],G=X[0],V=X[1],H=X[2],z=X[3],q,U,F,B,L;if(U=Q*G+W*V+K*H+Z*z,U<0)U=-U,G=-G,V=-V,H=-H,z=-z;if(1-U>FG.EPSILON)q=Math.acos(U),F=Math.sin(q),B=Math.sin((1-Y)*q)/F,L=Math.sin(Y*q)/F;else B=1-Y,L=Y;return J[0]=B*Q+L*G,J[1]=B*W+L*V,J[2]=B*K+L*H,J[3]=B*Z+L*z,J}function cF6(J){var $=FG.RANDOM(),X=FG.RANDOM(),Y=FG.RANDOM(),Q=Math.sqrt(1-$),W=Math.sqrt($);return J[0]=Q*Math.sin(2*Math.PI*X),J[1]=Q*Math.cos(2*Math.PI*X),J[2]=W*Math.sin(2*Math.PI*Y),J[3]=W*Math.cos(2*Math.PI*Y),J}function pF6(J,$){var X=$[0],Y=$[1],Q=$[2],W=$[3],K=X*X+Y*Y+Q*Q+W*W,Z=K?1/K:0;return J[0]=-X*Z,J[1]=-Y*Z,J[2]=-Q*Z,J[3]=W*Z,J}function nF6(J,$){return J[0]=-$[0],J[1]=-$[1],J[2]=-$[2],J[3]=$[3],J}function mz8(J,$){var X=$[0]+$[4]+$[8],Y;if(X>0)Y=Math.sqrt(X+1),J[3]=0.5*Y,Y=0.5/Y,J[0]=($[5]-$[7])*Y,J[1]=($[6]-$[2])*Y,J[2]=($[1]-$[3])*Y;else{var Q=0;if($[4]>$[0])Q=1;if($[8]>$[Q*3+Q])Q=2;var W=(Q+1)%3,K=(Q+2)%3;Y=Math.sqrt($[Q*3+Q]-$[W*3+W]-$[K*3+K]+1),J[Q]=0.5*Y,Y=0.5/Y,J[3]=($[W*3+K]-$[K*3+W])*Y,J[W]=($[W*3+Q]+$[Q*3+W])*Y,J[K]=($[K*3+Q]+$[Q*3+K])*Y}return J}function iF6(J,$,X,Y){var Q=0.5*Math.PI/180;$*=Q,X*=Q,Y*=Q;var W=Math.sin($),K=Math.cos($),Z=Math.sin(X),G=Math.cos(X),V=Math.sin(Y),H=Math.cos(Y);return J[0]=W*G*H-K*Z*V,J[1]=K*Z*H+W*G*V,J[2]=K*G*V-W*Z*H,J[3]=K*G*H+W*Z*V,J}function sF6(J){return"quat("+J[0]+", "+J[1]+", "+J[2]+", "+J[3]+")"}var rF6=uJ.clone;pz8.clone=rF6;var aF6=uJ.fromValues;pz8.fromValues=aF6;var oF6=uJ.copy;pz8.copy=oF6;var tF6=uJ.set;pz8.set=tF6;var eF6=uJ.add;pz8.add=eF6;var J36=fz8;pz8.mul=J36;var uz8=uJ.scale;pz8.scale=uz8;var dz8=uJ.dot;pz8.dot=dz8;var $36=uJ.lerp;pz8.lerp=$36;var lz8=uJ.length;pz8.length=lz8;var X36=lz8;pz8.len=X36;var cz8=uJ.squaredLength;pz8.squaredLength=cz8;var Y36=cz8;pz8.sqrLen=Y36;var Gd=uJ.normalize;pz8.normalize=Gd;var Q36=uJ.exactEquals;pz8.exactEquals=Q36;var W36=uJ.equals;pz8.equals=W36;var K36=function(){var J=c4.create(),$=c4.fromValues(1,0,0),X=c4.fromValues(0,1,0);return function(Y,Q,W){var K=c4.dot(Q,W);if(K<-0.999999){if(c4.cross(J,$,Q),c4.len(J)<0.000001)c4.cross(J,X,Q);return c4.normalize(J,J),xz8(Y,J,Math.PI),Y}else if(K>0.999999)return Y[0]=0,Y[1]=0,Y[2]=0,Y[3]=1,Y;else return c4.cross(J,Q,W),Y[0]=J[0],Y[1]=J[1],Y[2]=J[2],Y[3]=1+K,Gd(Y,Y)}}();pz8.rotationTo=K36;var Z36=function(){var J=Zd(),$=Zd();return function(X,Y,Q,W,K,Z){return JC(J,Y,K,Z),JC($,Q,W,Z),JC(X,J,$,2*Z*(1-Z)),X}}();pz8.sqlerp=Z36;var G36=function(){var J=hF6.create();return function($,X,Y,Q){return J[0]=Y[0],J[3]=Y[1],J[6]=Y[2],J[1]=Q[0],J[4]=Q[1],J[7]=Q[2],J[2]=-X[0],J[5]=-X[1],J[8]=-X[2],Gd($,mz8($,J))}}();pz8.setAxes=G36});var XU8=P((JU8)=>{function XC(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")XC=function(X){return typeof X};else XC=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return XC(J)}Object.defineProperty(JU8,"__esModule",{value:!0});JU8.create=i36;JU8.clone=s36;JU8.fromValues=r36;JU8.fromRotationTranslationValues=a36;JU8.fromRotationTranslation=rz8;JU8.fromTranslation=o36;JU8.fromRotation=t36;JU8.fromMat4=e36;JU8.copy=az8;JU8.identity=JB6;JU8.set=$B6;JU8.getDual=YB6;JU8.setDual=WB6;JU8.getTranslation=KB6;JU8.translate=ZB6;JU8.rotateX=GB6;JU8.rotateY=VB6;JU8.rotateZ=HB6;JU8.rotateByQuatAppend=qB6;JU8.rotateByQuatPrepend=zB6;JU8.rotateAroundAxis=UB6;JU8.add=FB6;JU8.multiply=oz8;JU8.scale=LB6;JU8.lerp=jB6;JU8.invert=MB6;JU8.conjugate=NB6;JU8.normalize=DB6;JU8.str=wB6;JU8.exactEquals=PB6;JU8.equals=CB6;JU8.sqrLen=JU8.squaredLength=JU8.len=JU8.length=JU8.dot=JU8.mul=JU8.setReal=JU8.getReal=void 0;var k7=Hd(r$()),p4=Hd(Vd()),iz8=Hd(Qd());function sz8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(sz8=function(Q){return Q?X:$})(J)}function Hd(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||XC(J)!=="object"&&typeof J!=="function")return{default:J};var X=sz8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}function i36(){var J=new k7.ARRAY_TYPE(8);if(k7.ARRAY_TYPE!=Float32Array)J[0]=0,J[1]=0,J[2]=0,J[4]=0,J[5]=0,J[6]=0,J[7]=0;return J[3]=1,J}function s36(J){var $=new k7.ARRAY_TYPE(8);return $[0]=J[0],$[1]=J[1],$[2]=J[2],$[3]=J[3],$[4]=J[4],$[5]=J[5],$[6]=J[6],$[7]=J[7],$}function r36(J,$,X,Y,Q,W,K,Z){var G=new k7.ARRAY_TYPE(8);return G[0]=J,G[1]=$,G[2]=X,G[3]=Y,G[4]=Q,G[5]=W,G[6]=K,G[7]=Z,G}function a36(J,$,X,Y,Q,W,K){var Z=new k7.ARRAY_TYPE(8);Z[0]=J,Z[1]=$,Z[2]=X,Z[3]=Y;var G=Q*0.5,V=W*0.5,H=K*0.5;return Z[4]=G*Y+V*X-H*$,Z[5]=V*Y+H*J-G*X,Z[6]=H*Y+G*$-V*J,Z[7]=-G*J-V*$-H*X,Z}function rz8(J,$,X){var Y=X[0]*0.5,Q=X[1]*0.5,W=X[2]*0.5,K=$[0],Z=$[1],G=$[2],V=$[3];return J[0]=K,J[1]=Z,J[2]=G,J[3]=V,J[4]=Y*V+Q*G-W*Z,J[5]=Q*V+W*K-Y*G,J[6]=W*V+Y*Z-Q*K,J[7]=-Y*K-Q*Z-W*G,J}function o36(J,$){return J[0]=0,J[1]=0,J[2]=0,J[3]=1,J[4]=$[0]*0.5,J[5]=$[1]*0.5,J[6]=$[2]*0.5,J[7]=0,J}function t36(J,$){return J[0]=$[0],J[1]=$[1],J[2]=$[2],J[3]=$[3],J[4]=0,J[5]=0,J[6]=0,J[7]=0,J}function e36(J,$){var X=p4.create();iz8.getRotation(X,$);var Y=new k7.ARRAY_TYPE(3);return iz8.getTranslation(Y,$),rz8(J,X,Y),J}function az8(J,$){return J[0]=$[0],J[1]=$[1],J[2]=$[2],J[3]=$[3],J[4]=$[4],J[5]=$[5],J[6]=$[6],J[7]=$[7],J}function JB6(J){return J[0]=0,J[1]=0,J[2]=0,J[3]=1,J[4]=0,J[5]=0,J[6]=0,J[7]=0,J}function $B6(J,$,X,Y,Q,W,K,Z,G){return J[0]=$,J[1]=X,J[2]=Y,J[3]=Q,J[4]=W,J[5]=K,J[6]=Z,J[7]=G,J}var XB6=p4.copy;JU8.getReal=XB6;function YB6(J,$){return J[0]=$[4],J[1]=$[5],J[2]=$[6],J[3]=$[7],J}var QB6=p4.copy;JU8.setReal=QB6;function WB6(J,$){return J[4]=$[0],J[5]=$[1],J[6]=$[2],J[7]=$[3],J}function KB6(J,$){var X=$[4],Y=$[5],Q=$[6],W=$[7],K=-$[0],Z=-$[1],G=-$[2],V=$[3];return J[0]=(X*V+W*K+Y*G-Q*Z)*2,J[1]=(Y*V+W*Z+Q*K-X*G)*2,J[2]=(Q*V+W*G+X*Z-Y*K)*2,J}function ZB6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=X[0]*0.5,G=X[1]*0.5,V=X[2]*0.5,H=$[4],z=$[5],q=$[6],U=$[7];return J[0]=Y,J[1]=Q,J[2]=W,J[3]=K,J[4]=K*Z+Q*V-W*G+H,J[5]=K*G+W*Z-Y*V+z,J[6]=K*V+Y*G-Q*Z+q,J[7]=-Y*Z-Q*G-W*V+U,J}function GB6(J,$,X){var Y=-$[0],Q=-$[1],W=-$[2],K=$[3],Z=$[4],G=$[5],V=$[6],H=$[7],z=Z*K+H*Y+G*W-V*Q,q=G*K+H*Q+V*Y-Z*W,U=V*K+H*W+Z*Q-G*Y,F=H*K-Z*Y-G*Q-V*W;return p4.rotateX(J,$,X),Y=J[0],Q=J[1],W=J[2],K=J[3],J[4]=z*K+F*Y+q*W-U*Q,J[5]=q*K+F*Q+U*Y-z*W,J[6]=U*K+F*W+z*Q-q*Y,J[7]=F*K-z*Y-q*Q-U*W,J}function VB6(J,$,X){var Y=-$[0],Q=-$[1],W=-$[2],K=$[3],Z=$[4],G=$[5],V=$[6],H=$[7],z=Z*K+H*Y+G*W-V*Q,q=G*K+H*Q+V*Y-Z*W,U=V*K+H*W+Z*Q-G*Y,F=H*K-Z*Y-G*Q-V*W;return p4.rotateY(J,$,X),Y=J[0],Q=J[1],W=J[2],K=J[3],J[4]=z*K+F*Y+q*W-U*Q,J[5]=q*K+F*Q+U*Y-z*W,J[6]=U*K+F*W+z*Q-q*Y,J[7]=F*K-z*Y-q*Q-U*W,J}function HB6(J,$,X){var Y=-$[0],Q=-$[1],W=-$[2],K=$[3],Z=$[4],G=$[5],V=$[6],H=$[7],z=Z*K+H*Y+G*W-V*Q,q=G*K+H*Q+V*Y-Z*W,U=V*K+H*W+Z*Q-G*Y,F=H*K-Z*Y-G*Q-V*W;return p4.rotateZ(J,$,X),Y=J[0],Q=J[1],W=J[2],K=J[3],J[4]=z*K+F*Y+q*W-U*Q,J[5]=q*K+F*Q+U*Y-z*W,J[6]=U*K+F*W+z*Q-q*Y,J[7]=F*K-z*Y-q*Q-U*W,J}function qB6(J,$,X){var Y=X[0],Q=X[1],W=X[2],K=X[3],Z=$[0],G=$[1],V=$[2],H=$[3];return J[0]=Z*K+H*Y+G*W-V*Q,J[1]=G*K+H*Q+V*Y-Z*W,J[2]=V*K+H*W+Z*Q-G*Y,J[3]=H*K-Z*Y-G*Q-V*W,Z=$[4],G=$[5],V=$[6],H=$[7],J[4]=Z*K+H*Y+G*W-V*Q,J[5]=G*K+H*Q+V*Y-Z*W,J[6]=V*K+H*W+Z*Q-G*Y,J[7]=H*K-Z*Y-G*Q-V*W,J}function zB6(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=X[0],G=X[1],V=X[2],H=X[3];return J[0]=Y*H+K*Z+Q*V-W*G,J[1]=Q*H+K*G+W*Z-Y*V,J[2]=W*H+K*V+Y*G-Q*Z,J[3]=K*H-Y*Z-Q*G-W*V,Z=X[4],G=X[5],V=X[6],H=X[7],J[4]=Y*H+K*Z+Q*V-W*G,J[5]=Q*H+K*G+W*Z-Y*V,J[6]=W*H+K*V+Y*G-Q*Z,J[7]=K*H-Y*Z-Q*G-W*V,J}function UB6(J,$,X,Y){if(Math.abs(Y)<k7.EPSILON)return az8(J,$);var Q=Math.hypot(X[0],X[1],X[2]);Y=Y*0.5;var W=Math.sin(Y),K=W*X[0]/Q,Z=W*X[1]/Q,G=W*X[2]/Q,V=Math.cos(Y),H=$[0],z=$[1],q=$[2],U=$[3];J[0]=H*V+U*K+z*G-q*Z,J[1]=z*V+U*Z+q*K-H*G,J[2]=q*V+U*G+H*Z-z*K,J[3]=U*V-H*K-z*Z-q*G;var F=$[4],B=$[5],L=$[6],j=$[7];return J[4]=F*V+j*K+B*G-L*Z,J[5]=B*V+j*Z+L*K-F*G,J[6]=L*V+j*G+F*Z-B*K,J[7]=j*V-F*K-B*Z-L*G,J}function FB6(J,$,X){return J[0]=$[0]+X[0],J[1]=$[1]+X[1],J[2]=$[2]+X[2],J[3]=$[3]+X[3],J[4]=$[4]+X[4],J[5]=$[5]+X[5],J[6]=$[6]+X[6],J[7]=$[7]+X[7],J}function oz8(J,$,X){var Y=$[0],Q=$[1],W=$[2],K=$[3],Z=X[4],G=X[5],V=X[6],H=X[7],z=$[4],q=$[5],U=$[6],F=$[7],B=X[0],L=X[1],j=X[2],M=X[3];return J[0]=Y*M+K*B+Q*j-W*L,J[1]=Q*M+K*L+W*B-Y*j,J[2]=W*M+K*j+Y*L-Q*B,J[3]=K*M-Y*B-Q*L-W*j,J[4]=Y*H+K*Z+Q*V-W*G+z*M+F*B+q*j-U*L,J[5]=Q*H+K*G+W*Z-Y*V+q*M+F*L+U*B-z*j,J[6]=W*H+K*V+Y*G-Q*Z+U*M+F*j+z*L-q*B,J[7]=K*H-Y*Z-Q*G-W*V+F*M-z*B-q*L-U*j,J}var BB6=oz8;JU8.mul=BB6;function LB6(J,$,X){return J[0]=$[0]*X,J[1]=$[1]*X,J[2]=$[2]*X,J[3]=$[3]*X,J[4]=$[4]*X,J[5]=$[5]*X,J[6]=$[6]*X,J[7]=$[7]*X,J}var tz8=p4.dot;JU8.dot=tz8;function jB6(J,$,X,Y){var Q=1-Y;if(tz8($,X)<0)Y=-Y;return J[0]=$[0]*Q+X[0]*Y,J[1]=$[1]*Q+X[1]*Y,J[2]=$[2]*Q+X[2]*Y,J[3]=$[3]*Q+X[3]*Y,J[4]=$[4]*Q+X[4]*Y,J[5]=$[5]*Q+X[5]*Y,J[6]=$[6]*Q+X[6]*Y,J[7]=$[7]*Q+X[7]*Y,J}function MB6(J,$){var X=YC($);return J[0]=-$[0]/X,J[1]=-$[1]/X,J[2]=-$[2]/X,J[3]=$[3]/X,J[4]=-$[4]/X,J[5]=-$[5]/X,J[6]=-$[6]/X,J[7]=$[7]/X,J}function NB6(J,$){return J[0]=-$[0],J[1]=-$[1],J[2]=-$[2],J[3]=$[3],J[4]=-$[4],J[5]=-$[5],J[6]=-$[6],J[7]=$[7],J}var ez8=p4.length;JU8.length=ez8;var OB6=ez8;JU8.len=OB6;var YC=p4.squaredLength;JU8.squaredLength=YC;var RB6=YC;JU8.sqrLen=RB6;function DB6(J,$){var X=YC($);if(X>0){X=Math.sqrt(X);var Y=$[0]/X,Q=$[1]/X,W=$[2]/X,K=$[3]/X,Z=$[4],G=$[5],V=$[6],H=$[7],z=Y*Z+Q*G+W*V+K*H;J[0]=Y,J[1]=Q,J[2]=W,J[3]=K,J[4]=(Z-Y*z)/X,J[5]=(G-Q*z)/X,J[6]=(V-W*z)/X,J[7]=(H-K*z)/X}return J}function wB6(J){return"quat2("+J[0]+", "+J[1]+", "+J[2]+", "+J[3]+", "+J[4]+", "+J[5]+", "+J[6]+", "+J[7]+")"}function PB6(J,$){return J[0]===$[0]&&J[1]===$[1]&&J[2]===$[2]&&J[3]===$[3]&&J[4]===$[4]&&J[5]===$[5]&&J[6]===$[6]&&J[7]===$[7]}function CB6(J,$){var X=J[0],Y=J[1],Q=J[2],W=J[3],K=J[4],Z=J[5],G=J[6],V=J[7],H=$[0],z=$[1],q=$[2],U=$[3],F=$[4],B=$[5],L=$[6],j=$[7];return Math.abs(X-H)<=k7.EPSILON*Math.max(1,Math.abs(X),Math.abs(H))&&Math.abs(Y-z)<=k7.EPSILON*Math.max(1,Math.abs(Y),Math.abs(z))&&Math.abs(Q-q)<=k7.EPSILON*Math.max(1,Math.abs(Q),Math.abs(q))&&Math.abs(W-U)<=k7.EPSILON*Math.max(1,Math.abs(W),Math.abs(U))&&Math.abs(K-F)<=k7.EPSILON*Math.max(1,Math.abs(K),Math.abs(F))&&Math.abs(Z-B)<=k7.EPSILON*Math.max(1,Math.abs(Z),Math.abs(B))&&Math.abs(G-L)<=k7.EPSILON*Math.max(1,Math.abs(G),Math.abs(L))&&Math.abs(V-j)<=k7.EPSILON*Math.max(1,Math.abs(V),Math.abs(j))}});var FU8=P((zU8)=>{function QC(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")QC=function(X){return typeof X};else QC=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return QC(J)}Object.defineProperty(zU8,"__esModule",{value:!0});zU8.create=QU8;zU8.clone=qL6;zU8.fromValues=zL6;zU8.copy=UL6;zU8.set=FL6;zU8.add=BL6;zU8.subtract=WU8;zU8.multiply=KU8;zU8.divide=ZU8;zU8.ceil=LL6;zU8.floor=jL6;zU8.min=ML6;zU8.max=NL6;zU8.round=OL6;zU8.scale=RL6;zU8.scaleAndAdd=DL6;zU8.distance=GU8;zU8.squaredDistance=VU8;zU8.length=HU8;zU8.squaredLength=qU8;zU8.negate=wL6;zU8.inverse=PL6;zU8.normalize=CL6;zU8.dot=TL6;zU8.cross=EL6;zU8.lerp=SL6;zU8.random=kL6;zU8.transformMat2=IL6;zU8.transformMat2d=AL6;zU8.transformMat3=_L6;zU8.transformMat4=vL6;zU8.rotate=yL6;zU8.angle=hL6;zU8.zero=xL6;zU8.str=fL6;zU8.exactEquals=bL6;zU8.equals=gL6;zU8.forEach=zU8.sqrLen=zU8.sqrDist=zU8.dist=zU8.div=zU8.mul=zU8.sub=zU8.len=void 0;var BG=HL6(r$());function YU8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(YU8=function(Q){return Q?X:$})(J)}function HL6(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||QC(J)!=="object"&&typeof J!=="function")return{default:J};var X=YU8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}function QU8(){var J=new BG.ARRAY_TYPE(2);if(BG.ARRAY_TYPE!=Float32Array)J[0]=0,J[1]=0;return J}function qL6(J){var $=new BG.ARRAY_TYPE(2);return $[0]=J[0],$[1]=J[1],$}function zL6(J,$){var X=new BG.ARRAY_TYPE(2);return X[0]=J,X[1]=$,X}function UL6(J,$){return J[0]=$[0],J[1]=$[1],J}function FL6(J,$,X){return J[0]=$,J[1]=X,J}function BL6(J,$,X){return J[0]=$[0]+X[0],J[1]=$[1]+X[1],J}function WU8(J,$,X){return J[0]=$[0]-X[0],J[1]=$[1]-X[1],J}function KU8(J,$,X){return J[0]=$[0]*X[0],J[1]=$[1]*X[1],J}function ZU8(J,$,X){return J[0]=$[0]/X[0],J[1]=$[1]/X[1],J}function LL6(J,$){return J[0]=Math.ceil($[0]),J[1]=Math.ceil($[1]),J}function jL6(J,$){return J[0]=Math.floor($[0]),J[1]=Math.floor($[1]),J}function ML6(J,$,X){return J[0]=Math.min($[0],X[0]),J[1]=Math.min($[1],X[1]),J}function NL6(J,$,X){return J[0]=Math.max($[0],X[0]),J[1]=Math.max($[1],X[1]),J}function OL6(J,$){return J[0]=Math.round($[0]),J[1]=Math.round($[1]),J}function RL6(J,$,X){return J[0]=$[0]*X,J[1]=$[1]*X,J}function DL6(J,$,X,Y){return J[0]=$[0]+X[0]*Y,J[1]=$[1]+X[1]*Y,J}function GU8(J,$){var X=$[0]-J[0],Y=$[1]-J[1];return Math.hypot(X,Y)}function VU8(J,$){var X=$[0]-J[0],Y=$[1]-J[1];return X*X+Y*Y}function HU8(J){var $=J[0],X=J[1];return Math.hypot($,X)}function qU8(J){var $=J[0],X=J[1];return $*$+X*X}function wL6(J,$){return J[0]=-$[0],J[1]=-$[1],J}function PL6(J,$){return J[0]=1/$[0],J[1]=1/$[1],J}function CL6(J,$){var X=$[0],Y=$[1],Q=X*X+Y*Y;if(Q>0)Q=1/Math.sqrt(Q);return J[0]=$[0]*Q,J[1]=$[1]*Q,J}function TL6(J,$){return J[0]*$[0]+J[1]*$[1]}function EL6(J,$,X){var Y=$[0]*X[1]-$[1]*X[0];return J[0]=J[1]=0,J[2]=Y,J}function SL6(J,$,X,Y){var Q=$[0],W=$[1];return J[0]=Q+Y*(X[0]-Q),J[1]=W+Y*(X[1]-W),J}function kL6(J,$){$=$||1;var X=BG.RANDOM()*2*Math.PI;return J[0]=Math.cos(X)*$,J[1]=Math.sin(X)*$,J}function IL6(J,$,X){var Y=$[0],Q=$[1];return J[0]=X[0]*Y+X[2]*Q,J[1]=X[1]*Y+X[3]*Q,J}function AL6(J,$,X){var Y=$[0],Q=$[1];return J[0]=X[0]*Y+X[2]*Q+X[4],J[1]=X[1]*Y+X[3]*Q+X[5],J}function _L6(J,$,X){var Y=$[0],Q=$[1];return J[0]=X[0]*Y+X[3]*Q+X[6],J[1]=X[1]*Y+X[4]*Q+X[7],J}function vL6(J,$,X){var Y=$[0],Q=$[1];return J[0]=X[0]*Y+X[4]*Q+X[12],J[1]=X[1]*Y+X[5]*Q+X[13],J}function yL6(J,$,X,Y){var Q=$[0]-X[0],W=$[1]-X[1],K=Math.sin(Y),Z=Math.cos(Y);return J[0]=Q*Z-W*K+X[0],J[1]=Q*K+W*Z+X[1],J}function hL6(J,$){var X=J[0],Y=J[1],Q=$[0],W=$[1],K=Math.sqrt(X*X+Y*Y)*Math.sqrt(Q*Q+W*W),Z=K&&(X*Q+Y*W)/K;return Math.acos(Math.min(Math.max(Z,-1),1))}function xL6(J){return J[0]=0,J[1]=0,J}function fL6(J){return"vec2("+J[0]+", "+J[1]+")"}function bL6(J,$){return J[0]===$[0]&&J[1]===$[1]}function gL6(J,$){var X=J[0],Y=J[1],Q=$[0],W=$[1];return Math.abs(X-Q)<=BG.EPSILON*Math.max(1,Math.abs(X),Math.abs(Q))&&Math.abs(Y-W)<=BG.EPSILON*Math.max(1,Math.abs(Y),Math.abs(W))}var mL6=HU8;zU8.len=mL6;var uL6=WU8;zU8.sub=uL6;var dL6=KU8;zU8.mul=dL6;var lL6=ZU8;zU8.div=lL6;var cL6=GU8;zU8.dist=cL6;var pL6=VU8;zU8.sqrDist=pL6;var nL6=qU8;zU8.sqrLen=nL6;var iL6=function(){var J=QU8();return function($,X,Y,Q,W,K){var Z,G;if(!X)X=2;if(!Y)Y=0;if(Q)G=Math.min(Q*X+Y,$.length);else G=$.length;for(Z=Y;Z<G;Z+=X)J[0]=$[Z],J[1]=$[Z+1],W(J,J,K),$[Z]=J[0],$[Z+1]=J[1];return $}}();zU8.forEach=iL6});var LG=P((LU8)=>{function WC(J){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol")WC=function(X){return typeof X};else WC=function(X){return X&&typeof Symbol==="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X};return WC(J)}Object.defineProperty(LU8,"__esModule",{value:!0});LU8.vec4=LU8.vec3=LU8.vec2=LU8.quat2=LU8.quat=LU8.mat4=LU8.mat3=LU8.mat2d=LU8.mat2=LU8.glMatrix=void 0;var bj6=oX(r$());LU8.glMatrix=bj6;var gj6=oX(cq8());LU8.mat2=gj6;var mj6=oX(aq8());LU8.mat2d=mj6;var uj6=oX(Yd());LU8.mat3=uj6;var dj6=oX(Qd());LU8.mat4=dj6;var lj6=oX(Vd());LU8.quat=lj6;var cj6=oX(XU8());LU8.quat2=cj6;var pj6=oX(FU8());LU8.vec2=pj6;var nj6=oX(Wd());LU8.vec3=nj6;var ij6=oX(Kd());LU8.vec4=ij6;function BU8(J){if(typeof WeakMap!=="function")return null;var $=new WeakMap,X=new WeakMap;return(BU8=function(Q){return Q?X:$})(J)}function oX(J,$){if(!$&&J&&J.__esModule)return J;if(J===null||WC(J)!=="object"&&typeof J!=="function")return{default:J};var X=BU8($);if(X&&X.has(J))return X.get(J);var Y={},Q=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W)){var K=Q?Object.getOwnPropertyDescriptor(J,W):null;if(K&&(K.get||K.set))Object.defineProperty(Y,W,K);else Y[W]=J[W]}if(Y.default=J,X)X.set(J,Y);return Y}});var NU8=P((KC,MU8)=>{(function(J,$){typeof KC==="object"&&typeof MU8<"u"?$(KC):typeof define==="function"&&define.amd?define(["exports"],$):(J=typeof globalThis<"u"?globalThis:J||self,$(J.heap={}))})(KC,function(J){var $=function(q,U,F,B){function L(j){return j instanceof F?j:new F(function(M){M(j)})}return new(F||(F=Promise))(function(j,M){function D(N){try{R(B.next(N))}catch(O){M(O)}}function w(N){try{R(B.throw(N))}catch(O){M(O)}}function R(N){N.done?j(N.value):L(N.value).then(D,w)}R((B=B.apply(q,U||[])).next())})},X=function(q,U){var F={label:0,sent:function(){if(j[0]&1)throw j[1];return j[1]},trys:[],ops:[]},B,L,j,M=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return M.next=D(0),M.throw=D(1),M.return=D(2),typeof Symbol==="function"&&(M[Symbol.iterator]=function(){return this}),M;function D(R){return function(N){return w([R,N])}}function w(R){if(B)throw TypeError("Generator is already executing.");while(M&&(M=0,R[0]&&(F=0)),F)try{if(B=1,L&&(j=R[0]&2?L.return:R[0]?L.throw||((j=L.return)&&j.call(L),0):L.next)&&!(j=j.call(L,R[1])).done)return j;if(L=0,j)R=[R[0]&2,j.value];switch(R[0]){case 0:case 1:j=R;break;case 4:return F.label++,{value:R[1],done:!1};case 5:F.label++,L=R[1],R=[0];continue;case 7:R=F.ops.pop(),F.trys.pop();continue;default:if((j=F.trys,!(j=j.length>0&&j[j.length-1]))&&(R[0]===6||R[0]===2)){F=0;continue}if(R[0]===3&&(!j||R[1]>j[0]&&R[1]<j[3])){F.label=R[1];break}if(R[0]===6&&F.label<j[1]){F.label=j[1],j=R;break}if(j&&F.label<j[2]){F.label=j[2],F.ops.push(R);break}if(j[2])F.ops.pop();F.trys.pop();continue}R=U.call(q,F)}catch(N){R=[6,N],L=0}finally{B=j=0}if(R[0]&5)throw R[1];return{value:R[0]?R[1]:void 0,done:!0}}},Y=function(q,U){var F=typeof Symbol==="function"&&q[Symbol.iterator];if(!F)return q;var B=F.call(q),L,j=[],M;try{while((U===void 0||U-- >0)&&!(L=B.next()).done)j.push(L.value)}catch(D){M={error:D}}finally{try{if(L&&!L.done&&(F=B.return))F.call(B)}finally{if(M)throw M.error}}return j},Q=function(q,U,F){if(F||arguments.length===2){for(var B=0,L=U.length,j;B<L;B++)if(j||!(B in U)){if(!j)j=Array.prototype.slice.call(U,0,B);j[B]=U[B]}}return q.concat(j||Array.prototype.slice.call(U))},W=function(q){var U=typeof Symbol==="function"&&Symbol.iterator,F=U&&q[U],B=0;if(F)return F.call(q);if(q&&typeof q.length==="number")return{next:function(){if(q&&B>=q.length)q=void 0;return{value:q&&q[B++],done:!q}}};throw TypeError(U?"Object is not iterable.":"Symbol.iterator is not defined.")},K=function(){function q(U){if(U===void 0)U=q.minComparator;var F=this;this.compare=U,this.heapArray=[],this._limit=0,this.offer=this.add,this.element=this.peek,this.poll=this.pop,this._invertedCompare=function(B,L){return F.compare(B,L).then(function(j){return-1*j})}}return q.getChildrenIndexOf=function(U){return[U*2+1,U*2+2]},q.getParentIndexOf=function(U){if(U<=0)return-1;var F=U%2?1:2;return Math.floor((U-F)/2)},q.getSiblingIndexOf=function(U){if(U<=0)return-1;var F=U%2?1:-1;return U+F},q.minComparator=function(U,F){return $(this,void 0,void 0,function(){return X(this,function(B){if(U>F)return[2,1];else if(U<F)return[2,-1];else return[2,0]})})},q.maxComparator=function(U,F){return $(this,void 0,void 0,function(){return X(this,function(B){if(F>U)return[2,1];else if(F<U)return[2,-1];else return[2,0]})})},q.minComparatorNumber=function(U,F){return $(this,void 0,void 0,function(){return X(this,function(B){return[2,U-F]})})},q.maxComparatorNumber=function(U,F){return $(this,void 0,void 0,function(){return X(this,function(B){return[2,F-U]})})},q.defaultIsEqual=function(U,F){return $(this,void 0,void 0,function(){return X(this,function(B){return[2,U===F]})})},q.print=function(U){function F(N){var O=q.getParentIndexOf(N);return Math.floor(Math.log2(O+1))}function B(N,O){var C="";for(;O>0;--O)C+=N;return C}var L=0,j=[],M=F(U.length-1)+2,D=0;while(L<U.length){var w=F(L)+1;if(L===0)w=0;var R=String(U.get(L));if(R.length>D)D=R.length;j[w]=j[w]||[],j[w].push(R),L+=1}return j.map(function(N,O){var C=Math.pow(2,M-O)-1;return B(" ",Math.floor(C/2)*D)+N.map(function(S){var _=(D-S.length)/2;return B(" ",Math.ceil(_))+S+B(" ",Math.floor(_))}).join(B(" ",C*D))}).join(`
|
|
51
51
|
`)},q.heapify=function(U,F){return $(this,void 0,void 0,function(){var B;return X(this,function(L){switch(L.label){case 0:return B=new q(F),B.heapArray=U,[4,B.init()];case 1:return L.sent(),[2,B]}})})},q.heappop=function(U,F){var B=new q(F);return B.heapArray=U,B.pop()},q.heappush=function(U,F,B){return $(this,void 0,void 0,function(){var L;return X(this,function(j){switch(j.label){case 0:return L=new q(B),L.heapArray=U,[4,L.push(F)];case 1:return j.sent(),[2]}})})},q.heappushpop=function(U,F,B){var L=new q(B);return L.heapArray=U,L.pushpop(F)},q.heapreplace=function(U,F,B){var L=new q(B);return L.heapArray=U,L.replace(F)},q.heaptop=function(U,F,B){if(F===void 0)F=1;var L=new q(B);return L.heapArray=U,L.top(F)},q.heapbottom=function(U,F,B){if(F===void 0)F=1;var L=new q(B);return L.heapArray=U,L.bottom(F)},q.nlargest=function(U,F,B){return $(this,void 0,void 0,function(){var L;return X(this,function(j){switch(j.label){case 0:return L=new q(B),L.heapArray=Q([],Y(F),!1),[4,L.init()];case 1:return j.sent(),[2,L.top(U)]}})})},q.nsmallest=function(U,F,B){return $(this,void 0,void 0,function(){var L;return X(this,function(j){switch(j.label){case 0:return L=new q(B),L.heapArray=Q([],Y(F),!1),[4,L.init()];case 1:return j.sent(),[2,L.bottom(U)]}})})},q.prototype.add=function(U){return $(this,void 0,void 0,function(){return X(this,function(F){switch(F.label){case 0:return[4,this._sortNodeUp(this.heapArray.push(U)-1)];case 1:return F.sent(),this._applyLimit(),[2,!0]}})})},q.prototype.addAll=function(U){return $(this,void 0,void 0,function(){var F,B,L;return X(this,function(j){switch(j.label){case 0:F=this.length,(L=this.heapArray).push.apply(L,Q([],Y(U),!1)),B=this.length,j.label=1;case 1:if(!(F<B))return[3,4];return[4,this._sortNodeUp(F)];case 2:j.sent(),j.label=3;case 3:return++F,[3,1];case 4:return this._applyLimit(),[2,!0]}})})},q.prototype.bottom=function(){return $(this,arguments,void 0,function(U){if(U===void 0)U=1;return X(this,function(F){if(this.heapArray.length===0||U<=0)return[2,[]];else if(this.heapArray.length===1)return[2,[this.heapArray[0]]];else if(U>=this.heapArray.length)return[2,Q([],Y(this.heapArray),!1)];else return[2,this._bottomN_push(~~U)]})})},q.prototype.check=function(){return $(this,void 0,void 0,function(){var U,F,B,L,j,M,D,w,R;return X(this,function(N){switch(N.label){case 0:U=0,N.label=1;case 1:if(!(U<this.heapArray.length))return[3,10];F=this.heapArray[U],B=this.getChildrenOf(U),N.label=2;case 2:N.trys.push([2,7,8,9]),L=(w=void 0,W(B)),j=L.next(),N.label=3;case 3:if(j.done)return[3,6];return M=j.value,[4,this.compare(F,M)];case 4:if(N.sent()>0)return[2,F];N.label=5;case 5:return j=L.next(),[3,3];case 6:return[3,9];case 7:return D=N.sent(),w={error:D},[3,9];case 8:try{if(j&&!j.done&&(R=L.return))R.call(L)}finally{if(w)throw w.error}return[7];case 9:return++U,[3,1];case 10:return[2]}})})},q.prototype.clear=function(){this.heapArray=[]},q.prototype.clone=function(){var U=new q(this.comparator());return U.heapArray=this.toArray(),U._limit=this._limit,U},q.prototype.comparator=function(){return this.compare},q.prototype.contains=function(U){return $(this,arguments,void 0,function(F,B){var L,j,M,D,w,R;if(B===void 0)B=q.defaultIsEqual;return X(this,function(N){switch(N.label){case 0:N.trys.push([0,5,6,7]),L=W(this.heapArray),j=L.next(),N.label=1;case 1:if(j.done)return[3,4];return M=j.value,[4,B(M,F)];case 2:if(N.sent())return[2,!0];N.label=3;case 3:return j=L.next(),[3,1];case 4:return[3,7];case 5:return D=N.sent(),w={error:D},[3,7];case 6:try{if(j&&!j.done&&(R=L.return))R.call(L)}finally{if(w)throw w.error}return[7];case 7:return[2,!1]}})})},q.prototype.init=function(U){return $(this,void 0,void 0,function(){var F;return X(this,function(B){switch(B.label){case 0:if(U)this.heapArray=Q([],Y(U),!1);F=Math.floor(this.heapArray.length),B.label=1;case 1:if(!(F>=0))return[3,4];return[4,this._sortNodeDown(F)];case 2:B.sent(),B.label=3;case 3:return--F,[3,1];case 4:return this._applyLimit(),[2]}})})},q.prototype.isEmpty=function(){return this.length===0},q.prototype.leafs=function(){if(this.heapArray.length===0)return[];var U=q.getParentIndexOf(this.heapArray.length-1);return this.heapArray.slice(U+1)},Object.defineProperty(q.prototype,"length",{get:function(){return this.heapArray.length},enumerable:!1,configurable:!0}),Object.defineProperty(q.prototype,"limit",{get:function(){return this._limit},set:function(U){this._limit=~~U,this._applyLimit()},enumerable:!1,configurable:!0}),q.prototype.peek=function(){return this.heapArray[0]},q.prototype.pop=function(){return $(this,void 0,void 0,function(){var U;return X(this,function(F){if(U=this.heapArray.pop(),this.length>0&&U!==void 0)return[2,this.replace(U)];return[2,U]})})},q.prototype.push=function(){var U=[];for(var F=0;F<arguments.length;F++)U[F]=arguments[F];return $(this,void 0,void 0,function(){return X(this,function(B){if(U.length<1)return[2,!1];else if(U.length===1)return[2,this.add(U[0])];else return[2,this.addAll(U)]})})},q.prototype.pushpop=function(U){return $(this,void 0,void 0,function(){var F;return X(this,function(B){switch(B.label){case 0:return[4,this.compare(this.heapArray[0],U)];case 1:if(!(B.sent()<0))return[3,3];return F=Y([this.heapArray[0],U],2),U=F[0],this.heapArray[0]=F[1],[4,this._sortNodeDown(0)];case 2:B.sent(),B.label=3;case 3:return[2,U]}})})},q.prototype.remove=function(U){return $(this,arguments,void 0,function(F,B){var L,j,M,D=this;if(B===void 0)B=q.defaultIsEqual;return X(this,function(w){switch(w.label){case 0:if(!this.heapArray.length)return[2,!1];if(F!==void 0)return[3,2];return[4,this.pop()];case 1:return w.sent(),[2,!0];case 2:L=[0],w.label=3;case 3:if(!L.length)return[3,13];return j=L.shift(),[4,B(this.heapArray[j],F)];case 4:if(!w.sent())return[3,11];if(j!==0)return[3,6];return[4,this.pop()];case 5:return w.sent(),[3,10];case 6:if(j!==this.heapArray.length-1)return[3,7];return this.heapArray.pop(),[3,10];case 7:return this.heapArray.splice(j,1,this.heapArray.pop()),[4,this._sortNodeUp(j)];case 8:return w.sent(),[4,this._sortNodeDown(j)];case 9:w.sent(),w.label=10;case 10:return[2,!0];case 11:M=q.getChildrenIndexOf(j).filter(function(R){return R<D.heapArray.length}),L.push.apply(L,Q([],Y(M),!1)),w.label=12;case 12:return[3,3];case 13:return[2,!1]}})})},q.prototype.replace=function(U){return $(this,void 0,void 0,function(){var F;return X(this,function(B){switch(B.label){case 0:return F=this.heapArray[0],this.heapArray[0]=U,[4,this._sortNodeDown(0)];case 1:return B.sent(),[2,F]}})})},q.prototype.size=function(){return this.length},q.prototype.top=function(){return $(this,arguments,void 0,function(U){if(U===void 0)U=1;return X(this,function(F){if(this.heapArray.length===0||U<=0)return[2,[]];else if(this.heapArray.length===1||U===1)return[2,[this.heapArray[0]]];else if(U>=this.heapArray.length)return[2,Q([],Y(this.heapArray),!1)];else return[2,this._topN_push(~~U)]})})},q.prototype.toArray=function(){return Q([],Y(this.heapArray),!1)},q.prototype.toString=function(){return this.heapArray.toString()},q.prototype.get=function(U){return this.heapArray[U]},q.prototype.getChildrenOf=function(U){var F=this;return q.getChildrenIndexOf(U).map(function(B){return F.heapArray[B]}).filter(function(B){return B!==void 0})},q.prototype.getParentOf=function(U){var F=q.getParentIndexOf(U);return this.heapArray[F]},q.prototype[Symbol.iterator]=function(){return X(this,function(U){switch(U.label){case 0:if(!this.length)return[3,2];return[4,this.pop()];case 1:return U.sent(),[3,0];case 2:return[2]}})},q.prototype.iterator=function(){return this},q.prototype._applyLimit=function(){if(this._limit&&this._limit<this.heapArray.length){var U=this.heapArray.length-this._limit;while(U)this.heapArray.pop(),--U}},q.prototype._bottomN_push=function(U){return $(this,void 0,void 0,function(){var F,B,L,j,D,M,D;return X(this,function(w){switch(w.label){case 0:return F=new q(this.compare),F.limit=U,F.heapArray=this.heapArray.slice(-U),[4,F.init()];case 1:w.sent(),B=this.heapArray.length-1-U,L=q.getParentIndexOf(B),j=[];for(D=B;D>L;--D)j.push(D);M=this.heapArray,w.label=2;case 2:if(!j.length)return[3,6];return D=j.shift(),[4,this.compare(M[D],F.peek())];case 3:if(!(w.sent()>0))return[3,5];return[4,F.replace(M[D])];case 4:if(w.sent(),D%2)j.push(q.getParentIndexOf(D));w.label=5;case 5:return[3,2];case 6:return[2,F.toArray()]}})})},q.prototype._moveNode=function(U,F){var B;B=Y([this.heapArray[F],this.heapArray[U]],2),this.heapArray[U]=B[0],this.heapArray[F]=B[1]},q.prototype._sortNodeDown=function(U){return $(this,void 0,void 0,function(){var F,B,L,j,M,D;return X(this,function(w){switch(w.label){case 0:F=this.heapArray.length,w.label=1;case 1:if(B=2*U+1,L=B+1,j=U,M=B<F,!M)return[3,3];return[4,this.compare(this.heapArray[B],this.heapArray[j])];case 2:M=w.sent()<0,w.label=3;case 3:if(M)j=B;if(D=L<F,!D)return[3,5];return[4,this.compare(this.heapArray[L],this.heapArray[j])];case 4:D=w.sent()<0,w.label=5;case 5:if(D)j=L;if(j===U)return[3,7];this._moveNode(U,j),U=j,w.label=6;case 6:return[3,1];case 7:return[2]}})})},q.prototype._sortNodeUp=function(U){return $(this,void 0,void 0,function(){var F;return X(this,function(B){switch(B.label){case 0:if(!(U>0))return[3,2];return F=q.getParentIndexOf(U),[4,this.compare(this.heapArray[U],this.heapArray[F])];case 1:if(B.sent()<0)this._moveNode(U,F),U=F;else return[3,2];return[3,0];case 2:return[2]}})})},q.prototype._topN_push=function(U){return $(this,void 0,void 0,function(){var F,B,L,j;return X(this,function(M){switch(M.label){case 0:F=new q(this._invertedCompare),F.limit=U,B=[0],L=this.heapArray,M.label=1;case 1:if(!B.length)return[3,7];if(j=B.shift(),!(j<L.length))return[3,6];if(!(F.length<U))return[3,3];return[4,F.push(L[j])];case 2:return M.sent(),B.push.apply(B,Q([],Y(q.getChildrenIndexOf(j)),!1)),[3,6];case 3:return[4,this.compare(L[j],F.peek())];case 4:if(!(M.sent()<0))return[3,6];return[4,F.replace(L[j])];case 5:M.sent(),B.push.apply(B,Q([],Y(q.getChildrenIndexOf(j)),!1)),M.label=6;case 6:return[3,1];case 7:return[2,F.toArray()]}})})},q.prototype._topN_fill=function(U){return $(this,void 0,void 0,function(){var F,B,L,j,M,M;return X(this,function(D){switch(D.label){case 0:return F=this.heapArray,B=new q(this._invertedCompare),B.limit=U,B.heapArray=F.slice(0,U),[4,B.init()];case 1:D.sent(),L=q.getParentIndexOf(U-1)+1,j=[];for(M=L;M<U;++M)j.push.apply(j,Q([],Y(q.getChildrenIndexOf(M).filter(function(w){return w<F.length})),!1));if((U-1)%2)j.push(U);D.label=2;case 2:if(!j.length)return[3,6];if(M=j.shift(),!(M<F.length))return[3,5];return[4,this.compare(F[M],B.peek())];case 3:if(!(D.sent()<0))return[3,5];return[4,B.replace(F[M])];case 4:D.sent(),j.push.apply(j,Q([],Y(q.getChildrenIndexOf(M)),!1)),D.label=5;case 5:return[3,2];case 6:return[2,B.toArray()]}})})},q.prototype._topN_heap=function(U){return $(this,void 0,void 0,function(){var F,B,L,j,M;return X(this,function(D){switch(D.label){case 0:F=this.clone(),B=[],L=0,D.label=1;case 1:if(!(L<U))return[3,4];return M=(j=B).push,[4,F.pop()];case 2:M.apply(j,[D.sent()]),D.label=3;case 3:return++L,[3,1];case 4:return[2,B]}})})},q.prototype._topIdxOf=function(U){return $(this,void 0,void 0,function(){var F,B,L,j;return X(this,function(M){switch(M.label){case 0:if(!U.length)return[2,-1];F=0,B=U[F],L=1,M.label=1;case 1:if(!(L<U.length))return[3,4];return[4,this.compare(U[L],B)];case 2:if(j=M.sent(),j<0)F=L,B=U[L];M.label=3;case 3:return++L,[3,1];case 4:return[2,F]}})})},q.prototype._topOf=function(){var U=[];for(var F=0;F<arguments.length;F++)U[F]=arguments[F];return $(this,void 0,void 0,function(){var B;return X(this,function(L){switch(L.label){case 0:return B=new q(this.compare),[4,B.init(U)];case 1:return L.sent(),[2,B.peek()]}})})},q}(),Z=function(q,U){var F={label:0,sent:function(){if(j[0]&1)throw j[1];return j[1]},trys:[],ops:[]},B,L,j,M=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return M.next=D(0),M.throw=D(1),M.return=D(2),typeof Symbol==="function"&&(M[Symbol.iterator]=function(){return this}),M;function D(R){return function(N){return w([R,N])}}function w(R){if(B)throw TypeError("Generator is already executing.");while(M&&(M=0,R[0]&&(F=0)),F)try{if(B=1,L&&(j=R[0]&2?L.return:R[0]?L.throw||((j=L.return)&&j.call(L),0):L.next)&&!(j=j.call(L,R[1])).done)return j;if(L=0,j)R=[R[0]&2,j.value];switch(R[0]){case 0:case 1:j=R;break;case 4:return F.label++,{value:R[1],done:!1};case 5:F.label++,L=R[1],R=[0];continue;case 7:R=F.ops.pop(),F.trys.pop();continue;default:if((j=F.trys,!(j=j.length>0&&j[j.length-1]))&&(R[0]===6||R[0]===2)){F=0;continue}if(R[0]===3&&(!j||R[1]>j[0]&&R[1]<j[3])){F.label=R[1];break}if(R[0]===6&&F.label<j[1]){F.label=j[1],j=R;break}if(j&&F.label<j[2]){F.label=j[2],F.ops.push(R);break}if(j[2])F.ops.pop();F.trys.pop();continue}R=U.call(q,F)}catch(N){R=[6,N],L=0}finally{B=j=0}if(R[0]&5)throw R[1];return{value:R[0]?R[1]:void 0,done:!0}}},G=function(q,U){var F=typeof Symbol==="function"&&q[Symbol.iterator];if(!F)return q;var B=F.call(q),L,j=[],M;try{while((U===void 0||U-- >0)&&!(L=B.next()).done)j.push(L.value)}catch(D){M={error:D}}finally{try{if(L&&!L.done&&(F=B.return))F.call(B)}finally{if(M)throw M.error}}return j},V=function(q,U,F){if(F||arguments.length===2){for(var B=0,L=U.length,j;B<L;B++)if(j||!(B in U)){if(!j)j=Array.prototype.slice.call(U,0,B);j[B]=U[B]}}return q.concat(j||Array.prototype.slice.call(U))},H=function(q){return~~q},z=function(){function q(U){if(U===void 0)U=q.minComparator;var F=this;this.compare=U,this.heapArray=[],this._limit=0,this.offer=this.add,this.element=this.peek,this.poll=this.pop,this.removeAll=this.clear,this._invertedCompare=function(B,L){return-1*F.compare(B,L)}}return q.getChildrenIndexOf=function(U){return[U*2+1,U*2+2]},q.getParentIndexOf=function(U){if(U<=0)return-1;var F=U%2?1:2;return Math.floor((U-F)/2)},q.getSiblingIndexOf=function(U){if(U<=0)return-1;var F=U%2?1:-1;return U+F},q.minComparator=function(U,F){if(U>F)return 1;else if(U<F)return-1;else return 0},q.maxComparator=function(U,F){if(F>U)return 1;else if(F<U)return-1;else return 0},q.minComparatorNumber=function(U,F){return U-F},q.maxComparatorNumber=function(U,F){return F-U},q.defaultIsEqual=function(U,F){return U===F},q.print=function(U){function F(N){var O=q.getParentIndexOf(N);return Math.floor(Math.log2(O+1))}function B(N,O){var C="";for(;O>0;--O)C+=N;return C}var L=0,j=[],M=F(U.length-1)+2,D=0;while(L<U.length){var w=F(L)+1;if(L===0)w=0;var R=String(U.get(L));if(R.length>D)D=R.length;j[w]=j[w]||[],j[w].push(R),L+=1}return j.map(function(N,O){var C=Math.pow(2,M-O)-1;return B(" ",Math.floor(C/2)*D)+N.map(function(S){var _=(D-S.length)/2;return B(" ",Math.ceil(_))+S+B(" ",Math.floor(_))}).join(B(" ",C*D))}).join(`
|
|
52
|
-
`)},q.heapify=function(U,F){var B=new q(F);return B.heapArray=U,B.init(),B},q.heappop=function(U,F){var B=new q(F);return B.heapArray=U,B.pop()},q.heappush=function(U,F,B){var L=new q(B);L.heapArray=U,L.push(F)},q.heappushpop=function(U,F,B){var L=new q(B);return L.heapArray=U,L.pushpop(F)},q.heapreplace=function(U,F,B){var L=new q(B);return L.heapArray=U,L.replace(F)},q.heaptop=function(U,F,B){if(F===void 0)F=1;var L=new q(B);return L.heapArray=U,L.top(F)},q.heapbottom=function(U,F,B){if(F===void 0)F=1;var L=new q(B);return L.heapArray=U,L.bottom(F)},q.nlargest=function(U,F,B){var L=new q(B);return L.heapArray=V([],G(F),!1),L.init(),L.top(U)},q.nsmallest=function(U,F,B){var L=new q(B);return L.heapArray=V([],G(F),!1),L.init(),L.bottom(U)},q.prototype.add=function(U){return this._sortNodeUp(this.heapArray.push(U)-1),this._applyLimit(),!0},q.prototype.addAll=function(U){var F,B=this.length;(F=this.heapArray).push.apply(F,V([],G(U),!1));for(var L=this.length;B<L;++B)this._sortNodeUp(B);return this._applyLimit(),!0},q.prototype.bottom=function(U){if(U===void 0)U=1;if(this.heapArray.length===0||U<=0)return[];else if(this.heapArray.length===1)return[this.heapArray[0]];else if(U>=this.heapArray.length)return V([],G(this.heapArray),!1);else return this._bottomN_push(~~U)},q.prototype.check=function(){var U=this;return this.heapArray.find(function(F,B){return!!U.getChildrenOf(B).find(function(L){return U.compare(F,L)>0})})},q.prototype.clear=function(){this.heapArray=[]},q.prototype.clone=function(){var U=new q(this.comparator());return U.heapArray=this.toArray(),U._limit=this._limit,U},q.prototype.comparator=function(){return this.compare},q.prototype.contains=function(U,F){if(F===void 0)F=q.defaultIsEqual;return this.indexOf(U,F)!==-1},q.prototype.init=function(U){if(U)this.heapArray=V([],G(U),!1);for(var F=Math.floor(this.heapArray.length);F>=0;--F)this._sortNodeDown(F);this._applyLimit()},q.prototype.isEmpty=function(){return this.length===0},q.prototype.indexOf=function(U,F){if(F===void 0)F=q.defaultIsEqual;if(this.heapArray.length===0)return-1;var B=[],L=0;while(L<this.heapArray.length){var j=this.heapArray[L];if(F(j,U))return L;else if(this.compare(j,U)<=0)B.push.apply(B,V([],G(q.getChildrenIndexOf(L)),!1));L=B.shift()||this.heapArray.length}return-1},q.prototype.indexOfEvery=function(U,F){if(F===void 0)F=q.defaultIsEqual;if(this.heapArray.length===0)return[];var B=[],L=[],j=0;while(j<this.heapArray.length){var M=this.heapArray[j];if(F(M,U))L.push(j),B.push.apply(B,V([],G(q.getChildrenIndexOf(j)),!1));else if(this.compare(M,U)<=0)B.push.apply(B,V([],G(q.getChildrenIndexOf(j)),!1));j=B.shift()||this.heapArray.length}return L},q.prototype.leafs=function(){if(this.heapArray.length===0)return[];var U=q.getParentIndexOf(this.heapArray.length-1);return this.heapArray.slice(U+1)},Object.defineProperty(q.prototype,"length",{get:function(){return this.heapArray.length},enumerable:!1,configurable:!0}),Object.defineProperty(q.prototype,"limit",{get:function(){return this._limit},set:function(U){if(U<0||isNaN(U))this._limit=0;else this._limit=~~U;this._applyLimit()},enumerable:!1,configurable:!0}),q.prototype.setLimit=function(U){if(this.limit=U,U<0||isNaN(U))return NaN;else return this._limit},q.prototype.peek=function(){return this.heapArray[0]},q.prototype.pop=function(){var U=this.heapArray.pop();if(this.length>0&&U!==void 0)return this.replace(U);return U},q.prototype.push=function(){var U=[];for(var F=0;F<arguments.length;F++)U[F]=arguments[F];if(U.length<1)return!1;else if(U.length===1)return this.add(U[0]);else return this.addAll(U)},q.prototype.pushpop=function(U){var F;if(this.compare(this.heapArray[0],U)<0)F=G([this.heapArray[0],U],2),U=F[0],this.heapArray[0]=F[1],this._sortNodeDown(0);return U},q.prototype.remove=function(U,F){var B=this;if(F===void 0)F=q.defaultIsEqual;if(!this.heapArray.length)return!1;if(U===void 0)return this.pop(),!0;var L=[0];while(L.length){var j=L.shift();if(F(this.heapArray[j],U)){if(j===0)this.pop();else if(j===this.heapArray.length-1)this.heapArray.pop();else this.heapArray.splice(j,1,this.heapArray.pop()),this._sortNodeUp(j),this._sortNodeDown(j);return!0}else if(this.compare(this.heapArray[j],U)<=0){var M=q.getChildrenIndexOf(j).filter(function(D){return D<B.heapArray.length});L.push.apply(L,V([],G(M),!1))}}return!1},q.prototype.replace=function(U){var F=this.heapArray[0];return this.heapArray[0]=U,this._sortNodeDown(0),F},q.prototype.size=function(){return this.length},q.prototype.top=function(U){if(U===void 0)U=1;if(this.heapArray.length===0||U<=0)return[];else if(this.heapArray.length===1||U===1)return[this.heapArray[0]];else if(U>=this.heapArray.length)return V([],G(this.heapArray),!1);else return this._topN_push(~~U)},q.prototype.toArray=function(){return V([],G(this.heapArray),!1)},q.prototype.toString=function(){return this.heapArray.toString()},q.prototype.get=function(U){return this.heapArray[U]},q.prototype.getChildrenOf=function(U){var F=this;return q.getChildrenIndexOf(U).map(function(B){return F.heapArray[B]}).filter(function(B){return B!==void 0})},q.prototype.getParentOf=function(U){var F=q.getParentIndexOf(U);return this.heapArray[F]},q.prototype[Symbol.iterator]=function(){return Z(this,function(U){switch(U.label){case 0:if(!this.length)return[3,2];return[4,this.pop()];case 1:return U.sent(),[3,0];case 2:return[2]}})},q.prototype.iterator=function(){return this.toArray()},q.prototype._applyLimit=function(){if(this._limit>0&&this._limit<this.heapArray.length){var U=this.heapArray.length-this._limit;while(U)this.heapArray.pop(),--U}},q.prototype._bottomN_push=function(U){var F=new q(this.compare);F.limit=U,F.heapArray=this.heapArray.slice(-U),F.init();var B=this.heapArray.length-1-U,L=q.getParentIndexOf(B),j=[];for(var M=B;M>L;--M)j.push(M);var D=this.heapArray;while(j.length){var M=j.shift();if(this.compare(D[M],F.peek())>0){if(F.replace(D[M]),M%2)j.push(q.getParentIndexOf(M))}}return F.toArray()},q.prototype._moveNode=function(U,F){var B;B=G([this.heapArray[F],this.heapArray[U]],2),this.heapArray[U]=B[0],this.heapArray[F]=B[1]},q.prototype._sortNodeDown=function(U){var F=this.heapArray.length;while(!0){var B=2*U+1,L=B+1,j=U;if(B<F&&this.compare(this.heapArray[B],this.heapArray[j])<0)j=B;if(L<F&&this.compare(this.heapArray[L],this.heapArray[j])<0)j=L;if(j===U)break;this._moveNode(U,j),U=j}},q.prototype._sortNodeUp=function(U){while(U>0){var F=q.getParentIndexOf(U);if(this.compare(this.heapArray[U],this.heapArray[F])<0)this._moveNode(U,F),U=F;else break}},q.prototype._topN_push=function(U){var F=new q(this._invertedCompare);F.limit=U;var B=[0],L=this.heapArray;while(B.length){var j=B.shift();if(j<L.length){if(F.length<U)F.push(L[j]),B.push.apply(B,V([],G(q.getChildrenIndexOf(j)),!1));else if(this.compare(L[j],F.peek())<0)F.replace(L[j]),B.push.apply(B,V([],G(q.getChildrenIndexOf(j)),!1))}}return F.toArray()},q.prototype._topN_fill=function(U){var F=this.heapArray,B=new q(this._invertedCompare);B.limit=U,B.heapArray=F.slice(0,U),B.init();var L=q.getParentIndexOf(U-1)+1,j=[];for(var M=L;M<U;++M)j.push.apply(j,V([],G(q.getChildrenIndexOf(M).filter(function(D){return D<F.length})),!1));if((U-1)%2)j.push(U);while(j.length){var M=j.shift();if(M<F.length){if(this.compare(F[M],B.peek())<0)B.replace(F[M]),j.push.apply(j,V([],G(q.getChildrenIndexOf(M)),!1))}}return B.toArray()},q.prototype._topN_heap=function(U){var F=this.clone(),B=[];for(var L=0;L<U;++L)B.push(F.pop());return B},q.prototype._topIdxOf=function(U){if(!U.length)return-1;var F=0,B=U[F];for(var L=1;L<U.length;++L){var j=this.compare(U[L],B);if(j<0)F=L,B=U[L]}return F},q.prototype._topOf=function(){var U=[];for(var F=0;F<arguments.length;F++)U[F]=arguments[F];var B=new q(this.compare);return B.init(U),B.peek()},q}();J.Heap=z,J.HeapAsync=K,J.default=z,J.toInt=H,Object.defineProperty(J,"__esModule",{value:!0})})});import JY from"fs";import $Y from"path";var b6={red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",green:"\x1B[32m",reset:"\x1B[0m",bold:"\x1B[1m"};if(process.env.NODE_ENV==="production")console.log("console.log() is disabled in production to prevent log spam. If you must log in production, use console.info()."),console.log=()=>{};class n{static errorCount=0;static warningCount=0;static warning(J,$){let X=Error(J);this._logMessage({message:J,error:X,context:$,type:"warning",isFatal:!1})}static error(J,$){let X=Error(J);this._logMessage({message:J,error:X,context:$,type:"error",isFatal:!1})}static fatalError(J,$){let X=Error(J);throw this._logMessage({message:J,error:X,context:$,type:"error",isFatal:!0}),X}static enableCrashProtection(){if(process.env.NODE_ENV!=="production")return;process.on("unhandledRejection",(J)=>{let $=J instanceof Error?J.message:String(J);this.error(`[CRASH PREVENTED] - Unhandled Promise Rejection: ${$}`)}),process.on("uncaughtException",(J)=>{this.error(`[
|
|
52
|
+
`)},q.heapify=function(U,F){var B=new q(F);return B.heapArray=U,B.init(),B},q.heappop=function(U,F){var B=new q(F);return B.heapArray=U,B.pop()},q.heappush=function(U,F,B){var L=new q(B);L.heapArray=U,L.push(F)},q.heappushpop=function(U,F,B){var L=new q(B);return L.heapArray=U,L.pushpop(F)},q.heapreplace=function(U,F,B){var L=new q(B);return L.heapArray=U,L.replace(F)},q.heaptop=function(U,F,B){if(F===void 0)F=1;var L=new q(B);return L.heapArray=U,L.top(F)},q.heapbottom=function(U,F,B){if(F===void 0)F=1;var L=new q(B);return L.heapArray=U,L.bottom(F)},q.nlargest=function(U,F,B){var L=new q(B);return L.heapArray=V([],G(F),!1),L.init(),L.top(U)},q.nsmallest=function(U,F,B){var L=new q(B);return L.heapArray=V([],G(F),!1),L.init(),L.bottom(U)},q.prototype.add=function(U){return this._sortNodeUp(this.heapArray.push(U)-1),this._applyLimit(),!0},q.prototype.addAll=function(U){var F,B=this.length;(F=this.heapArray).push.apply(F,V([],G(U),!1));for(var L=this.length;B<L;++B)this._sortNodeUp(B);return this._applyLimit(),!0},q.prototype.bottom=function(U){if(U===void 0)U=1;if(this.heapArray.length===0||U<=0)return[];else if(this.heapArray.length===1)return[this.heapArray[0]];else if(U>=this.heapArray.length)return V([],G(this.heapArray),!1);else return this._bottomN_push(~~U)},q.prototype.check=function(){var U=this;return this.heapArray.find(function(F,B){return!!U.getChildrenOf(B).find(function(L){return U.compare(F,L)>0})})},q.prototype.clear=function(){this.heapArray=[]},q.prototype.clone=function(){var U=new q(this.comparator());return U.heapArray=this.toArray(),U._limit=this._limit,U},q.prototype.comparator=function(){return this.compare},q.prototype.contains=function(U,F){if(F===void 0)F=q.defaultIsEqual;return this.indexOf(U,F)!==-1},q.prototype.init=function(U){if(U)this.heapArray=V([],G(U),!1);for(var F=Math.floor(this.heapArray.length);F>=0;--F)this._sortNodeDown(F);this._applyLimit()},q.prototype.isEmpty=function(){return this.length===0},q.prototype.indexOf=function(U,F){if(F===void 0)F=q.defaultIsEqual;if(this.heapArray.length===0)return-1;var B=[],L=0;while(L<this.heapArray.length){var j=this.heapArray[L];if(F(j,U))return L;else if(this.compare(j,U)<=0)B.push.apply(B,V([],G(q.getChildrenIndexOf(L)),!1));L=B.shift()||this.heapArray.length}return-1},q.prototype.indexOfEvery=function(U,F){if(F===void 0)F=q.defaultIsEqual;if(this.heapArray.length===0)return[];var B=[],L=[],j=0;while(j<this.heapArray.length){var M=this.heapArray[j];if(F(M,U))L.push(j),B.push.apply(B,V([],G(q.getChildrenIndexOf(j)),!1));else if(this.compare(M,U)<=0)B.push.apply(B,V([],G(q.getChildrenIndexOf(j)),!1));j=B.shift()||this.heapArray.length}return L},q.prototype.leafs=function(){if(this.heapArray.length===0)return[];var U=q.getParentIndexOf(this.heapArray.length-1);return this.heapArray.slice(U+1)},Object.defineProperty(q.prototype,"length",{get:function(){return this.heapArray.length},enumerable:!1,configurable:!0}),Object.defineProperty(q.prototype,"limit",{get:function(){return this._limit},set:function(U){if(U<0||isNaN(U))this._limit=0;else this._limit=~~U;this._applyLimit()},enumerable:!1,configurable:!0}),q.prototype.setLimit=function(U){if(this.limit=U,U<0||isNaN(U))return NaN;else return this._limit},q.prototype.peek=function(){return this.heapArray[0]},q.prototype.pop=function(){var U=this.heapArray.pop();if(this.length>0&&U!==void 0)return this.replace(U);return U},q.prototype.push=function(){var U=[];for(var F=0;F<arguments.length;F++)U[F]=arguments[F];if(U.length<1)return!1;else if(U.length===1)return this.add(U[0]);else return this.addAll(U)},q.prototype.pushpop=function(U){var F;if(this.compare(this.heapArray[0],U)<0)F=G([this.heapArray[0],U],2),U=F[0],this.heapArray[0]=F[1],this._sortNodeDown(0);return U},q.prototype.remove=function(U,F){var B=this;if(F===void 0)F=q.defaultIsEqual;if(!this.heapArray.length)return!1;if(U===void 0)return this.pop(),!0;var L=[0];while(L.length){var j=L.shift();if(F(this.heapArray[j],U)){if(j===0)this.pop();else if(j===this.heapArray.length-1)this.heapArray.pop();else this.heapArray.splice(j,1,this.heapArray.pop()),this._sortNodeUp(j),this._sortNodeDown(j);return!0}else if(this.compare(this.heapArray[j],U)<=0){var M=q.getChildrenIndexOf(j).filter(function(D){return D<B.heapArray.length});L.push.apply(L,V([],G(M),!1))}}return!1},q.prototype.replace=function(U){var F=this.heapArray[0];return this.heapArray[0]=U,this._sortNodeDown(0),F},q.prototype.size=function(){return this.length},q.prototype.top=function(U){if(U===void 0)U=1;if(this.heapArray.length===0||U<=0)return[];else if(this.heapArray.length===1||U===1)return[this.heapArray[0]];else if(U>=this.heapArray.length)return V([],G(this.heapArray),!1);else return this._topN_push(~~U)},q.prototype.toArray=function(){return V([],G(this.heapArray),!1)},q.prototype.toString=function(){return this.heapArray.toString()},q.prototype.get=function(U){return this.heapArray[U]},q.prototype.getChildrenOf=function(U){var F=this;return q.getChildrenIndexOf(U).map(function(B){return F.heapArray[B]}).filter(function(B){return B!==void 0})},q.prototype.getParentOf=function(U){var F=q.getParentIndexOf(U);return this.heapArray[F]},q.prototype[Symbol.iterator]=function(){return Z(this,function(U){switch(U.label){case 0:if(!this.length)return[3,2];return[4,this.pop()];case 1:return U.sent(),[3,0];case 2:return[2]}})},q.prototype.iterator=function(){return this.toArray()},q.prototype._applyLimit=function(){if(this._limit>0&&this._limit<this.heapArray.length){var U=this.heapArray.length-this._limit;while(U)this.heapArray.pop(),--U}},q.prototype._bottomN_push=function(U){var F=new q(this.compare);F.limit=U,F.heapArray=this.heapArray.slice(-U),F.init();var B=this.heapArray.length-1-U,L=q.getParentIndexOf(B),j=[];for(var M=B;M>L;--M)j.push(M);var D=this.heapArray;while(j.length){var M=j.shift();if(this.compare(D[M],F.peek())>0){if(F.replace(D[M]),M%2)j.push(q.getParentIndexOf(M))}}return F.toArray()},q.prototype._moveNode=function(U,F){var B;B=G([this.heapArray[F],this.heapArray[U]],2),this.heapArray[U]=B[0],this.heapArray[F]=B[1]},q.prototype._sortNodeDown=function(U){var F=this.heapArray.length;while(!0){var B=2*U+1,L=B+1,j=U;if(B<F&&this.compare(this.heapArray[B],this.heapArray[j])<0)j=B;if(L<F&&this.compare(this.heapArray[L],this.heapArray[j])<0)j=L;if(j===U)break;this._moveNode(U,j),U=j}},q.prototype._sortNodeUp=function(U){while(U>0){var F=q.getParentIndexOf(U);if(this.compare(this.heapArray[U],this.heapArray[F])<0)this._moveNode(U,F),U=F;else break}},q.prototype._topN_push=function(U){var F=new q(this._invertedCompare);F.limit=U;var B=[0],L=this.heapArray;while(B.length){var j=B.shift();if(j<L.length){if(F.length<U)F.push(L[j]),B.push.apply(B,V([],G(q.getChildrenIndexOf(j)),!1));else if(this.compare(L[j],F.peek())<0)F.replace(L[j]),B.push.apply(B,V([],G(q.getChildrenIndexOf(j)),!1))}}return F.toArray()},q.prototype._topN_fill=function(U){var F=this.heapArray,B=new q(this._invertedCompare);B.limit=U,B.heapArray=F.slice(0,U),B.init();var L=q.getParentIndexOf(U-1)+1,j=[];for(var M=L;M<U;++M)j.push.apply(j,V([],G(q.getChildrenIndexOf(M).filter(function(D){return D<F.length})),!1));if((U-1)%2)j.push(U);while(j.length){var M=j.shift();if(M<F.length){if(this.compare(F[M],B.peek())<0)B.replace(F[M]),j.push.apply(j,V([],G(q.getChildrenIndexOf(M)),!1))}}return B.toArray()},q.prototype._topN_heap=function(U){var F=this.clone(),B=[];for(var L=0;L<U;++L)B.push(F.pop());return B},q.prototype._topIdxOf=function(U){if(!U.length)return-1;var F=0,B=U[F];for(var L=1;L<U.length;++L){var j=this.compare(U[L],B);if(j<0)F=L,B=U[L]}return F},q.prototype._topOf=function(){var U=[];for(var F=0;F<arguments.length;F++)U[F]=arguments[F];var B=new q(this.compare);return B.init(U),B.peek()},q}();J.Heap=z,J.HeapAsync=K,J.default=z,J.toInt=H,Object.defineProperty(J,"__esModule",{value:!0})})});import JY from"fs";import $Y from"path";var b6={red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",green:"\x1B[32m",reset:"\x1B[0m",bold:"\x1B[1m"};if(process.env.NODE_ENV==="production")console.log("console.log() is disabled in production to prevent log spam. If you must log in production, use console.info()."),console.log=()=>{};class n{static errorCount=0;static warningCount=0;static warning(J,$){let X=Error(J);this._logMessage({message:J,error:X,context:$,type:"warning",isFatal:!1})}static error(J,$){let X=Error(J);this._logMessage({message:J,error:X,context:$,type:"error",isFatal:!1})}static fatalError(J,$){let X=Error(J);throw this._logMessage({message:J,error:X,context:$,type:"error",isFatal:!0}),X}static enableCrashProtection(){if(process.env.NODE_ENV!=="production")return;process.on("unhandledRejection",(J)=>{let $=J instanceof Error?J.message:String(J);this.error(`[CRASH PREVENTED] - Unhandled Promise Rejection: ${$}`)}),process.on("uncaughtException",(J)=>{this.error(`[FATAL] Uncaught Exception: ${J.message}
|
|
53
|
+
${J.stack}`),setTimeout(()=>process.exit(1),1000)}),console.info("Crash protection enabled! Unhandled Promise Rejections and Uncaught Exceptions will be logged instead of crashing the server.")}static _logMessage(J){let{message:$,error:X,context:Y,type:Q,isFatal:W}=J,K=new Date().toISOString(),Z=Q==="warning";if(Z)this.warningCount++;else this.errorCount++;let G=Z?b6.yellow:b6.red,V=Z?this.warningCount:this.errorCount,H=Z?console.warn:console.error;if(H(`
|
|
53
54
|
${G}${b6.bold}==========[ RUNTIME ${Z?"WARNING":"ERROR"} #${V} | ${K} ]==========${b6.reset}`),!Z)if(W)H(`The server encountered an unrecoverable error and has crashed!
|
|
54
55
|
`);else H("The server encountered a recoverable error and did not crash."),H(`You should fix this to prevent undefined-like return values and unexpected behavior.
|
|
55
56
|
`);let z=W?"FATAL ERROR":Z?"WARNING":"ERROR";if(H(`${G}${b6.bold}⚠️ ${z}:${b6.reset} ${b6.bold}${$}${b6.reset}`),Y)H(`${b6.cyan}ℹ️ CONTEXT:${b6.reset} ${Y}`);let q=X.stack?.split(`
|
|
@@ -249,4 +250,4 @@ wzUfQXDpZndkqxHilERgvPXLEsTTCMF/W+C8gsO9AoGAZWt+CU6zQhqMBB5MMGZf
|
|
|
249
250
|
UE5WUS/oOd4jHBqwVxBTLOAPlmnQSp1uiTu2K0NrnnvZ6Zi/+tIsjbtxhomeOmnH
|
|
250
251
|
+wsk9n+Bif4P7VTvwqc9FY4Ya79PEJK+J/xx/mldUEz3R63RiRXZAaDddO7yCQFX
|
|
251
252
|
W8eeuIMLKU6dSq0yu22+nyU=
|
|
252
|
-
-----END PRIVATE KEY-----`;var pP=process.env.PORT??8080,su="0.14.21",ru;((Q)=>{Q.READY="WEBSERVER.READY";Q.STOPPED="WEBSERVER.STOPPED";Q.ERROR="WEBSERVER.ERROR";Q.UPGRADE="WEBSERVER.UPGRADE"})(ru||={});var mq={"access-control-allow-origin":"*"},AK6=JSON.stringify({status:"OK",version:su,runtime:"node"}),_K6={".html":"text/html",".css":"text/css",".js":"text/javascript",".mjs":"text/javascript",".json":"application/json",".gltf":"model/gltf+json",".glb":"model/gltf-binary",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".svg":"image/svg+xml",".ico":"image/x-icon",".ktx2":"image/ktx2",".mp3":"audio/mpeg",".ogg":"audio/ogg",".wav":"audio/wav",".mp4":"video/mp4",".webm":"video/webm",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".bin":"application/octet-stream",".wasm":"application/wasm"};class uq extends $8{static instance=new uq;_server;_assetCache=new Map;_assetDirs=[];constructor(){super();this._assetDirs.push(iu.resolve("assets"));let J=p6.assetsLibraryPath;if(J)this._assetDirs.push(J)}start(){if(this._server)return n.warning("WebServer.start(): already started");this._server=IK6.createSecureServer({key:cP,cert:lP,allowHTTP1:!0}),this._server.on("stream",this._onStream),this._server.on("upgrade",this._onUpgrade),this._server.on("error",this._onError),this._server.on("close",this._onStopped),this._server.listen(pP,this._onStarted),console.info(`WebServer.start(): Server running on port ${pP}`)}stop(){if(!this._server)return n.warning("WebServer.stop(): not started"),Promise.resolve(!1);return new Promise((J,$)=>{this._server.close((X)=>X?$(X):J(!0))})}_onStarted=()=>this.emitWithGlobal("WEBSERVER.READY",{});_onStopped=()=>this.emitWithGlobal("WEBSERVER.STOPPED",{});_onError=(J)=>{n.error(`WebServer._onError(): ${J.message}`),this.emitWithGlobal("WEBSERVER.ERROR",{error:J})};_onStream=(J,$)=>{J.on("error",()=>{});let X=$[":path"]||"/",Q=($[":method"]||"GET")==="HEAD";if(X==="/"){J.respond({":status":200,"content-type":"application/json",...mq}),J.end(!Q?AK6:void 0);return}let W=decodeURIComponent(X.split("?")[0]);if(W.includes("..")){J.respond({":status":400,...mq}),J.end();return}for(let K of this._assetDirs){let Z=iu.join(K,W);if(!Z.startsWith(K))continue;let G=p6.assetsLibraryPath;if(G&&Z.startsWith(G))p6.instance.syncAsset(Z);let V=this._assetCache.get(Z);if(!V)try{let q=kK6.statSync(Z);if(!q.isFile())continue;V={size:q.size,etag:`"${q.mtimeMs.toString(36)}-${q.size.toString(36)}"`},this._assetCache.set(Z,V)}catch{continue}if($["if-none-match"]===V.etag){J.respond({":status":304,...mq}),J.end();return}let z={":status":200,"content-type":_K6[iu.extname(Z).toLowerCase()]||"application/octet-stream","content-length":V.size,etag:V.etag,"cache-control":"public, max-age=0, must-revalidate",...mq};if(Q){J.respond(z),J.end();return}J.respondWithFile(Z,z,{onError:(q)=>{if(!J.destroyed)J.respond({":status":500,...mq}),J.end();n.error(`WebServer: ${q.message}`)}});return}J.respond({":status":404,...mq}),J.end()};_onUpgrade=(J,$,X)=>{this.emitWithGlobal("WEBSERVER.UPGRADE",{req:J,socket:$,head:X})}}var UG;((B)=>{B.BUILD_PACKETS="build_packets";B.ENTITIES_EMIT_UPDATES="entities_emit_updates";B.ENTITIES_TICK="entities_tick";B.NETWORK_SYNCHRONIZE="network_synchronize";B.NETWORK_SYNCHRONIZE_CLEANUP="network_synchronize_cleanup";B.PHYSICS_CLEANUP="physics_cleanup";B.PHYSICS_STEP="physics_step";B.SEND_ALL_PACKETS="send_all_packets";B.SEND_PACKETS="send_packets";B.SERIALIZE_FREE_BUFFERS="serialize_free_buffers";B.SERIALIZE_PACKETS="serialize_packets";B.SERIALIZE_PACKETS_ENCODE="serialize_packets_encode";B.SIMULATION_STEP="simulation_step";B.TICKER_TICK="ticker_tick";B.WORLD_TICK="world_tick"})(UG||={});class w6{static getProcessStats(J=!1){let $=process.memoryUsage(),X={jsHeapSizeMb:{value:$.heapUsed/1024/1024,unit:"megabyte"},jsHeapCapacityMb:{value:$.heapTotal/1024/1024,unit:"megabyte"},jsHeapUsagePercent:{value:$.heapUsed/$.heapTotal,unit:"percent"},processHeapSizeMb:{value:$.heapUsed/1024/1024,unit:"megabyte"},rssSizeMb:{value:$.rss/1024/1024,unit:"megabyte"}};if(J)return X;return Object.fromEntries(Object.entries(X).map(([Y,Q])=>[Y,Q.value]))}static initializeSentry(J,$=50){if(lH())return;dP({dsn:J,release:su,environment:process.env.NODE_ENV||"development",tracesSampleRate:1,initialScope:{tags:{gameId:process.env.HYTOPIA_GAME_ID??"unknown",gameSlug:process.env.HYTOPIA_GAME_SLUG??"unknown",lobbyId:process.env.HYTOPIA_LOBBY_ID??"unknown",region:process.env.REGION??"unknown"}},beforeSend:(X)=>{return X.extra=w6.getProcessStats(),X},beforeSendTransaction:(X)=>{if(X.contexts?.trace?.op==="ticker_tick"){let Q=X?.start_timestamp,W=X?.timestamp;if(!Q||!W)return null;if((W-Q)*1000>$)return X.measurements=w6.getProcessStats(!0),X}return null}})}static startSpan(J,$){if(lH())return w1({attributes:J.attributes,name:J.operation,op:J.operation},$);else return $()}static sentry(){return nu}}if(!aO)console.warn("Connection: msgpackr native acceleration is not enabled, using fallback implementation.");var Sq8=new ZZ({useFloat32:G3.ALWAYS}),yK6=30000;class i$ extends $8{static _cachedPacketsSerializedBuffer=new Map;_closeTimeout=null;_isDuplicate=!1;_ws;_wsBinding=!1;_wt;_wtBinding=!1;_wtReliableReader;_wtReliableWriter;_wtUnreliableReader;_wtUnreliableWriter;id;constructor(J,$,X){super();this.id=kZ0(),this.onPacket(h0.PacketId.HEARTBEAT,this._onHeartbeatPacket);let Y=()=>{$8.globalInstance.emit("CONNECTION.OPENED",{connection:this,session:X})};if(J)this.bindWs(J),Y();else if($)this.bindWt($).then(Y).catch((Q)=>{this._onClose(),n.error(`Connection.constructor(): Failed to bind WebTransport. Error: ${Q}`)})}get isDuplicate(){return this._isDuplicate}static clearCachedPacketsSerializedBuffers(){if(i$._cachedPacketsSerializedBuffer.size>0)i$._cachedPacketsSerializedBuffer.clear()}static serializePackets(J){for(let X of J)if(!h0.isValidPacket(X))return n.error(`Connection.serializePackets(): Invalid packet payload: ${JSON.stringify(X)}`);let $=i$._cachedPacketsSerializedBuffer.get(J);if($)return $;return w6.startSpan({operation:"serialize_packets",attributes:{packets:J.length,packetIds:J.map((X)=>X[0]).join(",")}},(X)=>{let Y=Sq8.pack(J);if(Y.byteLength>65536)Y=vK6(Y,{level:1});return X?.setAttribute("serializedBytes",Y.byteLength),i$._cachedPacketsSerializedBuffer.set(J,Y),Y})}bindWs(J){this._wsBinding=!0;let $=this._handleReconnect();if(this._cleanupConnections(),this._ws=J,this._ws.binaryType="nodebuffer",this._ws.onmessage=(X)=>this._onMessage(X.data),this._ws.onclose=this._onClose,this._ws.onerror=this._onError,this._wsBinding=!1,this._signalConnectionId(),$)this.emitWithGlobal("CONNECTION.RECONNECTED",{connection:this})}async bindWt(J){this._wtBinding=!0;let $=this._handleReconnect();this._cleanupConnections(),J.userData.onclose=this._onClose,J.closed.catch(()=>{}).finally(()=>J.userData.onclose?.()),this._wt=J;try{await J.ready;let X=J.incomingBidirectionalStreams.getReader();try{let{value:Y}=await X.read();if(Y)this._wtReliableReader=Y.readable,this._wtReliableWriter=Y.writable.getWriter()}finally{X.releaseLock()}this._wtUnreliableReader=J.datagrams.readable,this._wtUnreliableWriter=J.datagrams.createWritable().getWriter()}catch{this._wtBinding=!1;return}if(this._wtBinding=!1,this._wt!==J)return;if((async()=>{if(!this._wtReliableReader)throw Error("Connection.bindWt(): Reliable reader not found.");let X=h0.createPacketBufferUnframer((Y)=>{this._onMessage(Y)});for await(let Y of this._wtReliableReader){if(J!==this._wt)return;X(Y)}})().catch(()=>{try{J?.close()}catch{}}),(async()=>{if(!this._wtUnreliableReader)throw Error("Connection.bindWt(): Unreliable reader not found.");for await(let X of this._wtUnreliableReader){if(J!==this._wt)return;this._onMessage(X)}})().catch(()=>{try{J?.close()}catch{}}),this._signalConnectionId(),$)this.emitWithGlobal("CONNECTION.RECONNECTED",{connection:this})}disconnect(){try{this._ws?.close(),this._wt?.close()}catch(J){n.error(`Connection.disconnect(): Connection disconnect failed. Error: ${J}`)}}killDuplicateConnection(){this._isDuplicate=!0,this._cleanupConnections(),this.emitWithGlobal("CONNECTION.DISCONNECTED",{connection:this}),this._finalizeClose()}onPacket(J,$){this.on("CONNECTION.PACKET_RECEIVED",({packet:X})=>{if(X[0]===J)$(X)})}send(J,$=!0){if(this._closeTimeout||this._wsBinding||this._wtBinding)return;if(!this._ws&&!this._wt)return;let X=this._ws&&this._ws.readyState===PH.default.OPEN,Y=this._wt&&this._wt.state==="connected";if(!X&&!Y)return;w6.startSpan({operation:"send_packets"},()=>{try{let Q=i$.serializePackets(J);if(!Q)return;if(Y)if($||Q.byteLength>1200)this._wtReliableWriter?.write(h0.framePacketBuffer(Q)).catch(()=>{n.error("Connection.send(): WebTransport reliable write failed, connection closing?")});else this._wtUnreliableWriter?.write(Q).catch(()=>{n.error("Connection.send(): WebTransport unreliable write failed, connection closing?")});else this._ws.send(Q);this.emitWithGlobal("CONNECTION.PACKETS_SENT",{connection:this,packets:J})}catch(Q){n.error(`Connection.send(): Packet send failed. Error: ${Q}`)}})}_onHeartbeatPacket=()=>{this.send([h0.createPacket(h0.bidirectionalPackets.heartbeatPacketDefinition,null)],!0)};_onMessage=(J)=>{try{let $=this._deserialize(J);if(!$)return;this.emitWithGlobal("CONNECTION.PACKET_RECEIVED",{connection:this,packet:$})}catch($){n.error(`Connection._ws.onmessage(): Error: ${$}`)}};_onClose=()=>{this.emitWithGlobal("CONNECTION.DISCONNECTED",{connection:this}),this._closeTimeout=setTimeout(()=>this._finalizeClose(),yK6)};_onError=(J)=>{this.emitWithGlobal("CONNECTION.ERROR",{connection:this,error:J})};_cleanupConnections(){if(this._ws)this._ws.onmessage=()=>{},this._ws.onclose=()=>{},this._ws.onerror=()=>{};if(this._wt)this._wt.userData.onclose=()=>{};this._signalKill();try{this._ws?.close()}catch{}let J=this._wt;if(J)setTimeout(()=>{try{J.close()}catch{}},50);this._ws=void 0,this._wt=void 0,this._wtReliableReader=void 0,this._wtReliableWriter=void 0,this._wtUnreliableReader=void 0,this._wtUnreliableWriter=void 0}_deserialize(J){let $=Sq8.unpack(J);if(!$||typeof $!=="object"||typeof $[0]!=="number")return n.error(`Connection._deserialize(): Invalid packet format. Packet: ${JSON.stringify($)}`);if(!h0.isValidPacket($))return n.error(`Connection._deserialize(): Invalid packet payload. Packet: ${JSON.stringify($)}`);return $}_finalizeClose(){this.emitWithGlobal("CONNECTION.CLOSED",{connection:this}),this.offAll()}_handleReconnect(){let J=!!this._ws||!!this._wt;if(J&&this._closeTimeout)clearTimeout(this._closeTimeout),this._closeTimeout=null;return J}_signalConnectionId(){this.send([h0.createPacket(h0.bidirectionalPackets.connectionPacketDefinition,{i:this.id})])}_signalKill(){this.send([h0.createPacket(h0.bidirectionalPackets.connectionPacketDefinition,{k:!0})])}}class GL{_lights=new Map;_nextLightId=1;_world;constructor(J){this._world=J}get world(){return this._world}despawnEntityAttachedLights(J){this.getAllEntityAttachedLights(J).forEach(($)=>{$.despawn()})}getAllLights(){return Array.from(this._lights.values())}getAllEntityAttachedLights(J){return this.getAllLights().filter(($)=>$.attachedToEntity===J)}registerLight(J){if(J.id!==void 0)return J.id;let $=this._nextLightId;return this._lights.set($,J),this._nextLightId++,$}unregisterLight(J){if(J.id===void 0)return;this._lights.delete(J.id)}}class H9{_map=new Map;_values=[];_isDirty=!1;get size(){return this._map.size}get valuesArray(){if(this._isDirty)this._syncArray();return this._values}get(J){return this._map.get(J)}set(J,$){let X=this._map.has(J);if(this._map.set(J,$),!X)this._values.push($);else this._isDirty=!0;return this}has(J){return this._map.has(J)}delete(J){let $=this._map.delete(J);if($)this._isDirty=!0;return $}clear(){this._map.clear(),this._values.length=0,this._isDirty=!1}forEach(J,$){this._map.forEach((X,Y)=>{J.call($,X,Y,this)})}keys(){return this._map.keys()}values(){return this._map.values()}entries(){return this._map.entries()}[Symbol.iterator](){return this._map[Symbol.iterator]()}_syncArray(){this._values.length=0;for(let J of this._map.values())this._values.push(J);this._isDirty=!1}}var kq8;((X)=>{X[X.POINTLIGHT=0]="POINTLIGHT";X[X.SPOTLIGHT=1]="SPOTLIGHT"})(kq8||={});var au;((q)=>{q.DESPAWN="LIGHT.DESPAWN";q.SET_ANGLE="LIGHT.SET_ANGLE";q.SET_ATTACHED_TO_ENTITY="LIGHT.SET_ATTACHED_TO_ENTITY";q.SET_COLOR="LIGHT.SET_COLOR";q.SET_DISTANCE="LIGHT.SET_DISTANCE";q.SET_INTENSITY="LIGHT.SET_INTENSITY";q.SET_OFFSET="LIGHT.SET_OFFSET";q.SET_PENUMBRA="LIGHT.SET_PENUMBRA";q.SET_POSITION="LIGHT.SET_POSITION";q.SET_TRACKED_ENTITY="LIGHT.SET_TRACKED_ENTITY";q.SET_TRACKED_POSITION="LIGHT.SET_TRACKED_POSITION";q.SPAWN="LIGHT.SPAWN"})(au||={});class ou extends $8{_id;_angle;_attachedToEntity;_color;_distance;_intensity;_offset;_penumbra;_position;_trackedEntity;_trackedPosition;_type;_world;constructor(J){if(!!J.attachedToEntity===!!J.position)n.fatalError("Either attachedToEntity or position must be set, but not both.");super();n.warning("WARNING: Lights are poorly optimized at this time. Using more than a few lights in your game can cause extremely bad performance (FPS) issues. Use lights sparingly!"),this._angle=J.angle,this._attachedToEntity=J.attachedToEntity,this._color=J.color??{r:255,g:255,b:255},this._distance=J.distance,this._intensity=J.intensity??1,this._offset=J.offset,this._penumbra=J.penumbra,this._position=J.position,this._trackedEntity=J.trackedEntity,this._trackedPosition=J.trackedPosition,this._type=J.type??0}get id(){return this._id}get angle(){return this._angle}get attachedToEntity(){return this._attachedToEntity}get color(){return this._color}get distance(){return this._distance}get intensity(){return this._intensity}get isSpawned(){return this._id!==void 0}get offset(){return this._offset}get penumbra(){return this._penumbra}get position(){return this._position}get trackedEntity(){return this._trackedEntity}get trackedPosition(){return this._trackedPosition}get type(){return this._type}get world(){return this._world}setAngle(J){if(this._angle===J)return;if(this._angle=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_ANGLE",{light:this,angle:J})}setAttachedToEntity(J){if(!J.isSpawned)return n.error(`Light.setAttachedToEntity(): Entity ${J.id} is not spawned!`);if(this._attachedToEntity===J)return;if(this._attachedToEntity=J,this._position=void 0,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_ATTACHED_TO_ENTITY",{light:this,entity:J})}setColor(J){if(this._color.r===J.r&&this._color.g===J.g&&this._color.b===J.b)return;if(this._color=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_COLOR",{light:this,color:J})}setDistance(J){if(this._distance===J)return;if(this._distance=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_DISTANCE",{light:this,distance:J})}setIntensity(J){if(this._intensity===J)return;if(this._intensity=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_INTENSITY",{light:this,intensity:J})}setOffset(J){if(this._offset&&this._offset.x===J.x&&this._offset.y===J.y&&this._offset.z===J.z)return;if(this._offset=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_OFFSET",{light:this,offset:J})}setPenumbra(J){if(this._penumbra===J)return;if(this._penumbra=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_PENUMBRA",{light:this,penumbra:J})}setPosition(J){if(this._position&&this._position.x===J.x&&this._position.y===J.y&&this._position.z===J.z)return;if(this._position=J,this._attachedToEntity=void 0,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_POSITION",{light:this,position:J})}setTrackedEntity(J){if(!J.isSpawned)return n.error(`Light.setTrackedEntity(): Entity ${J.id} is not spawned!`);if(this._trackedEntity===J)return;if(this._trackedEntity=J,this._trackedPosition=void 0,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_TRACKED_ENTITY",{light:this,entity:J})}setTrackedPosition(J){if(this._trackedPosition===J)return;if(this._trackedPosition=J,this._trackedEntity=void 0,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_TRACKED_POSITION",{light:this,position:J})}despawn(){if(!this.isSpawned||!this._world)return;this._world.lightManager.unregisterLight(this),this.emitWithWorld(this._world,"LIGHT.DESPAWN",{light:this}),this._id=void 0,this._world=void 0}spawn(J){if(this.isSpawned)return;if(this._attachedToEntity&&!this._attachedToEntity.isSpawned)return n.error(`Light.spawn(): Attached entity ${this._attachedToEntity.id} must be spawned before spawning Light!`);this._id=J.lightManager.registerLight(this),this._world=J,this.emitWithWorld(J,"LIGHT.SPAWN",{light:this})}serialize(){return V8.serializeLight(this)}}var tu;((v)=>{v.BURST="PARTICLE_EMITTER.BURST";v.DESPAWN="PARTICLE_EMITTER.DESPAWN";v.SET_ALPHA_TEST="PARTICLE_EMITTER.SET_ALPHA_TEST";v.SET_ATTACHED_TO_ENTITY="PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY";v.SET_ATTACHED_TO_ENTITY_NODE_NAME="PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY_NODE_NAME";v.SET_COLOR_END="PARTICLE_EMITTER.SET_COLOR_END";v.SET_COLOR_END_VARIANCE="PARTICLE_EMITTER.SET_COLOR_END_VARIANCE";v.SET_COLOR_START="PARTICLE_EMITTER.SET_COLOR_START";v.SET_COLOR_START_VARIANCE="PARTICLE_EMITTER.SET_COLOR_START_VARIANCE";v.SET_GRAVITY="PARTICLE_EMITTER.SET_GRAVITY";v.SET_LIFETIME="PARTICLE_EMITTER.SET_LIFETIME";v.SET_LIFETIME_VARIANCE="PARTICLE_EMITTER.SET_LIFETIME_VARIANCE";v.SET_MAX_PARTICLES="PARTICLE_EMITTER.SET_MAX_PARTICLES";v.SET_OFFSET="PARTICLE_EMITTER.SET_OFFSET";v.SET_OPACITY_END="PARTICLE_EMITTER.SET_OPACITY_END";v.SET_OPACITY_END_VARIANCE="PARTICLE_EMITTER.SET_OPACITY_END_VARIANCE";v.SET_OPACITY_START="PARTICLE_EMITTER.SET_OPACITY_START";v.SET_OPACITY_START_VARIANCE="PARTICLE_EMITTER.SET_OPACITY_START_VARIANCE";v.SET_PAUSED="PARTICLE_EMITTER.SET_PAUSED";v.SET_POSITION="PARTICLE_EMITTER.SET_POSITION";v.SET_POSITION_VARIANCE="PARTICLE_EMITTER.SET_POSITION_VARIANCE";v.SET_RATE="PARTICLE_EMITTER.SET_RATE";v.SET_RATE_VARIANCE="PARTICLE_EMITTER.SET_RATE_VARIANCE";v.SET_SIZE_END="PARTICLE_EMITTER.SET_SIZE_END";v.SET_SIZE_END_VARIANCE="PARTICLE_EMITTER.SET_SIZE_END_VARIANCE";v.SET_SIZE_START="PARTICLE_EMITTER.SET_SIZE_START";v.SET_SIZE_START_VARIANCE="PARTICLE_EMITTER.SET_SIZE_START_VARIANCE";v.SET_TEXTURE_URI="PARTICLE_EMITTER.SET_TEXTURE_URI";v.SET_TRANSPARENT="PARTICLE_EMITTER.SET_TRANSPARENT";v.SET_VELOCITY="PARTICLE_EMITTER.SET_VELOCITY";v.SET_VELOCITY_VARIANCE="PARTICLE_EMITTER.SET_VELOCITY_VARIANCE";v.SPAWN="PARTICLE_EMITTER.SPAWN"})(tu||={});class eu extends $8{_id;_alphaTest;_attachedToEntity;_attachedToEntityNodeName;_colorEnd;_colorEndVariance;_colorStart;_colorStartVariance;_gravity;_lifetime;_lifetimeVariance;_maxParticles;_offset;_opacityEnd;_opacityEndVariance;_opacityStart;_opacityStartVariance;_paused;_position;_positionVariance;_rate;_rateVariance;_sizeEnd;_sizeEndVariance;_sizeStart;_sizeStartVariance;_sizeVariance;_textureUri;_transparent;_velocity;_velocityVariance;_world;constructor(J){if(!!J.attachedToEntity===!!J.position)n.fatalError("Either attachedToEntity or position must be set, but not both.");if(!J.textureUri)n.fatalError("ParticleEmitter.constructor(): textureUri must be provided.");super();this._alphaTest=J.alphaTest??0.05,this._attachedToEntity=J.attachedToEntity,this._attachedToEntityNodeName=J.attachedToEntityNodeName,this._colorEnd=J.colorEnd,this._colorEndVariance=J.colorEndVariance,this._colorStart=J.colorStart,this._colorStartVariance=J.colorStartVariance,this._gravity=J.gravity,this._lifetime=J.lifetime,this._lifetimeVariance=J.lifetimeVariance,this._maxParticles=J.maxParticles,this._offset=J.offset,this._opacityEnd=J.opacityEnd,this._opacityEndVariance=J.opacityEndVariance,this._opacityStart=J.opacityStart,this._opacityStartVariance=J.opacityStartVariance,this._paused=!1,this._position=J.position,this._positionVariance=J.positionVariance,this._rate=J.rate,this._rateVariance=J.rateVariance,this._sizeEnd=J.sizeEnd,this._sizeEndVariance=J.sizeEndVariance,this._sizeStart=J.sizeStart,this._sizeStartVariance=J.sizeStartVariance,this._textureUri=J.textureUri,this._transparent=J.transparent,this._velocity=J.velocity,this._velocityVariance=J.velocityVariance}get id(){return this._id}get alphaTest(){return this._alphaTest}get attachedToEntity(){return this._attachedToEntity}get attachedToEntityNodeName(){return this._attachedToEntityNodeName}get colorEnd(){return this._colorEnd}get colorEndVariance(){return this._colorEndVariance}get colorStart(){return this._colorStart}get colorStartVariance(){return this._colorStartVariance}get gravity(){return this._gravity}get isSpawned(){return this._id!==void 0}get lifetime(){return this._lifetime}get lifetimeVariance(){return this._lifetimeVariance}get maxParticles(){return this._maxParticles}get offset(){return this._offset}get opacityEnd(){return this._opacityEnd}get opacityEndVariance(){return this._opacityEndVariance}get opacityStart(){return this._opacityStart}get opacityStartVariance(){return this._opacityStartVariance}get paused(){return this._paused}get position(){return this._position}get positionVariance(){return this._positionVariance}get rate(){return this._rate}get rateVariance(){return this._rateVariance}get sizeEnd(){return this._sizeEnd}get sizeEndVariance(){return this._sizeEndVariance}get sizeStart(){return this._sizeStart}get sizeStartVariance(){return this._sizeStartVariance}get sizeVariance(){return this._sizeVariance}get textureUri(){return this._textureUri}get transparent(){return this._transparent}get velocity(){return this._velocity}get velocityVariance(){return this._velocityVariance}get world(){return this._world}setAlphaTest(J){if(this._alphaTest===J)return;if(this._alphaTest=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_ALPHA_TEST",{particleEmitter:this,alphaTest:J})}setAttachedToEntity(J){if(!J.isSpawned)return n.error(`ParticleEmitter.setAttachedToEntity(): Entity ${J.id} is not spawned!`);if(this._attachedToEntity===J)return;if(this._attachedToEntity=J,this._position=void 0,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY",{particleEmitter:this,entity:J})}setAttachedToEntityNodeName(J){if(this._attachedToEntityNodeName===J)return;if(this._attachedToEntityNodeName=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY_NODE_NAME",{particleEmitter:this,attachedToEntityNodeName:J})}setColorEnd(J){if(this._colorEnd&&this._colorEnd.r===J.r&&this._colorEnd.g===J.g&&this._colorEnd.b===J.b)return;if(this._colorEnd=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_COLOR_END",{particleEmitter:this,colorEnd:J})}setColorEndVariance(J){if(this._colorEndVariance&&this._colorEndVariance.r===J.r&&this._colorEndVariance.g===J.g&&this._colorEndVariance.b===J.b)return;if(this._colorEndVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_COLOR_END_VARIANCE",{particleEmitter:this,colorEndVariance:J})}setColorStart(J){if(this._colorStart&&this._colorStart.r===J.r&&this._colorStart.g===J.g&&this._colorStart.b===J.b)return;if(this._colorStart=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_COLOR_START",{particleEmitter:this,colorStart:J})}setColorStartVariance(J){if(this._colorStartVariance&&this._colorStartVariance.r===J.r&&this._colorStartVariance.g===J.g&&this._colorStartVariance.b===J.b)return;if(this._colorStartVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_COLOR_START_VARIANCE",{particleEmitter:this,colorStartVariance:J})}setGravity(J){if(this._gravity&&this._gravity.x===J.x&&this._gravity.y===J.y&&this._gravity.z===J.z)return;if(this._gravity=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_GRAVITY",{particleEmitter:this,gravity:J})}setLifetime(J){if(this._lifetime===J)return;if(this._lifetime=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_LIFETIME",{particleEmitter:this,lifetime:J})}setLifetimeVariance(J){if(this._lifetimeVariance===J)return;if(this._lifetimeVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_LIFETIME_VARIANCE",{particleEmitter:this,lifetimeVariance:J})}setMaxParticles(J){if(this._maxParticles===J)return;if(this._maxParticles=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_MAX_PARTICLES",{particleEmitter:this,maxParticles:J})}setOffset(J){if(this._offset&&this._offset.x===J.x&&this._offset.y===J.y&&this._offset.z===J.z)return;if(this._offset=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OFFSET",{particleEmitter:this,offset:J})}setOpacityEnd(J){if(this._opacityEnd===J)return;if(this._opacityEnd=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OPACITY_END",{particleEmitter:this,opacityEnd:J})}setOpacityEndVariance(J){if(this._opacityEndVariance===J)return;if(this._opacityEndVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OPACITY_END_VARIANCE",{particleEmitter:this,opacityEndVariance:J})}setOpacityStart(J){if(this._opacityStart===J)return;if(this._opacityStart=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OPACITY_START",{particleEmitter:this,opacityStart:J})}setOpacityStartVariance(J){if(this._opacityStartVariance===J)return;if(this._opacityStartVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OPACITY_START_VARIANCE",{particleEmitter:this,opacityStartVariance:J})}setPosition(J){if(this._position&&this._position.x===J.x&&this._position.y===J.y&&this._position.z===J.z)return;if(this._position=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_POSITION",{particleEmitter:this,position:J})}setPositionVariance(J){if(this._positionVariance&&this._positionVariance.x===J.x&&this._positionVariance.y===J.y&&this._positionVariance.z===J.z)return;if(this._positionVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_POSITION_VARIANCE",{particleEmitter:this,positionVariance:J})}setRate(J){if(this._rate===J)return;if(this._rate=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_RATE",{particleEmitter:this,rate:J})}setRateVariance(J){if(this._rateVariance===J)return;if(this._rateVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_RATE_VARIANCE",{particleEmitter:this,rateVariance:J})}setSizeEnd(J){if(this._sizeEnd===J)return;if(this._sizeEnd=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_SIZE_END",{particleEmitter:this,sizeEnd:J})}setSizeEndVariance(J){if(this._sizeEndVariance===J)return;if(this._sizeEndVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_SIZE_END_VARIANCE",{particleEmitter:this,sizeEndVariance:J})}setSizeStart(J){if(this._sizeStart===J)return;if(this._sizeStart=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_SIZE_START",{particleEmitter:this,sizeStart:J})}setSizeStartVariance(J){if(this._sizeStartVariance===J)return;if(this._sizeStartVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_SIZE_START_VARIANCE",{particleEmitter:this,sizeStartVariance:J})}setTextureUri(J){if(this._textureUri===J)return;if(this._textureUri=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_TEXTURE_URI",{particleEmitter:this,textureUri:J})}setTransparent(J){if(this._transparent===J)return;if(this._transparent=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_TRANSPARENT",{particleEmitter:this,transparent:J})}setVelocity(J){if(this._velocity&&this._velocity.x===J.x&&this._velocity.y===J.y&&this._velocity.z===J.z)return;if(this._velocity=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_VELOCITY",{particleEmitter:this,velocity:J})}setVelocityVariance(J){if(this._velocityVariance&&this._velocityVariance.x===J.x&&this._velocityVariance.y===J.y&&this._velocityVariance.z===J.z)return;if(this._velocityVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_VELOCITY_VARIANCE",{particleEmitter:this,velocityVariance:J})}burst(J){if(this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.BURST",{particleEmitter:this,count:J})}despawn(){if(!this.isSpawned||!this._world)return;this._world.particleEmitterManager.unregisterParticleEmitter(this),this.emitWithWorld(this._world,"PARTICLE_EMITTER.DESPAWN",{particleEmitter:this}),this._id=void 0,this._world=void 0}restart(){if(!this._paused)return;if(this._paused=!1,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_PAUSED",{particleEmitter:this,paused:this._paused})}stop(){if(this._paused)return;if(this._paused=!0,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_PAUSED",{particleEmitter:this,paused:this._paused})}spawn(J){if(this.isSpawned)return;if(this._attachedToEntity&&!this._attachedToEntity.isSpawned)return n.error(`ParticleEmitter.spawn(): Attached entity ${this._attachedToEntity.id} must be spawned before spawning ParticleEmitter!`);this._id=J.particleEmitterManager.registerParticleEmitter(this),this._world=J,this.emitWithWorld(J,"PARTICLE_EMITTER.SPAWN",{particleEmitter:this})}serialize(){return V8.serializeParticleEmitter(this)}}var hK6={x:0,y:-32,z:0},Jd=60,$d;((Q)=>{Q.STEP_START="SIMULATION.STEP_START";Q.STEP_END="SIMULATION.STEP_END";Q.DEBUG_RAYCAST="SIMULATION.DEBUG_RAYCAST";Q.DEBUG_RENDER="SIMULATION.DEBUG_RENDER"})($d||={});class VL extends $8{_colliderMap=new $3;_debugRaycastingEnabled=!1;_debugRenderingEnabled=!1;_debugRenderingFilterFlags;_rapierEventQueue;_rapierSimulation;_world;constructor(J,$=Jd,X=hK6){super();this._rapierEventQueue=new Y5.EventQueue(!0),this._rapierSimulation=new Y5.World(X),this._rapierSimulation.timestep=Math.fround(1/$),this._world=J}get colliderMap(){return this._colliderMap}get isDebugRaycastingEnabled(){return this._debugRaycastingEnabled}get isDebugRenderingEnabled(){return this._debugRenderingEnabled}get gravity(){return this._rapierSimulation.gravity}get timestepS(){return this._rapierSimulation.timestep}get world(){return this._world}createRawCollider(J,$){return this._rapierSimulation.createCollider(J,$)}createRawRigidBody(J){return this._rapierSimulation.createRigidBody(J)}enableDebugRaycasting(J){this._debugRaycastingEnabled=J}enableDebugRendering(J,$=Y5.QueryFilterFlags.EXCLUDE_FIXED){this._debugRenderingEnabled=J,this._debugRenderingFilterFlags=$}getContactManifolds(J,$){let X=[];return this._rapierSimulation.narrowPhase.contactPair(J,$,(Y,Q)=>{if(Y.numContacts()===0)return;let W=Y.normal(),K=[];for(let Z=0;Z<Y.numSolverContacts();Z++)K.push(Y.solverContactPoint(Z));X.push({contactPoints:K,localNormalA:!Q?Y.localNormal1():Y.localNormal2(),localNormalB:!Q?Y.localNormal2():Y.localNormal1(),normal:!Q?W:{x:-W.x,y:-W.y,z:-W.z}})}),X}intersectionsWithRawShape(J,$,X,Y={}){let Q=new Set,W=[];return this._rapierSimulation.intersectionsWithShape($,X,J,(K)=>{let Z=this._colliderMap.getColliderHandleBlockType(K.handle);if(Z&&!Q.has(Z))return Q.add(Z),W.push({intersectedBlockType:Z}),!0;let G=this._colliderMap.getColliderHandleEntity(K.handle);if(G&&!Q.has(G))return Q.add(G),W.push({intersectedEntity:G}),!0;return!0},Y.filterFlags,Y.filterGroups,Y.filterExcludeCollider,Y.filterExcludeRigidBody,Y.filterPredicate),W}raycast(J,$,X,Y={}){let Q=new Y5.Ray(J,$),W=this._rapierSimulation.castRay(Q,X,Y.solidMode??!0,Y.filterFlags,Y.filterGroups,Y.filterExcludeCollider,Y.filterExcludeRigidBody,Y.filterPredicate);if(this._debugRaycastingEnabled)this.emitWithWorld(this._world,"SIMULATION.DEBUG_RAYCAST",{simulation:this,origin:J,direction:$,length:X,hit:!!W});if(!W)return null;let K=Q.pointAt(W.timeOfImpact),Z=W.timeOfImpact,G=W.collider,V=this._colliderMap.getColliderHandleBlockType(G.handle);if(V)return{hitBlock:NG.fromGlobalCoordinate({x:Math.floor(K.x-(Q.dir.x<0?0.0001:-0.0001)),y:Math.floor(K.y-(Q.dir.y<0?0.0001:-0.0001)),z:Math.floor(K.z-(Q.dir.z<0?0.0001:-0.0001))},V),hitPoint:K,hitDistance:Z};let H=this._colliderMap.getColliderHandleEntity(G.handle);if(H)return{hitEntity:H,hitPoint:K,hitDistance:Z};return null}removeRawCollider(J){this._colliderMap.queueColliderHandleForCleanup(J.handle),this._rapierSimulation.removeCollider(J,!1)}removeRawRigidBody(J){this._rapierSimulation.removeRigidBody(J)}setGravity(J){this._rapierSimulation.gravity=J}step=(J)=>{this.emitWithWorld(this._world,"SIMULATION.STEP_START",{simulation:this,tickDeltaMs:J});let $=performance.now();if(w6.startSpan({operation:"physics_step"},()=>{this._rapierSimulation.step(this._rapierEventQueue)}),w6.startSpan({operation:"physics_cleanup"},()=>{this._rapierEventQueue.drainContactForceEvents(this._onContactForceEvent),this._rapierEventQueue.drainCollisionEvents(this._onCollisionEvent),this._colliderMap.cleanup()}),this.emitWithWorld(this._world,"SIMULATION.STEP_END",{simulation:this,stepDurationMs:performance.now()-$}),this._debugRenderingEnabled)this.emitWithWorld(this._world,"SIMULATION.DEBUG_RENDER",{simulation:this,...this._rapierSimulation.debugRender(this._debugRenderingFilterFlags)})};_onCollisionEvent=(J,$,X)=>{let[Y,Q]=this._getCollisionObjects(J,$);if(!Y||!Q)return;let W=(K,Z)=>{if(K instanceof wJ&&Z instanceof v6&&K.hasListeners("BLOCK_TYPE.ENTITY_COLLISION"))K.emit("BLOCK_TYPE.ENTITY_COLLISION",{blockType:K,entity:Z,started:X,colliderHandleA:J,colliderHandleB:$});else if(K instanceof v6&&Z instanceof wJ&&K.hasListeners("ENTITY.BLOCK_COLLISION"))K.emit("ENTITY.BLOCK_COLLISION",{entity:K,blockType:Z,started:X,colliderHandleA:J,colliderHandleB:$});else if(K instanceof v6&&Z instanceof v6&&K.hasListeners("ENTITY.ENTITY_COLLISION"))K.emit("ENTITY.ENTITY_COLLISION",{entity:K,otherEntity:Z,started:X,colliderHandleA:J,colliderHandleB:$});else if(typeof K==="function"&&(Z instanceof v6||Z instanceof wJ))K(Z,X,J,$)};W(Y,Q),W(Q,Y)};_onContactForceEvent=(J)=>{let[$,X]=this._getCollisionObjects(J.collider1(),J.collider2());if(!$||typeof $==="function"||!X||typeof X==="function")return;let Y={totalForce:J.totalForce(),totalForceMagnitude:J.totalForceMagnitude(),maxForceDirection:J.maxForceDirection(),maxForceMagnitude:J.maxForceMagnitude()},Q=(W,K)=>{if(W instanceof wJ&&K instanceof v6&&W.hasListeners("BLOCK_TYPE.ENTITY_CONTACT_FORCE"))W.emit("BLOCK_TYPE.ENTITY_CONTACT_FORCE",{blockType:W,entity:K,contactForceData:Y});else if(W instanceof v6&&K instanceof wJ&&W.hasListeners("ENTITY.BLOCK_CONTACT_FORCE"))W.emit("ENTITY.BLOCK_CONTACT_FORCE",{entity:W,blockType:K,contactForceData:Y});else if(W instanceof v6&&K instanceof v6&&W.hasListeners("ENTITY.ENTITY_CONTACT_FORCE"))W.emit("ENTITY.ENTITY_CONTACT_FORCE",{entity:W,otherEntity:K,contactForceData:Y})};Q($,X),Q(X,$)};_getCollisionObjects(J,$){let X=this._colliderMap.getColliderHandleBlockType(J)??this._colliderMap.getColliderHandleCollisionCallback(J)??this._colliderMap.getColliderHandleEntity(J),Y=this._colliderMap.getColliderHandleBlockType($)??this._colliderMap.getColliderHandleCollisionCallback($)??this._colliderMap.getColliderHandleEntity($);return[X,Y]}}class nP{_synchronizedPlayerReliablePackets=new H9;_queuedBroadcasts=[];_queuedAudioSynchronizations=new H9;_queuedBlockSynchronizations=new H9;_queuedBlockTypeSynchronizations=new H9;_queuedChunkSynchronizations=new H9;_queuedDebugRaycastSynchronizations=[];_queuedEntitySynchronizations=new H9;_queuedLightSynchronizations=new H9;_queuedParticleEmitterSynchronizations=new H9;_queuedPerPlayerSynchronizations=new H9;_queuedPerPlayerCameraSynchronizations=new H9;_queuedPerPlayerUISynchronizations=new H9;_queuedPerPlayerUIDatasSynchronizations=new H9;_queuedPlayerSynchronizations=new H9;_queuedSceneUISynchronizations=new H9;_queuedWorldSynchronization;_loadedSceneUIs=new Set;_spawnedChunks=new Set;_spawnedEntities=new Set;_world;constructor(J){this._world=J,this._subscribeToAudioEvents(),this._subscribeToBlockTypeRegistryEvents(),this._subscribeToChatEvents(),this._subscribeToChunkLatticeEvents(),this._subscribeToEntityEvents(),this._subscribeToLightEvents(),this._subscribeToParticleEmitterEvents(),this._subscribeToPlayerEvents(),this._subscribeToPlayerCameraEvents(),this._subscribeToPlayerUIEvents(),this._subscribeToSceneUIEvents(),this._subscribeToSimulationEvents(),this._subscribeToWorldEvents()}synchronize(){let J=[],$=[],X=this._world.loop.currentTick;if(this._queuedPerPlayerSynchronizations.size>0)for(let[Y,Q]of this._queuedPerPlayerSynchronizations)this._createOrGetSynchronizedPlayerReliablePackets(Y,J).push(...Q);if(this._queuedEntitySynchronizations.size>0){let Y=[],Q=[];for(let W of this._queuedEntitySynchronizations.valuesArray){let K=!1;for(let Z in W)if(Z!=="i"&&Z!=="p"&&Z!=="r"){K=!0;break}if(K)Y.push(W);else Q.push(W)}if(Q.length>0){let W=h0.createPacket(h0.outboundPackets.entitiesPacketDefinition,Q,X);$.push(W)}if(Y.length>0){let W=h0.createPacket(h0.outboundPackets.entitiesPacketDefinition,Y,X);J.push(W);for(let K of this._synchronizedPlayerReliablePackets.valuesArray)K.push(W)}}if(this._queuedAudioSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.audiosPacketDefinition,this._queuedAudioSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedBlockTypeSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.blockTypesPacketDefinition,this._queuedBlockTypeSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedChunkSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.chunksPacketDefinition,this._queuedChunkSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedBlockSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.blocksPacketDefinition,this._queuedBlockSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedLightSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.lightsPacketDefinition,this._queuedLightSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedParticleEmitterSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.particleEmittersPacketDefinition,this._queuedParticleEmitterSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedPerPlayerUISynchronizations.size>0)for(let[Y,Q]of this._queuedPerPlayerUISynchronizations){let W=h0.createPacket(h0.outboundPackets.uiPacketDefinition,Q,X);this._createOrGetSynchronizedPlayerReliablePackets(Y,J).push(W)}if(this._queuedPerPlayerUIDatasSynchronizations.size>0)for(let[Y,Q]of this._queuedPerPlayerUIDatasSynchronizations){let W=h0.createPacket(h0.outboundPackets.uiDatasPacketDefinition,Q,X);this._createOrGetSynchronizedPlayerReliablePackets(Y,J).push(W)}if(this._queuedSceneUISynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.sceneUIsPacketDefinition,this._queuedSceneUISynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedWorldSynchronization){let Y=h0.createPacket(h0.outboundPackets.worldPacketDefinition,this._queuedWorldSynchronization,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedPerPlayerCameraSynchronizations.size>0)for(let[Y,Q]of this._queuedPerPlayerCameraSynchronizations){let W=h0.createPacket(h0.outboundPackets.cameraPacketDefinition,Q,X);this._createOrGetSynchronizedPlayerReliablePackets(Y,J).push(W)}if(this._queuedPlayerSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.playersPacketDefinition,this._queuedPlayerSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedBroadcasts.length>0)for(let Y of this._queuedBroadcasts){J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedDebugRaycastSynchronizations.length>0){let Y=h0.createPacket(h0.outboundPackets.physicsDebugRaycastsPacketDefinition,this._queuedDebugRaycastSynchronizations,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}w6.startSpan({operation:"send_all_packets"},()=>{for(let Y of s$.instance.getConnectedPlayersByWorld(this._world)){let Q=this._synchronizedPlayerReliablePackets.get(Y)??J;if(Q.length>0)Y.connection.send(Q);if($.length>0)Y.connection.send($,!1)}}),w6.startSpan({operation:"network_synchronize_cleanup"},()=>{if(this._queuedBroadcasts.length>0)this._queuedBroadcasts.length=0;if(this._queuedAudioSynchronizations.size>0)this._queuedAudioSynchronizations.clear();if(this._queuedBlockSynchronizations.size>0)this._queuedBlockSynchronizations.clear();if(this._queuedBlockTypeSynchronizations.size>0)this._queuedBlockTypeSynchronizations.clear();if(this._queuedChunkSynchronizations.size>0)this._queuedChunkSynchronizations.clear();if(this._queuedDebugRaycastSynchronizations.length>0)this._queuedDebugRaycastSynchronizations.length=0;if(this._queuedEntitySynchronizations.size>0)this._queuedEntitySynchronizations.clear();if(this._queuedLightSynchronizations.size>0)this._queuedLightSynchronizations.clear();if(this._queuedParticleEmitterSynchronizations.size>0)this._queuedParticleEmitterSynchronizations.clear();if(this._queuedPerPlayerSynchronizations.size>0)this._queuedPerPlayerSynchronizations.clear();if(this._queuedPerPlayerCameraSynchronizations.size>0)this._queuedPerPlayerCameraSynchronizations.clear();if(this._queuedPerPlayerUISynchronizations.size>0)this._queuedPerPlayerUISynchronizations.clear();if(this._queuedPerPlayerUIDatasSynchronizations.size>0)this._queuedPerPlayerUIDatasSynchronizations.clear();if(this._queuedPlayerSynchronizations.size>0)this._queuedPlayerSynchronizations.clear();if(this._queuedSceneUISynchronizations.size>0)this._queuedSceneUISynchronizations.clear();if(this._queuedWorldSynchronization)this._queuedWorldSynchronization=void 0;if(this._loadedSceneUIs.size>0)this._loadedSceneUIs.clear();if(this._spawnedChunks.size>0)this._spawnedChunks.clear();if(this._spawnedEntities.size>0)this._spawnedEntities.clear();if(this._synchronizedPlayerReliablePackets.size>0)this._synchronizedPlayerReliablePackets.clear();i$.clearCachedPacketsSerializedBuffers()})}_subscribeToAudioEvents(){this._world.final("AUDIO.PAUSE",this._onAudioPause),this._world.final("AUDIO.PLAY",this._onAudioPlay),this._world.final("AUDIO.PLAY_RESTART",this._onAudioPlayRestart),this._world.final("AUDIO.SET_ATTACHED_TO_ENTITY",this._onAudioSetAttachedToEntity),this._world.final("AUDIO.SET_CUTOFF_DISTANCE",this._onAudioSetCutoffDistance),this._world.final("AUDIO.SET_DETUNE",this._onAudioSetDetune),this._world.final("AUDIO.SET_DISTORTION",this._onAudioSetDistortion),this._world.final("AUDIO.SET_POSITION",this._onAudioSetPosition),this._world.final("AUDIO.SET_PLAYBACK_RATE",this._onAudioSetPlaybackRate),this._world.final("AUDIO.SET_REFERENCE_DISTANCE",this._onAudioSetReferenceDistance),this._world.final("AUDIO.SET_VOLUME",this._onAudioSetVolume)}_subscribeToBlockTypeRegistryEvents(){this._world.final("BLOCK_TYPE_REGISTRY.REGISTER_BLOCK_TYPE",this._onBlockTypeRegistryRegisterBlockType)}_subscribeToChatEvents(){this._world.final("CHAT.BROADCAST_MESSAGE",this._onChatSendBroadcastMessage),this._world.final("CHAT.PLAYER_MESSAGE",this._onChatSendPlayerMessage)}_subscribeToChunkLatticeEvents(){this._world.final("CHUNK_LATTICE.ADD_CHUNK",this._onChunkLatticeAddChunk),this._world.final("CHUNK_LATTICE.REMOVE_CHUNK",this._onChunkLatticeRemoveChunk),this._world.final("CHUNK_LATTICE.SET_BLOCK",this._onChunkLatticeSetBlock)}_subscribeToEntityEvents(){this._world.final("ENTITY.SPAWN",this._onEntitySpawn),this._world.final("ENTITY.DESPAWN",this._onEntityDespawn),this._world.final("ENTITY.SET_MODEL_ANIMATIONS_PLAYBACK_RATE",this._onEntitySetModelAnimationsPlaybackRate),this._world.final("ENTITY.SET_MODEL_HIDDEN_NODES",this._onEntitySetModelHiddenNodes),this._world.final("ENTITY.SET_MODEL_SCALE",this._onEntitySetModelScale),this._world.final("ENTITY.SET_MODEL_SHOWN_NODES",this._onEntitySetModelShownNodes),this._world.final("ENTITY.SET_MODEL_TEXTURE_URI",this._onEntitySetModelTextureUri),this._world.final("ENTITY.SET_OPACITY",this._onEntitySetOpacity),this._world.final("ENTITY.SET_PARENT",this._onEntitySetParent),this._world.final("ENTITY.SET_TINT_COLOR",this._onEntitySetTintColor),this._world.final("ENTITY.START_MODEL_LOOPED_ANIMATIONS",this._onEntityStartModelLoopedAnimations),this._world.final("ENTITY.START_MODEL_ONESHOT_ANIMATIONS",this._onEntityStartModelOneshotAnimations),this._world.final("ENTITY.STOP_MODEL_ANIMATIONS",this._onEntityStopModelAnimations),this._world.final("ENTITY.UPDATE_POSITION",this._onEntityUpdatePosition),this._world.final("ENTITY.UPDATE_ROTATION",this._onEntityUpdateRotation)}_subscribeToLightEvents(){this._world.final("LIGHT.DESPAWN",this._onLightDespawn),this._world.final("LIGHT.SET_ANGLE",this._onLightSetAngle),this._world.final("LIGHT.SET_ATTACHED_TO_ENTITY",this._onLightSetAttachedToEntity),this._world.final("LIGHT.SET_COLOR",this._onLightSetColor),this._world.final("LIGHT.SET_DISTANCE",this._onLightSetDistance),this._world.final("LIGHT.SET_INTENSITY",this._onLightSetIntensity),this._world.final("LIGHT.SET_OFFSET",this._onLightSetOffset),this._world.final("LIGHT.SET_PENUMBRA",this._onLightSetPenumbra),this._world.final("LIGHT.SET_POSITION",this._onLightSetPosition),this._world.final("LIGHT.SET_TRACKED_ENTITY",this._onLightSetTrackedEntity),this._world.final("LIGHT.SET_TRACKED_POSITION",this._onLightSetTrackedPosition),this._world.final("LIGHT.SPAWN",this._onLightSpawn)}_subscribeToParticleEmitterEvents(){this._world.final("PARTICLE_EMITTER.DESPAWN",this._onParticleEmitterDespawn),this._world.final("PARTICLE_EMITTER.BURST",this._onParticleEmitterBurst),this._world.final("PARTICLE_EMITTER.SET_ALPHA_TEST",this._onParticleEmitterSetAlphaTest),this._world.final("PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY",this._onParticleEmitterSetAttachedToEntity),this._world.final("PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY_NODE_NAME",this._onParticleEmitterSetAttachedToEntityNodeName),this._world.final("PARTICLE_EMITTER.SET_COLOR_END",this._onParticleEmitterSetColorEnd),this._world.final("PARTICLE_EMITTER.SET_COLOR_END_VARIANCE",this._onParticleEmitterSetColorEndVariance),this._world.final("PARTICLE_EMITTER.SET_COLOR_START",this._onParticleEmitterSetColorStart),this._world.final("PARTICLE_EMITTER.SET_COLOR_START_VARIANCE",this._onParticleEmitterSetColorStartVariance),this._world.final("PARTICLE_EMITTER.SET_GRAVITY",this._onParticleEmitterSetGravity),this._world.final("PARTICLE_EMITTER.SET_LIFETIME",this._onParticleEmitterSetLifetime),this._world.final("PARTICLE_EMITTER.SET_LIFETIME_VARIANCE",this._onParticleEmitterSetLifetimeVariance),this._world.final("PARTICLE_EMITTER.SET_MAX_PARTICLES",this._onParticleEmitterSetMaxParticles),this._world.final("PARTICLE_EMITTER.SET_OFFSET",this._onParticleEmitterSetOffset),this._world.final("PARTICLE_EMITTER.SET_OPACITY_END",this._onParticleEmitterSetOpacityEnd),this._world.final("PARTICLE_EMITTER.SET_OPACITY_END_VARIANCE",this._onParticleEmitterSetOpacityEndVariance),this._world.final("PARTICLE_EMITTER.SET_OPACITY_START",this._onParticleEmitterSetOpacityStart),this._world.final("PARTICLE_EMITTER.SET_OPACITY_START_VARIANCE",this._onParticleEmitterSetOpacityStartVariance),this._world.final("PARTICLE_EMITTER.SET_PAUSED",this._onParticleEmitterSetPaused),this._world.final("PARTICLE_EMITTER.SET_POSITION",this._onParticleEmitterSetPosition),this._world.final("PARTICLE_EMITTER.SET_POSITION_VARIANCE",this._onParticleEmitterSetPositionVariance),this._world.final("PARTICLE_EMITTER.SET_RATE",this._onParticleEmitterSetRate),this._world.final("PARTICLE_EMITTER.SET_RATE_VARIANCE",this._onParticleEmitterSetRateVariance),this._world.final("PARTICLE_EMITTER.SET_SIZE_END",this._onParticleEmitterSetSizeEnd),this._world.final("PARTICLE_EMITTER.SET_SIZE_END_VARIANCE",this._onParticleEmitterSetSizeEndVariance),this._world.final("PARTICLE_EMITTER.SET_SIZE_START",this._onParticleEmitterSetSizeStart),this._world.final("PARTICLE_EMITTER.SET_SIZE_START_VARIANCE",this._onParticleEmitterSetSizeStartVariance),this._world.final("PARTICLE_EMITTER.SET_TEXTURE_URI",this._onParticleEmitterSetTextureUri),this._world.final("PARTICLE_EMITTER.SET_TRANSPARENT",this._onParticleEmitterSetTransparent),this._world.final("PARTICLE_EMITTER.SET_VELOCITY",this._onParticleEmitterSetVelocity),this._world.final("PARTICLE_EMITTER.SET_VELOCITY_VARIANCE",this._onParticleEmitterSetVelocityVariance),this._world.final("PARTICLE_EMITTER.SPAWN",this._onParticleEmitterSpawn)}_subscribeToPlayerEvents(){this._world.final("PLAYER.JOINED_WORLD",this._onPlayerJoinedWorld),this._world.final("PLAYER.LEFT_WORLD",this._onPlayerLeftWorld),this._world.final("PLAYER.RECONNECTED_WORLD",this._onPlayerReconnectedWorld),this._world.final("PLAYER.REQUEST_NOTIFICATION_PERMISSION",this._onPlayerRequestNotificationPermission),this._world.final("PLAYER.REQUEST_SYNC",this._onPlayerRequestSync)}_subscribeToPlayerCameraEvents(){this._world.final("PLAYER_CAMERA.LOOK_AT_ENTITY",this._onPlayerCameraLookAtEntity),this._world.final("PLAYER_CAMERA.LOOK_AT_POSITION",this._onPlayerCameraLookAtPosition),this._world.final("PLAYER_CAMERA.SET_ATTACHED_TO_ENTITY",this._onPlayerCameraSetAttachedToEntity),this._world.final("PLAYER_CAMERA.SET_ATTACHED_TO_POSITION",this._onPlayerCameraSetAttachedToPosition),this._world.final("PLAYER_CAMERA.SET_FILM_OFFSET",this._onPlayerCameraSetFilmOffset),this._world.final("PLAYER_CAMERA.SET_FORWARD_OFFSET",this._onPlayerCameraSetForwardOffset),this._world.final("PLAYER_CAMERA.SET_FOV",this._onPlayerCameraSetFov),this._world.final("PLAYER_CAMERA.SET_MODEL_HIDDEN_NODES",this._onPlayerCameraSetModelHiddenNodes),this._world.final("PLAYER_CAMERA.SET_MODEL_SHOWN_NODES",this._onPlayerCameraSetModelShownNodes),this._world.final("PLAYER_CAMERA.SET_MODE",this._onPlayerCameraSetMode),this._world.final("PLAYER_CAMERA.SET_OFFSET",this._onPlayerCameraSetOffset),this._world.final("PLAYER_CAMERA.SET_SHOULDER_ANGLE",this._onPlayerCameraSetShoulderAngle),this._world.final("PLAYER_CAMERA.SET_TRACKED_ENTITY",this._onPlayerCameraSetTrackedEntity),this._world.final("PLAYER_CAMERA.SET_TRACKED_POSITION",this._onPlayerCameraSetTrackedPosition),this._world.final("PLAYER_CAMERA.SET_ZOOM",this._onPlayerCameraSetZoom)}_subscribeToPlayerUIEvents(){this._world.final("PLAYER_UI.LOAD",this._onPlayerUILoad),this._world.final("PLAYER_UI.LOCK_POINTER",this._onPlayerUILockPointer),this._world.final("PLAYER_UI.SEND_DATA",this._onPlayerUISendData)}_subscribeToSceneUIEvents(){this._world.final("SCENE_UI.LOAD",this._onSceneUILoad),this._world.final("SCENE_UI.SET_ATTACHED_TO_ENTITY",this._onSceneUISetAttachedToEntity),this._world.final("SCENE_UI.SET_OFFSET",this._onSceneUISetOffset),this._world.final("SCENE_UI.SET_POSITION",this._onSceneUISetPosition),this._world.final("SCENE_UI.SET_STATE",this._onSceneUISetState),this._world.final("SCENE_UI.SET_VIEW_DISTANCE",this._onSceneUISetViewDistance),this._world.final("SCENE_UI.UNLOAD",this._onSceneUIUnload)}_subscribeToSimulationEvents(){this._world.final("SIMULATION.DEBUG_RAYCAST",this._onSimulationDebugRaycast),this._world.final("SIMULATION.DEBUG_RENDER",this._onSimulationDebugRender)}_subscribeToWorldEvents(){this._world.final("WORLD.SET_AMBIENT_LIGHT_COLOR",this._onWorldSetAmbientLightColor),this._world.final("WORLD.SET_AMBIENT_LIGHT_INTENSITY",this._onWorldSetAmbientLightIntensity),this._world.final("WORLD.SET_DIRECTIONAL_LIGHT_COLOR",this._onWorldSetDirectionalLightColor),this._world.final("WORLD.SET_DIRECTIONAL_LIGHT_INTENSITY",this._onWorldSetDirectionalLightIntensity),this._world.final("WORLD.SET_DIRECTIONAL_LIGHT_POSITION",this._onWorldSetDirectionalLightPosition),this._world.final("WORLD.SET_FOG_COLOR",this._onWorldSetFogColor),this._world.final("WORLD.SET_FOG_FAR",this._onWorldSetFogFar),this._world.final("WORLD.SET_FOG_NEAR",this._onWorldSetFogNear),this._world.final("WORLD.SET_SKYBOX_INTENSITY",this._onWorldSetSkyboxIntensity),this._world.final("WORLD.SET_SKYBOX_URI",this._onWorldSetSkyboxUri)}_onAudioPause=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.pa=!0,delete $.pl,delete $.r};_onAudioPlay=(J)=>{let $=J.audio.serialize();$.pl=!0,delete $.pa,delete $.r,this._queuedAudioSynchronizations.set($.i,$)};_onAudioPlayRestart=(J)=>{let $=J.audio.serialize();$.r=!0,delete $.pa,delete $.pl,this._queuedAudioSynchronizations.set($.i,$)};_onAudioSetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.e=J.entity?J.entity.id:void 0,$.p=J.entity?void 0:$.p};_onAudioSetCutoffDistance=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.cd=J.cutoffDistance};_onAudioSetDetune=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.de=J.detune};_onAudioSetDistortion=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.di=J.distortion};_onAudioSetPosition=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.e=J.position?void 0:$.e,$.p=J.position?V8.serializeVector(J.position):void 0};_onAudioSetPlaybackRate=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.pr=J.playbackRate};_onAudioSetReferenceDistance=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.rd=J.referenceDistance};_onAudioSetVolume=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.v=J.volume};_onBlockTypeRegistryRegisterBlockType=(J)=>{let $=J.blockType.serialize();this._queuedBlockTypeSynchronizations.set(J.blockType.id,$)};_onChatSendBroadcastMessage=(J)=>{let{player:$,message:X,color:Y}=J;this._queuedBroadcasts.push(h0.createPacket(h0.outboundPackets.chatMessagesPacketDefinition,[{m:X,c:Y,p:$?.id}],this._world.loop.currentTick))};_onChatSendPlayerMessage=(J)=>{let{player:$,message:X,color:Y}=J,Q=this._queuedPerPlayerSynchronizations.get($)??[];Q.push(h0.createPacket(h0.outboundPackets.chatMessagesPacketDefinition,[{m:X,c:Y}],this._world.loop.currentTick)),this._queuedPerPlayerSynchronizations.set($,Q)};_onChunkLatticeAddChunk=(J)=>{let $=this._createOrGetQueuedChunkSync(J.chunk);$.b=Array.from(J.chunk.blocks),$.rm=void 0,this._spawnedChunks.add($.c.join(","))};_onChunkLatticeRemoveChunk=(J)=>{let $=this._createOrGetQueuedChunkSync(J.chunk),X=$.c.join(",");if(this._spawnedChunks.has(X))this._queuedChunkSynchronizations.delete(X),this._spawnedChunks.delete(X);else $.rm=!0};_onChunkLatticeSetBlock=(J)=>{let $=this._createOrGetQueuedBlockSync(J.globalCoordinate);$.i=J.blockTypeId};_onEntitySetModelAnimationsPlaybackRate=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.ap=J.playbackRate};_onEntitySpawn=(J)=>{let $=J.entity.serialize();this._queuedEntitySynchronizations.set($.i,$),this._spawnedEntities.add($.i)};_onEntityDespawn=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);if(this._spawnedEntities.has($.i))this._queuedEntitySynchronizations.delete($.i),this._spawnedEntities.delete($.i);else $.rm=!0};_onEntitySetModelHiddenNodes=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.h=Array.from(J.modelHiddenNodes)};_onEntitySetModelScale=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.sv=J.modelScale?V8.serializeVector(J.modelScale):void 0};_onEntitySetModelShownNodes=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.sn=Array.from(J.modelShownNodes)};_onEntitySetModelTextureUri=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.mt=J.modelTextureUri};_onEntitySetOpacity=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.o=J.opacity};_onEntitySetParent=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.pe=J.parent?J.parent.id:void 0,$.pn=J.parentNodeName};_onEntitySetTintColor=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.t=J.tintColor?V8.serializeRgbColor(J.tintColor):void 0};_onEntityStartModelLoopedAnimations=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);if($.al=Array.from(new Set([...$.al??[],...J.animations])),$.as)$.as=$.as.filter((X)=>!J.animations.has(X)).filter(Boolean)};_onEntityStartModelOneshotAnimations=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);if($.ao=Array.from(new Set([...$.ao??[],...J.animations])),$.as)$.as=$.as.filter((X)=>!J.animations.has(X)).filter(Boolean)};_onEntityStopModelAnimations=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);if($.al)$.al=$.al.filter((X)=>!J.animations.has(X)).filter(Boolean);if($.ao)$.ao=$.ao.filter((X)=>!J.animations.has(X)).filter(Boolean);$.as=Array.from(new Set([...$.as??[],...J.animations]))};_onEntityUpdateRotation=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.r=[J.rotation.x,J.rotation.y,J.rotation.z,J.rotation.w]};_onEntityUpdatePosition=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.p=[J.position.x,J.position.y,J.position.z]};_onLightDespawn=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.rm=!0};_onLightSetAngle=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.a=J.angle};_onLightSetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.e=J.entity?J.entity.id:void 0,$.p=J.entity?void 0:$.p};_onLightSetColor=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.c=V8.serializeRgbColor(J.color)};_onLightSetDistance=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.d=J.distance};_onLightSetIntensity=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.n=J.intensity};_onLightSetOffset=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.o=J.offset?V8.serializeVector(J.offset):void 0};_onLightSetPenumbra=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.pe=J.penumbra};_onLightSetPosition=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.p=J.position?V8.serializeVector(J.position):void 0,$.e=J.position?void 0:$.e};_onLightSetTrackedEntity=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.te=J.entity?J.entity.id:void 0,$.tp=J.entity?void 0:$.tp};_onLightSetTrackedPosition=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.tp=J.position?V8.serializeVector(J.position):void 0,$.te=J.position?void 0:$.te};_onLightSpawn=(J)=>{let $=J.light.serialize();this._queuedLightSynchronizations.set($.i,$)};_onParticleEmitterBurst=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.b=J.count};_onParticleEmitterDespawn=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.rm=!0};_onParticleEmitterSetAlphaTest=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.at=J.alphaTest};_onParticleEmitterSetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.e=J.entity?J.entity.id:void 0,$.p=J.entity?void 0:$.p};_onParticleEmitterSetAttachedToEntityNodeName=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.en=J.attachedToEntityNodeName};_onParticleEmitterSetColorEnd=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.ce=J.colorEnd?V8.serializeRgbColor(J.colorEnd):void 0};_onParticleEmitterSetColorEndVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.cev=J.colorEndVariance?V8.serializeRgbColor(J.colorEndVariance):void 0};_onParticleEmitterSetColorStart=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.cs=J.colorStart?V8.serializeRgbColor(J.colorStart):void 0};_onParticleEmitterSetColorStartVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.csv=J.colorStartVariance?V8.serializeRgbColor(J.colorStartVariance):void 0};_onParticleEmitterSetGravity=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.g=J.gravity?V8.serializeVector(J.gravity):void 0};_onParticleEmitterSetLifetime=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.l=J.lifetime};_onParticleEmitterSetLifetimeVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.lv=J.lifetimeVariance};_onParticleEmitterSetMaxParticles=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.mp=J.maxParticles};_onParticleEmitterSetOffset=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.o=J.offset?V8.serializeVector(J.offset):void 0};_onParticleEmitterSetOpacityEnd=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.oe=J.opacityEnd};_onParticleEmitterSetOpacityEndVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.oev=J.opacityEndVariance};_onParticleEmitterSetOpacityStart=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.os=J.opacityStart};_onParticleEmitterSetOpacityStartVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.osv=J.opacityStartVariance};_onParticleEmitterSetPaused=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.pa=J.paused};_onParticleEmitterSetPosition=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.p=J.position?V8.serializeVector(J.position):void 0,$.e=J.position?void 0:$.e,$.en=J.position?void 0:$.en};_onParticleEmitterSetPositionVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.pv=J.positionVariance?V8.serializeVector(J.positionVariance):void 0};_onParticleEmitterSetRate=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.r=J.rate};_onParticleEmitterSetRateVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.rv=J.rateVariance};_onParticleEmitterSetSizeEnd=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.se=J.sizeEnd};_onParticleEmitterSetSizeEndVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.sev=J.sizeEndVariance};_onParticleEmitterSetSizeStart=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.ss=J.sizeStart};_onParticleEmitterSetSizeStartVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.ssv=J.sizeStartVariance};_onParticleEmitterSetTextureUri=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.tu=J.textureUri};_onParticleEmitterSetTransparent=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.t=J.transparent};_onParticleEmitterSetVelocity=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.v=J.velocity?V8.serializeVector(J.velocity):void 0};_onParticleEmitterSetVelocityVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.vv=J.velocityVariance?V8.serializeVector(J.velocityVariance):void 0};_onParticleEmitterSpawn=(J)=>{let $=J.particleEmitter.serialize();this._queuedParticleEmitterSynchronizations.set($.i,$)};_onPlayerCameraLookAtEntity=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.pl=V8.serializeVector(J.entity.position),delete $.et,delete $.pt};_onPlayerCameraLookAtPosition=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.pl=J.position?V8.serializeVector(J.position):void 0,delete $.et,delete $.pt};_onPlayerCameraSetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.e=J.entity.id,delete $.p};_onPlayerCameraSetAttachedToPosition=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.p=J.position?V8.serializeVector(J.position):void 0,delete $.e};_onPlayerCameraSetFilmOffset=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.fo=J.filmOffset};_onPlayerCameraSetForwardOffset=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.ffo=J.forwardOffset};_onPlayerCameraSetFov=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.fv=J.fov};_onPlayerCameraSetModelHiddenNodes=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.h=Array.from(J.modelHiddenNodes)};_onPlayerCameraSetModelShownNodes=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.s=Array.from(J.modelShownNodes)};_onPlayerCameraSetMode=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.m=J.mode};_onPlayerCameraSetOffset=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.o=J.offset?V8.serializeVector(J.offset):void 0};_onPlayerCameraSetShoulderAngle=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.sa=J.shoulderAngle};_onPlayerCameraSetTrackedEntity=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.et=J.entity?J.entity.id:void 0,delete $.pl,delete $.pt};_onPlayerCameraSetTrackedPosition=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.pt=J.position?V8.serializeVector(J.position):void 0,delete $.et,delete $.pl};_onPlayerCameraSetZoom=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.z=J.zoom};_onPlayerJoinedWorld=(J)=>{let{player:$}=J,X=this._queuedPerPlayerSynchronizations.get($)??[];X.push(h0.createPacket(h0.outboundPackets.entitiesPacketDefinition,this._world.entityManager.getAllEntities().map((Q)=>{if($.camera.attachedToEntity===void 0&&Q instanceof kX&&Q.player===$)$.camera.setAttachedToEntity(Q);return Q.serialize()}),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.audiosPacketDefinition,this._world.audioManager.getAllAudios().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.blockTypesPacketDefinition,this._world.blockTypeRegistry.serialize(),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.chunksPacketDefinition,this._world.chunkLattice.getAllChunks().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.lightsPacketDefinition,this._world.lightManager.getAllLights().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.particleEmittersPacketDefinition,this._world.particleEmitterManager.getAllParticleEmitters().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.sceneUIsPacketDefinition,this._world.sceneUIManager.getAllSceneUIs().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.worldPacketDefinition,this._world.serialize(),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.playersPacketDefinition,s$.instance.getConnectedPlayers().map((Q)=>Q.serialize()),this._world.loop.currentTick));let Y=this._createOrGetQueuedPlayerCameraSync($.camera);this._queuedPerPlayerCameraSynchronizations.set($,{...$.camera.serialize(),...Y}),this._queuedPerPlayerSynchronizations.set($,X),this._queuedPlayerSynchronizations.set($.id,$.serialize())};_onPlayerLeftWorld=(J)=>{let $=this._createOrGetQueuedPlayerSync(J.player);$.rm=!0};_onPlayerReconnectedWorld=(J)=>{this._onPlayerJoinedWorld(J)};_onPlayerRequestNotificationPermission=(J)=>{let{player:$}=J,X=this._queuedPerPlayerSynchronizations.get($)??[];X.push(h0.createPacket(h0.outboundPackets.notificationPermissionRequestPacketDefinition,null,this._world.loop.currentTick)),this._queuedPerPlayerSynchronizations.set($,X)};_onPlayerRequestSync=(J)=>{J.player.connection.send([h0.createPacket(h0.outboundPackets.syncResponsePacketDefinition,{r:J.receivedAt,s:Date.now(),p:performance.now()-J.receivedAtMs,n:this._world.loop.nextTickMs},this._world.loop.currentTick)])};_onPlayerUILoad=(J)=>{let $=this._createOrGetQueuedPlayerUISync(J.playerUI);$.u=J.htmlUri};_onPlayerUILockPointer=(J)=>{let $=this._createOrGetQueuedPlayerUISync(J.playerUI);$.p=J.lock};_onPlayerUISendData=(J)=>{this._createOrGetQueuedPlayerUIDatasSync(J.playerUI).push(J.data)};_onSceneUILoad=(J)=>{let $=J.sceneUI.serialize();this._queuedSceneUISynchronizations.set($.i,$),this._loadedSceneUIs.add($.i)};_onSceneUISetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.e=J.entity?J.entity.id:void 0,$.p=J.entity?void 0:$.p};_onSceneUISetOffset=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.o=J.offset?V8.serializeVector(J.offset):void 0};_onSceneUISetPosition=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.p=J.position?V8.serializeVector(J.position):void 0,$.e=J.position?void 0:$.e};_onSceneUISetState=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.s=J.state};_onSceneUISetViewDistance=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.v=J.viewDistance};_onSceneUIUnload=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);if(this._loadedSceneUIs.has($.i))this._queuedSceneUISynchronizations.delete($.i),this._loadedSceneUIs.delete($.i);else $.rm=!0};_onSimulationDebugRaycast=(J)=>{this._queuedDebugRaycastSynchronizations.push(V8.serializePhysicsDebugRaycast(J))};_onSimulationDebugRender=(J)=>{this._queuedBroadcasts.push(h0.createPacket(h0.outboundPackets.physicsDebugRenderPacketDefinition,{v:Array.from(J.vertices),c:Array.from(J.colors)},this._world.loop.currentTick))};_onWorldSetAmbientLightColor=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.ac=V8.serializeRgbColor(J.color)};_onWorldSetAmbientLightIntensity=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.ai=J.intensity};_onWorldSetDirectionalLightColor=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.dc=V8.serializeRgbColor(J.color)};_onWorldSetDirectionalLightIntensity=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.di=J.intensity};_onWorldSetDirectionalLightPosition=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.dp=V8.serializeVector(J.position)};_onWorldSetFogColor=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.fc=V8.serializeRgbColor(J.color)};_onWorldSetFogFar=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.ff=J.far};_onWorldSetFogNear=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.fn=J.near};_onWorldSetSkyboxIntensity=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.si=J.intensity};_onWorldSetSkyboxUri=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.s=J.uri};_createOrGetQueuedAudioSync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedAudioSync(): Audio has no id!");let $=this._queuedAudioSynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedAudioSynchronizations.set(J.id,$);return $}_createOrGetQueuedBlockSync(J){let{x:$,y:X,z:Y}=J,Q=`${$},${X},${Y}`,W=this._queuedBlockSynchronizations.get(Q);if(!W)W={i:0,c:[$,X,Y]},this._queuedBlockSynchronizations.set(Q,W);return W}_createOrGetQueuedChunkSync(J){if(!J.originCoordinate)n.fatalError("NetworkSynchronizer._createOrGetQueuedChunkSync(): Chunk has no origin coordinate!");let{x:$,y:X,z:Y}=J.originCoordinate,Q=`${$},${X},${Y}`,W=this._queuedChunkSynchronizations.get(Q);if(!W)W={c:[$,X,Y]},this._queuedChunkSynchronizations.set(Q,W);return W}_createOrGetQueuedEntitySync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedEntitySync(): Entity has no id!");let $=this._queuedEntitySynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedEntitySynchronizations.set(J.id,$);return $}_createOrGetQueuedLightSync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedLightSync(): Light has no id!");let $=this._queuedLightSynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedLightSynchronizations.set(J.id,$);return $}_createOrGetQueuedParticleEmitterSync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedParticleEmitterSync(): ParticleEmitter has no id!");let $=this._queuedParticleEmitterSynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedParticleEmitterSynchronizations.set(J.id,$);return $}_createOrGetQueuedPlayerSync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedPlayerSync(): Player has no id!");let $=this._queuedPlayerSynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedPlayerSynchronizations.set(J.id,$);return $}_createOrGetQueuedPlayerCameraSync(J){let $=this._queuedPerPlayerCameraSynchronizations.get(J.player);if(!$)$={},this._queuedPerPlayerCameraSynchronizations.set(J.player,$);return $}_createOrGetQueuedPlayerUISync(J){let $=this._queuedPerPlayerUISynchronizations.get(J.player);if(!$)$={},this._queuedPerPlayerUISynchronizations.set(J.player,$);return $}_createOrGetQueuedPlayerUIDatasSync(J){let $=this._queuedPerPlayerUIDatasSynchronizations.get(J.player);if(!$)$=[],this._queuedPerPlayerUIDatasSynchronizations.set(J.player,$);return $}_createOrGetQueuedSceneUISync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedSceneUISync(): SceneUI has no id!");let $=this._queuedSceneUISynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedSceneUISynchronizations.set(J.id,$);return $}_createOrGetQueuedWorldSync(J){if(J.id!==this._world.id)n.fatalError("NetworkSynchronizer._createOrGetQueuedWorldSync(): World does not match this network synchronizer world!");return this._queuedWorldSynchronization??={i:J.id}}_createOrGetSynchronizedPlayerReliablePackets(J,$){let X=this._synchronizedPlayerReliablePackets.get(J);if(!X)X=[...$],this._synchronizedPlayerReliablePackets.set(J,X);return X}}class HL{_particleEmitters=new Map;_nextParticleEmitterId=1;_world;constructor(J){this._world=J}get world(){return this._world}despawnEntityAttachedParticleEmitters(J){this.getAllEntityAttachedParticleEmitters(J).forEach(($)=>{$.despawn()})}getAllParticleEmitters(){return Array.from(this._particleEmitters.values())}getAllEntityAttachedParticleEmitters(J){return this.getAllParticleEmitters().filter(($)=>$.attachedToEntity===J)}registerParticleEmitter(J){if(J.id!==void 0)return J.id;let $=this._nextParticleEmitterId;return this._particleEmitters.set($,J),this._nextParticleEmitterId++,$}unregisterParticleEmitter(J){if(J.id===void 0)return;this._particleEmitters.delete(J.id)}}class qL{_sceneUIs=new Map;_nextSceneUIId=1;_world;constructor(J){this._world=J}get world(){return this._world}getAllSceneUIs(){return Array.from(this._sceneUIs.values())}getAllEntityAttachedSceneUIs(J){return this.getAllSceneUIs().filter(($)=>$.attachedToEntity===J)}getSceneUIById(J){return this._sceneUIs.get(J)}registerSceneUI(J){if(J.id!==void 0)return J.id;let $=this._nextSceneUIId;return this._sceneUIs.set($,J),this._nextSceneUIId++,$}unloadEntityAttachedSceneUIs(J){this.getAllEntityAttachedSceneUIs(J).forEach(($)=>{$.unload()})}unregisterSceneUI(J){if(J.id===void 0)return;this._sceneUIs.delete(J.id)}}var xK6=2,fK6=3;class zL{_accumulatorMs=0;_targetTicksPerSecond;_fixedTimestepMs;_fixedTimestepS;_maxAccumulatorMs;_nextTickMs=0;_lastLoopTimeMs=0;_tickFunction;_tickErrorCallback;_tickHandle=null;constructor(J,$,X){this._targetTicksPerSecond=J,this._fixedTimestepS=Math.fround(1/J),this._fixedTimestepMs=Math.fround(this._fixedTimestepS*1000),this._maxAccumulatorMs=this._fixedTimestepMs*fK6,this._tickFunction=$,this._tickErrorCallback=X}get targetTicksPerSecond(){return this._targetTicksPerSecond}get fixedTimestepMs(){return this._fixedTimestepMs}get fixedTimestepS(){return this._fixedTimestepS}get isStarted(){return!!this._tickHandle}get nextTickMs(){return this._nextTickMs}start(){if(this._tickHandle)return;this._lastLoopTimeMs=performance.now();let J=()=>{let $=performance.now(),X=$-this._lastLoopTimeMs;if(this._lastLoopTimeMs=$,this._accumulatorMs+=X,this._accumulatorMs>this._maxAccumulatorMs)this._accumulatorMs=this._maxAccumulatorMs;if(this._accumulatorMs>=this._fixedTimestepMs)w6.startSpan({operation:"ticker_tick"},()=>{let Y=0;while(this._accumulatorMs>=this._fixedTimestepMs&&Y<xK6)this._tick(this._fixedTimestepMs),this._accumulatorMs-=this._fixedTimestepMs,Y++});this._nextTickMs=Math.max(0,this._fixedTimestepMs-this._accumulatorMs),this._tickHandle=setTimeout(J,this._nextTickMs)};J()}stop(){if(!this._tickHandle)return;clearTimeout(this._tickHandle),this._tickHandle=null}_tick(J){try{this._tickFunction(J)}catch($){if($ instanceof Error&&this._tickErrorCallback)this._tickErrorCallback($);else n.warning(`Ticker._tick(): tick callback threw an error, but it was not an instance of Error. Error: ${$}`)}}}var Iq8;((W)=>{W.START="WORLD_LOOP.START";W.STOP="WORLD_LOOP.STOP";W.TICK_START="WORLD_LOOP.TICK_START";W.TICK_END="WORLD_LOOP.TICK_END";W.TICK_ERROR="WORLD_LOOP.TICK_ERROR"})(Iq8||={});class UL extends $8{_currentTick=0;_ticker;_world;constructor(J,$=Jd){super();this._ticker=new zL($,this._tick,this._onTickError),this._world=J}get currentTick(){return this._currentTick}get isStarted(){return this._ticker.isStarted}get nextTickMs(){return this._ticker.nextTickMs}get timestepS(){return this._ticker.fixedTimestepS}get world(){return this._world}start(){this._ticker.start(),this.emitWithWorld(this._world,"WORLD_LOOP.START",{worldLoop:this})}stop(){this._ticker.stop(),this.emitWithWorld(this._world,"WORLD_LOOP.STOP",{worldLoop:this})}_tick=(J)=>{this.emitWithWorld(this._world,"WORLD_LOOP.TICK_START",{worldLoop:this,tickDeltaMs:J});let $=performance.now();w6.startSpan({operation:"world_tick",attributes:{serverPlayerCount:s$.instance.playerCount,targetTickRate:this._ticker.targetTicksPerSecond,targetTickRateMs:this._ticker.fixedTimestepMs,worldId:this._world.id,worldName:this._world.name,worldChunkCount:this._world.chunkLattice.chunkCount,worldEntityCount:this._world.entityManager.entityCount,worldLoopTick:this._currentTick}},()=>{w6.startSpan({operation:"entities_tick"},()=>this._world.entityManager.tickEntities(J)),w6.startSpan({operation:"simulation_step"},()=>this._world.simulation.step(J)),w6.startSpan({operation:"entities_emit_updates"},()=>this._world.entityManager.checkAndEmitUpdates()),w6.startSpan({operation:"network_synchronize"},()=>this._world.networkSynchronizer.synchronize())}),this._currentTick++,this.emitWithWorld(this._world,"WORLD_LOOP.TICK_END",{worldLoop:this,tickDurationMs:performance.now()-$})};_onTickError=(J)=>{n.error(`WorldLoop._onTickError(): Error: ${J}`),this.emitWithWorld(this._world,"WORLD_LOOP.TICK_ERROR",{worldLoop:this,error:J})}}var Xd;((q)=>{q.SET_AMBIENT_LIGHT_COLOR="WORLD.SET_AMBIENT_LIGHT_COLOR";q.SET_AMBIENT_LIGHT_INTENSITY="WORLD.SET_AMBIENT_LIGHT_INTENSITY";q.SET_DIRECTIONAL_LIGHT_COLOR="WORLD.SET_DIRECTIONAL_LIGHT_COLOR";q.SET_DIRECTIONAL_LIGHT_INTENSITY="WORLD.SET_DIRECTIONAL_LIGHT_INTENSITY";q.SET_DIRECTIONAL_LIGHT_POSITION="WORLD.SET_DIRECTIONAL_LIGHT_POSITION";q.SET_FOG_COLOR="WORLD.SET_FOG_COLOR";q.SET_FOG_FAR="WORLD.SET_FOG_FAR";q.SET_FOG_NEAR="WORLD.SET_FOG_NEAR";q.SET_SKYBOX_INTENSITY="WORLD.SET_SKYBOX_INTENSITY";q.SET_SKYBOX_URI="WORLD.SET_SKYBOX_URI";q.START="WORLD.START";q.STOP="WORLD.STOP"})(Xd||={});class FL extends $8{_id;_ambientLightColor;_ambientLightIntensity;_audioManager;_blockTypeRegistry;_chatManager;_chunkLattice;_directionalLightColor;_directionalLightIntensity;_directionalLightPosition;_entityManager;_fogColor;_fogFar;_fogNear;_lightManager;_loop;_name;_networkSynchronizer;_particleEmitterManager;_sceneUIManager;_simulation;_skyboxIntensity;_skyboxUri;_tag;constructor(J){super();if(this._id=J.id,this._ambientLightColor=J.ambientLightColor??{r:255,g:255,b:255},this._ambientLightIntensity=J.ambientLightIntensity??1,this._directionalLightColor=J.directionalLightColor??{r:255,g:255,b:255},this._directionalLightIntensity=J.directionalLightIntensity??3,this._directionalLightPosition=J.directionalLightPosition??{x:100,y:150,z:100},this._fogColor=J.fogColor,this._fogFar=J.fogFar??550,this._fogNear=J.fogNear??500,this._name=J.name,this._skyboxIntensity=J.skyboxIntensity??1,this._skyboxUri=J.skyboxUri,this._tag=J.tag,this._audioManager=new aq(this),this._blockTypeRegistry=new FF(this),this._chatManager=new eF(this),this._chunkLattice=new J3(this),this._entityManager=new Q3(this),this._lightManager=new GL(this),this._loop=new UL(this,J.tickRate),this._networkSynchronizer=new nP(this),this._particleEmitterManager=new HL(this),this._sceneUIManager=new qL(this),this._simulation=new VL(this,J.tickRate,J.gravity),J.map)this.loadMap(J.map)}get id(){return this._id}get ambientLightColor(){return this._ambientLightColor}get ambientLightIntensity(){return this._ambientLightIntensity}get blockTypeRegistry(){return this._blockTypeRegistry}get chatManager(){return this._chatManager}get chunkLattice(){return this._chunkLattice}get directionalLightColor(){return this._directionalLightColor}get directionalLightIntensity(){return this._directionalLightIntensity}get directionalLightPosition(){return this._directionalLightPosition}get entityManager(){return this._entityManager}get fogColor(){return this._fogColor}get fogFar(){return this._fogFar}get fogNear(){return this._fogNear}get lightManager(){return this._lightManager}get loop(){return this._loop}get name(){return this._name}get networkSynchronizer(){return this._networkSynchronizer}get particleEmitterManager(){return this._particleEmitterManager}get sceneUIManager(){return this._sceneUIManager}get simulation(){return this._simulation}get skyboxIntensity(){return this._skyboxIntensity}get skyboxUri(){return this._skyboxUri}get audioManager(){return this._audioManager}get tag(){return this._tag}loadMap(J){if(this.chunkLattice.clear(),J.blockTypes)for(let $ of J.blockTypes)this.blockTypeRegistry.registerGenericBlockType({id:$.id,isLiquid:$.isLiquid,lightLevel:$.lightLevel,name:$.name,textureUri:$.textureUri});if(J.blocks){let $={};for(let X in J.blocks){let Y=J.blocks[X],Q=X.indexOf(","),W=X.indexOf(",",Q+1),K=Number(X.slice(0,Q)),Z=Number(X.slice(Q+1,W)),G=Number(X.slice(W+1));if(!$[Y])$[Y]=[];$[Y].push({x:K,y:Z,z:G})}this.chunkLattice.initializeBlocks($)}if(J.entities)for(let $ in J.entities){let X=J.entities[$],Y=$.indexOf(","),Q=$.indexOf(",",Y+1),W=Number($.slice(0,Y)),K=Number($.slice(Y+1,Q)),Z=Number($.slice(Q+1));new v6({isEnvironmental:!0,...X}).spawn(this,{x:W,y:K,z:Z})}}setAmbientLightColor(J){this._ambientLightColor=J,this.emit("WORLD.SET_AMBIENT_LIGHT_COLOR",{world:this,color:J})}setAmbientLightIntensity(J){this._ambientLightIntensity=J,this.emit("WORLD.SET_AMBIENT_LIGHT_INTENSITY",{world:this,intensity:J})}setDirectionalLightColor(J){this._directionalLightColor=J,this.emit("WORLD.SET_DIRECTIONAL_LIGHT_COLOR",{world:this,color:J})}setDirectionalLightIntensity(J){this._directionalLightIntensity=J,this.emit("WORLD.SET_DIRECTIONAL_LIGHT_INTENSITY",{world:this,intensity:J})}setDirectionalLightPosition(J){this._directionalLightPosition=J,this.emit("WORLD.SET_DIRECTIONAL_LIGHT_POSITION",{world:this,position:J})}setFogColor(J){this._fogColor=J,this.emit("WORLD.SET_FOG_COLOR",{world:this,color:J})}setFogFar(J){this._fogFar=J,this.emit("WORLD.SET_FOG_FAR",{world:this,far:J})}setFogNear(J){this._fogNear=J,this.emit("WORLD.SET_FOG_NEAR",{world:this,near:J})}setSkyboxIntensity(J){this._skyboxIntensity=J,this.emit("WORLD.SET_SKYBOX_INTENSITY",{world:this,intensity:J})}setSkyboxUri(J){this._skyboxUri=J,this.emit("WORLD.SET_SKYBOX_URI",{world:this,uri:J})}start(){if(this._loop.isStarted)return;this._loop.start(),this.emit("WORLD.START",{world:this,startedAtMs:Date.now()})}stop(){if(!this._loop.isStarted)return;this._loop.stop(),this.emit("WORLD.STOP",{world:this,stoppedAtMs:Date.now()})}serialize(){return V8.serializeWorld(this)}}var Aq8;(($)=>$.WORLD_CREATED="WORLD_MANAGER.WORLD_CREATED")(Aq8||={});class tW{static instance=new tW;_defaultWorld;_nextWorldId=1;_worlds=new Map;createWorld(J){let $=new FL({...J,id:this._nextWorldId++});return $.start(),this._worlds.set($.id,$),$8.globalInstance.emit("WORLD_MANAGER.WORLD_CREATED",{world:$}),$}getAllWorlds(){return Array.from(this._worlds.values())}getDefaultWorld(){return this._defaultWorld??=this.createWorld({name:"Default World",skyboxUri:"skyboxes/partly-cloudy"}),this._defaultWorld}getWorldsByTag(J){let $=[];return this._worlds.forEach((X)=>{if(X.tag===J)$.push(X)}),$}getWorld(J){return this._worlds.get(J)}setDefaultWorld(J){this._defaultWorld=J}}var _q8;((Y)=>{Y.PLAYER_CONNECTED="PLAYER_MANAGER.PLAYER_CONNECTED";Y.PLAYER_DISCONNECTED="PLAYER_MANAGER.PLAYER_DISCONNECTED";Y.PLAYER_RECONNECTED="PLAYER_MANAGER.PLAYER_RECONNECTED"})(_q8||={});class s${static instance=new s$;worldSelectionHandler;_connectionPlayers=new Map;constructor(){$8.globalInstance.on("CONNECTION.OPENED",({connection:J,session:$})=>{this._onConnectionOpened(J,$)}),$8.globalInstance.on("CONNECTION.DISCONNECTED",({connection:J})=>{this._onConnectionDisconnected(J)}),$8.globalInstance.on("CONNECTION.RECONNECTED",({connection:J})=>{this._onConnectionReconnected(J)}),$8.globalInstance.on("CONNECTION.CLOSED",({connection:J})=>{this._onConnectionClosed(J)})}get playerCount(){return this._connectionPlayers.size}getConnectedPlayers(){return Array.from(this._connectionPlayers.values())}getConnectedPlayersByWorld(J){return this.getConnectedPlayers().filter(($)=>$.world===J)}getConnectedPlayerByUsername(J){return Array.from(this._connectionPlayers.values()).find(($)=>{return $.username.toLowerCase()===J.toLowerCase()})}async _onConnectionOpened(J,$){let X=new TH(J,$);await X.loadInitialPersistedData(),$8.globalInstance.emit("PLAYER_MANAGER.PLAYER_CONNECTED",{player:X});let Y=await this.worldSelectionHandler?.(X);X.joinWorld(Y??tW.instance.getDefaultWorld()),this._connectionPlayers.set(J,X)}_onConnectionDisconnected(J){let $=this._connectionPlayers.get(J);if($)$.resetInputs(),$.camera.reset()}_onConnectionReconnected(J){let $=this._connectionPlayers.get(J);if($)$.reconnected(),$8.globalInstance.emit("PLAYER_MANAGER.PLAYER_RECONNECTED",{player:$});else n.warning(`PlayerManager._onConnectionReconnected(): Connection ${J.id} not in the PlayerManager._connectionPlayers map.`)}_onConnectionClosed(J){let $=this._connectionPlayers.get(J);if($){if($.disconnect(),this._connectionPlayers.delete(J),!J.isDuplicate)sQ.instance.unloadPlayerData($).catch((X)=>{n.warning(`PlayerManager._onConnectionClosed(): Failed to unload player data for player ${$.id}. Error: ${X}`)});$8.globalInstance.emit("PLAYER_MANAGER.PLAYER_DISCONNECTED",{player:$})}else n.warning(`PlayerManager._onConnectionClosed(): Connection ${J.id} not in the PlayerManager._connectionPlayers map.`)}}import{randomBytes as gK6}from"crypto";import{Http3Server as mK6}from"@fails-components/webtransport";class BL extends $8{static instance=new BL;_connectionIdConnections=new Map;_userIdConnections=new Map;_wss;_wts;constructor(){super();this._wss=new gv.default({noServer:!0}),this._wss.on("connection",(J,$)=>this._onConnection(J,void 0,$.connectionId,$.session)),this._wts=new mK6({port:pP,host:"0.0.0.0",secret:gK6(32).toString("hex"),cert:lP,privKey:cP,defaultDatagramsReadableMode:"bytes",initialStreamFlowControlWindow:1048576,streamShouldAutoTuneReceiveWindow:!0,streamFlowControlWindowSizeLimit:6291456,initialSessionFlowControlWindow:2097152,sessionShouldAutoTuneReceiveWindow:!0,sessionFlowControlWindowSizeLimit:15728640}),this._wts.setRequestCallback(this._onWebTransportRequest),this._startWebTransport().catch((J)=>{n.error(`Socket: WebTransport server failed to start or crashed while listening for sessions. Error: ${J}`)}),$8.globalInstance.on("WEBSERVER.UPGRADE",async({req:J,socket:$,head:X})=>{$.on("error",()=>{}),await this._authorizeAndConnectWebsocket(J,$,X)})}async _authorizeAndConnectWebsocket(J,$,X){let Y=await this._authorizeConnection(J.url??"");if(Y.error){$.end();return}J.connectionId=Y.connectionId,J.session=Y.session,$.setNoDelay(!0),this._wss.handleUpgrade(J,$,X,(Q)=>{if(Q.readyState!==PH.default.OPEN)Q.once("open",()=>this._wss.emit("connection",Q,J));else this._wss.emit("connection",Q,J)})}async _authorizeConnection(J){let $=J.includes("?")?J.slice(J.indexOf("?")):"",X=new URLSearchParams($),Y=X.get("connectionId")??void 0,Q=X.get("sessionToken")??"";if(Y&&this._isValidConnectionId(Y))return{connectionId:Y};else{let W=await L1.instance.getPlayerSession(Q);if(W?.error)return{error:W.error};else if(W)return{session:W}}return{}}_isValidConnectionId(J){return this._connectionIdConnections.has(J)}_onConnection=(J,$,X,Y)=>{let Q=Y?.user.id,W=X&&this._connectionIdConnections.get(X),K=Q&&this._userIdConnections.get(Q);if(!W&&K)K.killDuplicateConnection();if(W){if(J)W.bindWs(J);if($)W.bindWt($).catch((Z)=>{n.error(`Socket._onConnection(): WebTransport binding failed. Error: ${Z}`)})}else{let Z=new i$(J,$,Y);if(Z.on("CONNECTION.CLOSED",()=>{if(this._connectionIdConnections.delete(Z.id),Q&&this._userIdConnections.get(Q)===Z)this._userIdConnections.delete(Q)}),this._connectionIdConnections.set(Z.id,Z),Q)this._userIdConnections.set(Q,Z)}};_onWebTransportRequest=async({header:J})=>{let{connectionId:$,session:X,error:Y}=await this._authorizeConnection(J[":path"]??"");return{status:Y?401:200,path:"/",userData:{connectionId:$,session:X}}};async _startWebTransport(){this._wts.startServer();for await(let J of this._wts.sessionStream("/"))try{let{connectionId:$,session:X}=J.userData;this._onConnection(void 0,J,$,X)}catch($){n.error(`Socket._startWebTransport(): WebTransport connection failed. Error: ${$}`)}}}Buffer.poolSize=134217728;var vq8;((X)=>{X.START="GAMESERVER.START";X.STOP="GAMESERVER.STOP"})(vq8||={});function uK6(J){Y5.init().then(()=>{return eW.instance.blockTextureRegistry.preloadAtlas()}).then(()=>{return eW.instance.modelRegistry.preloadModels()}).then(()=>{if(J.length>0)J(eW.instance.worldManager.getDefaultWorld());else J();eW.instance.start()}).catch(($)=>{n.fatalError(`Failed to initialize the game engine, exiting. Error: ${$}`)})}class eW{static _instance;_blockTextureRegistry=RQ.instance;_modelRegistry=R9.instance;_playerManager=s$.instance;_socket=BL.instance;_worldManager=tW.instance;_webServer=uq.instance;constructor(){}static get instance(){if(!this._instance)this._instance=new eW;return this._instance}get blockTextureRegistry(){return this._blockTextureRegistry}get modelRegistry(){return this._modelRegistry}get playerManager(){return this._playerManager}get socket(){return this._socket}get webServer(){return this._webServer}get worldManager(){return this._worldManager}start(){if($8.globalInstance.emit("GAMESERVER.START",{startedAtMs:performance.now()}),this._webServer.start(),process.env.NODE_ENV!=="production")console.log("---"),console.log("\uD83D\uDFE2 Server Running: You can test & play it at: https://hytopia.com/play");n.enableCrashProtection()}}var q9=O0(LG(),1);class jG extends Float32Array{constructor(J,$,X,Y){super([J,$,X,Y])}get determinant(){return q9.mat2.determinant(this)}get frobeniusNorm(){return q9.mat2.frob(this)}static create(){let J=new jG(0,0,0,0);return q9.mat2.identity(J),J}static fromRotation(J){let $=jG.create();return q9.mat2.fromRotation($,J),$}static fromScaling(J){let $=jG.create();return q9.mat2.fromScaling($,J),$}add(J){return q9.mat2.add(this,this,J),this}adjoint(){return q9.mat2.adjoint(this,this),this}clone(){return new jG(this[0],this[1],this[2],this[3])}copy(J){return q9.mat2.copy(this,J),this}equals(J){return q9.mat2.equals(this,J)}exactEquals(J){return q9.mat2.exactEquals(this,J)}identity(){return q9.mat2.identity(this),this}invert(){return q9.mat2.invert(this,this),this}multiply(J){return q9.mat2.mul(this,this,J),this}multiplyScalar(J){return q9.mat2.multiplyScalar(this,this,J),this}rotate(J){return q9.mat2.rotate(this,this,J),this}subtract(J){return q9.mat2.sub(this,this,J),this}toString(){return`[${this[0]},${this[1]}][${this[2]},${this[3]}]`}transpose(){return q9.mat2.transpose(this,this),this}}var P6=O0(LG(),1);class tX extends Float32Array{constructor(J,$,X,Y,Q,W,K,Z,G){super([J,$,X,Y,Q,W,K,Z,G])}get determinant(){return P6.mat3.determinant(this)}get frobeniusNorm(){return P6.mat3.frob(this)}static create(){let J=new tX(0,0,0,0,0,0,0,0,0);return P6.mat3.identity(J),J}static fromMatrix4(J){let $=tX.create();return P6.mat3.fromMat4($,J),$}static fromQuaternion(J){let $=tX.create();return P6.mat3.fromQuat($,J),$}static fromRotation(J){let $=tX.create();return P6.mat3.fromRotation($,J),$}static fromScaling(J){let $=tX.create();return P6.mat3.fromScaling($,J),$}static fromTranslation(J){let $=tX.create();return P6.mat3.fromTranslation($,J),$}add(J){return P6.mat3.add(this,this,J),this}adjoint(){return P6.mat3.adjoint(this,this),this}clone(){return new tX(this[0],this[1],this[2],this[3],this[4],this[5],this[6],this[7],this[8])}copy(J){return P6.mat3.copy(this,J),this}equals(J){return P6.mat3.equals(this,J)}exactEquals(J){return P6.mat3.exactEquals(this,J)}identity(){return P6.mat3.identity(this),this}invert(){return P6.mat3.invert(this,this),this}multiply(J){return P6.mat3.mul(this,this,J),this}multiplyScalar(J){return P6.mat3.multiplyScalar(this,this,J),this}transformVector(J){return J.transformMatrix3(this)}projection(J,$){return P6.mat3.projection(this,J,$),this}rotate(J){return P6.mat3.rotate(this,this,J),this}subtract(J){return P6.mat3.sub(this,this,J),this}toString(){return`[${this[0]},${this[1]},${this[2]}][${this[3]},${this[4]},${this[5]}][${this[6]},${this[7]},${this[8]}]`}transpose(){return P6.mat3.transpose(this,this),this}}var e8=O0(LG(),1);class I7 extends Float32Array{constructor(J,$,X,Y,Q,W,K,Z,G,V,H,z,q,U,F,B){super([J,$,X,Y,Q,W,K,Z,G,V,H,z,q,U,F,B])}get determinant(){return e8.mat4.determinant(this)}get frobeniusNorm(){return e8.mat4.frob(this)}static create(){let J=new I7(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);return e8.mat4.identity(J),J}static fromQuaternion(J){let $=I7.create();return e8.mat4.fromQuat($,J),$}static fromRotation(J,$){let X=I7.create();return e8.mat4.fromRotation(X,J,$),X}static fromRotationTranslation(J,$){let X=I7.create();return e8.mat4.fromRotationTranslation(X,J,$),X}static fromRotationTranslationScale(J,$,X){let Y=I7.create();return e8.mat4.fromRotationTranslationScale(Y,J,$,X),Y}static fromRotationTranslationScaleOrigin(J,$,X,Y){let Q=I7.create();return e8.mat4.fromRotationTranslationScaleOrigin(Q,J,$,X,Y),Q}static fromScaling(J){let $=I7.create();return e8.mat4.fromScaling($,J),$}static fromTranslation(J){let $=I7.create();return e8.mat4.fromTranslation($,J),$}static fromXRotation(J){let $=I7.create();return e8.mat4.fromXRotation($,J),$}static fromYRotation(J){let $=I7.create();return e8.mat4.fromYRotation($,J),$}static fromZRotation(J){let $=I7.create();return e8.mat4.fromZRotation($,J),$}add(J){return e8.mat4.add(this,this,J),this}adjoint(){return e8.mat4.adjoint(this,this),this}clone(){return new I7(this[0],this[1],this[2],this[3],this[4],this[5],this[6],this[7],this[8],this[9],this[10],this[11],this[12],this[13],this[14],this[15])}copy(J){return e8.mat4.copy(this,J),this}equals(J){return e8.mat4.equals(this,J)}exactEquals(J){return e8.mat4.exactEquals(this,J)}frustrum(J,$,X,Y,Q,W){return e8.mat4.frustum(this,J,$,X,Y,Q,W),this}identity(){return e8.mat4.identity(this),this}invert(){return e8.mat4.invert(this,this),this}lookAt(J,$,X){return e8.mat4.lookAt(this,J,$,X),this}multiply(J){return e8.mat4.mul(this,this,J),this}multiplyScalar(J){return e8.mat4.multiplyScalar(this,this,J),this}orthographic(J,$,X,Y,Q,W){return e8.mat4.ortho(this,J,$,X,Y,Q,W),this}perspective(J,$,X,Y){return e8.mat4.perspective(this,J,$,X,Y),this}rotate(J,$){return e8.mat4.rotate(this,this,J,$),this}rotateX(J){return e8.mat4.rotateX(this,this,J),this}rotateY(J){return e8.mat4.rotateY(this,this,J),this}rotateZ(J){return e8.mat4.rotateZ(this,this,J),this}scale(J){return e8.mat4.scale(this,this,J),this}subtract(J){return e8.mat4.sub(this,this,J),this}targetTo(J,$,X){return e8.mat4.targetTo(this,J,$,X),this}toString(){return`[${this[0]},${this[1]},${this[2]},${this[3]}][${this[4]},${this[5]},${this[6]},${this[7]}][${this[8]},${this[9]},${this[10]},${this[11]}][${this[12]},${this[13]},${this[14]},${this[15]}]`}translate(J){return e8.mat4.translate(this,this,J),this}transpose(){return e8.mat4.transpose(this,this),this}}var h5=O0(LG(),1);class dq extends Float32Array{constructor(J,$,X,Y){super([J,$,X,Y])}get length(){return h5.quat.length(this)}get squaredLength(){return h5.quat.squaredLength(this)}get magnitude(){return h5.quat.length(this)}get squaredMagnitude(){return h5.quat.squaredLength(this)}get x(){return this[0]}set x(J){this[0]=J}get y(){return this[1]}set y(J){this[1]=J}get z(){return this[2]}set z(J){this[2]=J}get w(){return this[3]}set w(J){this[3]=J}static fromEuler(J,$,X){let Y=h5.quat.fromEuler(new Float32Array(4),J,$,X);return new dq(Y[0],Y[1],Y[2],Y[3])}static fromQuaternionLike(J){return new dq(J.x,J.y,J.z,J.w)}clone(){return new dq(this.x,this.y,this.z,this.w)}conjugate(){return h5.quat.conjugate(this,this),this}copy(J){return h5.quat.copy(this,J),this}dot(J){return h5.quat.dot(this,J)}exponential(){return h5.quat.exp(this,this),this}equals(J){return h5.quat.equals(this,J)}exactEquals(J){return h5.quat.exactEquals(this,J)}getAngle(J){return h5.quat.getAngle(this,J)}identity(){return h5.quat.identity(this),this}invert(){return h5.quat.invert(this,this),this}lerp(J,$){return h5.quat.lerp(this,this,J,$),this}logarithm(){return h5.quat.ln(this,this),this}multiply(J){return h5.quat.multiply(this,this,J),this}transformVector(J){return J.transformQuaternion(this)}normalize(){return h5.quat.normalize(this,this),this}power(J){return h5.quat.pow(this,this,J),this}randomize(){return h5.quat.random(this),this}rotateX(J){return h5.quat.rotateX(this,this,J),this}rotateY(J){return h5.quat.rotateY(this,this,J),this}rotateZ(J){return h5.quat.rotateZ(this,this,J),this}scale(J){return h5.quat.scale(this,this,J),this}setAxisAngle(J,$){return h5.quat.setAxisAngle(this,J,$),this}slerp(J,$){return h5.quat.slerp(this,this,J,$),this}toString(){return`${this.x},${this.y},${this.z},${this.w}`}}var L5=O0(LG(),1);class LL extends Float32Array{constructor(J,$){super([J,$])}get length(){return L5.vec2.length(this)}get squaredLength(){return L5.vec2.squaredLength(this)}get magnitude(){return L5.vec2.length(this)}get squaredMagnitude(){return L5.vec2.squaredLength(this)}get x(){return this[0]}set x(J){this[0]=J}get y(){return this[1]}set y(J){this[1]=J}static create(){return new LL(0,0)}add(J){return L5.vec2.add(this,this,J),this}angle(J){return L5.vec2.angle(this,J)}ceil(){return L5.vec2.ceil(this,this),this}clone(){return new LL(this.x,this.y)}copy(J){return L5.vec2.copy(this,J),this}distance(J){return L5.vec2.distance(this,J)}divide(J){return L5.vec2.divide(this,this,J),this}dot(J){return L5.vec2.dot(this,J)}equals(J){return L5.vec2.equals(this,J)}exactEquals(J){return L5.vec2.exactEquals(this,J)}floor(){return L5.vec2.floor(this,this),this}invert(){return L5.vec2.inverse(this,this),this}lerp(J,$){return L5.vec2.lerp(this,this,J,$),this}max(J){return L5.vec2.max(this,this,J),this}min(J){return L5.vec2.min(this,this,J),this}multiply(J){return L5.vec2.mul(this,this,J),this}negate(){return L5.vec2.negate(this,this),this}normalize(){return L5.vec2.normalize(this,this),this}randomize(J){return L5.vec2.random(this,J),this}rotate(J,$){return L5.vec2.rotate(this,this,J,$),this}round(){return L5.vec2.round(this,this),this}scale(J){return L5.vec2.scale(this,this,J),this}scaleAndAdd(J,$){return L5.vec2.scaleAndAdd(this,this,J,$),this}subtract(J){return L5.vec2.sub(this,this,J),this}toString(){return`${this.x},${this.y}`}transformMatrix2(J){return L5.vec2.transformMat2(this,this,J),this}transformMatrix3(J){return L5.vec2.transformMat3(this,this,J),this}transformMatrix4(J){return L5.vec2.transformMat4(this,this,J),this}zero(){return L5.vec2.zero(this),this}}var H5=O0(LG(),1);class lq extends Float32Array{constructor(J,$,X){super([J,$,X])}get length(){return H5.vec3.length(this)}get squaredLength(){return H5.vec3.squaredLength(this)}get magnitude(){return H5.vec3.length(this)}get squaredMagnitude(){return H5.vec3.squaredLength(this)}get x(){return this[0]}set x(J){this[0]=J}get y(){return this[1]}set y(J){this[1]=J}get z(){return this[2]}set z(J){this[2]=J}static create(){return new lq(0,0,0)}static fromVector3Like(J){return new lq(J.x,J.y,J.z)}add(J){return H5.vec3.add(this,this,J),this}ceil(){return H5.vec3.ceil(this,this),this}clone(){return new lq(this.x,this.y,this.z)}copy(J){return H5.vec3.copy(this,J),this}cross(J){return H5.vec3.cross(this,this,J),this}distance(J){return H5.vec3.distance(this,J)}divide(J){return H5.vec3.div(this,this,J),this}dot(J){return H5.vec3.dot(this,J)}equals(J){return H5.vec3.equals(this,J)}exactEquals(J){return H5.vec3.exactEquals(this,J)}floor(){return H5.vec3.floor(this,this),this}invert(){return H5.vec3.inverse(this,this),this}lerp(J,$){return H5.vec3.lerp(this,this,J,$),this}max(J){return H5.vec3.max(this,this,J),this}min(J){return H5.vec3.min(this,this,J),this}multiply(J){return H5.vec3.mul(this,this,J),this}negate(){return H5.vec3.negate(this,this),this}normalize(){return H5.vec3.normalize(this,this),this}randomize(J){return H5.vec3.random(this,J),this}rotateX(J,$){return H5.vec3.rotateX(this,this,J,$),this}rotateY(J,$){return H5.vec3.rotateY(this,this,J,$),this}rotateZ(J,$){return H5.vec3.rotateZ(this,this,J,$),this}round(){return H5.vec3.round(this,this),this}scale(J){return H5.vec3.scale(this,this,J),this}scaleAndAdd(J,$){return H5.vec3.scaleAndAdd(this,this,J,$),this}subtract(J){return H5.vec3.sub(this,this,J),this}toString(){return`${this.x},${this.y},${this.z}`}transformMatrix3(J){return H5.vec3.transformMat3(this,this,J),this}transformMatrix4(J){return H5.vec3.transformMat4(this,this,J),this}transformQuaternion(J){return H5.vec3.transformQuat(this,this,J),this}zero(){return H5.vec3.zero(this),this}}var RU8=O0(NU8(),1);var OU8=0.099856;class jL extends WK{faceSpeed=0;idleLoopedAnimations=[];idleLoopedAnimationsSpeed;jumpOneshotAnimations=[];moveLoopedAnimations=[];moveLoopedAnimationsSpeed;moveSpeed=0;_faceTarget;_jumpHeight=0;_moveCompletesWhenStuck=!1;_moveIgnoreAxes={};_moveStartMoveAnimations=!1;_moveStartIdleAnimationsOnCompletion=!0;_moveStoppingDistanceSquared=OU8;_moveStuckAccumulatorMs=0;_moveStuckLastPosition;_moveTarget;_onFace;_onFaceComplete;_onMove;_onMoveComplete;_stopFaceRequested=!1;_stopMoveRequested=!1;constructor(J={}){super();this.idleLoopedAnimations=J.idleLoopedAnimations??this.idleLoopedAnimations,this.idleLoopedAnimationsSpeed=J.idleLoopedAnimationsSpeed??this.idleLoopedAnimationsSpeed,this.jumpOneshotAnimations=J.jumpOneshotAnimations??this.jumpOneshotAnimations,this.moveLoopedAnimations=J.moveLoopedAnimations??this.moveLoopedAnimations,this.moveLoopedAnimationsSpeed=J.moveLoopedAnimationsSpeed??this.moveLoopedAnimationsSpeed}spawn(J){super.spawn(J),this._startIdleAnimations(J)}face(J,$,X){this._faceTarget=J,this.faceSpeed=$,this._onFace=X?.faceCallback,this._onFaceComplete=X?.faceCompleteCallback}jump(J){this._jumpHeight=J}move(J,$,X){this.moveSpeed=$,this._moveCompletesWhenStuck=X?.moveCompletesWhenStuck??!1,this._moveIgnoreAxes=X?.moveIgnoreAxes??{},this._moveStartIdleAnimationsOnCompletion=X?.moveStartIdleAnimationsOnCompletion??!0,this._moveStartMoveAnimations=!0,this._moveStoppingDistanceSquared=X?.moveStoppingDistance?X.moveStoppingDistance**2:OU8,this._moveTarget=J,this._onMove=X?.moveCallback,this._onMoveComplete=X?.moveCompleteCallback,this._moveStuckAccumulatorMs=0,this._moveStuckLastPosition=void 0}stopFace(){this._stopFaceRequested=!0}stopMove(){this._stopMoveRequested=!0}tick(J,$){if(super.tick(J,$),!this._moveTarget&&!this._faceTarget&&!this._jumpHeight)return;if(this._moveStartMoveAnimations)this._startMoveAnimations(J),this._moveStartMoveAnimations=!1;let X=$/1000,Y=J.position;if(J.isDynamic&&this._jumpHeight>0){let Q=Math.abs(J.world.simulation.gravity.y),W=Math.sqrt(2*Q*this._jumpHeight);J.applyImpulse({x:0,y:W*J.mass,z:0}),this._jumpHeight=0,this._startJumpAnimations(J)}if(this._moveTarget){let Q={x:this._moveIgnoreAxes.x?0:this._moveTarget.x-Y.x,y:this._moveIgnoreAxes.y?0:this._moveTarget.y-Y.y,z:this._moveIgnoreAxes.z?0:this._moveTarget.z-Y.z},W=Q.x*Q.x+Q.y*Q.y+Q.z*Q.z,K=!1;if(this._moveCompletesWhenStuck){if(this._moveStuckAccumulatorMs+=$,this._moveStuckAccumulatorMs>=500){if(this._moveStuckLastPosition){let Z=Y.x-this._moveStuckLastPosition.x,G=Y.y-this._moveStuckLastPosition.y,V=Y.z-this._moveStuckLastPosition.z;K=Math.sqrt(Z*Z+G*G+V*V)<this.moveSpeed*0.1}this._moveStuckLastPosition=Y,this._moveStuckAccumulatorMs=0}}if(W>this._moveStoppingDistanceSquared&&!this._stopMoveRequested&&!K){let Z=Math.sqrt(W),G=this.moveSpeed*X,H=Math.min(Z,G)/Z,z={x:Y.x+Q.x*H,y:Y.y+Q.y*H,z:Y.z+Q.z*H};if(J.setPosition(z),this._onMove)this._onMove(z,this._moveTarget)}else{if(this._moveStuckAccumulatorMs=0,this._moveStuckLastPosition=void 0,this._moveTarget=void 0,this._stopMoveRequested=!1,this._moveStartIdleAnimationsOnCompletion)this._startIdleAnimations(J);if(this._onMoveComplete){let Z=this._onMoveComplete;this._onMove=void 0,this._onMoveComplete=void 0,Z(Y)}}}if(this._faceTarget){let Q={x:this._faceTarget.x-Y.x,z:this._faceTarget.z-Y.z},W=Math.atan2(-Q.x,-Q.z),K=J.rotation,Z=Math.atan2(2*(K.w*K.y),1-2*(K.y*K.y)),G=W-Z;while(G>Math.PI)G-=2*Math.PI;while(G<-Math.PI)G+=2*Math.PI;if(Math.abs(G)>0.01&&!this._stopFaceRequested){let V=this.faceSpeed*X,H=Math.abs(G)<V?G:Math.sign(G)*V,q=(Z+H)/2,U={x:0,y:Math.fround(Math.sin(q)),z:0,w:Math.fround(Math.cos(q))};if(J.setRotation(U),this._onFace)this._onFace(K,U)}else if(this._faceTarget=void 0,this._stopFaceRequested=!1,this._onFaceComplete){let V=this._onFaceComplete;this._onFace=void 0,this._onFaceComplete=void 0,V(J.rotation)}}}_startIdleAnimations(J){if(this.idleLoopedAnimationsSpeed)J.setModelAnimationsPlaybackRate(this.idleLoopedAnimationsSpeed);J.stopModelAnimations(this.moveLoopedAnimations),J.stopModelAnimations(this.jumpOneshotAnimations),J.startModelLoopedAnimations(this.idleLoopedAnimations)}_startJumpAnimations(J){J.stopModelAnimations(this.moveLoopedAnimations),J.stopModelAnimations(this.idleLoopedAnimations),J.startModelOneshotAnimations(this.jumpOneshotAnimations)}_startMoveAnimations(J){if(this.moveLoopedAnimationsSpeed)J.setModelAnimationsPlaybackRate(this.moveLoopedAnimationsSpeed);J.stopModelAnimations(this.jumpOneshotAnimations),J.stopModelAnimations(this.idleLoopedAnimations),J.startModelLoopedAnimations(this.moveLoopedAnimations)}}class qd extends jL{_debug=!1;_entity;_maxFall=0;_maxJump=0;_maxOpenSetIterations=200;_onPathfindAbort;_onPathfindComplete;_onWaypointMoveComplete;_onWaypointMoveSkipped;_speed=0;_target;_verticalPenalty=0;_waypoints=[];_waypointNextIndex=0;_waypointStoppingDistance;_waypointTimeoutMs=2000;constructor(J={}){super(J)}get debug(){return this._debug}get maxFall(){return this._maxFall}get maxJump(){return this._maxJump}get maxOpenSetIterations(){return this._maxOpenSetIterations}get speed(){return this._speed}get target(){return this._target}get verticalPenalty(){return this._verticalPenalty}get waypoints(){return this._waypoints}get waypointNextIndex(){return this._waypointNextIndex}get waypointTimeoutMs(){return this._waypointTimeoutMs}pathfind(J,$,X){if(this._target=J,this._speed=$,this._debug=X?.debug??!1,this._maxFall=X?.maxFall?-Math.abs(X.maxFall):0,this._maxJump=X?.maxJump?Math.abs(X.maxJump):0,this._maxOpenSetIterations=X?.maxOpenSetIterations??200,this._onPathfindAbort=X?.pathfindAbortCallback,this._onPathfindComplete=X?.pathfindCompleteCallback,this._onWaypointMoveComplete=X?.waypointMoveCompleteCallback,this._onWaypointMoveSkipped=X?.waypointMoveSkippedCallback,this._verticalPenalty=X?.verticalPenalty??0,this._waypoints=[],this._waypointNextIndex=0,this._waypointStoppingDistance=X?.waypointStoppingDistance,this._waypointTimeoutMs=X?.waypointTimeoutMs??2000/$,!this._calculatePath())return!1;return this._moveToNextWaypoint(),!0}attach(J){super.attach(J),this._entity=J}detach(J){super.detach(J),this._entity=void 0}_calculatePath(){if(!this._target||!this._entity?.world)return n.error("PathfindingEntityController._calculatePath: No target or world"),!1;let J=this._entity.height,$=this._findGroundedStart();if(!$){if(this._debug)n.warning(`PathfindingEntityController._calculatePath: No valid grounded start found within maxFall distance, path search aborted. Start: ${this._coordinateToKey(this._target)}, Target: ${this._coordinateToKey(this._target)}`);return!1}let X={x:Math.floor(this._target.x),y:Math.floor(this._target.y),z:Math.floor(this._target.z)},Y=Math.abs(X.x-$.x),Q=Math.abs(X.y-$.y),W=Math.abs(X.z-$.z);if(Y<=2&&Q<=2&&W<=2&&!this._isNeighborCoordinateBlocked($,X,this._entity.height))return this._waypoints=[{x:$.x+0.5,y:$.y+J/2,z:$.z+0.5},{x:X.x+0.5,y:X.y+J/2,z:X.z+0.5}],!0;if($.x===X.x&&$.y===X.y&&$.z===X.z)return this._waypoints=[{x:$.x+0.5,y:$.y+J/2,z:$.z+0.5}],!0;let Z=this._coordinateToKey($),G=new Map,V=new Map([[Z,0]]),H=new Map([[Z,this._pathfindingHeuristic($,X)]]),z=new Set,q=new RU8.Heap((D,w)=>{let R=H.get(D[0])??1/0,N=H.get(w[0])??1/0;return R-N});q.push([Z,$]);let U=[{x:0,y:0,z:1},{x:1,y:0,z:0},{x:0,y:0,z:-1},{x:-1,y:0,z:0},{x:1,y:0,z:1},{x:1,y:0,z:-1},{x:-1,y:0,z:1},{x:-1,y:0,z:-1}],F=[];for(let D=this._maxJump;D>=this._maxFall;D--){if(D===0)continue;let w=Math.abs($.y+D-X.y);F.push({y:D,distanceToTargetY:w})}F.sort((D,w)=>D.distanceToTargetY-w.distanceToTargetY);let B=[...U,...F.flatMap(({y:D})=>U.map((w)=>({...w,y:D})))],L=0,j=Math.abs(X.x-$.x)+Math.abs(X.y-$.y)+Math.abs(X.z-$.z),M=Math.min(this._maxOpenSetIterations,j*20);while(!q.isEmpty()&&L<M){L++;let[D,w]=q.pop();if(w.x===X.x&&w.y===X.y&&w.z===X.z){let O=this._reconstructPath(G,w);if(this._waypoints=O.map((C)=>({x:C.x+0.5,y:C.y+J/2,z:C.z+0.5})),this._debug)console.log(`PathfindingEntityController._calculatePath: Path found after ${L} open set iterations. Start: ${this._coordinateToKey($)}, Target: ${this._coordinateToKey(this._target)}`);return!0}z.add(D);let R=V.get(D),N=new Map;for(let O of B){let C=`${O.x},${O.z}`,S=O.y<0;if(S&&N.has(C))continue;let _={x:w.x+O.x,y:w.y+O.y,z:w.z+O.z};if(Math.abs(X.x-_.x)+Math.abs(X.y-_.y)+Math.abs(X.z-_.z)>j*1.5)continue;let A=this._coordinateToKey(_);if(z.has(A))continue;let k=this._isNeighborCoordinateBlocked(w,_,this._entity.height);if(S&&k){N.set(C,!0);continue}if(k)continue;let I=Math.abs(O.x),y=Math.abs(O.y),v=Math.abs(O.z),x=y===0?0:this._verticalPenalty,h=(Math.max(I,y,v)===1&&I+y+v>1?1.4:1)+x,m=R+h,c=V.get(A)??1/0;if(m>=c)continue;G.set(A,w),V.set(A,m);let l=m+this._pathfindingHeuristic(_,X);H.set(A,l),q.push([A,_])}}if(L>=M){if(this._onPathfindAbort?.(),this._debug)n.warning(`PathfindingEntityController._calculatePath: Maximum open set iterations reached (${M}), path search aborted. Start: ${this._coordinateToKey($)}, Target: ${this._coordinateToKey(this._target)}`)}else if(this._debug)n.warning(`PathfindingEntityController._calculatePath: No valid path found. Start: ${this._coordinateToKey($)}, Target: ${this._coordinateToKey(this._target)}`);return this._target=void 0,this._waypoints=[],!1}_reconstructPath(J,$){let X=[$],Y=$;while(J.has(this._coordinateToKey(Y)))Y=J.get(this._coordinateToKey(Y)),X.unshift(Y);return X}_coordinateToKey(J){return`${J.x},${J.y},${J.z}`}_moveToNextWaypoint(){let J=this._waypointNextIndex>0?this._waypoints[this._waypointNextIndex-1]:void 0,$=this._waypoints[this._waypointNextIndex];if(!$||!this._entity)return;let X=0;if(this._entity.isDynamic&&J&&$.y>J.y){let Y=$.y-J.y,Q=Math.min(Y,this._maxJump)+0.75;this.jump(Q);let W=Math.abs(this._entity.world.simulation.gravity.y),K=Math.sqrt(2*W*Q),Z=J.x+0.5,G=J.z+0.5,V=$.x+0.5,H=$.z+0.5,z=V-Z,q=H-G,U=Math.sqrt(z*z+q*q),F=K/W,B=U/this._speed;X=Math.min(F*0.8,B)*1000}setTimeout(()=>{if(!this._entity)return;let Y=Date.now();this.face($,this._speed),this.move($,this._speed,{moveCompletesWhenStuck:!0,moveIgnoreAxes:{y:this._entity.isDynamic},moveStartIdleAnimationsOnCompletion:this._waypointNextIndex===this._waypoints.length-1,moveStoppingDistance:this._waypointStoppingDistance,moveCallback:()=>{if(Date.now()-Y>this._waypointTimeoutMs&&this._waypointNextIndex<this._waypoints.length-1)this._onWaypointMoveSkipped?.($,this._waypointNextIndex),this._waypointNextIndex++,this._moveToNextWaypoint()},moveCompleteCallback:()=>{if(this._waypointNextIndex<this._waypoints.length-1)this._onWaypointMoveComplete?.($,this._waypointNextIndex),this._waypointNextIndex++,this._moveToNextWaypoint();else this._onPathfindComplete?.()}})},X)}_pathfindingHeuristic(J,$){return Math.abs(J.x-$.x)+Math.abs(J.y-$.y)+Math.abs(J.z-$.z)}_isNeighborCoordinateBlocked(J,$,X){if(!this._entity?.world)return!1;let Y=this._entity.world,Q=Math.floor($.x),W=Math.floor($.y),K=Math.floor($.z),Z=Math.floor(J.x),G=Math.floor(J.z);if(!Y.chunkLattice.hasBlock({x:Q,y:W-1,z:K}))return!0;for(let V=0;V<X;V++)if(Y.chunkLattice.hasBlock({x:Q,y:W+V,z:K}))return!0;if(Q!==Z&&K!==G)for(let V=0;V<X;V++){let H=Y.chunkLattice.hasBlock({x:Q,y:W+V,z:G}),z=Y.chunkLattice.hasBlock({x:Z,y:W+V,z:K});if(H||z)return!0}return!1}_findGroundedStart(){if(!this._entity?.world)return;let{x:J,y:$,z:X}=this._entity.position,Y={x:Math.floor(J),y:Math.floor($),z:Math.floor(X)};for(let Q=0;Q<=Math.abs(this._maxFall);Q++)if(this._entity.world.chunkLattice.hasBlock({...Y,y:Y.y-Q-1}))return{...Y,y:Y.y-Q};return}}export{uK6 as startServer,Aq8 as WorldManagerEvent,tW as WorldManager,Iq8 as WorldLoopEvent,UL as WorldLoop,Xd as WorldEvent,FL as World,ru as WebServerEvent,uq as WebServer,lq as Vector3,LL as Vector2,zL as Ticker,UG as TelemetrySpanOperation,w6 as Telemetry,$d as SimulationEvent,VL as Simulation,jL as SimpleEntityController,qL as SceneUIManager,sv as SceneUIEvent,Y3 as SceneUI,Jr8 as SUPPORTED_INPUTS,UF as RigidBodyType,xQ as RigidBody,dq as Quaternion,uO as PlayerUIEvent,oF as PlayerUI,_q8 as PlayerManagerEvent,s$ as PlayerManager,tF as PlayerEvent,kX as PlayerEntity,MK0 as PlayerCameraMode,cv as PlayerCameraEvent,aF as PlayerCamera,TH as Player,sQ as PersistenceManager,qd as PathfindingEntityController,HL as ParticleEmitterManager,tu as ParticleEmitterEvent,eu as ParticleEmitter,wK0 as PLAYER_ROTATION_UPDATE_THRESHOLD,DK0 as PLAYER_POSITION_UPDATE_THRESHOLD_SQ,R9 as ModelRegistry,I7 as Matrix4,tX as Matrix3,jG as Matrix2,kq8 as LightType,GL as LightManager,au as LightEvent,ou as Light,H9 as IterationMap,vq8 as GameServerEvent,eW as GameServer,$8 as EventRouter,n as ErrorHandler,Q3 as EntityManager,X3 as EntityEvent,v6 as Entity,RK0 as ENTITY_ROTATION_UPDATE_THRESHOLD,OK0 as ENTITY_POSITION_UPDATE_THRESHOLD_SQ,f5 as DefaultPlayerEntityController,rv as DefaultPlayerEntity,NK0 as DEFAULT_ENTITY_RIGID_BODY_OPTIONS,L$ as CollisionGroupsBuilder,hK as CollisionGroup,WH as ColliderShape,$3 as ColliderMap,DJ as Collider,gA as CoefficientCombineRule,iv as ChunkLatticeEvent,J3 as ChunkLattice,c7 as Chunk,eF as ChatManager,pv as ChatEvent,uA as BlockTypeRegistryEvent,FF as BlockTypeRegistry,mA as BlockTypeEvent,wJ as BlockType,RQ as BlockTextureRegistry,NG as Block,Dd as BaseEntityControllerEvent,WK as BaseEntityController,aq as AudioManager,HC as AudioEvent,rq as Audio,p6 as AssetsLibrary};
|
|
253
|
+
-----END PRIVATE KEY-----`;var pP=process.env.PORT??8080,su="0.14.22",ru;((Q)=>{Q.READY="WEBSERVER.READY";Q.STOPPED="WEBSERVER.STOPPED";Q.ERROR="WEBSERVER.ERROR";Q.UPGRADE="WEBSERVER.UPGRADE"})(ru||={});var mq={"access-control-allow-origin":"*"},AK6=JSON.stringify({status:"OK",version:su,runtime:"node"}),_K6={".html":"text/html",".css":"text/css",".js":"text/javascript",".mjs":"text/javascript",".json":"application/json",".gltf":"model/gltf+json",".glb":"model/gltf-binary",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif",".svg":"image/svg+xml",".ico":"image/x-icon",".ktx2":"image/ktx2",".mp3":"audio/mpeg",".ogg":"audio/ogg",".wav":"audio/wav",".mp4":"video/mp4",".webm":"video/webm",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".bin":"application/octet-stream",".wasm":"application/wasm"};class uq extends $8{static instance=new uq;_server;_assetCache=new Map;_assetDirs=[];constructor(){super();this._assetDirs.push(iu.resolve("assets"));let J=p6.assetsLibraryPath;if(J)this._assetDirs.push(J)}start(){if(this._server)return n.warning("WebServer.start(): already started");this._server=IK6.createSecureServer({key:cP,cert:lP,allowHTTP1:!0}),this._server.on("stream",this._onStream),this._server.on("upgrade",this._onUpgrade),this._server.on("error",this._onError),this._server.on("close",this._onStopped),this._server.listen(pP,this._onStarted),console.info(`WebServer.start(): Server running on port ${pP}`)}stop(){if(!this._server)return n.warning("WebServer.stop(): not started"),Promise.resolve(!1);return new Promise((J,$)=>{this._server.close((X)=>X?$(X):J(!0))})}_onStarted=()=>this.emitWithGlobal("WEBSERVER.READY",{});_onStopped=()=>this.emitWithGlobal("WEBSERVER.STOPPED",{});_onError=(J)=>{n.error(`WebServer._onError(): ${J.message}`),this.emitWithGlobal("WEBSERVER.ERROR",{error:J})};_onStream=(J,$)=>{J.on("error",()=>{});let X=$[":path"]||"/",Q=($[":method"]||"GET")==="HEAD";if(X==="/"){J.respond({":status":200,"content-type":"application/json",...mq}),J.end(!Q?AK6:void 0);return}let W=decodeURIComponent(X.split("?")[0]);if(W.includes("..")){J.respond({":status":400,...mq}),J.end();return}for(let K of this._assetDirs){let Z=iu.join(K,W);if(!Z.startsWith(K))continue;let G=p6.assetsLibraryPath;if(G&&Z.startsWith(G))p6.instance.syncAsset(Z);let V=this._assetCache.get(Z);if(!V)try{let q=kK6.statSync(Z);if(!q.isFile())continue;V={size:q.size,etag:`"${q.mtimeMs.toString(36)}-${q.size.toString(36)}"`},this._assetCache.set(Z,V)}catch{continue}if($["if-none-match"]===V.etag){J.respond({":status":304,...mq}),J.end();return}let z={":status":200,"content-type":_K6[iu.extname(Z).toLowerCase()]||"application/octet-stream","content-length":V.size,etag:V.etag,"cache-control":"public, max-age=0, must-revalidate",...mq};if(Q){J.respond(z),J.end();return}J.respondWithFile(Z,z,{onError:(q)=>{if(!J.destroyed)J.respond({":status":500,...mq}),J.end();n.error(`WebServer: ${q.message}`)}});return}J.respond({":status":404,...mq}),J.end()};_onUpgrade=(J,$,X)=>{this.emitWithGlobal("WEBSERVER.UPGRADE",{req:J,socket:$,head:X})}}var UG;((B)=>{B.BUILD_PACKETS="build_packets";B.ENTITIES_EMIT_UPDATES="entities_emit_updates";B.ENTITIES_TICK="entities_tick";B.NETWORK_SYNCHRONIZE="network_synchronize";B.NETWORK_SYNCHRONIZE_CLEANUP="network_synchronize_cleanup";B.PHYSICS_CLEANUP="physics_cleanup";B.PHYSICS_STEP="physics_step";B.SEND_ALL_PACKETS="send_all_packets";B.SEND_PACKETS="send_packets";B.SERIALIZE_FREE_BUFFERS="serialize_free_buffers";B.SERIALIZE_PACKETS="serialize_packets";B.SERIALIZE_PACKETS_ENCODE="serialize_packets_encode";B.SIMULATION_STEP="simulation_step";B.TICKER_TICK="ticker_tick";B.WORLD_TICK="world_tick"})(UG||={});class w6{static getProcessStats(J=!1){let $=process.memoryUsage(),X={jsHeapSizeMb:{value:$.heapUsed/1024/1024,unit:"megabyte"},jsHeapCapacityMb:{value:$.heapTotal/1024/1024,unit:"megabyte"},jsHeapUsagePercent:{value:$.heapUsed/$.heapTotal,unit:"percent"},processHeapSizeMb:{value:$.heapUsed/1024/1024,unit:"megabyte"},rssSizeMb:{value:$.rss/1024/1024,unit:"megabyte"}};if(J)return X;return Object.fromEntries(Object.entries(X).map(([Y,Q])=>[Y,Q.value]))}static initializeSentry(J,$=50){if(lH())return;dP({dsn:J,release:su,environment:process.env.NODE_ENV||"development",tracesSampleRate:1,initialScope:{tags:{gameId:process.env.HYTOPIA_GAME_ID??"unknown",gameSlug:process.env.HYTOPIA_GAME_SLUG??"unknown",lobbyId:process.env.HYTOPIA_LOBBY_ID??"unknown",region:process.env.REGION??"unknown"}},beforeSend:(X)=>{return X.extra=w6.getProcessStats(),X},beforeSendTransaction:(X)=>{if(X.contexts?.trace?.op==="ticker_tick"){let Q=X?.start_timestamp,W=X?.timestamp;if(!Q||!W)return null;if((W-Q)*1000>$)return X.measurements=w6.getProcessStats(!0),X}return null}})}static startSpan(J,$){if(lH())return w1({attributes:J.attributes,name:J.operation,op:J.operation},$);else return $()}static sentry(){return nu}}if(!aO)console.warn("Connection: msgpackr native acceleration is not enabled, using fallback implementation.");var Sq8=new ZZ({useFloat32:G3.ALWAYS}),yK6=30000;class i$ extends $8{static _cachedPacketsSerializedBuffer=new Map;_closeTimeout=null;_isDuplicate=!1;_ws;_wsBinding=!1;_wt;_wtBinding=!1;_wtReliableReader;_wtReliableWriter;_wtUnreliableReader;_wtUnreliableWriter;id;constructor(J,$,X){super();this.id=kZ0(),this.onPacket(h0.PacketId.HEARTBEAT,this._onHeartbeatPacket);let Y=()=>{$8.globalInstance.emit("CONNECTION.OPENED",{connection:this,session:X})};if(J)this.bindWs(J),Y();else if($)this.bindWt($).then(Y).catch((Q)=>{this._onClose(),n.error(`Connection.constructor(): Failed to bind WebTransport. Error: ${Q}`)})}get isDuplicate(){return this._isDuplicate}static clearCachedPacketsSerializedBuffers(){if(i$._cachedPacketsSerializedBuffer.size>0)i$._cachedPacketsSerializedBuffer.clear()}static serializePackets(J){for(let X of J)if(!h0.isValidPacket(X))return n.error(`Connection.serializePackets(): Invalid packet payload: ${JSON.stringify(X)}`);let $=i$._cachedPacketsSerializedBuffer.get(J);if($)return $;return w6.startSpan({operation:"serialize_packets",attributes:{packets:J.length,packetIds:J.map((X)=>X[0]).join(",")}},(X)=>{let Y=Sq8.pack(J);if(Y.byteLength>65536)Y=vK6(Y,{level:1});return X?.setAttribute("serializedBytes",Y.byteLength),i$._cachedPacketsSerializedBuffer.set(J,Y),Y})}bindWs(J){this._wsBinding=!0;let $=this._handleReconnect();if(this._cleanupConnections(),this._ws=J,this._ws.binaryType="nodebuffer",this._ws.onmessage=(X)=>this._onMessage(X.data),this._ws.onclose=this._onClose,this._ws.onerror=this._onError,this._wsBinding=!1,this._signalConnectionId(),$)this.emitWithGlobal("CONNECTION.RECONNECTED",{connection:this})}async bindWt(J){this._wtBinding=!0;let $=this._handleReconnect();this._cleanupConnections(),J.userData.onclose=this._onClose,J.closed.catch(()=>{}).finally(()=>J.userData.onclose?.()),this._wt=J;try{await J.ready;let X=J.incomingBidirectionalStreams.getReader();try{let{value:Y}=await X.read();if(Y)this._wtReliableReader=Y.readable,this._wtReliableWriter=Y.writable.getWriter()}finally{X.releaseLock()}this._wtUnreliableReader=J.datagrams.readable,this._wtUnreliableWriter=J.datagrams.createWritable().getWriter()}catch{this._wtBinding=!1;return}if(this._wtBinding=!1,this._wt!==J)return;if((async()=>{if(!this._wtReliableReader)throw Error("Connection.bindWt(): Reliable reader not found.");let X=h0.createPacketBufferUnframer((Y)=>{this._onMessage(Y)});for await(let Y of this._wtReliableReader){if(J!==this._wt)return;X(Y)}})().catch(()=>{try{J?.close()}catch{}}),(async()=>{if(!this._wtUnreliableReader)throw Error("Connection.bindWt(): Unreliable reader not found.");for await(let X of this._wtUnreliableReader){if(J!==this._wt)return;this._onMessage(X)}})().catch(()=>{try{J?.close()}catch{}}),this._signalConnectionId(),$)this.emitWithGlobal("CONNECTION.RECONNECTED",{connection:this})}disconnect(){try{this._ws?.close(),this._wt?.close()}catch(J){n.error(`Connection.disconnect(): Connection disconnect failed. Error: ${J}`)}}killDuplicateConnection(){this._isDuplicate=!0,this._cleanupConnections(),this.emitWithGlobal("CONNECTION.DISCONNECTED",{connection:this}),this._finalizeClose()}onPacket(J,$){this.on("CONNECTION.PACKET_RECEIVED",({packet:X})=>{if(X[0]===J)$(X)})}send(J,$=!0){if(this._closeTimeout||this._wsBinding||this._wtBinding)return;if(!this._ws&&!this._wt)return;let X=this._ws&&this._ws.readyState===PH.default.OPEN,Y=this._wt&&this._wt.state==="connected";if(!X&&!Y)return;w6.startSpan({operation:"send_packets"},()=>{try{let Q=i$.serializePackets(J);if(!Q)return;if(Y)if($||Q.byteLength>1200)this._wtReliableWriter?.write(h0.framePacketBuffer(Q)).catch(()=>{n.error("Connection.send(): WebTransport reliable write failed, connection closing?")});else this._wtUnreliableWriter?.write(Q).catch(()=>{n.error("Connection.send(): WebTransport unreliable write failed, connection closing?")});else this._ws.send(Q);this.emitWithGlobal("CONNECTION.PACKETS_SENT",{connection:this,packets:J})}catch(Q){n.error(`Connection.send(): Packet send failed. Error: ${Q}`)}})}_onHeartbeatPacket=()=>{this.send([h0.createPacket(h0.bidirectionalPackets.heartbeatPacketDefinition,null)],!0)};_onMessage=(J)=>{try{let $=this._deserialize(J);if(!$)return;this.emitWithGlobal("CONNECTION.PACKET_RECEIVED",{connection:this,packet:$})}catch($){n.error(`Connection._ws.onmessage(): Error: ${$}`)}};_onClose=()=>{this.emitWithGlobal("CONNECTION.DISCONNECTED",{connection:this}),this._closeTimeout=setTimeout(()=>this._finalizeClose(),yK6)};_onError=(J)=>{this.emitWithGlobal("CONNECTION.ERROR",{connection:this,error:J})};_cleanupConnections(){if(this._ws)this._ws.onmessage=()=>{},this._ws.onclose=()=>{},this._ws.onerror=()=>{};if(this._wt)this._wt.userData.onclose=()=>{};this._signalKill();try{this._ws?.close()}catch{}let J=this._wt;if(J)setTimeout(()=>{try{J.close()}catch{}},50);this._ws=void 0,this._wt=void 0,this._wtReliableReader=void 0,this._wtReliableWriter=void 0,this._wtUnreliableReader=void 0,this._wtUnreliableWriter=void 0}_deserialize(J){let $=Sq8.unpack(J);if(!$||typeof $!=="object"||typeof $[0]!=="number")return n.error(`Connection._deserialize(): Invalid packet format. Packet: ${JSON.stringify($)}`);if(!h0.isValidPacket($))return n.error(`Connection._deserialize(): Invalid packet payload. Packet: ${JSON.stringify($)}`);return $}_finalizeClose(){this.emitWithGlobal("CONNECTION.CLOSED",{connection:this}),this.offAll()}_handleReconnect(){let J=!!this._ws||!!this._wt;if(J&&this._closeTimeout)clearTimeout(this._closeTimeout),this._closeTimeout=null;return J}_signalConnectionId(){this.send([h0.createPacket(h0.bidirectionalPackets.connectionPacketDefinition,{i:this.id})])}_signalKill(){this.send([h0.createPacket(h0.bidirectionalPackets.connectionPacketDefinition,{k:!0})])}}class GL{_lights=new Map;_nextLightId=1;_world;constructor(J){this._world=J}get world(){return this._world}despawnEntityAttachedLights(J){this.getAllEntityAttachedLights(J).forEach(($)=>{$.despawn()})}getAllLights(){return Array.from(this._lights.values())}getAllEntityAttachedLights(J){return this.getAllLights().filter(($)=>$.attachedToEntity===J)}registerLight(J){if(J.id!==void 0)return J.id;let $=this._nextLightId;return this._lights.set($,J),this._nextLightId++,$}unregisterLight(J){if(J.id===void 0)return;this._lights.delete(J.id)}}class H9{_map=new Map;_values=[];_isDirty=!1;get size(){return this._map.size}get valuesArray(){if(this._isDirty)this._syncArray();return this._values}get(J){return this._map.get(J)}set(J,$){let X=this._map.has(J);if(this._map.set(J,$),!X)this._values.push($);else this._isDirty=!0;return this}has(J){return this._map.has(J)}delete(J){let $=this._map.delete(J);if($)this._isDirty=!0;return $}clear(){this._map.clear(),this._values.length=0,this._isDirty=!1}forEach(J,$){this._map.forEach((X,Y)=>{J.call($,X,Y,this)})}keys(){return this._map.keys()}values(){return this._map.values()}entries(){return this._map.entries()}[Symbol.iterator](){return this._map[Symbol.iterator]()}_syncArray(){this._values.length=0;for(let J of this._map.values())this._values.push(J);this._isDirty=!1}}var kq8;((X)=>{X[X.POINTLIGHT=0]="POINTLIGHT";X[X.SPOTLIGHT=1]="SPOTLIGHT"})(kq8||={});var au;((q)=>{q.DESPAWN="LIGHT.DESPAWN";q.SET_ANGLE="LIGHT.SET_ANGLE";q.SET_ATTACHED_TO_ENTITY="LIGHT.SET_ATTACHED_TO_ENTITY";q.SET_COLOR="LIGHT.SET_COLOR";q.SET_DISTANCE="LIGHT.SET_DISTANCE";q.SET_INTENSITY="LIGHT.SET_INTENSITY";q.SET_OFFSET="LIGHT.SET_OFFSET";q.SET_PENUMBRA="LIGHT.SET_PENUMBRA";q.SET_POSITION="LIGHT.SET_POSITION";q.SET_TRACKED_ENTITY="LIGHT.SET_TRACKED_ENTITY";q.SET_TRACKED_POSITION="LIGHT.SET_TRACKED_POSITION";q.SPAWN="LIGHT.SPAWN"})(au||={});class ou extends $8{_id;_angle;_attachedToEntity;_color;_distance;_intensity;_offset;_penumbra;_position;_trackedEntity;_trackedPosition;_type;_world;constructor(J){if(!!J.attachedToEntity===!!J.position)n.fatalError("Either attachedToEntity or position must be set, but not both.");super();n.warning("WARNING: Lights are poorly optimized at this time. Using more than a few lights in your game can cause extremely bad performance (FPS) issues. Use lights sparingly!"),this._angle=J.angle,this._attachedToEntity=J.attachedToEntity,this._color=J.color??{r:255,g:255,b:255},this._distance=J.distance,this._intensity=J.intensity??1,this._offset=J.offset,this._penumbra=J.penumbra,this._position=J.position,this._trackedEntity=J.trackedEntity,this._trackedPosition=J.trackedPosition,this._type=J.type??0}get id(){return this._id}get angle(){return this._angle}get attachedToEntity(){return this._attachedToEntity}get color(){return this._color}get distance(){return this._distance}get intensity(){return this._intensity}get isSpawned(){return this._id!==void 0}get offset(){return this._offset}get penumbra(){return this._penumbra}get position(){return this._position}get trackedEntity(){return this._trackedEntity}get trackedPosition(){return this._trackedPosition}get type(){return this._type}get world(){return this._world}setAngle(J){if(this._angle===J)return;if(this._angle=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_ANGLE",{light:this,angle:J})}setAttachedToEntity(J){if(!J.isSpawned)return n.error(`Light.setAttachedToEntity(): Entity ${J.id} is not spawned!`);if(this._attachedToEntity===J)return;if(this._attachedToEntity=J,this._position=void 0,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_ATTACHED_TO_ENTITY",{light:this,entity:J})}setColor(J){if(this._color.r===J.r&&this._color.g===J.g&&this._color.b===J.b)return;if(this._color=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_COLOR",{light:this,color:J})}setDistance(J){if(this._distance===J)return;if(this._distance=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_DISTANCE",{light:this,distance:J})}setIntensity(J){if(this._intensity===J)return;if(this._intensity=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_INTENSITY",{light:this,intensity:J})}setOffset(J){if(this._offset&&this._offset.x===J.x&&this._offset.y===J.y&&this._offset.z===J.z)return;if(this._offset=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_OFFSET",{light:this,offset:J})}setPenumbra(J){if(this._penumbra===J)return;if(this._penumbra=J,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_PENUMBRA",{light:this,penumbra:J})}setPosition(J){if(this._position&&this._position.x===J.x&&this._position.y===J.y&&this._position.z===J.z)return;if(this._position=J,this._attachedToEntity=void 0,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_POSITION",{light:this,position:J})}setTrackedEntity(J){if(!J.isSpawned)return n.error(`Light.setTrackedEntity(): Entity ${J.id} is not spawned!`);if(this._trackedEntity===J)return;if(this._trackedEntity=J,this._trackedPosition=void 0,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_TRACKED_ENTITY",{light:this,entity:J})}setTrackedPosition(J){if(this._trackedPosition===J)return;if(this._trackedPosition=J,this._trackedEntity=void 0,this.isSpawned)this.emitWithWorld(this._world,"LIGHT.SET_TRACKED_POSITION",{light:this,position:J})}despawn(){if(!this.isSpawned||!this._world)return;this._world.lightManager.unregisterLight(this),this.emitWithWorld(this._world,"LIGHT.DESPAWN",{light:this}),this._id=void 0,this._world=void 0}spawn(J){if(this.isSpawned)return;if(this._attachedToEntity&&!this._attachedToEntity.isSpawned)return n.error(`Light.spawn(): Attached entity ${this._attachedToEntity.id} must be spawned before spawning Light!`);this._id=J.lightManager.registerLight(this),this._world=J,this.emitWithWorld(J,"LIGHT.SPAWN",{light:this})}serialize(){return V8.serializeLight(this)}}var tu;((v)=>{v.BURST="PARTICLE_EMITTER.BURST";v.DESPAWN="PARTICLE_EMITTER.DESPAWN";v.SET_ALPHA_TEST="PARTICLE_EMITTER.SET_ALPHA_TEST";v.SET_ATTACHED_TO_ENTITY="PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY";v.SET_ATTACHED_TO_ENTITY_NODE_NAME="PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY_NODE_NAME";v.SET_COLOR_END="PARTICLE_EMITTER.SET_COLOR_END";v.SET_COLOR_END_VARIANCE="PARTICLE_EMITTER.SET_COLOR_END_VARIANCE";v.SET_COLOR_START="PARTICLE_EMITTER.SET_COLOR_START";v.SET_COLOR_START_VARIANCE="PARTICLE_EMITTER.SET_COLOR_START_VARIANCE";v.SET_GRAVITY="PARTICLE_EMITTER.SET_GRAVITY";v.SET_LIFETIME="PARTICLE_EMITTER.SET_LIFETIME";v.SET_LIFETIME_VARIANCE="PARTICLE_EMITTER.SET_LIFETIME_VARIANCE";v.SET_MAX_PARTICLES="PARTICLE_EMITTER.SET_MAX_PARTICLES";v.SET_OFFSET="PARTICLE_EMITTER.SET_OFFSET";v.SET_OPACITY_END="PARTICLE_EMITTER.SET_OPACITY_END";v.SET_OPACITY_END_VARIANCE="PARTICLE_EMITTER.SET_OPACITY_END_VARIANCE";v.SET_OPACITY_START="PARTICLE_EMITTER.SET_OPACITY_START";v.SET_OPACITY_START_VARIANCE="PARTICLE_EMITTER.SET_OPACITY_START_VARIANCE";v.SET_PAUSED="PARTICLE_EMITTER.SET_PAUSED";v.SET_POSITION="PARTICLE_EMITTER.SET_POSITION";v.SET_POSITION_VARIANCE="PARTICLE_EMITTER.SET_POSITION_VARIANCE";v.SET_RATE="PARTICLE_EMITTER.SET_RATE";v.SET_RATE_VARIANCE="PARTICLE_EMITTER.SET_RATE_VARIANCE";v.SET_SIZE_END="PARTICLE_EMITTER.SET_SIZE_END";v.SET_SIZE_END_VARIANCE="PARTICLE_EMITTER.SET_SIZE_END_VARIANCE";v.SET_SIZE_START="PARTICLE_EMITTER.SET_SIZE_START";v.SET_SIZE_START_VARIANCE="PARTICLE_EMITTER.SET_SIZE_START_VARIANCE";v.SET_TEXTURE_URI="PARTICLE_EMITTER.SET_TEXTURE_URI";v.SET_TRANSPARENT="PARTICLE_EMITTER.SET_TRANSPARENT";v.SET_VELOCITY="PARTICLE_EMITTER.SET_VELOCITY";v.SET_VELOCITY_VARIANCE="PARTICLE_EMITTER.SET_VELOCITY_VARIANCE";v.SPAWN="PARTICLE_EMITTER.SPAWN"})(tu||={});class eu extends $8{_id;_alphaTest;_attachedToEntity;_attachedToEntityNodeName;_colorEnd;_colorEndVariance;_colorStart;_colorStartVariance;_gravity;_lifetime;_lifetimeVariance;_maxParticles;_offset;_opacityEnd;_opacityEndVariance;_opacityStart;_opacityStartVariance;_paused;_position;_positionVariance;_rate;_rateVariance;_sizeEnd;_sizeEndVariance;_sizeStart;_sizeStartVariance;_sizeVariance;_textureUri;_transparent;_velocity;_velocityVariance;_world;constructor(J){if(!!J.attachedToEntity===!!J.position)n.fatalError("Either attachedToEntity or position must be set, but not both.");if(!J.textureUri)n.fatalError("ParticleEmitter.constructor(): textureUri must be provided.");super();this._alphaTest=J.alphaTest??0.05,this._attachedToEntity=J.attachedToEntity,this._attachedToEntityNodeName=J.attachedToEntityNodeName,this._colorEnd=J.colorEnd,this._colorEndVariance=J.colorEndVariance,this._colorStart=J.colorStart,this._colorStartVariance=J.colorStartVariance,this._gravity=J.gravity,this._lifetime=J.lifetime,this._lifetimeVariance=J.lifetimeVariance,this._maxParticles=J.maxParticles,this._offset=J.offset,this._opacityEnd=J.opacityEnd,this._opacityEndVariance=J.opacityEndVariance,this._opacityStart=J.opacityStart,this._opacityStartVariance=J.opacityStartVariance,this._paused=!1,this._position=J.position,this._positionVariance=J.positionVariance,this._rate=J.rate,this._rateVariance=J.rateVariance,this._sizeEnd=J.sizeEnd,this._sizeEndVariance=J.sizeEndVariance,this._sizeStart=J.sizeStart,this._sizeStartVariance=J.sizeStartVariance,this._textureUri=J.textureUri,this._transparent=J.transparent,this._velocity=J.velocity,this._velocityVariance=J.velocityVariance}get id(){return this._id}get alphaTest(){return this._alphaTest}get attachedToEntity(){return this._attachedToEntity}get attachedToEntityNodeName(){return this._attachedToEntityNodeName}get colorEnd(){return this._colorEnd}get colorEndVariance(){return this._colorEndVariance}get colorStart(){return this._colorStart}get colorStartVariance(){return this._colorStartVariance}get gravity(){return this._gravity}get isSpawned(){return this._id!==void 0}get lifetime(){return this._lifetime}get lifetimeVariance(){return this._lifetimeVariance}get maxParticles(){return this._maxParticles}get offset(){return this._offset}get opacityEnd(){return this._opacityEnd}get opacityEndVariance(){return this._opacityEndVariance}get opacityStart(){return this._opacityStart}get opacityStartVariance(){return this._opacityStartVariance}get paused(){return this._paused}get position(){return this._position}get positionVariance(){return this._positionVariance}get rate(){return this._rate}get rateVariance(){return this._rateVariance}get sizeEnd(){return this._sizeEnd}get sizeEndVariance(){return this._sizeEndVariance}get sizeStart(){return this._sizeStart}get sizeStartVariance(){return this._sizeStartVariance}get sizeVariance(){return this._sizeVariance}get textureUri(){return this._textureUri}get transparent(){return this._transparent}get velocity(){return this._velocity}get velocityVariance(){return this._velocityVariance}get world(){return this._world}setAlphaTest(J){if(this._alphaTest===J)return;if(this._alphaTest=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_ALPHA_TEST",{particleEmitter:this,alphaTest:J})}setAttachedToEntity(J){if(!J.isSpawned)return n.error(`ParticleEmitter.setAttachedToEntity(): Entity ${J.id} is not spawned!`);if(this._attachedToEntity===J)return;if(this._attachedToEntity=J,this._position=void 0,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY",{particleEmitter:this,entity:J})}setAttachedToEntityNodeName(J){if(this._attachedToEntityNodeName===J)return;if(this._attachedToEntityNodeName=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY_NODE_NAME",{particleEmitter:this,attachedToEntityNodeName:J})}setColorEnd(J){if(this._colorEnd&&this._colorEnd.r===J.r&&this._colorEnd.g===J.g&&this._colorEnd.b===J.b)return;if(this._colorEnd=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_COLOR_END",{particleEmitter:this,colorEnd:J})}setColorEndVariance(J){if(this._colorEndVariance&&this._colorEndVariance.r===J.r&&this._colorEndVariance.g===J.g&&this._colorEndVariance.b===J.b)return;if(this._colorEndVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_COLOR_END_VARIANCE",{particleEmitter:this,colorEndVariance:J})}setColorStart(J){if(this._colorStart&&this._colorStart.r===J.r&&this._colorStart.g===J.g&&this._colorStart.b===J.b)return;if(this._colorStart=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_COLOR_START",{particleEmitter:this,colorStart:J})}setColorStartVariance(J){if(this._colorStartVariance&&this._colorStartVariance.r===J.r&&this._colorStartVariance.g===J.g&&this._colorStartVariance.b===J.b)return;if(this._colorStartVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_COLOR_START_VARIANCE",{particleEmitter:this,colorStartVariance:J})}setGravity(J){if(this._gravity&&this._gravity.x===J.x&&this._gravity.y===J.y&&this._gravity.z===J.z)return;if(this._gravity=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_GRAVITY",{particleEmitter:this,gravity:J})}setLifetime(J){if(this._lifetime===J)return;if(this._lifetime=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_LIFETIME",{particleEmitter:this,lifetime:J})}setLifetimeVariance(J){if(this._lifetimeVariance===J)return;if(this._lifetimeVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_LIFETIME_VARIANCE",{particleEmitter:this,lifetimeVariance:J})}setMaxParticles(J){if(this._maxParticles===J)return;if(this._maxParticles=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_MAX_PARTICLES",{particleEmitter:this,maxParticles:J})}setOffset(J){if(this._offset&&this._offset.x===J.x&&this._offset.y===J.y&&this._offset.z===J.z)return;if(this._offset=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OFFSET",{particleEmitter:this,offset:J})}setOpacityEnd(J){if(this._opacityEnd===J)return;if(this._opacityEnd=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OPACITY_END",{particleEmitter:this,opacityEnd:J})}setOpacityEndVariance(J){if(this._opacityEndVariance===J)return;if(this._opacityEndVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OPACITY_END_VARIANCE",{particleEmitter:this,opacityEndVariance:J})}setOpacityStart(J){if(this._opacityStart===J)return;if(this._opacityStart=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OPACITY_START",{particleEmitter:this,opacityStart:J})}setOpacityStartVariance(J){if(this._opacityStartVariance===J)return;if(this._opacityStartVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_OPACITY_START_VARIANCE",{particleEmitter:this,opacityStartVariance:J})}setPosition(J){if(this._position&&this._position.x===J.x&&this._position.y===J.y&&this._position.z===J.z)return;if(this._position=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_POSITION",{particleEmitter:this,position:J})}setPositionVariance(J){if(this._positionVariance&&this._positionVariance.x===J.x&&this._positionVariance.y===J.y&&this._positionVariance.z===J.z)return;if(this._positionVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_POSITION_VARIANCE",{particleEmitter:this,positionVariance:J})}setRate(J){if(this._rate===J)return;if(this._rate=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_RATE",{particleEmitter:this,rate:J})}setRateVariance(J){if(this._rateVariance===J)return;if(this._rateVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_RATE_VARIANCE",{particleEmitter:this,rateVariance:J})}setSizeEnd(J){if(this._sizeEnd===J)return;if(this._sizeEnd=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_SIZE_END",{particleEmitter:this,sizeEnd:J})}setSizeEndVariance(J){if(this._sizeEndVariance===J)return;if(this._sizeEndVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_SIZE_END_VARIANCE",{particleEmitter:this,sizeEndVariance:J})}setSizeStart(J){if(this._sizeStart===J)return;if(this._sizeStart=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_SIZE_START",{particleEmitter:this,sizeStart:J})}setSizeStartVariance(J){if(this._sizeStartVariance===J)return;if(this._sizeStartVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_SIZE_START_VARIANCE",{particleEmitter:this,sizeStartVariance:J})}setTextureUri(J){if(this._textureUri===J)return;if(this._textureUri=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_TEXTURE_URI",{particleEmitter:this,textureUri:J})}setTransparent(J){if(this._transparent===J)return;if(this._transparent=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_TRANSPARENT",{particleEmitter:this,transparent:J})}setVelocity(J){if(this._velocity&&this._velocity.x===J.x&&this._velocity.y===J.y&&this._velocity.z===J.z)return;if(this._velocity=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_VELOCITY",{particleEmitter:this,velocity:J})}setVelocityVariance(J){if(this._velocityVariance&&this._velocityVariance.x===J.x&&this._velocityVariance.y===J.y&&this._velocityVariance.z===J.z)return;if(this._velocityVariance=J,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_VELOCITY_VARIANCE",{particleEmitter:this,velocityVariance:J})}burst(J){if(this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.BURST",{particleEmitter:this,count:J})}despawn(){if(!this.isSpawned||!this._world)return;this._world.particleEmitterManager.unregisterParticleEmitter(this),this.emitWithWorld(this._world,"PARTICLE_EMITTER.DESPAWN",{particleEmitter:this}),this._id=void 0,this._world=void 0}restart(){if(!this._paused)return;if(this._paused=!1,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_PAUSED",{particleEmitter:this,paused:this._paused})}stop(){if(this._paused)return;if(this._paused=!0,this.isSpawned)this.emitWithWorld(this._world,"PARTICLE_EMITTER.SET_PAUSED",{particleEmitter:this,paused:this._paused})}spawn(J){if(this.isSpawned)return;if(this._attachedToEntity&&!this._attachedToEntity.isSpawned)return n.error(`ParticleEmitter.spawn(): Attached entity ${this._attachedToEntity.id} must be spawned before spawning ParticleEmitter!`);this._id=J.particleEmitterManager.registerParticleEmitter(this),this._world=J,this.emitWithWorld(J,"PARTICLE_EMITTER.SPAWN",{particleEmitter:this})}serialize(){return V8.serializeParticleEmitter(this)}}var hK6={x:0,y:-32,z:0},Jd=60,$d;((Q)=>{Q.STEP_START="SIMULATION.STEP_START";Q.STEP_END="SIMULATION.STEP_END";Q.DEBUG_RAYCAST="SIMULATION.DEBUG_RAYCAST";Q.DEBUG_RENDER="SIMULATION.DEBUG_RENDER"})($d||={});class VL extends $8{_colliderMap=new $3;_debugRaycastingEnabled=!1;_debugRenderingEnabled=!1;_debugRenderingFilterFlags;_rapierEventQueue;_rapierSimulation;_world;constructor(J,$=Jd,X=hK6){super();this._rapierEventQueue=new Y5.EventQueue(!0),this._rapierSimulation=new Y5.World(X),this._rapierSimulation.timestep=Math.fround(1/$),this._world=J}get colliderMap(){return this._colliderMap}get isDebugRaycastingEnabled(){return this._debugRaycastingEnabled}get isDebugRenderingEnabled(){return this._debugRenderingEnabled}get gravity(){return this._rapierSimulation.gravity}get timestepS(){return this._rapierSimulation.timestep}get world(){return this._world}createRawCollider(J,$){return this._rapierSimulation.createCollider(J,$)}createRawRigidBody(J){return this._rapierSimulation.createRigidBody(J)}enableDebugRaycasting(J){this._debugRaycastingEnabled=J}enableDebugRendering(J,$=Y5.QueryFilterFlags.EXCLUDE_FIXED){this._debugRenderingEnabled=J,this._debugRenderingFilterFlags=$}getContactManifolds(J,$){let X=[];return this._rapierSimulation.narrowPhase.contactPair(J,$,(Y,Q)=>{if(Y.numContacts()===0)return;let W=Y.normal(),K=[];for(let Z=0;Z<Y.numSolverContacts();Z++)K.push(Y.solverContactPoint(Z));X.push({contactPoints:K,localNormalA:!Q?Y.localNormal1():Y.localNormal2(),localNormalB:!Q?Y.localNormal2():Y.localNormal1(),normal:!Q?W:{x:-W.x,y:-W.y,z:-W.z}})}),X}intersectionsWithRawShape(J,$,X,Y={}){let Q=new Set,W=[];return this._rapierSimulation.intersectionsWithShape($,X,J,(K)=>{let Z=this._colliderMap.getColliderHandleBlockType(K.handle);if(Z&&!Q.has(Z))return Q.add(Z),W.push({intersectedBlockType:Z}),!0;let G=this._colliderMap.getColliderHandleEntity(K.handle);if(G&&!Q.has(G))return Q.add(G),W.push({intersectedEntity:G}),!0;return!0},Y.filterFlags,Y.filterGroups,Y.filterExcludeCollider,Y.filterExcludeRigidBody,Y.filterPredicate),W}raycast(J,$,X,Y={}){let Q=new Y5.Ray(J,$),W=this._rapierSimulation.castRay(Q,X,Y.solidMode??!0,Y.filterFlags,Y.filterGroups,Y.filterExcludeCollider,Y.filterExcludeRigidBody,Y.filterPredicate);if(this._debugRaycastingEnabled)this.emitWithWorld(this._world,"SIMULATION.DEBUG_RAYCAST",{simulation:this,origin:J,direction:$,length:X,hit:!!W});if(!W)return null;let K=Q.pointAt(W.timeOfImpact),Z=W.timeOfImpact,G=W.collider,V=this._colliderMap.getColliderHandleBlockType(G.handle);if(V)return{hitBlock:NG.fromGlobalCoordinate({x:Math.floor(K.x-(Q.dir.x<0?0.0001:-0.0001)),y:Math.floor(K.y-(Q.dir.y<0?0.0001:-0.0001)),z:Math.floor(K.z-(Q.dir.z<0?0.0001:-0.0001))},V),hitPoint:K,hitDistance:Z};let H=this._colliderMap.getColliderHandleEntity(G.handle);if(H)return{hitEntity:H,hitPoint:K,hitDistance:Z};return null}removeRawCollider(J){this._colliderMap.queueColliderHandleForCleanup(J.handle),this._rapierSimulation.removeCollider(J,!1)}removeRawRigidBody(J){this._rapierSimulation.removeRigidBody(J)}setGravity(J){this._rapierSimulation.gravity=J}step=(J)=>{this.emitWithWorld(this._world,"SIMULATION.STEP_START",{simulation:this,tickDeltaMs:J});let $=performance.now();if(w6.startSpan({operation:"physics_step"},()=>{this._rapierSimulation.step(this._rapierEventQueue)}),w6.startSpan({operation:"physics_cleanup"},()=>{this._rapierEventQueue.drainContactForceEvents(this._onContactForceEvent),this._rapierEventQueue.drainCollisionEvents(this._onCollisionEvent),this._colliderMap.cleanup()}),this.emitWithWorld(this._world,"SIMULATION.STEP_END",{simulation:this,stepDurationMs:performance.now()-$}),this._debugRenderingEnabled)this.emitWithWorld(this._world,"SIMULATION.DEBUG_RENDER",{simulation:this,...this._rapierSimulation.debugRender(this._debugRenderingFilterFlags)})};_onCollisionEvent=(J,$,X)=>{let[Y,Q]=this._getCollisionObjects(J,$);if(!Y||!Q)return;let W=(K,Z)=>{if(K instanceof wJ&&Z instanceof v6&&K.hasListeners("BLOCK_TYPE.ENTITY_COLLISION"))K.emit("BLOCK_TYPE.ENTITY_COLLISION",{blockType:K,entity:Z,started:X,colliderHandleA:J,colliderHandleB:$});else if(K instanceof v6&&Z instanceof wJ&&K.hasListeners("ENTITY.BLOCK_COLLISION"))K.emit("ENTITY.BLOCK_COLLISION",{entity:K,blockType:Z,started:X,colliderHandleA:J,colliderHandleB:$});else if(K instanceof v6&&Z instanceof v6&&K.hasListeners("ENTITY.ENTITY_COLLISION"))K.emit("ENTITY.ENTITY_COLLISION",{entity:K,otherEntity:Z,started:X,colliderHandleA:J,colliderHandleB:$});else if(typeof K==="function"&&(Z instanceof v6||Z instanceof wJ))K(Z,X,J,$)};W(Y,Q),W(Q,Y)};_onContactForceEvent=(J)=>{let[$,X]=this._getCollisionObjects(J.collider1(),J.collider2());if(!$||typeof $==="function"||!X||typeof X==="function")return;let Y={totalForce:J.totalForce(),totalForceMagnitude:J.totalForceMagnitude(),maxForceDirection:J.maxForceDirection(),maxForceMagnitude:J.maxForceMagnitude()},Q=(W,K)=>{if(W instanceof wJ&&K instanceof v6&&W.hasListeners("BLOCK_TYPE.ENTITY_CONTACT_FORCE"))W.emit("BLOCK_TYPE.ENTITY_CONTACT_FORCE",{blockType:W,entity:K,contactForceData:Y});else if(W instanceof v6&&K instanceof wJ&&W.hasListeners("ENTITY.BLOCK_CONTACT_FORCE"))W.emit("ENTITY.BLOCK_CONTACT_FORCE",{entity:W,blockType:K,contactForceData:Y});else if(W instanceof v6&&K instanceof v6&&W.hasListeners("ENTITY.ENTITY_CONTACT_FORCE"))W.emit("ENTITY.ENTITY_CONTACT_FORCE",{entity:W,otherEntity:K,contactForceData:Y})};Q($,X),Q(X,$)};_getCollisionObjects(J,$){let X=this._colliderMap.getColliderHandleBlockType(J)??this._colliderMap.getColliderHandleCollisionCallback(J)??this._colliderMap.getColliderHandleEntity(J),Y=this._colliderMap.getColliderHandleBlockType($)??this._colliderMap.getColliderHandleCollisionCallback($)??this._colliderMap.getColliderHandleEntity($);return[X,Y]}}class nP{_synchronizedPlayerReliablePackets=new H9;_queuedBroadcasts=[];_queuedAudioSynchronizations=new H9;_queuedBlockSynchronizations=new H9;_queuedBlockTypeSynchronizations=new H9;_queuedChunkSynchronizations=new H9;_queuedDebugRaycastSynchronizations=[];_queuedEntitySynchronizations=new H9;_queuedLightSynchronizations=new H9;_queuedParticleEmitterSynchronizations=new H9;_queuedPerPlayerSynchronizations=new H9;_queuedPerPlayerCameraSynchronizations=new H9;_queuedPerPlayerUISynchronizations=new H9;_queuedPerPlayerUIDatasSynchronizations=new H9;_queuedPlayerSynchronizations=new H9;_queuedSceneUISynchronizations=new H9;_queuedWorldSynchronization;_loadedSceneUIs=new Set;_spawnedChunks=new Set;_spawnedEntities=new Set;_world;constructor(J){this._world=J,this._subscribeToAudioEvents(),this._subscribeToBlockTypeRegistryEvents(),this._subscribeToChatEvents(),this._subscribeToChunkLatticeEvents(),this._subscribeToEntityEvents(),this._subscribeToLightEvents(),this._subscribeToParticleEmitterEvents(),this._subscribeToPlayerEvents(),this._subscribeToPlayerCameraEvents(),this._subscribeToPlayerUIEvents(),this._subscribeToSceneUIEvents(),this._subscribeToSimulationEvents(),this._subscribeToWorldEvents()}synchronize(){let J=[],$=[],X=this._world.loop.currentTick;if(this._queuedPerPlayerSynchronizations.size>0)for(let[Y,Q]of this._queuedPerPlayerSynchronizations)this._createOrGetSynchronizedPlayerReliablePackets(Y,J).push(...Q);if(this._queuedEntitySynchronizations.size>0){let Y=[],Q=[];for(let W of this._queuedEntitySynchronizations.valuesArray){let K=!1;for(let Z in W)if(Z!=="i"&&Z!=="p"&&Z!=="r"){K=!0;break}if(K)Y.push(W);else Q.push(W)}if(Q.length>0){let W=h0.createPacket(h0.outboundPackets.entitiesPacketDefinition,Q,X);$.push(W)}if(Y.length>0){let W=h0.createPacket(h0.outboundPackets.entitiesPacketDefinition,Y,X);J.push(W);for(let K of this._synchronizedPlayerReliablePackets.valuesArray)K.push(W)}}if(this._queuedAudioSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.audiosPacketDefinition,this._queuedAudioSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedBlockTypeSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.blockTypesPacketDefinition,this._queuedBlockTypeSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedChunkSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.chunksPacketDefinition,this._queuedChunkSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedBlockSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.blocksPacketDefinition,this._queuedBlockSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedLightSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.lightsPacketDefinition,this._queuedLightSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedParticleEmitterSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.particleEmittersPacketDefinition,this._queuedParticleEmitterSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedPerPlayerUISynchronizations.size>0)for(let[Y,Q]of this._queuedPerPlayerUISynchronizations){let W=h0.createPacket(h0.outboundPackets.uiPacketDefinition,Q,X);this._createOrGetSynchronizedPlayerReliablePackets(Y,J).push(W)}if(this._queuedPerPlayerUIDatasSynchronizations.size>0)for(let[Y,Q]of this._queuedPerPlayerUIDatasSynchronizations){let W=h0.createPacket(h0.outboundPackets.uiDatasPacketDefinition,Q,X);this._createOrGetSynchronizedPlayerReliablePackets(Y,J).push(W)}if(this._queuedSceneUISynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.sceneUIsPacketDefinition,this._queuedSceneUISynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedWorldSynchronization){let Y=h0.createPacket(h0.outboundPackets.worldPacketDefinition,this._queuedWorldSynchronization,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedPerPlayerCameraSynchronizations.size>0)for(let[Y,Q]of this._queuedPerPlayerCameraSynchronizations){let W=h0.createPacket(h0.outboundPackets.cameraPacketDefinition,Q,X);this._createOrGetSynchronizedPlayerReliablePackets(Y,J).push(W)}if(this._queuedPlayerSynchronizations.size>0){let Y=h0.createPacket(h0.outboundPackets.playersPacketDefinition,this._queuedPlayerSynchronizations.valuesArray,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedBroadcasts.length>0)for(let Y of this._queuedBroadcasts){J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}if(this._queuedDebugRaycastSynchronizations.length>0){let Y=h0.createPacket(h0.outboundPackets.physicsDebugRaycastsPacketDefinition,this._queuedDebugRaycastSynchronizations,X);J.push(Y);for(let Q of this._synchronizedPlayerReliablePackets.valuesArray)Q.push(Y)}w6.startSpan({operation:"send_all_packets"},()=>{for(let Y of s$.instance.getConnectedPlayersByWorld(this._world)){let Q=this._synchronizedPlayerReliablePackets.get(Y)??J;if(Q.length>0)Y.connection.send(Q);if($.length>0)Y.connection.send($,!1)}}),w6.startSpan({operation:"network_synchronize_cleanup"},()=>{if(this._queuedBroadcasts.length>0)this._queuedBroadcasts.length=0;if(this._queuedAudioSynchronizations.size>0)this._queuedAudioSynchronizations.clear();if(this._queuedBlockSynchronizations.size>0)this._queuedBlockSynchronizations.clear();if(this._queuedBlockTypeSynchronizations.size>0)this._queuedBlockTypeSynchronizations.clear();if(this._queuedChunkSynchronizations.size>0)this._queuedChunkSynchronizations.clear();if(this._queuedDebugRaycastSynchronizations.length>0)this._queuedDebugRaycastSynchronizations.length=0;if(this._queuedEntitySynchronizations.size>0)this._queuedEntitySynchronizations.clear();if(this._queuedLightSynchronizations.size>0)this._queuedLightSynchronizations.clear();if(this._queuedParticleEmitterSynchronizations.size>0)this._queuedParticleEmitterSynchronizations.clear();if(this._queuedPerPlayerSynchronizations.size>0)this._queuedPerPlayerSynchronizations.clear();if(this._queuedPerPlayerCameraSynchronizations.size>0)this._queuedPerPlayerCameraSynchronizations.clear();if(this._queuedPerPlayerUISynchronizations.size>0)this._queuedPerPlayerUISynchronizations.clear();if(this._queuedPerPlayerUIDatasSynchronizations.size>0)this._queuedPerPlayerUIDatasSynchronizations.clear();if(this._queuedPlayerSynchronizations.size>0)this._queuedPlayerSynchronizations.clear();if(this._queuedSceneUISynchronizations.size>0)this._queuedSceneUISynchronizations.clear();if(this._queuedWorldSynchronization)this._queuedWorldSynchronization=void 0;if(this._loadedSceneUIs.size>0)this._loadedSceneUIs.clear();if(this._spawnedChunks.size>0)this._spawnedChunks.clear();if(this._spawnedEntities.size>0)this._spawnedEntities.clear();if(this._synchronizedPlayerReliablePackets.size>0)this._synchronizedPlayerReliablePackets.clear();i$.clearCachedPacketsSerializedBuffers()})}_subscribeToAudioEvents(){this._world.final("AUDIO.PAUSE",this._onAudioPause),this._world.final("AUDIO.PLAY",this._onAudioPlay),this._world.final("AUDIO.PLAY_RESTART",this._onAudioPlayRestart),this._world.final("AUDIO.SET_ATTACHED_TO_ENTITY",this._onAudioSetAttachedToEntity),this._world.final("AUDIO.SET_CUTOFF_DISTANCE",this._onAudioSetCutoffDistance),this._world.final("AUDIO.SET_DETUNE",this._onAudioSetDetune),this._world.final("AUDIO.SET_DISTORTION",this._onAudioSetDistortion),this._world.final("AUDIO.SET_POSITION",this._onAudioSetPosition),this._world.final("AUDIO.SET_PLAYBACK_RATE",this._onAudioSetPlaybackRate),this._world.final("AUDIO.SET_REFERENCE_DISTANCE",this._onAudioSetReferenceDistance),this._world.final("AUDIO.SET_VOLUME",this._onAudioSetVolume)}_subscribeToBlockTypeRegistryEvents(){this._world.final("BLOCK_TYPE_REGISTRY.REGISTER_BLOCK_TYPE",this._onBlockTypeRegistryRegisterBlockType)}_subscribeToChatEvents(){this._world.final("CHAT.BROADCAST_MESSAGE",this._onChatSendBroadcastMessage),this._world.final("CHAT.PLAYER_MESSAGE",this._onChatSendPlayerMessage)}_subscribeToChunkLatticeEvents(){this._world.final("CHUNK_LATTICE.ADD_CHUNK",this._onChunkLatticeAddChunk),this._world.final("CHUNK_LATTICE.REMOVE_CHUNK",this._onChunkLatticeRemoveChunk),this._world.final("CHUNK_LATTICE.SET_BLOCK",this._onChunkLatticeSetBlock)}_subscribeToEntityEvents(){this._world.final("ENTITY.SPAWN",this._onEntitySpawn),this._world.final("ENTITY.DESPAWN",this._onEntityDespawn),this._world.final("ENTITY.SET_MODEL_ANIMATIONS_PLAYBACK_RATE",this._onEntitySetModelAnimationsPlaybackRate),this._world.final("ENTITY.SET_MODEL_HIDDEN_NODES",this._onEntitySetModelHiddenNodes),this._world.final("ENTITY.SET_MODEL_SCALE",this._onEntitySetModelScale),this._world.final("ENTITY.SET_MODEL_SHOWN_NODES",this._onEntitySetModelShownNodes),this._world.final("ENTITY.SET_MODEL_TEXTURE_URI",this._onEntitySetModelTextureUri),this._world.final("ENTITY.SET_OPACITY",this._onEntitySetOpacity),this._world.final("ENTITY.SET_PARENT",this._onEntitySetParent),this._world.final("ENTITY.SET_TINT_COLOR",this._onEntitySetTintColor),this._world.final("ENTITY.START_MODEL_LOOPED_ANIMATIONS",this._onEntityStartModelLoopedAnimations),this._world.final("ENTITY.START_MODEL_ONESHOT_ANIMATIONS",this._onEntityStartModelOneshotAnimations),this._world.final("ENTITY.STOP_MODEL_ANIMATIONS",this._onEntityStopModelAnimations),this._world.final("ENTITY.UPDATE_POSITION",this._onEntityUpdatePosition),this._world.final("ENTITY.UPDATE_ROTATION",this._onEntityUpdateRotation)}_subscribeToLightEvents(){this._world.final("LIGHT.DESPAWN",this._onLightDespawn),this._world.final("LIGHT.SET_ANGLE",this._onLightSetAngle),this._world.final("LIGHT.SET_ATTACHED_TO_ENTITY",this._onLightSetAttachedToEntity),this._world.final("LIGHT.SET_COLOR",this._onLightSetColor),this._world.final("LIGHT.SET_DISTANCE",this._onLightSetDistance),this._world.final("LIGHT.SET_INTENSITY",this._onLightSetIntensity),this._world.final("LIGHT.SET_OFFSET",this._onLightSetOffset),this._world.final("LIGHT.SET_PENUMBRA",this._onLightSetPenumbra),this._world.final("LIGHT.SET_POSITION",this._onLightSetPosition),this._world.final("LIGHT.SET_TRACKED_ENTITY",this._onLightSetTrackedEntity),this._world.final("LIGHT.SET_TRACKED_POSITION",this._onLightSetTrackedPosition),this._world.final("LIGHT.SPAWN",this._onLightSpawn)}_subscribeToParticleEmitterEvents(){this._world.final("PARTICLE_EMITTER.DESPAWN",this._onParticleEmitterDespawn),this._world.final("PARTICLE_EMITTER.BURST",this._onParticleEmitterBurst),this._world.final("PARTICLE_EMITTER.SET_ALPHA_TEST",this._onParticleEmitterSetAlphaTest),this._world.final("PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY",this._onParticleEmitterSetAttachedToEntity),this._world.final("PARTICLE_EMITTER.SET_ATTACHED_TO_ENTITY_NODE_NAME",this._onParticleEmitterSetAttachedToEntityNodeName),this._world.final("PARTICLE_EMITTER.SET_COLOR_END",this._onParticleEmitterSetColorEnd),this._world.final("PARTICLE_EMITTER.SET_COLOR_END_VARIANCE",this._onParticleEmitterSetColorEndVariance),this._world.final("PARTICLE_EMITTER.SET_COLOR_START",this._onParticleEmitterSetColorStart),this._world.final("PARTICLE_EMITTER.SET_COLOR_START_VARIANCE",this._onParticleEmitterSetColorStartVariance),this._world.final("PARTICLE_EMITTER.SET_GRAVITY",this._onParticleEmitterSetGravity),this._world.final("PARTICLE_EMITTER.SET_LIFETIME",this._onParticleEmitterSetLifetime),this._world.final("PARTICLE_EMITTER.SET_LIFETIME_VARIANCE",this._onParticleEmitterSetLifetimeVariance),this._world.final("PARTICLE_EMITTER.SET_MAX_PARTICLES",this._onParticleEmitterSetMaxParticles),this._world.final("PARTICLE_EMITTER.SET_OFFSET",this._onParticleEmitterSetOffset),this._world.final("PARTICLE_EMITTER.SET_OPACITY_END",this._onParticleEmitterSetOpacityEnd),this._world.final("PARTICLE_EMITTER.SET_OPACITY_END_VARIANCE",this._onParticleEmitterSetOpacityEndVariance),this._world.final("PARTICLE_EMITTER.SET_OPACITY_START",this._onParticleEmitterSetOpacityStart),this._world.final("PARTICLE_EMITTER.SET_OPACITY_START_VARIANCE",this._onParticleEmitterSetOpacityStartVariance),this._world.final("PARTICLE_EMITTER.SET_PAUSED",this._onParticleEmitterSetPaused),this._world.final("PARTICLE_EMITTER.SET_POSITION",this._onParticleEmitterSetPosition),this._world.final("PARTICLE_EMITTER.SET_POSITION_VARIANCE",this._onParticleEmitterSetPositionVariance),this._world.final("PARTICLE_EMITTER.SET_RATE",this._onParticleEmitterSetRate),this._world.final("PARTICLE_EMITTER.SET_RATE_VARIANCE",this._onParticleEmitterSetRateVariance),this._world.final("PARTICLE_EMITTER.SET_SIZE_END",this._onParticleEmitterSetSizeEnd),this._world.final("PARTICLE_EMITTER.SET_SIZE_END_VARIANCE",this._onParticleEmitterSetSizeEndVariance),this._world.final("PARTICLE_EMITTER.SET_SIZE_START",this._onParticleEmitterSetSizeStart),this._world.final("PARTICLE_EMITTER.SET_SIZE_START_VARIANCE",this._onParticleEmitterSetSizeStartVariance),this._world.final("PARTICLE_EMITTER.SET_TEXTURE_URI",this._onParticleEmitterSetTextureUri),this._world.final("PARTICLE_EMITTER.SET_TRANSPARENT",this._onParticleEmitterSetTransparent),this._world.final("PARTICLE_EMITTER.SET_VELOCITY",this._onParticleEmitterSetVelocity),this._world.final("PARTICLE_EMITTER.SET_VELOCITY_VARIANCE",this._onParticleEmitterSetVelocityVariance),this._world.final("PARTICLE_EMITTER.SPAWN",this._onParticleEmitterSpawn)}_subscribeToPlayerEvents(){this._world.final("PLAYER.JOINED_WORLD",this._onPlayerJoinedWorld),this._world.final("PLAYER.LEFT_WORLD",this._onPlayerLeftWorld),this._world.final("PLAYER.RECONNECTED_WORLD",this._onPlayerReconnectedWorld),this._world.final("PLAYER.REQUEST_NOTIFICATION_PERMISSION",this._onPlayerRequestNotificationPermission),this._world.final("PLAYER.REQUEST_SYNC",this._onPlayerRequestSync)}_subscribeToPlayerCameraEvents(){this._world.final("PLAYER_CAMERA.LOOK_AT_ENTITY",this._onPlayerCameraLookAtEntity),this._world.final("PLAYER_CAMERA.LOOK_AT_POSITION",this._onPlayerCameraLookAtPosition),this._world.final("PLAYER_CAMERA.SET_ATTACHED_TO_ENTITY",this._onPlayerCameraSetAttachedToEntity),this._world.final("PLAYER_CAMERA.SET_ATTACHED_TO_POSITION",this._onPlayerCameraSetAttachedToPosition),this._world.final("PLAYER_CAMERA.SET_FILM_OFFSET",this._onPlayerCameraSetFilmOffset),this._world.final("PLAYER_CAMERA.SET_FORWARD_OFFSET",this._onPlayerCameraSetForwardOffset),this._world.final("PLAYER_CAMERA.SET_FOV",this._onPlayerCameraSetFov),this._world.final("PLAYER_CAMERA.SET_MODEL_HIDDEN_NODES",this._onPlayerCameraSetModelHiddenNodes),this._world.final("PLAYER_CAMERA.SET_MODEL_SHOWN_NODES",this._onPlayerCameraSetModelShownNodes),this._world.final("PLAYER_CAMERA.SET_MODE",this._onPlayerCameraSetMode),this._world.final("PLAYER_CAMERA.SET_OFFSET",this._onPlayerCameraSetOffset),this._world.final("PLAYER_CAMERA.SET_SHOULDER_ANGLE",this._onPlayerCameraSetShoulderAngle),this._world.final("PLAYER_CAMERA.SET_TRACKED_ENTITY",this._onPlayerCameraSetTrackedEntity),this._world.final("PLAYER_CAMERA.SET_TRACKED_POSITION",this._onPlayerCameraSetTrackedPosition),this._world.final("PLAYER_CAMERA.SET_ZOOM",this._onPlayerCameraSetZoom)}_subscribeToPlayerUIEvents(){this._world.final("PLAYER_UI.LOAD",this._onPlayerUILoad),this._world.final("PLAYER_UI.LOCK_POINTER",this._onPlayerUILockPointer),this._world.final("PLAYER_UI.SEND_DATA",this._onPlayerUISendData)}_subscribeToSceneUIEvents(){this._world.final("SCENE_UI.LOAD",this._onSceneUILoad),this._world.final("SCENE_UI.SET_ATTACHED_TO_ENTITY",this._onSceneUISetAttachedToEntity),this._world.final("SCENE_UI.SET_OFFSET",this._onSceneUISetOffset),this._world.final("SCENE_UI.SET_POSITION",this._onSceneUISetPosition),this._world.final("SCENE_UI.SET_STATE",this._onSceneUISetState),this._world.final("SCENE_UI.SET_VIEW_DISTANCE",this._onSceneUISetViewDistance),this._world.final("SCENE_UI.UNLOAD",this._onSceneUIUnload)}_subscribeToSimulationEvents(){this._world.final("SIMULATION.DEBUG_RAYCAST",this._onSimulationDebugRaycast),this._world.final("SIMULATION.DEBUG_RENDER",this._onSimulationDebugRender)}_subscribeToWorldEvents(){this._world.final("WORLD.SET_AMBIENT_LIGHT_COLOR",this._onWorldSetAmbientLightColor),this._world.final("WORLD.SET_AMBIENT_LIGHT_INTENSITY",this._onWorldSetAmbientLightIntensity),this._world.final("WORLD.SET_DIRECTIONAL_LIGHT_COLOR",this._onWorldSetDirectionalLightColor),this._world.final("WORLD.SET_DIRECTIONAL_LIGHT_INTENSITY",this._onWorldSetDirectionalLightIntensity),this._world.final("WORLD.SET_DIRECTIONAL_LIGHT_POSITION",this._onWorldSetDirectionalLightPosition),this._world.final("WORLD.SET_FOG_COLOR",this._onWorldSetFogColor),this._world.final("WORLD.SET_FOG_FAR",this._onWorldSetFogFar),this._world.final("WORLD.SET_FOG_NEAR",this._onWorldSetFogNear),this._world.final("WORLD.SET_SKYBOX_INTENSITY",this._onWorldSetSkyboxIntensity),this._world.final("WORLD.SET_SKYBOX_URI",this._onWorldSetSkyboxUri)}_onAudioPause=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.pa=!0,delete $.pl,delete $.r};_onAudioPlay=(J)=>{let $=J.audio.serialize();$.pl=!0,delete $.pa,delete $.r,this._queuedAudioSynchronizations.set($.i,$)};_onAudioPlayRestart=(J)=>{let $=J.audio.serialize();$.r=!0,delete $.pa,delete $.pl,this._queuedAudioSynchronizations.set($.i,$)};_onAudioSetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.e=J.entity?J.entity.id:void 0,$.p=J.entity?void 0:$.p};_onAudioSetCutoffDistance=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.cd=J.cutoffDistance};_onAudioSetDetune=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.de=J.detune};_onAudioSetDistortion=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.di=J.distortion};_onAudioSetPosition=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.e=J.position?void 0:$.e,$.p=J.position?V8.serializeVector(J.position):void 0};_onAudioSetPlaybackRate=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.pr=J.playbackRate};_onAudioSetReferenceDistance=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.rd=J.referenceDistance};_onAudioSetVolume=(J)=>{let $=this._createOrGetQueuedAudioSync(J.audio);$.v=J.volume};_onBlockTypeRegistryRegisterBlockType=(J)=>{let $=J.blockType.serialize();this._queuedBlockTypeSynchronizations.set(J.blockType.id,$)};_onChatSendBroadcastMessage=(J)=>{let{player:$,message:X,color:Y}=J;this._queuedBroadcasts.push(h0.createPacket(h0.outboundPackets.chatMessagesPacketDefinition,[{m:X,c:Y,p:$?.id}],this._world.loop.currentTick))};_onChatSendPlayerMessage=(J)=>{let{player:$,message:X,color:Y}=J,Q=this._queuedPerPlayerSynchronizations.get($)??[];Q.push(h0.createPacket(h0.outboundPackets.chatMessagesPacketDefinition,[{m:X,c:Y}],this._world.loop.currentTick)),this._queuedPerPlayerSynchronizations.set($,Q)};_onChunkLatticeAddChunk=(J)=>{let $=this._createOrGetQueuedChunkSync(J.chunk);$.b=Array.from(J.chunk.blocks),$.rm=void 0,this._spawnedChunks.add($.c.join(","))};_onChunkLatticeRemoveChunk=(J)=>{let $=this._createOrGetQueuedChunkSync(J.chunk),X=$.c.join(",");if(this._spawnedChunks.has(X))this._queuedChunkSynchronizations.delete(X),this._spawnedChunks.delete(X);else $.rm=!0};_onChunkLatticeSetBlock=(J)=>{let $=this._createOrGetQueuedBlockSync(J.globalCoordinate);$.i=J.blockTypeId};_onEntitySetModelAnimationsPlaybackRate=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.ap=J.playbackRate};_onEntitySpawn=(J)=>{let $=J.entity.serialize();this._queuedEntitySynchronizations.set($.i,$),this._spawnedEntities.add($.i)};_onEntityDespawn=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);if(this._spawnedEntities.has($.i))this._queuedEntitySynchronizations.delete($.i),this._spawnedEntities.delete($.i);else $.rm=!0};_onEntitySetModelHiddenNodes=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.h=Array.from(J.modelHiddenNodes)};_onEntitySetModelScale=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.sv=J.modelScale?V8.serializeVector(J.modelScale):void 0};_onEntitySetModelShownNodes=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.sn=Array.from(J.modelShownNodes)};_onEntitySetModelTextureUri=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.mt=J.modelTextureUri};_onEntitySetOpacity=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.o=J.opacity};_onEntitySetParent=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.pe=J.parent?J.parent.id:void 0,$.pn=J.parentNodeName};_onEntitySetTintColor=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.t=J.tintColor?V8.serializeRgbColor(J.tintColor):void 0};_onEntityStartModelLoopedAnimations=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);if($.al=Array.from(new Set([...$.al??[],...J.animations])),$.as)$.as=$.as.filter((X)=>!J.animations.has(X)).filter(Boolean)};_onEntityStartModelOneshotAnimations=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);if($.ao=Array.from(new Set([...$.ao??[],...J.animations])),$.as)$.as=$.as.filter((X)=>!J.animations.has(X)).filter(Boolean)};_onEntityStopModelAnimations=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);if($.al)$.al=$.al.filter((X)=>!J.animations.has(X)).filter(Boolean);if($.ao)$.ao=$.ao.filter((X)=>!J.animations.has(X)).filter(Boolean);$.as=Array.from(new Set([...$.as??[],...J.animations]))};_onEntityUpdateRotation=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.r=[J.rotation.x,J.rotation.y,J.rotation.z,J.rotation.w]};_onEntityUpdatePosition=(J)=>{let $=this._createOrGetQueuedEntitySync(J.entity);$.p=[J.position.x,J.position.y,J.position.z]};_onLightDespawn=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.rm=!0};_onLightSetAngle=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.a=J.angle};_onLightSetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.e=J.entity?J.entity.id:void 0,$.p=J.entity?void 0:$.p};_onLightSetColor=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.c=V8.serializeRgbColor(J.color)};_onLightSetDistance=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.d=J.distance};_onLightSetIntensity=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.n=J.intensity};_onLightSetOffset=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.o=J.offset?V8.serializeVector(J.offset):void 0};_onLightSetPenumbra=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.pe=J.penumbra};_onLightSetPosition=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.p=J.position?V8.serializeVector(J.position):void 0,$.e=J.position?void 0:$.e};_onLightSetTrackedEntity=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.te=J.entity?J.entity.id:void 0,$.tp=J.entity?void 0:$.tp};_onLightSetTrackedPosition=(J)=>{let $=this._createOrGetQueuedLightSync(J.light);$.tp=J.position?V8.serializeVector(J.position):void 0,$.te=J.position?void 0:$.te};_onLightSpawn=(J)=>{let $=J.light.serialize();this._queuedLightSynchronizations.set($.i,$)};_onParticleEmitterBurst=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.b=J.count};_onParticleEmitterDespawn=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.rm=!0};_onParticleEmitterSetAlphaTest=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.at=J.alphaTest};_onParticleEmitterSetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.e=J.entity?J.entity.id:void 0,$.p=J.entity?void 0:$.p};_onParticleEmitterSetAttachedToEntityNodeName=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.en=J.attachedToEntityNodeName};_onParticleEmitterSetColorEnd=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.ce=J.colorEnd?V8.serializeRgbColor(J.colorEnd):void 0};_onParticleEmitterSetColorEndVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.cev=J.colorEndVariance?V8.serializeRgbColor(J.colorEndVariance):void 0};_onParticleEmitterSetColorStart=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.cs=J.colorStart?V8.serializeRgbColor(J.colorStart):void 0};_onParticleEmitterSetColorStartVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.csv=J.colorStartVariance?V8.serializeRgbColor(J.colorStartVariance):void 0};_onParticleEmitterSetGravity=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.g=J.gravity?V8.serializeVector(J.gravity):void 0};_onParticleEmitterSetLifetime=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.l=J.lifetime};_onParticleEmitterSetLifetimeVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.lv=J.lifetimeVariance};_onParticleEmitterSetMaxParticles=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.mp=J.maxParticles};_onParticleEmitterSetOffset=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.o=J.offset?V8.serializeVector(J.offset):void 0};_onParticleEmitterSetOpacityEnd=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.oe=J.opacityEnd};_onParticleEmitterSetOpacityEndVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.oev=J.opacityEndVariance};_onParticleEmitterSetOpacityStart=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.os=J.opacityStart};_onParticleEmitterSetOpacityStartVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.osv=J.opacityStartVariance};_onParticleEmitterSetPaused=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.pa=J.paused};_onParticleEmitterSetPosition=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.p=J.position?V8.serializeVector(J.position):void 0,$.e=J.position?void 0:$.e,$.en=J.position?void 0:$.en};_onParticleEmitterSetPositionVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.pv=J.positionVariance?V8.serializeVector(J.positionVariance):void 0};_onParticleEmitterSetRate=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.r=J.rate};_onParticleEmitterSetRateVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.rv=J.rateVariance};_onParticleEmitterSetSizeEnd=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.se=J.sizeEnd};_onParticleEmitterSetSizeEndVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.sev=J.sizeEndVariance};_onParticleEmitterSetSizeStart=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.ss=J.sizeStart};_onParticleEmitterSetSizeStartVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.ssv=J.sizeStartVariance};_onParticleEmitterSetTextureUri=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.tu=J.textureUri};_onParticleEmitterSetTransparent=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.t=J.transparent};_onParticleEmitterSetVelocity=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.v=J.velocity?V8.serializeVector(J.velocity):void 0};_onParticleEmitterSetVelocityVariance=(J)=>{let $=this._createOrGetQueuedParticleEmitterSync(J.particleEmitter);$.vv=J.velocityVariance?V8.serializeVector(J.velocityVariance):void 0};_onParticleEmitterSpawn=(J)=>{let $=J.particleEmitter.serialize();this._queuedParticleEmitterSynchronizations.set($.i,$)};_onPlayerCameraLookAtEntity=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.pl=V8.serializeVector(J.entity.position),delete $.et,delete $.pt};_onPlayerCameraLookAtPosition=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.pl=J.position?V8.serializeVector(J.position):void 0,delete $.et,delete $.pt};_onPlayerCameraSetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.e=J.entity.id,delete $.p};_onPlayerCameraSetAttachedToPosition=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.p=J.position?V8.serializeVector(J.position):void 0,delete $.e};_onPlayerCameraSetFilmOffset=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.fo=J.filmOffset};_onPlayerCameraSetForwardOffset=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.ffo=J.forwardOffset};_onPlayerCameraSetFov=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.fv=J.fov};_onPlayerCameraSetModelHiddenNodes=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.h=Array.from(J.modelHiddenNodes)};_onPlayerCameraSetModelShownNodes=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.s=Array.from(J.modelShownNodes)};_onPlayerCameraSetMode=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.m=J.mode};_onPlayerCameraSetOffset=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.o=J.offset?V8.serializeVector(J.offset):void 0};_onPlayerCameraSetShoulderAngle=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.sa=J.shoulderAngle};_onPlayerCameraSetTrackedEntity=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.et=J.entity?J.entity.id:void 0,delete $.pl,delete $.pt};_onPlayerCameraSetTrackedPosition=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.pt=J.position?V8.serializeVector(J.position):void 0,delete $.et,delete $.pl};_onPlayerCameraSetZoom=(J)=>{let $=this._createOrGetQueuedPlayerCameraSync(J.playerCamera);$.z=J.zoom};_onPlayerJoinedWorld=(J)=>{let{player:$}=J,X=this._queuedPerPlayerSynchronizations.get($)??[];X.push(h0.createPacket(h0.outboundPackets.entitiesPacketDefinition,this._world.entityManager.getAllEntities().map((Q)=>{if($.camera.attachedToEntity===void 0&&Q instanceof kX&&Q.player===$)$.camera.setAttachedToEntity(Q);return Q.serialize()}),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.audiosPacketDefinition,this._world.audioManager.getAllAudios().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.blockTypesPacketDefinition,this._world.blockTypeRegistry.serialize(),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.chunksPacketDefinition,this._world.chunkLattice.getAllChunks().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.lightsPacketDefinition,this._world.lightManager.getAllLights().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.particleEmittersPacketDefinition,this._world.particleEmitterManager.getAllParticleEmitters().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.sceneUIsPacketDefinition,this._world.sceneUIManager.getAllSceneUIs().map((Q)=>Q.serialize()),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.worldPacketDefinition,this._world.serialize(),this._world.loop.currentTick)),X.push(h0.createPacket(h0.outboundPackets.playersPacketDefinition,s$.instance.getConnectedPlayers().map((Q)=>Q.serialize()),this._world.loop.currentTick));let Y=this._createOrGetQueuedPlayerCameraSync($.camera);this._queuedPerPlayerCameraSynchronizations.set($,{...$.camera.serialize(),...Y}),this._queuedPerPlayerSynchronizations.set($,X),this._queuedPlayerSynchronizations.set($.id,$.serialize())};_onPlayerLeftWorld=(J)=>{let $=this._createOrGetQueuedPlayerSync(J.player);$.rm=!0};_onPlayerReconnectedWorld=(J)=>{this._onPlayerJoinedWorld(J)};_onPlayerRequestNotificationPermission=(J)=>{let{player:$}=J,X=this._queuedPerPlayerSynchronizations.get($)??[];X.push(h0.createPacket(h0.outboundPackets.notificationPermissionRequestPacketDefinition,null,this._world.loop.currentTick)),this._queuedPerPlayerSynchronizations.set($,X)};_onPlayerRequestSync=(J)=>{J.player.connection.send([h0.createPacket(h0.outboundPackets.syncResponsePacketDefinition,{r:J.receivedAt,s:Date.now(),p:performance.now()-J.receivedAtMs,n:this._world.loop.nextTickMs},this._world.loop.currentTick)])};_onPlayerUILoad=(J)=>{let $=this._createOrGetQueuedPlayerUISync(J.playerUI);$.u=J.htmlUri};_onPlayerUILockPointer=(J)=>{let $=this._createOrGetQueuedPlayerUISync(J.playerUI);$.p=J.lock};_onPlayerUISendData=(J)=>{this._createOrGetQueuedPlayerUIDatasSync(J.playerUI).push(J.data)};_onSceneUILoad=(J)=>{let $=J.sceneUI.serialize();this._queuedSceneUISynchronizations.set($.i,$),this._loadedSceneUIs.add($.i)};_onSceneUISetAttachedToEntity=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.e=J.entity?J.entity.id:void 0,$.p=J.entity?void 0:$.p};_onSceneUISetOffset=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.o=J.offset?V8.serializeVector(J.offset):void 0};_onSceneUISetPosition=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.p=J.position?V8.serializeVector(J.position):void 0,$.e=J.position?void 0:$.e};_onSceneUISetState=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.s=J.state};_onSceneUISetViewDistance=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);$.v=J.viewDistance};_onSceneUIUnload=(J)=>{let $=this._createOrGetQueuedSceneUISync(J.sceneUI);if(this._loadedSceneUIs.has($.i))this._queuedSceneUISynchronizations.delete($.i),this._loadedSceneUIs.delete($.i);else $.rm=!0};_onSimulationDebugRaycast=(J)=>{this._queuedDebugRaycastSynchronizations.push(V8.serializePhysicsDebugRaycast(J))};_onSimulationDebugRender=(J)=>{this._queuedBroadcasts.push(h0.createPacket(h0.outboundPackets.physicsDebugRenderPacketDefinition,{v:Array.from(J.vertices),c:Array.from(J.colors)},this._world.loop.currentTick))};_onWorldSetAmbientLightColor=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.ac=V8.serializeRgbColor(J.color)};_onWorldSetAmbientLightIntensity=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.ai=J.intensity};_onWorldSetDirectionalLightColor=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.dc=V8.serializeRgbColor(J.color)};_onWorldSetDirectionalLightIntensity=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.di=J.intensity};_onWorldSetDirectionalLightPosition=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.dp=V8.serializeVector(J.position)};_onWorldSetFogColor=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.fc=V8.serializeRgbColor(J.color)};_onWorldSetFogFar=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.ff=J.far};_onWorldSetFogNear=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.fn=J.near};_onWorldSetSkyboxIntensity=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.si=J.intensity};_onWorldSetSkyboxUri=(J)=>{let $=this._createOrGetQueuedWorldSync(J.world);$.s=J.uri};_createOrGetQueuedAudioSync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedAudioSync(): Audio has no id!");let $=this._queuedAudioSynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedAudioSynchronizations.set(J.id,$);return $}_createOrGetQueuedBlockSync(J){let{x:$,y:X,z:Y}=J,Q=`${$},${X},${Y}`,W=this._queuedBlockSynchronizations.get(Q);if(!W)W={i:0,c:[$,X,Y]},this._queuedBlockSynchronizations.set(Q,W);return W}_createOrGetQueuedChunkSync(J){if(!J.originCoordinate)n.fatalError("NetworkSynchronizer._createOrGetQueuedChunkSync(): Chunk has no origin coordinate!");let{x:$,y:X,z:Y}=J.originCoordinate,Q=`${$},${X},${Y}`,W=this._queuedChunkSynchronizations.get(Q);if(!W)W={c:[$,X,Y]},this._queuedChunkSynchronizations.set(Q,W);return W}_createOrGetQueuedEntitySync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedEntitySync(): Entity has no id!");let $=this._queuedEntitySynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedEntitySynchronizations.set(J.id,$);return $}_createOrGetQueuedLightSync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedLightSync(): Light has no id!");let $=this._queuedLightSynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedLightSynchronizations.set(J.id,$);return $}_createOrGetQueuedParticleEmitterSync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedParticleEmitterSync(): ParticleEmitter has no id!");let $=this._queuedParticleEmitterSynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedParticleEmitterSynchronizations.set(J.id,$);return $}_createOrGetQueuedPlayerSync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedPlayerSync(): Player has no id!");let $=this._queuedPlayerSynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedPlayerSynchronizations.set(J.id,$);return $}_createOrGetQueuedPlayerCameraSync(J){let $=this._queuedPerPlayerCameraSynchronizations.get(J.player);if(!$)$={},this._queuedPerPlayerCameraSynchronizations.set(J.player,$);return $}_createOrGetQueuedPlayerUISync(J){let $=this._queuedPerPlayerUISynchronizations.get(J.player);if(!$)$={},this._queuedPerPlayerUISynchronizations.set(J.player,$);return $}_createOrGetQueuedPlayerUIDatasSync(J){let $=this._queuedPerPlayerUIDatasSynchronizations.get(J.player);if(!$)$=[],this._queuedPerPlayerUIDatasSynchronizations.set(J.player,$);return $}_createOrGetQueuedSceneUISync(J){if(J.id===void 0)n.fatalError("NetworkSynchronizer._createOrGetQueuedSceneUISync(): SceneUI has no id!");let $=this._queuedSceneUISynchronizations.get(J.id);if(!$)$={i:J.id},this._queuedSceneUISynchronizations.set(J.id,$);return $}_createOrGetQueuedWorldSync(J){if(J.id!==this._world.id)n.fatalError("NetworkSynchronizer._createOrGetQueuedWorldSync(): World does not match this network synchronizer world!");return this._queuedWorldSynchronization??={i:J.id}}_createOrGetSynchronizedPlayerReliablePackets(J,$){let X=this._synchronizedPlayerReliablePackets.get(J);if(!X)X=[...$],this._synchronizedPlayerReliablePackets.set(J,X);return X}}class HL{_particleEmitters=new Map;_nextParticleEmitterId=1;_world;constructor(J){this._world=J}get world(){return this._world}despawnEntityAttachedParticleEmitters(J){this.getAllEntityAttachedParticleEmitters(J).forEach(($)=>{$.despawn()})}getAllParticleEmitters(){return Array.from(this._particleEmitters.values())}getAllEntityAttachedParticleEmitters(J){return this.getAllParticleEmitters().filter(($)=>$.attachedToEntity===J)}registerParticleEmitter(J){if(J.id!==void 0)return J.id;let $=this._nextParticleEmitterId;return this._particleEmitters.set($,J),this._nextParticleEmitterId++,$}unregisterParticleEmitter(J){if(J.id===void 0)return;this._particleEmitters.delete(J.id)}}class qL{_sceneUIs=new Map;_nextSceneUIId=1;_world;constructor(J){this._world=J}get world(){return this._world}getAllSceneUIs(){return Array.from(this._sceneUIs.values())}getAllEntityAttachedSceneUIs(J){return this.getAllSceneUIs().filter(($)=>$.attachedToEntity===J)}getSceneUIById(J){return this._sceneUIs.get(J)}registerSceneUI(J){if(J.id!==void 0)return J.id;let $=this._nextSceneUIId;return this._sceneUIs.set($,J),this._nextSceneUIId++,$}unloadEntityAttachedSceneUIs(J){this.getAllEntityAttachedSceneUIs(J).forEach(($)=>{$.unload()})}unregisterSceneUI(J){if(J.id===void 0)return;this._sceneUIs.delete(J.id)}}var xK6=2,fK6=3;class zL{_accumulatorMs=0;_targetTicksPerSecond;_fixedTimestepMs;_fixedTimestepS;_maxAccumulatorMs;_nextTickMs=0;_lastLoopTimeMs=0;_tickFunction;_tickErrorCallback;_tickHandle=null;constructor(J,$,X){this._targetTicksPerSecond=J,this._fixedTimestepS=Math.fround(1/J),this._fixedTimestepMs=Math.fround(this._fixedTimestepS*1000),this._maxAccumulatorMs=this._fixedTimestepMs*fK6,this._tickFunction=$,this._tickErrorCallback=X}get targetTicksPerSecond(){return this._targetTicksPerSecond}get fixedTimestepMs(){return this._fixedTimestepMs}get fixedTimestepS(){return this._fixedTimestepS}get isStarted(){return!!this._tickHandle}get nextTickMs(){return this._nextTickMs}start(){if(this._tickHandle)return;this._lastLoopTimeMs=performance.now();let J=()=>{let $=performance.now(),X=$-this._lastLoopTimeMs;if(this._lastLoopTimeMs=$,this._accumulatorMs+=X,this._accumulatorMs>this._maxAccumulatorMs)this._accumulatorMs=this._maxAccumulatorMs;if(this._accumulatorMs>=this._fixedTimestepMs)w6.startSpan({operation:"ticker_tick"},()=>{let Y=0;while(this._accumulatorMs>=this._fixedTimestepMs&&Y<xK6)this._tick(this._fixedTimestepMs),this._accumulatorMs-=this._fixedTimestepMs,Y++});this._nextTickMs=Math.max(0,this._fixedTimestepMs-this._accumulatorMs),this._tickHandle=setTimeout(J,this._nextTickMs)};J()}stop(){if(!this._tickHandle)return;clearTimeout(this._tickHandle),this._tickHandle=null}_tick(J){try{this._tickFunction(J)}catch($){if($ instanceof Error&&this._tickErrorCallback)this._tickErrorCallback($);else n.warning(`Ticker._tick(): tick callback threw an error, but it was not an instance of Error. Error: ${$}`)}}}var Iq8;((W)=>{W.START="WORLD_LOOP.START";W.STOP="WORLD_LOOP.STOP";W.TICK_START="WORLD_LOOP.TICK_START";W.TICK_END="WORLD_LOOP.TICK_END";W.TICK_ERROR="WORLD_LOOP.TICK_ERROR"})(Iq8||={});class UL extends $8{_currentTick=0;_ticker;_world;constructor(J,$=Jd){super();this._ticker=new zL($,this._tick,this._onTickError),this._world=J}get currentTick(){return this._currentTick}get isStarted(){return this._ticker.isStarted}get nextTickMs(){return this._ticker.nextTickMs}get timestepS(){return this._ticker.fixedTimestepS}get world(){return this._world}start(){this._ticker.start(),this.emitWithWorld(this._world,"WORLD_LOOP.START",{worldLoop:this})}stop(){this._ticker.stop(),this.emitWithWorld(this._world,"WORLD_LOOP.STOP",{worldLoop:this})}_tick=(J)=>{this.emitWithWorld(this._world,"WORLD_LOOP.TICK_START",{worldLoop:this,tickDeltaMs:J});let $=performance.now();w6.startSpan({operation:"world_tick",attributes:{serverPlayerCount:s$.instance.playerCount,targetTickRate:this._ticker.targetTicksPerSecond,targetTickRateMs:this._ticker.fixedTimestepMs,worldId:this._world.id,worldName:this._world.name,worldChunkCount:this._world.chunkLattice.chunkCount,worldEntityCount:this._world.entityManager.entityCount,worldLoopTick:this._currentTick}},()=>{w6.startSpan({operation:"entities_tick"},()=>this._world.entityManager.tickEntities(J)),w6.startSpan({operation:"simulation_step"},()=>this._world.simulation.step(J)),w6.startSpan({operation:"entities_emit_updates"},()=>this._world.entityManager.checkAndEmitUpdates()),w6.startSpan({operation:"network_synchronize"},()=>this._world.networkSynchronizer.synchronize())}),this._currentTick++,this.emitWithWorld(this._world,"WORLD_LOOP.TICK_END",{worldLoop:this,tickDurationMs:performance.now()-$})};_onTickError=(J)=>{n.error(`WorldLoop._onTickError(): Error: ${J}`),this.emitWithWorld(this._world,"WORLD_LOOP.TICK_ERROR",{worldLoop:this,error:J})}}var Xd;((q)=>{q.SET_AMBIENT_LIGHT_COLOR="WORLD.SET_AMBIENT_LIGHT_COLOR";q.SET_AMBIENT_LIGHT_INTENSITY="WORLD.SET_AMBIENT_LIGHT_INTENSITY";q.SET_DIRECTIONAL_LIGHT_COLOR="WORLD.SET_DIRECTIONAL_LIGHT_COLOR";q.SET_DIRECTIONAL_LIGHT_INTENSITY="WORLD.SET_DIRECTIONAL_LIGHT_INTENSITY";q.SET_DIRECTIONAL_LIGHT_POSITION="WORLD.SET_DIRECTIONAL_LIGHT_POSITION";q.SET_FOG_COLOR="WORLD.SET_FOG_COLOR";q.SET_FOG_FAR="WORLD.SET_FOG_FAR";q.SET_FOG_NEAR="WORLD.SET_FOG_NEAR";q.SET_SKYBOX_INTENSITY="WORLD.SET_SKYBOX_INTENSITY";q.SET_SKYBOX_URI="WORLD.SET_SKYBOX_URI";q.START="WORLD.START";q.STOP="WORLD.STOP"})(Xd||={});class FL extends $8{_id;_ambientLightColor;_ambientLightIntensity;_audioManager;_blockTypeRegistry;_chatManager;_chunkLattice;_directionalLightColor;_directionalLightIntensity;_directionalLightPosition;_entityManager;_fogColor;_fogFar;_fogNear;_lightManager;_loop;_name;_networkSynchronizer;_particleEmitterManager;_sceneUIManager;_simulation;_skyboxIntensity;_skyboxUri;_tag;constructor(J){super();if(this._id=J.id,this._ambientLightColor=J.ambientLightColor??{r:255,g:255,b:255},this._ambientLightIntensity=J.ambientLightIntensity??1,this._directionalLightColor=J.directionalLightColor??{r:255,g:255,b:255},this._directionalLightIntensity=J.directionalLightIntensity??3,this._directionalLightPosition=J.directionalLightPosition??{x:100,y:150,z:100},this._fogColor=J.fogColor,this._fogFar=J.fogFar??550,this._fogNear=J.fogNear??500,this._name=J.name,this._skyboxIntensity=J.skyboxIntensity??1,this._skyboxUri=J.skyboxUri,this._tag=J.tag,this._audioManager=new aq(this),this._blockTypeRegistry=new FF(this),this._chatManager=new eF(this),this._chunkLattice=new J3(this),this._entityManager=new Q3(this),this._lightManager=new GL(this),this._loop=new UL(this,J.tickRate),this._networkSynchronizer=new nP(this),this._particleEmitterManager=new HL(this),this._sceneUIManager=new qL(this),this._simulation=new VL(this,J.tickRate,J.gravity),J.map)this.loadMap(J.map)}get id(){return this._id}get ambientLightColor(){return this._ambientLightColor}get ambientLightIntensity(){return this._ambientLightIntensity}get blockTypeRegistry(){return this._blockTypeRegistry}get chatManager(){return this._chatManager}get chunkLattice(){return this._chunkLattice}get directionalLightColor(){return this._directionalLightColor}get directionalLightIntensity(){return this._directionalLightIntensity}get directionalLightPosition(){return this._directionalLightPosition}get entityManager(){return this._entityManager}get fogColor(){return this._fogColor}get fogFar(){return this._fogFar}get fogNear(){return this._fogNear}get lightManager(){return this._lightManager}get loop(){return this._loop}get name(){return this._name}get networkSynchronizer(){return this._networkSynchronizer}get particleEmitterManager(){return this._particleEmitterManager}get sceneUIManager(){return this._sceneUIManager}get simulation(){return this._simulation}get skyboxIntensity(){return this._skyboxIntensity}get skyboxUri(){return this._skyboxUri}get audioManager(){return this._audioManager}get tag(){return this._tag}loadMap(J){if(this.chunkLattice.clear(),J.blockTypes)for(let $ of J.blockTypes)this.blockTypeRegistry.registerGenericBlockType({id:$.id,isLiquid:$.isLiquid,lightLevel:$.lightLevel,name:$.name,textureUri:$.textureUri});if(J.blocks){let $={};for(let X in J.blocks){let Y=J.blocks[X],Q=X.indexOf(","),W=X.indexOf(",",Q+1),K=Number(X.slice(0,Q)),Z=Number(X.slice(Q+1,W)),G=Number(X.slice(W+1));if(!$[Y])$[Y]=[];$[Y].push({x:K,y:Z,z:G})}this.chunkLattice.initializeBlocks($)}if(J.entities)for(let $ in J.entities){let X=J.entities[$],Y=$.indexOf(","),Q=$.indexOf(",",Y+1),W=Number($.slice(0,Y)),K=Number($.slice(Y+1,Q)),Z=Number($.slice(Q+1));new v6({isEnvironmental:!0,...X}).spawn(this,{x:W,y:K,z:Z})}}setAmbientLightColor(J){this._ambientLightColor=J,this.emit("WORLD.SET_AMBIENT_LIGHT_COLOR",{world:this,color:J})}setAmbientLightIntensity(J){this._ambientLightIntensity=J,this.emit("WORLD.SET_AMBIENT_LIGHT_INTENSITY",{world:this,intensity:J})}setDirectionalLightColor(J){this._directionalLightColor=J,this.emit("WORLD.SET_DIRECTIONAL_LIGHT_COLOR",{world:this,color:J})}setDirectionalLightIntensity(J){this._directionalLightIntensity=J,this.emit("WORLD.SET_DIRECTIONAL_LIGHT_INTENSITY",{world:this,intensity:J})}setDirectionalLightPosition(J){this._directionalLightPosition=J,this.emit("WORLD.SET_DIRECTIONAL_LIGHT_POSITION",{world:this,position:J})}setFogColor(J){this._fogColor=J,this.emit("WORLD.SET_FOG_COLOR",{world:this,color:J})}setFogFar(J){this._fogFar=J,this.emit("WORLD.SET_FOG_FAR",{world:this,far:J})}setFogNear(J){this._fogNear=J,this.emit("WORLD.SET_FOG_NEAR",{world:this,near:J})}setSkyboxIntensity(J){this._skyboxIntensity=J,this.emit("WORLD.SET_SKYBOX_INTENSITY",{world:this,intensity:J})}setSkyboxUri(J){this._skyboxUri=J,this.emit("WORLD.SET_SKYBOX_URI",{world:this,uri:J})}start(){if(this._loop.isStarted)return;this._loop.start(),this.emit("WORLD.START",{world:this,startedAtMs:Date.now()})}stop(){if(!this._loop.isStarted)return;this._loop.stop(),this.emit("WORLD.STOP",{world:this,stoppedAtMs:Date.now()})}serialize(){return V8.serializeWorld(this)}}var Aq8;(($)=>$.WORLD_CREATED="WORLD_MANAGER.WORLD_CREATED")(Aq8||={});class tW{static instance=new tW;_defaultWorld;_nextWorldId=1;_worlds=new Map;createWorld(J){let $=new FL({...J,id:this._nextWorldId++});return $.start(),this._worlds.set($.id,$),$8.globalInstance.emit("WORLD_MANAGER.WORLD_CREATED",{world:$}),$}getAllWorlds(){return Array.from(this._worlds.values())}getDefaultWorld(){return this._defaultWorld??=this.createWorld({name:"Default World",skyboxUri:"skyboxes/partly-cloudy"}),this._defaultWorld}getWorldsByTag(J){let $=[];return this._worlds.forEach((X)=>{if(X.tag===J)$.push(X)}),$}getWorld(J){return this._worlds.get(J)}setDefaultWorld(J){this._defaultWorld=J}}var _q8;((Y)=>{Y.PLAYER_CONNECTED="PLAYER_MANAGER.PLAYER_CONNECTED";Y.PLAYER_DISCONNECTED="PLAYER_MANAGER.PLAYER_DISCONNECTED";Y.PLAYER_RECONNECTED="PLAYER_MANAGER.PLAYER_RECONNECTED"})(_q8||={});class s${static instance=new s$;worldSelectionHandler;_connectionPlayers=new Map;constructor(){$8.globalInstance.on("CONNECTION.OPENED",({connection:J,session:$})=>{this._onConnectionOpened(J,$)}),$8.globalInstance.on("CONNECTION.DISCONNECTED",({connection:J})=>{this._onConnectionDisconnected(J)}),$8.globalInstance.on("CONNECTION.RECONNECTED",({connection:J})=>{this._onConnectionReconnected(J)}),$8.globalInstance.on("CONNECTION.CLOSED",({connection:J})=>{this._onConnectionClosed(J)})}get playerCount(){return this._connectionPlayers.size}getConnectedPlayers(){return Array.from(this._connectionPlayers.values())}getConnectedPlayersByWorld(J){return this.getConnectedPlayers().filter(($)=>$.world===J)}getConnectedPlayerByUsername(J){return Array.from(this._connectionPlayers.values()).find(($)=>{return $.username.toLowerCase()===J.toLowerCase()})}async _onConnectionOpened(J,$){let X=new TH(J,$);await X.loadInitialPersistedData(),$8.globalInstance.emit("PLAYER_MANAGER.PLAYER_CONNECTED",{player:X});let Y=await this.worldSelectionHandler?.(X);X.joinWorld(Y??tW.instance.getDefaultWorld()),this._connectionPlayers.set(J,X)}_onConnectionDisconnected(J){let $=this._connectionPlayers.get(J);if($)$.resetInputs(),$.camera.reset()}_onConnectionReconnected(J){let $=this._connectionPlayers.get(J);if($)$.reconnected(),$8.globalInstance.emit("PLAYER_MANAGER.PLAYER_RECONNECTED",{player:$});else n.warning(`PlayerManager._onConnectionReconnected(): Connection ${J.id} not in the PlayerManager._connectionPlayers map.`)}_onConnectionClosed(J){let $=this._connectionPlayers.get(J);if($){if($.disconnect(),this._connectionPlayers.delete(J),!J.isDuplicate)sQ.instance.unloadPlayerData($).catch((X)=>{n.warning(`PlayerManager._onConnectionClosed(): Failed to unload player data for player ${$.id}. Error: ${X}`)});$8.globalInstance.emit("PLAYER_MANAGER.PLAYER_DISCONNECTED",{player:$})}else n.warning(`PlayerManager._onConnectionClosed(): Connection ${J.id} not in the PlayerManager._connectionPlayers map.`)}}import{randomBytes as gK6}from"crypto";import{Http3Server as mK6}from"@fails-components/webtransport";class BL extends $8{static instance=new BL;_connectionIdConnections=new Map;_userIdConnections=new Map;_wss;_wts;constructor(){super();this._wss=new gv.default({noServer:!0}),this._wss.on("connection",(J,$)=>this._onConnection(J,void 0,$.connectionId,$.session)),this._wts=new mK6({port:pP,host:"0.0.0.0",secret:gK6(32).toString("hex"),cert:lP,privKey:cP,defaultDatagramsReadableMode:"bytes",initialStreamFlowControlWindow:1048576,streamShouldAutoTuneReceiveWindow:!0,streamFlowControlWindowSizeLimit:6291456,initialSessionFlowControlWindow:2097152,sessionShouldAutoTuneReceiveWindow:!0,sessionFlowControlWindowSizeLimit:15728640}),this._wts.setRequestCallback(this._onWebTransportRequest),this._startWebTransport().catch((J)=>{n.error(`Socket: WebTransport server failed to start or crashed while listening for sessions. Error: ${J}`)}),$8.globalInstance.on("WEBSERVER.UPGRADE",async({req:J,socket:$,head:X})=>{$.on("error",()=>{}),await this._authorizeAndConnectWebsocket(J,$,X)})}async _authorizeAndConnectWebsocket(J,$,X){let Y=await this._authorizeConnection(J.url??"");if(Y.error){$.end();return}J.connectionId=Y.connectionId,J.session=Y.session,$.setNoDelay(!0),this._wss.handleUpgrade(J,$,X,(Q)=>{if(Q.readyState!==PH.default.OPEN)Q.once("open",()=>this._wss.emit("connection",Q,J));else this._wss.emit("connection",Q,J)})}async _authorizeConnection(J){let $=J.includes("?")?J.slice(J.indexOf("?")):"",X=new URLSearchParams($),Y=X.get("connectionId")??void 0,Q=X.get("sessionToken")??"";if(Y&&this._isValidConnectionId(Y))return{connectionId:Y};else{let W=await L1.instance.getPlayerSession(Q);if(W?.error)return{error:W.error};else if(W)return{session:W}}return{}}_isValidConnectionId(J){return this._connectionIdConnections.has(J)}_onConnection=(J,$,X,Y)=>{let Q=Y?.user.id,W=X&&this._connectionIdConnections.get(X),K=Q&&this._userIdConnections.get(Q);if(!W&&K)K.killDuplicateConnection();if(W){if(J)W.bindWs(J);if($)W.bindWt($).catch((Z)=>{n.error(`Socket._onConnection(): WebTransport binding failed. Error: ${Z}`)})}else{let Z=new i$(J,$,Y);if(Z.on("CONNECTION.CLOSED",()=>{if(this._connectionIdConnections.delete(Z.id),Q&&this._userIdConnections.get(Q)===Z)this._userIdConnections.delete(Q)}),this._connectionIdConnections.set(Z.id,Z),Q)this._userIdConnections.set(Q,Z)}};_onWebTransportRequest=async({header:J})=>{let{connectionId:$,session:X,error:Y}=await this._authorizeConnection(J[":path"]??"");return{status:Y?401:200,path:"/",userData:{connectionId:$,session:X}}};async _startWebTransport(){this._wts.startServer();for await(let J of this._wts.sessionStream("/"))try{let{connectionId:$,session:X}=J.userData;this._onConnection(void 0,J,$,X)}catch($){n.error(`Socket._startWebTransport(): WebTransport connection failed. Error: ${$}`)}}}Buffer.poolSize=134217728;var vq8;((X)=>{X.START="GAMESERVER.START";X.STOP="GAMESERVER.STOP"})(vq8||={});function uK6(J){Y5.init().then(()=>{return eW.instance.blockTextureRegistry.preloadAtlas()}).then(()=>{return eW.instance.modelRegistry.preloadModels()}).then(()=>{if(J.length>0)J(eW.instance.worldManager.getDefaultWorld());else J();eW.instance.start()}).catch(($)=>{n.fatalError(`Failed to initialize the game engine, exiting. Error: ${$}`)})}class eW{static _instance;_blockTextureRegistry=RQ.instance;_modelRegistry=R9.instance;_playerManager=s$.instance;_socket=BL.instance;_worldManager=tW.instance;_webServer=uq.instance;constructor(){}static get instance(){if(!this._instance)this._instance=new eW;return this._instance}get blockTextureRegistry(){return this._blockTextureRegistry}get modelRegistry(){return this._modelRegistry}get playerManager(){return this._playerManager}get socket(){return this._socket}get webServer(){return this._webServer}get worldManager(){return this._worldManager}start(){if($8.globalInstance.emit("GAMESERVER.START",{startedAtMs:performance.now()}),this._webServer.start(),process.env.NODE_ENV!=="production")console.log("---"),console.log("\uD83D\uDFE2 Server Running: You can test & play it at: https://hytopia.com/play");n.enableCrashProtection()}}var q9=O0(LG(),1);class jG extends Float32Array{constructor(J,$,X,Y){super([J,$,X,Y])}get determinant(){return q9.mat2.determinant(this)}get frobeniusNorm(){return q9.mat2.frob(this)}static create(){let J=new jG(0,0,0,0);return q9.mat2.identity(J),J}static fromRotation(J){let $=jG.create();return q9.mat2.fromRotation($,J),$}static fromScaling(J){let $=jG.create();return q9.mat2.fromScaling($,J),$}add(J){return q9.mat2.add(this,this,J),this}adjoint(){return q9.mat2.adjoint(this,this),this}clone(){return new jG(this[0],this[1],this[2],this[3])}copy(J){return q9.mat2.copy(this,J),this}equals(J){return q9.mat2.equals(this,J)}exactEquals(J){return q9.mat2.exactEquals(this,J)}identity(){return q9.mat2.identity(this),this}invert(){return q9.mat2.invert(this,this),this}multiply(J){return q9.mat2.mul(this,this,J),this}multiplyScalar(J){return q9.mat2.multiplyScalar(this,this,J),this}rotate(J){return q9.mat2.rotate(this,this,J),this}subtract(J){return q9.mat2.sub(this,this,J),this}toString(){return`[${this[0]},${this[1]}][${this[2]},${this[3]}]`}transpose(){return q9.mat2.transpose(this,this),this}}var P6=O0(LG(),1);class tX extends Float32Array{constructor(J,$,X,Y,Q,W,K,Z,G){super([J,$,X,Y,Q,W,K,Z,G])}get determinant(){return P6.mat3.determinant(this)}get frobeniusNorm(){return P6.mat3.frob(this)}static create(){let J=new tX(0,0,0,0,0,0,0,0,0);return P6.mat3.identity(J),J}static fromMatrix4(J){let $=tX.create();return P6.mat3.fromMat4($,J),$}static fromQuaternion(J){let $=tX.create();return P6.mat3.fromQuat($,J),$}static fromRotation(J){let $=tX.create();return P6.mat3.fromRotation($,J),$}static fromScaling(J){let $=tX.create();return P6.mat3.fromScaling($,J),$}static fromTranslation(J){let $=tX.create();return P6.mat3.fromTranslation($,J),$}add(J){return P6.mat3.add(this,this,J),this}adjoint(){return P6.mat3.adjoint(this,this),this}clone(){return new tX(this[0],this[1],this[2],this[3],this[4],this[5],this[6],this[7],this[8])}copy(J){return P6.mat3.copy(this,J),this}equals(J){return P6.mat3.equals(this,J)}exactEquals(J){return P6.mat3.exactEquals(this,J)}identity(){return P6.mat3.identity(this),this}invert(){return P6.mat3.invert(this,this),this}multiply(J){return P6.mat3.mul(this,this,J),this}multiplyScalar(J){return P6.mat3.multiplyScalar(this,this,J),this}transformVector(J){return J.transformMatrix3(this)}projection(J,$){return P6.mat3.projection(this,J,$),this}rotate(J){return P6.mat3.rotate(this,this,J),this}subtract(J){return P6.mat3.sub(this,this,J),this}toString(){return`[${this[0]},${this[1]},${this[2]}][${this[3]},${this[4]},${this[5]}][${this[6]},${this[7]},${this[8]}]`}transpose(){return P6.mat3.transpose(this,this),this}}var e8=O0(LG(),1);class I7 extends Float32Array{constructor(J,$,X,Y,Q,W,K,Z,G,V,H,z,q,U,F,B){super([J,$,X,Y,Q,W,K,Z,G,V,H,z,q,U,F,B])}get determinant(){return e8.mat4.determinant(this)}get frobeniusNorm(){return e8.mat4.frob(this)}static create(){let J=new I7(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);return e8.mat4.identity(J),J}static fromQuaternion(J){let $=I7.create();return e8.mat4.fromQuat($,J),$}static fromRotation(J,$){let X=I7.create();return e8.mat4.fromRotation(X,J,$),X}static fromRotationTranslation(J,$){let X=I7.create();return e8.mat4.fromRotationTranslation(X,J,$),X}static fromRotationTranslationScale(J,$,X){let Y=I7.create();return e8.mat4.fromRotationTranslationScale(Y,J,$,X),Y}static fromRotationTranslationScaleOrigin(J,$,X,Y){let Q=I7.create();return e8.mat4.fromRotationTranslationScaleOrigin(Q,J,$,X,Y),Q}static fromScaling(J){let $=I7.create();return e8.mat4.fromScaling($,J),$}static fromTranslation(J){let $=I7.create();return e8.mat4.fromTranslation($,J),$}static fromXRotation(J){let $=I7.create();return e8.mat4.fromXRotation($,J),$}static fromYRotation(J){let $=I7.create();return e8.mat4.fromYRotation($,J),$}static fromZRotation(J){let $=I7.create();return e8.mat4.fromZRotation($,J),$}add(J){return e8.mat4.add(this,this,J),this}adjoint(){return e8.mat4.adjoint(this,this),this}clone(){return new I7(this[0],this[1],this[2],this[3],this[4],this[5],this[6],this[7],this[8],this[9],this[10],this[11],this[12],this[13],this[14],this[15])}copy(J){return e8.mat4.copy(this,J),this}equals(J){return e8.mat4.equals(this,J)}exactEquals(J){return e8.mat4.exactEquals(this,J)}frustrum(J,$,X,Y,Q,W){return e8.mat4.frustum(this,J,$,X,Y,Q,W),this}identity(){return e8.mat4.identity(this),this}invert(){return e8.mat4.invert(this,this),this}lookAt(J,$,X){return e8.mat4.lookAt(this,J,$,X),this}multiply(J){return e8.mat4.mul(this,this,J),this}multiplyScalar(J){return e8.mat4.multiplyScalar(this,this,J),this}orthographic(J,$,X,Y,Q,W){return e8.mat4.ortho(this,J,$,X,Y,Q,W),this}perspective(J,$,X,Y){return e8.mat4.perspective(this,J,$,X,Y),this}rotate(J,$){return e8.mat4.rotate(this,this,J,$),this}rotateX(J){return e8.mat4.rotateX(this,this,J),this}rotateY(J){return e8.mat4.rotateY(this,this,J),this}rotateZ(J){return e8.mat4.rotateZ(this,this,J),this}scale(J){return e8.mat4.scale(this,this,J),this}subtract(J){return e8.mat4.sub(this,this,J),this}targetTo(J,$,X){return e8.mat4.targetTo(this,J,$,X),this}toString(){return`[${this[0]},${this[1]},${this[2]},${this[3]}][${this[4]},${this[5]},${this[6]},${this[7]}][${this[8]},${this[9]},${this[10]},${this[11]}][${this[12]},${this[13]},${this[14]},${this[15]}]`}translate(J){return e8.mat4.translate(this,this,J),this}transpose(){return e8.mat4.transpose(this,this),this}}var h5=O0(LG(),1);class dq extends Float32Array{constructor(J,$,X,Y){super([J,$,X,Y])}get length(){return h5.quat.length(this)}get squaredLength(){return h5.quat.squaredLength(this)}get magnitude(){return h5.quat.length(this)}get squaredMagnitude(){return h5.quat.squaredLength(this)}get x(){return this[0]}set x(J){this[0]=J}get y(){return this[1]}set y(J){this[1]=J}get z(){return this[2]}set z(J){this[2]=J}get w(){return this[3]}set w(J){this[3]=J}static fromEuler(J,$,X){let Y=h5.quat.fromEuler(new Float32Array(4),J,$,X);return new dq(Y[0],Y[1],Y[2],Y[3])}static fromQuaternionLike(J){return new dq(J.x,J.y,J.z,J.w)}clone(){return new dq(this.x,this.y,this.z,this.w)}conjugate(){return h5.quat.conjugate(this,this),this}copy(J){return h5.quat.copy(this,J),this}dot(J){return h5.quat.dot(this,J)}exponential(){return h5.quat.exp(this,this),this}equals(J){return h5.quat.equals(this,J)}exactEquals(J){return h5.quat.exactEquals(this,J)}getAngle(J){return h5.quat.getAngle(this,J)}identity(){return h5.quat.identity(this),this}invert(){return h5.quat.invert(this,this),this}lerp(J,$){return h5.quat.lerp(this,this,J,$),this}logarithm(){return h5.quat.ln(this,this),this}multiply(J){return h5.quat.multiply(this,this,J),this}transformVector(J){return J.transformQuaternion(this)}normalize(){return h5.quat.normalize(this,this),this}power(J){return h5.quat.pow(this,this,J),this}randomize(){return h5.quat.random(this),this}rotateX(J){return h5.quat.rotateX(this,this,J),this}rotateY(J){return h5.quat.rotateY(this,this,J),this}rotateZ(J){return h5.quat.rotateZ(this,this,J),this}scale(J){return h5.quat.scale(this,this,J),this}setAxisAngle(J,$){return h5.quat.setAxisAngle(this,J,$),this}slerp(J,$){return h5.quat.slerp(this,this,J,$),this}toString(){return`${this.x},${this.y},${this.z},${this.w}`}}var L5=O0(LG(),1);class LL extends Float32Array{constructor(J,$){super([J,$])}get length(){return L5.vec2.length(this)}get squaredLength(){return L5.vec2.squaredLength(this)}get magnitude(){return L5.vec2.length(this)}get squaredMagnitude(){return L5.vec2.squaredLength(this)}get x(){return this[0]}set x(J){this[0]=J}get y(){return this[1]}set y(J){this[1]=J}static create(){return new LL(0,0)}add(J){return L5.vec2.add(this,this,J),this}angle(J){return L5.vec2.angle(this,J)}ceil(){return L5.vec2.ceil(this,this),this}clone(){return new LL(this.x,this.y)}copy(J){return L5.vec2.copy(this,J),this}distance(J){return L5.vec2.distance(this,J)}divide(J){return L5.vec2.divide(this,this,J),this}dot(J){return L5.vec2.dot(this,J)}equals(J){return L5.vec2.equals(this,J)}exactEquals(J){return L5.vec2.exactEquals(this,J)}floor(){return L5.vec2.floor(this,this),this}invert(){return L5.vec2.inverse(this,this),this}lerp(J,$){return L5.vec2.lerp(this,this,J,$),this}max(J){return L5.vec2.max(this,this,J),this}min(J){return L5.vec2.min(this,this,J),this}multiply(J){return L5.vec2.mul(this,this,J),this}negate(){return L5.vec2.negate(this,this),this}normalize(){return L5.vec2.normalize(this,this),this}randomize(J){return L5.vec2.random(this,J),this}rotate(J,$){return L5.vec2.rotate(this,this,J,$),this}round(){return L5.vec2.round(this,this),this}scale(J){return L5.vec2.scale(this,this,J),this}scaleAndAdd(J,$){return L5.vec2.scaleAndAdd(this,this,J,$),this}subtract(J){return L5.vec2.sub(this,this,J),this}toString(){return`${this.x},${this.y}`}transformMatrix2(J){return L5.vec2.transformMat2(this,this,J),this}transformMatrix3(J){return L5.vec2.transformMat3(this,this,J),this}transformMatrix4(J){return L5.vec2.transformMat4(this,this,J),this}zero(){return L5.vec2.zero(this),this}}var H5=O0(LG(),1);class lq extends Float32Array{constructor(J,$,X){super([J,$,X])}get length(){return H5.vec3.length(this)}get squaredLength(){return H5.vec3.squaredLength(this)}get magnitude(){return H5.vec3.length(this)}get squaredMagnitude(){return H5.vec3.squaredLength(this)}get x(){return this[0]}set x(J){this[0]=J}get y(){return this[1]}set y(J){this[1]=J}get z(){return this[2]}set z(J){this[2]=J}static create(){return new lq(0,0,0)}static fromVector3Like(J){return new lq(J.x,J.y,J.z)}add(J){return H5.vec3.add(this,this,J),this}ceil(){return H5.vec3.ceil(this,this),this}clone(){return new lq(this.x,this.y,this.z)}copy(J){return H5.vec3.copy(this,J),this}cross(J){return H5.vec3.cross(this,this,J),this}distance(J){return H5.vec3.distance(this,J)}divide(J){return H5.vec3.div(this,this,J),this}dot(J){return H5.vec3.dot(this,J)}equals(J){return H5.vec3.equals(this,J)}exactEquals(J){return H5.vec3.exactEquals(this,J)}floor(){return H5.vec3.floor(this,this),this}invert(){return H5.vec3.inverse(this,this),this}lerp(J,$){return H5.vec3.lerp(this,this,J,$),this}max(J){return H5.vec3.max(this,this,J),this}min(J){return H5.vec3.min(this,this,J),this}multiply(J){return H5.vec3.mul(this,this,J),this}negate(){return H5.vec3.negate(this,this),this}normalize(){return H5.vec3.normalize(this,this),this}randomize(J){return H5.vec3.random(this,J),this}rotateX(J,$){return H5.vec3.rotateX(this,this,J,$),this}rotateY(J,$){return H5.vec3.rotateY(this,this,J,$),this}rotateZ(J,$){return H5.vec3.rotateZ(this,this,J,$),this}round(){return H5.vec3.round(this,this),this}scale(J){return H5.vec3.scale(this,this,J),this}scaleAndAdd(J,$){return H5.vec3.scaleAndAdd(this,this,J,$),this}subtract(J){return H5.vec3.sub(this,this,J),this}toString(){return`${this.x},${this.y},${this.z}`}transformMatrix3(J){return H5.vec3.transformMat3(this,this,J),this}transformMatrix4(J){return H5.vec3.transformMat4(this,this,J),this}transformQuaternion(J){return H5.vec3.transformQuat(this,this,J),this}zero(){return H5.vec3.zero(this),this}}var RU8=O0(NU8(),1);var OU8=0.099856;class jL extends WK{faceSpeed=0;idleLoopedAnimations=[];idleLoopedAnimationsSpeed;jumpOneshotAnimations=[];moveLoopedAnimations=[];moveLoopedAnimationsSpeed;moveSpeed=0;_faceTarget;_jumpHeight=0;_moveCompletesWhenStuck=!1;_moveIgnoreAxes={};_moveStartMoveAnimations=!1;_moveStartIdleAnimationsOnCompletion=!0;_moveStoppingDistanceSquared=OU8;_moveStuckAccumulatorMs=0;_moveStuckLastPosition;_moveTarget;_onFace;_onFaceComplete;_onMove;_onMoveComplete;_stopFaceRequested=!1;_stopMoveRequested=!1;constructor(J={}){super();this.idleLoopedAnimations=J.idleLoopedAnimations??this.idleLoopedAnimations,this.idleLoopedAnimationsSpeed=J.idleLoopedAnimationsSpeed??this.idleLoopedAnimationsSpeed,this.jumpOneshotAnimations=J.jumpOneshotAnimations??this.jumpOneshotAnimations,this.moveLoopedAnimations=J.moveLoopedAnimations??this.moveLoopedAnimations,this.moveLoopedAnimationsSpeed=J.moveLoopedAnimationsSpeed??this.moveLoopedAnimationsSpeed}spawn(J){super.spawn(J),this._startIdleAnimations(J)}face(J,$,X){this._faceTarget=J,this.faceSpeed=$,this._onFace=X?.faceCallback,this._onFaceComplete=X?.faceCompleteCallback}jump(J){this._jumpHeight=J}move(J,$,X){this.moveSpeed=$,this._moveCompletesWhenStuck=X?.moveCompletesWhenStuck??!1,this._moveIgnoreAxes=X?.moveIgnoreAxes??{},this._moveStartIdleAnimationsOnCompletion=X?.moveStartIdleAnimationsOnCompletion??!0,this._moveStartMoveAnimations=!0,this._moveStoppingDistanceSquared=X?.moveStoppingDistance?X.moveStoppingDistance**2:OU8,this._moveTarget=J,this._onMove=X?.moveCallback,this._onMoveComplete=X?.moveCompleteCallback,this._moveStuckAccumulatorMs=0,this._moveStuckLastPosition=void 0}stopFace(){this._stopFaceRequested=!0}stopMove(){this._stopMoveRequested=!0}tick(J,$){if(super.tick(J,$),!this._moveTarget&&!this._faceTarget&&!this._jumpHeight)return;if(this._moveStartMoveAnimations)this._startMoveAnimations(J),this._moveStartMoveAnimations=!1;let X=$/1000,Y=J.position;if(J.isDynamic&&this._jumpHeight>0){let Q=Math.abs(J.world.simulation.gravity.y),W=Math.sqrt(2*Q*this._jumpHeight);J.applyImpulse({x:0,y:W*J.mass,z:0}),this._jumpHeight=0,this._startJumpAnimations(J)}if(this._moveTarget){let Q={x:this._moveIgnoreAxes.x?0:this._moveTarget.x-Y.x,y:this._moveIgnoreAxes.y?0:this._moveTarget.y-Y.y,z:this._moveIgnoreAxes.z?0:this._moveTarget.z-Y.z},W=Q.x*Q.x+Q.y*Q.y+Q.z*Q.z,K=!1;if(this._moveCompletesWhenStuck){if(this._moveStuckAccumulatorMs+=$,this._moveStuckAccumulatorMs>=500){if(this._moveStuckLastPosition){let Z=Y.x-this._moveStuckLastPosition.x,G=Y.y-this._moveStuckLastPosition.y,V=Y.z-this._moveStuckLastPosition.z;K=Math.sqrt(Z*Z+G*G+V*V)<this.moveSpeed*0.1}this._moveStuckLastPosition=Y,this._moveStuckAccumulatorMs=0}}if(W>this._moveStoppingDistanceSquared&&!this._stopMoveRequested&&!K){let Z=Math.sqrt(W),G=this.moveSpeed*X,H=Math.min(Z,G)/Z,z={x:Y.x+Q.x*H,y:Y.y+Q.y*H,z:Y.z+Q.z*H};if(J.setPosition(z),this._onMove)this._onMove(z,this._moveTarget)}else{if(this._moveStuckAccumulatorMs=0,this._moveStuckLastPosition=void 0,this._moveTarget=void 0,this._stopMoveRequested=!1,this._moveStartIdleAnimationsOnCompletion)this._startIdleAnimations(J);if(this._onMoveComplete){let Z=this._onMoveComplete;this._onMove=void 0,this._onMoveComplete=void 0,Z(Y)}}}if(this._faceTarget){let Q={x:this._faceTarget.x-Y.x,z:this._faceTarget.z-Y.z},W=Math.atan2(-Q.x,-Q.z),K=J.rotation,Z=Math.atan2(2*(K.w*K.y),1-2*(K.y*K.y)),G=W-Z;while(G>Math.PI)G-=2*Math.PI;while(G<-Math.PI)G+=2*Math.PI;if(Math.abs(G)>0.01&&!this._stopFaceRequested){let V=this.faceSpeed*X,H=Math.abs(G)<V?G:Math.sign(G)*V,q=(Z+H)/2,U={x:0,y:Math.fround(Math.sin(q)),z:0,w:Math.fround(Math.cos(q))};if(J.setRotation(U),this._onFace)this._onFace(K,U)}else if(this._faceTarget=void 0,this._stopFaceRequested=!1,this._onFaceComplete){let V=this._onFaceComplete;this._onFace=void 0,this._onFaceComplete=void 0,V(J.rotation)}}}_startIdleAnimations(J){if(this.idleLoopedAnimationsSpeed)J.setModelAnimationsPlaybackRate(this.idleLoopedAnimationsSpeed);J.stopModelAnimations(this.moveLoopedAnimations),J.stopModelAnimations(this.jumpOneshotAnimations),J.startModelLoopedAnimations(this.idleLoopedAnimations)}_startJumpAnimations(J){J.stopModelAnimations(this.moveLoopedAnimations),J.stopModelAnimations(this.idleLoopedAnimations),J.startModelOneshotAnimations(this.jumpOneshotAnimations)}_startMoveAnimations(J){if(this.moveLoopedAnimationsSpeed)J.setModelAnimationsPlaybackRate(this.moveLoopedAnimationsSpeed);J.stopModelAnimations(this.jumpOneshotAnimations),J.stopModelAnimations(this.idleLoopedAnimations),J.startModelLoopedAnimations(this.moveLoopedAnimations)}}class qd extends jL{_debug=!1;_entity;_maxFall=0;_maxJump=0;_maxOpenSetIterations=200;_onPathfindAbort;_onPathfindComplete;_onWaypointMoveComplete;_onWaypointMoveSkipped;_speed=0;_target;_verticalPenalty=0;_waypoints=[];_waypointNextIndex=0;_waypointStoppingDistance;_waypointTimeoutMs=2000;constructor(J={}){super(J)}get debug(){return this._debug}get maxFall(){return this._maxFall}get maxJump(){return this._maxJump}get maxOpenSetIterations(){return this._maxOpenSetIterations}get speed(){return this._speed}get target(){return this._target}get verticalPenalty(){return this._verticalPenalty}get waypoints(){return this._waypoints}get waypointNextIndex(){return this._waypointNextIndex}get waypointTimeoutMs(){return this._waypointTimeoutMs}pathfind(J,$,X){if(this._target=J,this._speed=$,this._debug=X?.debug??!1,this._maxFall=X?.maxFall?-Math.abs(X.maxFall):0,this._maxJump=X?.maxJump?Math.abs(X.maxJump):0,this._maxOpenSetIterations=X?.maxOpenSetIterations??200,this._onPathfindAbort=X?.pathfindAbortCallback,this._onPathfindComplete=X?.pathfindCompleteCallback,this._onWaypointMoveComplete=X?.waypointMoveCompleteCallback,this._onWaypointMoveSkipped=X?.waypointMoveSkippedCallback,this._verticalPenalty=X?.verticalPenalty??0,this._waypoints=[],this._waypointNextIndex=0,this._waypointStoppingDistance=X?.waypointStoppingDistance,this._waypointTimeoutMs=X?.waypointTimeoutMs??2000/$,!this._calculatePath())return!1;return this._moveToNextWaypoint(),!0}attach(J){super.attach(J),this._entity=J}detach(J){super.detach(J),this._entity=void 0}_calculatePath(){if(!this._target||!this._entity?.world)return n.error("PathfindingEntityController._calculatePath: No target or world"),!1;let J=this._entity.height,$=this._findGroundedStart();if(!$){if(this._debug)n.warning(`PathfindingEntityController._calculatePath: No valid grounded start found within maxFall distance, path search aborted. Start: ${this._coordinateToKey(this._target)}, Target: ${this._coordinateToKey(this._target)}`);return!1}let X={x:Math.floor(this._target.x),y:Math.floor(this._target.y),z:Math.floor(this._target.z)},Y=Math.abs(X.x-$.x),Q=Math.abs(X.y-$.y),W=Math.abs(X.z-$.z);if(Y<=2&&Q<=2&&W<=2&&!this._isNeighborCoordinateBlocked($,X,this._entity.height))return this._waypoints=[{x:$.x+0.5,y:$.y+J/2,z:$.z+0.5},{x:X.x+0.5,y:X.y+J/2,z:X.z+0.5}],!0;if($.x===X.x&&$.y===X.y&&$.z===X.z)return this._waypoints=[{x:$.x+0.5,y:$.y+J/2,z:$.z+0.5}],!0;let Z=this._coordinateToKey($),G=new Map,V=new Map([[Z,0]]),H=new Map([[Z,this._pathfindingHeuristic($,X)]]),z=new Set,q=new RU8.Heap((D,w)=>{let R=H.get(D[0])??1/0,N=H.get(w[0])??1/0;return R-N});q.push([Z,$]);let U=[{x:0,y:0,z:1},{x:1,y:0,z:0},{x:0,y:0,z:-1},{x:-1,y:0,z:0},{x:1,y:0,z:1},{x:1,y:0,z:-1},{x:-1,y:0,z:1},{x:-1,y:0,z:-1}],F=[];for(let D=this._maxJump;D>=this._maxFall;D--){if(D===0)continue;let w=Math.abs($.y+D-X.y);F.push({y:D,distanceToTargetY:w})}F.sort((D,w)=>D.distanceToTargetY-w.distanceToTargetY);let B=[...U,...F.flatMap(({y:D})=>U.map((w)=>({...w,y:D})))],L=0,j=Math.abs(X.x-$.x)+Math.abs(X.y-$.y)+Math.abs(X.z-$.z),M=Math.min(this._maxOpenSetIterations,j*20);while(!q.isEmpty()&&L<M){L++;let[D,w]=q.pop();if(w.x===X.x&&w.y===X.y&&w.z===X.z){let O=this._reconstructPath(G,w);if(this._waypoints=O.map((C)=>({x:C.x+0.5,y:C.y+J/2,z:C.z+0.5})),this._debug)console.log(`PathfindingEntityController._calculatePath: Path found after ${L} open set iterations. Start: ${this._coordinateToKey($)}, Target: ${this._coordinateToKey(this._target)}`);return!0}z.add(D);let R=V.get(D),N=new Map;for(let O of B){let C=`${O.x},${O.z}`,S=O.y<0;if(S&&N.has(C))continue;let _={x:w.x+O.x,y:w.y+O.y,z:w.z+O.z};if(Math.abs(X.x-_.x)+Math.abs(X.y-_.y)+Math.abs(X.z-_.z)>j*1.5)continue;let A=this._coordinateToKey(_);if(z.has(A))continue;let k=this._isNeighborCoordinateBlocked(w,_,this._entity.height);if(S&&k){N.set(C,!0);continue}if(k)continue;let I=Math.abs(O.x),y=Math.abs(O.y),v=Math.abs(O.z),x=y===0?0:this._verticalPenalty,h=(Math.max(I,y,v)===1&&I+y+v>1?1.4:1)+x,m=R+h,c=V.get(A)??1/0;if(m>=c)continue;G.set(A,w),V.set(A,m);let l=m+this._pathfindingHeuristic(_,X);H.set(A,l),q.push([A,_])}}if(L>=M){if(this._onPathfindAbort?.(),this._debug)n.warning(`PathfindingEntityController._calculatePath: Maximum open set iterations reached (${M}), path search aborted. Start: ${this._coordinateToKey($)}, Target: ${this._coordinateToKey(this._target)}`)}else if(this._debug)n.warning(`PathfindingEntityController._calculatePath: No valid path found. Start: ${this._coordinateToKey($)}, Target: ${this._coordinateToKey(this._target)}`);return this._target=void 0,this._waypoints=[],!1}_reconstructPath(J,$){let X=[$],Y=$;while(J.has(this._coordinateToKey(Y)))Y=J.get(this._coordinateToKey(Y)),X.unshift(Y);return X}_coordinateToKey(J){return`${J.x},${J.y},${J.z}`}_moveToNextWaypoint(){let J=this._waypointNextIndex>0?this._waypoints[this._waypointNextIndex-1]:void 0,$=this._waypoints[this._waypointNextIndex];if(!$||!this._entity)return;let X=0;if(this._entity.isDynamic&&J&&$.y>J.y){let Y=$.y-J.y,Q=Math.min(Y,this._maxJump)+0.75;this.jump(Q);let W=Math.abs(this._entity.world.simulation.gravity.y),K=Math.sqrt(2*W*Q),Z=J.x+0.5,G=J.z+0.5,V=$.x+0.5,H=$.z+0.5,z=V-Z,q=H-G,U=Math.sqrt(z*z+q*q),F=K/W,B=U/this._speed;X=Math.min(F*0.8,B)*1000}setTimeout(()=>{if(!this._entity)return;let Y=Date.now();this.face($,this._speed),this.move($,this._speed,{moveCompletesWhenStuck:!0,moveIgnoreAxes:{y:this._entity.isDynamic},moveStartIdleAnimationsOnCompletion:this._waypointNextIndex===this._waypoints.length-1,moveStoppingDistance:this._waypointStoppingDistance,moveCallback:()=>{if(Date.now()-Y>this._waypointTimeoutMs&&this._waypointNextIndex<this._waypoints.length-1)this._onWaypointMoveSkipped?.($,this._waypointNextIndex),this._waypointNextIndex++,this._moveToNextWaypoint()},moveCompleteCallback:()=>{if(this._waypointNextIndex<this._waypoints.length-1)this._onWaypointMoveComplete?.($,this._waypointNextIndex),this._waypointNextIndex++,this._moveToNextWaypoint();else this._onPathfindComplete?.()}})},X)}_pathfindingHeuristic(J,$){return Math.abs(J.x-$.x)+Math.abs(J.y-$.y)+Math.abs(J.z-$.z)}_isNeighborCoordinateBlocked(J,$,X){if(!this._entity?.world)return!1;let Y=this._entity.world,Q=Math.floor($.x),W=Math.floor($.y),K=Math.floor($.z),Z=Math.floor(J.x),G=Math.floor(J.z);if(!Y.chunkLattice.hasBlock({x:Q,y:W-1,z:K}))return!0;for(let V=0;V<X;V++)if(Y.chunkLattice.hasBlock({x:Q,y:W+V,z:K}))return!0;if(Q!==Z&&K!==G)for(let V=0;V<X;V++){let H=Y.chunkLattice.hasBlock({x:Q,y:W+V,z:G}),z=Y.chunkLattice.hasBlock({x:Z,y:W+V,z:K});if(H||z)return!0}return!1}_findGroundedStart(){if(!this._entity?.world)return;let{x:J,y:$,z:X}=this._entity.position,Y={x:Math.floor(J),y:Math.floor($),z:Math.floor(X)};for(let Q=0;Q<=Math.abs(this._maxFall);Q++)if(this._entity.world.chunkLattice.hasBlock({...Y,y:Y.y-Q-1}))return{...Y,y:Y.y-Q};return}}export{uK6 as startServer,Aq8 as WorldManagerEvent,tW as WorldManager,Iq8 as WorldLoopEvent,UL as WorldLoop,Xd as WorldEvent,FL as World,ru as WebServerEvent,uq as WebServer,lq as Vector3,LL as Vector2,zL as Ticker,UG as TelemetrySpanOperation,w6 as Telemetry,$d as SimulationEvent,VL as Simulation,jL as SimpleEntityController,qL as SceneUIManager,sv as SceneUIEvent,Y3 as SceneUI,Jr8 as SUPPORTED_INPUTS,UF as RigidBodyType,xQ as RigidBody,dq as Quaternion,uO as PlayerUIEvent,oF as PlayerUI,_q8 as PlayerManagerEvent,s$ as PlayerManager,tF as PlayerEvent,kX as PlayerEntity,MK0 as PlayerCameraMode,cv as PlayerCameraEvent,aF as PlayerCamera,TH as Player,sQ as PersistenceManager,qd as PathfindingEntityController,HL as ParticleEmitterManager,tu as ParticleEmitterEvent,eu as ParticleEmitter,wK0 as PLAYER_ROTATION_UPDATE_THRESHOLD,DK0 as PLAYER_POSITION_UPDATE_THRESHOLD_SQ,R9 as ModelRegistry,I7 as Matrix4,tX as Matrix3,jG as Matrix2,kq8 as LightType,GL as LightManager,au as LightEvent,ou as Light,H9 as IterationMap,vq8 as GameServerEvent,eW as GameServer,$8 as EventRouter,n as ErrorHandler,Q3 as EntityManager,X3 as EntityEvent,v6 as Entity,RK0 as ENTITY_ROTATION_UPDATE_THRESHOLD,OK0 as ENTITY_POSITION_UPDATE_THRESHOLD_SQ,f5 as DefaultPlayerEntityController,rv as DefaultPlayerEntity,NK0 as DEFAULT_ENTITY_RIGID_BODY_OPTIONS,L$ as CollisionGroupsBuilder,hK as CollisionGroup,WH as ColliderShape,$3 as ColliderMap,DJ as Collider,gA as CoefficientCombineRule,iv as ChunkLatticeEvent,J3 as ChunkLattice,c7 as Chunk,eF as ChatManager,pv as ChatEvent,uA as BlockTypeRegistryEvent,FF as BlockTypeRegistry,mA as BlockTypeEvent,wJ as BlockType,RQ as BlockTextureRegistry,NG as Block,Dd as BaseEntityControllerEvent,WK as BaseEntityController,aq as AudioManager,HC as AudioEvent,rq as Audio,p6 as AssetsLibrary};
|