mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-06 02:36:56 +08:00
4 lines
136 KiB
JavaScript
4 lines
136 KiB
JavaScript
var spine=(()=>{var gr=Object.defineProperty;var Lr=Y=>gr(Y,"__esModule",{value:!0});var Vr=(Y,e)=>{Lr(Y);for(var r in e)gr(Y,r,{get:e[r],enumerable:!0})};var nn={};Vr(nn,{AlphaTimeline:()=>Ze,Animation:()=>Ye,AnimationState:()=>At,AnimationStateAdapter:()=>Ar,AnimationStateData:()=>vr,AssetManager:()=>Pr,AssetManagerBase:()=>Pt,AtlasAttachmentLoader:()=>Tr,Attachment:()=>xt,AttachmentTimeline:()=>de,BinaryInput:()=>ir,BlendMode:()=>St,Bone:()=>vt,BoneData:()=>ht,BoundingBoxAttachment:()=>Be,CURRENT:()=>kr,CanvasTexture:()=>Nt,ClippingAttachment:()=>ot,Color:()=>R,ConstraintData:()=>De,CurveTimeline:()=>me,CurveTimeline1:()=>ce,CurveTimeline2:()=>yt,DebugUtils:()=>pr,DeformTimeline:()=>tt,Downloader:()=>nr,DrawOrderTimeline:()=>fe,Event:()=>mt,EventData:()=>ct,EventQueue:()=>Jt,EventTimeline:()=>ve,EventType:()=>ae,FIRST:()=>Qt,FakeTexture:()=>Sr,HOLD_FIRST:()=>Ft,HOLD_MIX:()=>wr,HOLD_SUBSEQUENT:()=>Zt,IkConstraint:()=>Lt,IkConstraintData:()=>ut,IkConstraintTimeline:()=>rt,IntSet:()=>br,Interpolation:()=>qt,JitterEffect:()=>Er,MathUtils:()=>M,MeshAttachment:()=>se,MixBlend:()=>S,MixDirection:()=>re,PathAttachment:()=>ge,PathConstraint:()=>Ee,PathConstraintData:()=>dt,PathConstraintMixTimeline:()=>st,PathConstraintPositionTimeline:()=>it,PathConstraintSpacingTimeline:()=>at,PointAttachment:()=>lt,Pool:()=>we,PositionMode:()=>oe,Pow:()=>Ht,PowOut:()=>Yt,RGB2Timeline:()=>et,RGBA2Timeline:()=>Ke,RGBATimeline:()=>Je,RGBTimeline:()=>Qe,RegionAttachment:()=>V,RotateMode:()=>Se,RotateTimeline:()=>ke,SETUP:()=>Kt,SUBSEQUENT:()=>Xt,ScaleTimeline:()=>qe,ScaleXTimeline:()=>He,ScaleYTimeline:()=>Ge,ShearTimeline:()=>je,ShearXTimeline:()=>$e,ShearYTimeline:()=>_e,Skeleton:()=>Ir,SkeletonBinary:()=>Mr,SkeletonBounds:()=>Xr,SkeletonClipping:()=>Ct,SkeletonData:()=>ft,SkeletonJson:()=>Fr,SkeletonRenderer:()=>Ot,Skin:()=>Le,SkinEntry:()=>Ut,Slot:()=>Vt,SlotData:()=>gt,SpacingMode:()=>Z,StringSet:()=>Ne,SwirlEffect:()=>or,Texture:()=>wt,TextureAtlas:()=>Et,TextureAtlasPage:()=>tr,TextureAtlasRegion:()=>kt,TextureFilter:()=>Xe,TextureRegion:()=>Dt,TextureWrap:()=>Fe,TimeKeeper:()=>xr,Timeline:()=>Q,TrackEntry:()=>_t,TransformConstraint:()=>Rt,TransformConstraintData:()=>bt,TransformConstraintTimeline:()=>nt,TransformMode:()=>ee,TranslateTimeline:()=>Oe,TranslateXTimeline:()=>We,TranslateYTimeline:()=>ze,Triangulator:()=>ne,Utils:()=>P,Vector2:()=>Bt,VertexAttachment:()=>K,WindowedMean:()=>yr});var br=class{constructor(){this.array=new Array}add(e){let r=this.contains(e);return this.array[e|0]=e|0,!r}contains(e){return this.array[e|0]!=null}remove(e){this.array[e|0]=void 0}clear(){this.array.length=0}},Ne=class{constructor(){this.entries={};this.size=0}add(e){let r=this.entries[e];return this.entries[e]=!0,r?!1:(this.size++,!0)}addAll(e){let r=this.size;for(var t=0,a=e.length;t<a;t++)this.add(e[t]);return r!=this.size}contains(e){return this.entries[e]}clear(){this.entries={},this.size=0}},Me=class{constructor(e=0,r=0,t=0,a=0){this.r=e;this.g=r;this.b=t;this.a=a}set(e,r,t,a){return this.r=e,this.g=r,this.b=t,this.a=a,this.clamp()}setFromColor(e){return this.r=e.r,this.g=e.g,this.b=e.b,this.a=e.a,this}setFromString(e){return e=e.charAt(0)=="#"?e.substr(1):e,this.r=parseInt(e.substr(0,2),16)/255,this.g=parseInt(e.substr(2,2),16)/255,this.b=parseInt(e.substr(4,2),16)/255,this.a=e.length!=8?1:parseInt(e.substr(6,2),16)/255,this}add(e,r,t,a){return this.r+=e,this.g+=r,this.b+=t,this.a+=a,this.clamp()}clamp(){return this.r<0?this.r=0:this.r>1&&(this.r=1),this.g<0?this.g=0:this.g>1&&(this.g=1),this.b<0?this.b=0:this.b>1&&(this.b=1),this.a<0?this.a=0:this.a>1&&(this.a=1),this}static rgba8888ToColor(e,r){e.r=((r&4278190080)>>>24)/255,e.g=((r&16711680)>>>16)/255,e.b=((r&65280)>>>8)/255,e.a=(r&255)/255}static rgb888ToColor(e,r){e.r=((r&16711680)>>>16)/255,e.g=((r&65280)>>>8)/255,e.b=(r&255)/255}static fromString(e){return new Me().setFromString(e)}},R=Me;R.WHITE=new Me(1,1,1,1),R.RED=new Me(1,0,0,1),R.GREEN=new Me(0,1,0,1),R.BLUE=new Me(0,0,1,1),R.MAGENTA=new Me(1,0,1,1);var xe=class{static clamp(e,r,t){return e<r?r:e>t?t:e}static cosDeg(e){return Math.cos(e*xe.degRad)}static sinDeg(e){return Math.sin(e*xe.degRad)}static signum(e){return e>0?1:e<0?-1:0}static toInt(e){return e>0?Math.floor(e):Math.ceil(e)}static cbrt(e){let r=Math.pow(Math.abs(e),1/3);return e<0?-r:r}static randomTriangular(e,r){return xe.randomTriangularWith(e,r,(e+r)*.5)}static randomTriangularWith(e,r,t){let a=Math.random(),i=r-e;return a<=(t-e)/i?e+Math.sqrt(a*i*(t-e)):r-Math.sqrt((1-a)*i*(r-t))}static isPowerOfTwo(e){return e&&(e&e-1)==0}},M=xe;M.PI=3.1415927,M.PI2=xe.PI*2,M.radiansToDegrees=180/xe.PI,M.radDeg=xe.radiansToDegrees,M.degreesToRadians=xe.PI/180,M.degRad=xe.degreesToRadians;var qt=class{apply(e,r,t){return e+(r-e)*this.applyInternal(t)}},Ht=class extends qt{constructor(e){super();this.power=2;this.power=e}applyInternal(e){return e<=.5?Math.pow(e*2,this.power)/2:Math.pow((e-1)*2,this.power)/(this.power%2==0?-2:2)+1}},Yt=class extends Ht{constructor(e){super(e)}applyInternal(e){return Math.pow(e-1,this.power)*(this.power%2==0?-1:1)+1}},Pe=class{static arrayCopy(e,r,t,a,i){for(let m=r,s=a;m<r+i;m++,s++)t[s]=e[m]}static arrayFill(e,r,t,a){for(let i=r;i<t;i++)e[i]=a}static setArraySize(e,r,t=0){let a=e.length;if(a==r)return e;if(e.length=r,a<r)for(let i=a;i<r;i++)e[i]=t;return e}static ensureArrayCapacity(e,r,t=0){return e.length>=r?e:Pe.setArraySize(e,r,t)}static newArray(e,r){let t=new Array(e);for(let a=0;a<e;a++)t[a]=r;return t}static newFloatArray(e){if(Pe.SUPPORTS_TYPED_ARRAYS)return new Float32Array(e);{let r=new Array(e);for(let t=0;t<r.length;t++)r[t]=0;return r}}static newShortArray(e){if(Pe.SUPPORTS_TYPED_ARRAYS)return new Int16Array(e);{let r=new Array(e);for(let t=0;t<r.length;t++)r[t]=0;return r}}static toFloatArray(e){return Pe.SUPPORTS_TYPED_ARRAYS?new Float32Array(e):e}static toSinglePrecision(e){return Pe.SUPPORTS_TYPED_ARRAYS?Math.fround(e):e}static webkit602BugfixHelper(e,r){}static contains(e,r,t=!0){for(var a=0;a<e.length;a++)if(e[a]==r)return!0;return!1}static enumValue(e,r){return e[r[0].toUpperCase()+r.slice(1)]}},P=Pe;P.SUPPORTS_TYPED_ARRAYS=typeof Float32Array!="undefined";var pr=class{static logBones(e){for(let r=0;r<e.bones.length;r++){let t=e.bones[r];console.log(t.data.name+", "+t.a+", "+t.b+", "+t.c+", "+t.d+", "+t.worldX+", "+t.worldY)}}},we=class{constructor(e){this.items=new Array;this.instantiator=e}obtain(){return this.items.length>0?this.items.pop():this.instantiator()}free(e){e.reset&&e.reset(),this.items.push(e)}freeAll(e){for(let r=0;r<e.length;r++)this.free(e[r])}clear(){this.items.length=0}},Bt=class{constructor(e=0,r=0){this.x=e;this.y=r}set(e,r){return this.x=e,this.y=r,this}length(){let e=this.x,r=this.y;return Math.sqrt(e*e+r*r)}normalize(){let e=this.length();return e!=0&&(this.x/=e,this.y/=e),this}},xr=class{constructor(){this.maxDelta=.064;this.framesPerSecond=0;this.delta=0;this.totalTime=0;this.lastTime=Date.now()/1e3;this.frameCount=0;this.frameTime=0}update(){let e=Date.now()/1e3;this.delta=e-this.lastTime,this.frameTime+=this.delta,this.totalTime+=this.delta,this.delta>this.maxDelta&&(this.delta=this.maxDelta),this.lastTime=e,this.frameCount++,this.frameTime>1&&(this.framesPerSecond=this.frameCount/this.frameTime,this.frameTime=0,this.frameCount=0)}},yr=class{constructor(e=32){this.addedValues=0;this.lastValue=0;this.mean=0;this.dirty=!0;this.values=new Array(e)}hasEnoughData(){return this.addedValues>=this.values.length}addValue(e){this.addedValues<this.values.length&&this.addedValues++,this.values[this.lastValue++]=e,this.lastValue>this.values.length-1&&(this.lastValue=0),this.dirty=!0}getMean(){if(this.hasEnoughData()){if(this.dirty){let e=0;for(let r=0;r<this.values.length;r++)e+=this.values[r];this.mean=e/this.values.length,this.dirty=!1}return this.mean}return 0}};var xt=class{constructor(e){if(!e)throw new Error("name cannot be null.");this.name=e}},Gt=class extends xt{constructor(e){super(e);this.id=Gt.nextID++;this.worldVerticesLength=0;this.deformAttachment=this}computeWorldVertices(e,r,t,a,i,m){t=i+(t>>1)*m;let s=e.bone.skeleton,n=e.deform,l=this.vertices,o=this.bones;if(!o){n.length>0&&(l=n);let d=e.bone,f=d.worldX,b=d.worldY,y=d.a,A=d.b,g=d.c,p=d.d;for(let x=r,w=i;w<t;x+=2,w+=m){let k=l[x],v=l[x+1];a[w]=k*y+v*A+f,a[w+1]=k*g+v*p+b}return}let h=0,c=0;for(let d=0;d<r;d+=2){let f=o[h];h+=f+1,c+=f}let u=s.bones;if(n.length==0)for(let d=i,f=c*3;d<t;d+=m){let b=0,y=0,A=o[h++];for(A+=h;h<A;h++,f+=3){let g=u[o[h]],p=l[f],x=l[f+1],w=l[f+2];b+=(p*g.a+x*g.b+g.worldX)*w,y+=(p*g.c+x*g.d+g.worldY)*w}a[d]=b,a[d+1]=y}else{let d=n;for(let f=i,b=c*3,y=c<<1;f<t;f+=m){let A=0,g=0,p=o[h++];for(p+=h;h<p;h++,b+=3,y+=2){let x=u[o[h]],w=l[b]+d[y],k=l[b+1]+d[y+1],v=l[b+2];A+=(w*x.a+k*x.b+x.worldX)*v,g+=(w*x.c+k*x.d+x.worldY)*v}a[f]=A,a[f+1]=g}}}copyTo(e){this.bones?(e.bones=new Array(this.bones.length),P.arrayCopy(this.bones,0,e.bones,0,this.bones.length)):e.bones=null,this.vertices?(e.vertices=P.newFloatArray(this.vertices.length),P.arrayCopy(this.vertices,0,e.vertices,0,this.vertices.length)):e.vertices=null,e.worldVerticesLength=this.worldVerticesLength,e.deformAttachment=this.deformAttachment}},K=Gt;K.nextID=0;var Ye=class{constructor(e,r,t){if(!e)throw new Error("name cannot be null.");this.name=e,this.setTimelines(r),this.duration=t}setTimelines(e){if(!e)throw new Error("timelines cannot be null.");this.timelines=e,this.timelineIds=new Ne;for(var r=0;r<e.length;r++)this.timelineIds.addAll(e[r].getPropertyIds())}hasTimeline(e){for(let r=0;r<e.length;r++)if(this.timelineIds.contains(e[r]))return!0;return!1}apply(e,r,t,a,i,m,s,n){if(!e)throw new Error("skeleton cannot be null.");a&&this.duration!=0&&(t%=this.duration,r>0&&(r%=this.duration));let l=this.timelines;for(let o=0,h=l.length;o<h;o++)l[o].apply(e,r,t,i,m,s,n)}},S;(function(a){a[a.setup=0]="setup",a[a.first=1]="first",a[a.replace=2]="replace",a[a.add=3]="add"})(S||(S={}));var re;(function(r){r[r.mixIn=0]="mixIn",r[r.mixOut=1]="mixOut"})(re||(re={}));var _={rotate:0,x:1,y:2,scaleX:3,scaleY:4,shearX:5,shearY:6,rgb:7,alpha:8,rgb2:9,attachment:10,deform:11,event:12,drawOrder:13,ikConstraint:14,transformConstraint:15,pathConstraintPosition:16,pathConstraintSpacing:17,pathConstraintMix:18},Q=class{constructor(e,r){this.propertyIds=r,this.frames=P.newFloatArray(e*this.getFrameEntries())}getPropertyIds(){return this.propertyIds}getFrameEntries(){return 1}getFrameCount(){return this.frames.length/this.getFrameEntries()}getDuration(){return this.frames[this.frames.length-this.getFrameEntries()]}static search1(e,r){let t=e.length;for(let a=1;a<t;a++)if(e[a]>r)return a-1;return t-1}static search(e,r,t){let a=e.length;for(let i=t;i<a;i+=t)if(e[i]>r)return i-t;return a-t}},me=class extends Q{constructor(e,r,t){super(e,t);this.curves=P.newFloatArray(e+r*18),this.curves[e-1]=1}setLinear(e){this.curves[e]=0}setStepped(e){this.curves[e]=1}shrink(e){let r=this.getFrameCount()+e*18;if(this.curves.length>r){let t=P.newFloatArray(r);P.arrayCopy(this.curves,0,t,0,r),this.curves=t}}setBezier(e,r,t,a,i,m,s,n,l,o,h){let c=this.curves,u=this.getFrameCount()+e*18;t==0&&(c[r]=2+u);let d=(a-m*2+n)*.03,f=(i-s*2+l)*.03,b=((m-n)*3-a+o)*.006,y=((s-l)*3-i+h)*.006,A=d*2+b,g=f*2+y,p=(m-a)*.3+d+b*.16666667,x=(s-i)*.3+f+y*.16666667,w=a+p,k=i+x;for(let v=u+18;u<v;u+=2)c[u]=w,c[u+1]=k,p+=A,x+=g,A+=b,g+=y,w+=p,k+=x}getBezierValue(e,r,t,a){let i=this.curves;if(i[a]>e){let l=this.frames[r],o=this.frames[r+t];return o+(e-l)/(i[a]-l)*(i[a+1]-o)}let m=a+18;for(a+=2;a<m;a+=2)if(i[a]>=e){let l=i[a-2],o=i[a-1];return o+(e-l)/(i[a]-l)*(i[a+1]-o)}r+=this.getFrameEntries();let s=i[m-2],n=i[m-1];return n+(e-s)/(this.frames[r]-s)*(this.frames[r+t]-n)}},ce=class extends me{constructor(e,r,t){super(e,r,[t])}getFrameEntries(){return 2}setFrame(e,r,t){e<<=1,this.frames[e]=r,this.frames[e+1]=t}getCurveValue(e){let r=this.frames,t=r.length-2;for(let i=2;i<=t;i+=2)if(r[i]>e){t=i-2;break}let a=this.curves[t>>1];switch(a){case 0:let i=r[t],m=r[t+1];return m+(e-i)/(r[t+2]-i)*(r[t+2+1]-m);case 1:return r[t+1]}return this.getBezierValue(e,t,1,a-2)}},yt=class extends me{constructor(e,r,t,a){super(e,r,[t,a])}getFrameEntries(){return 3}setFrame(e,r,t,a){e*=3,this.frames[e]=r,this.frames[e+1]=t,this.frames[e+2]=a}},ke=class extends ce{constructor(e,r,t){super(e,r,_.rotate+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.rotation=n.data.rotation;return;case 1:n.rotation+=(n.data.rotation-n.rotation)*i}return}let o=this.getCurveValue(t);switch(m){case 0:n.rotation=n.data.rotation+o*i;break;case 1:case 2:o+=n.data.rotation-n.rotation;case 3:n.rotation+=o*i}}},Oe=class extends yt{constructor(e,r,t){super(e,r,_.x+"|"+t,_.y+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.x=n.data.x,n.y=n.data.y;return;case 1:n.x+=(n.data.x-n.x)*i,n.y+=(n.data.y-n.y)*i}return}let o=0,h=0,c=Q.search(l,t,3),u=this.curves[c/3];switch(u){case 0:let d=l[c];o=l[c+1],h=l[c+2];let f=(t-d)/(l[c+3]-d);o+=(l[c+3+1]-o)*f,h+=(l[c+3+2]-h)*f;break;case 1:o=l[c+1],h=l[c+2];break;default:o=this.getBezierValue(t,c,1,u-2),h=this.getBezierValue(t,c,2,u+18-2)}switch(m){case 0:n.x=n.data.x+o*i,n.y=n.data.y+h*i;break;case 1:case 2:n.x+=(n.data.x+o-n.x)*i,n.y+=(n.data.y+h-n.y)*i;break;case 3:n.x+=o*i,n.y+=h*i}}},We=class extends ce{constructor(e,r,t){super(e,r,_.x+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.x=n.data.x;return;case 1:n.x+=(n.data.x-n.x)*i}return}let o=this.getCurveValue(t);switch(m){case 0:n.x=n.data.x+o*i;break;case 1:case 2:n.x+=(n.data.x+o-n.x)*i;break;case 3:n.x+=o*i}}},ze=class extends ce{constructor(e,r,t){super(e,r,_.y+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.y=n.data.y;return;case 1:n.y+=(n.data.y-n.y)*i}return}let o=this.getCurveValue(t);switch(m){case 0:n.y=n.data.y+o*i;break;case 1:case 2:n.y+=(n.data.y+o-n.y)*i;break;case 3:n.y+=o*i}}},qe=class extends yt{constructor(e,r,t){super(e,r,_.scaleX+"|"+t,_.scaleY+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.scaleX=n.data.scaleX,n.scaleY=n.data.scaleY;return;case 1:n.scaleX+=(n.data.scaleX-n.scaleX)*i,n.scaleY+=(n.data.scaleY-n.scaleY)*i}return}let o,h,c=Q.search(l,t,3),u=this.curves[c/3];switch(u){case 0:let d=l[c];o=l[c+1],h=l[c+2];let f=(t-d)/(l[c+3]-d);o+=(l[c+3+1]-o)*f,h+=(l[c+3+2]-h)*f;break;case 1:o=l[c+1],h=l[c+2];break;default:o=this.getBezierValue(t,c,1,u-2),h=this.getBezierValue(t,c,2,u+18-2)}if(o*=n.data.scaleX,h*=n.data.scaleY,i==1)m==3?(n.scaleX+=o-n.data.scaleX,n.scaleY+=h-n.data.scaleY):(n.scaleX=o,n.scaleY=h);else{let d=0,f=0;if(s==1)switch(m){case 0:d=n.data.scaleX,f=n.data.scaleY,n.scaleX=d+(Math.abs(o)*M.signum(d)-d)*i,n.scaleY=f+(Math.abs(h)*M.signum(f)-f)*i;break;case 1:case 2:d=n.scaleX,f=n.scaleY,n.scaleX=d+(Math.abs(o)*M.signum(d)-d)*i,n.scaleY=f+(Math.abs(h)*M.signum(f)-f)*i;break;case 3:d=n.scaleX,f=n.scaleY,n.scaleX=d+(Math.abs(o)*M.signum(d)-n.data.scaleX)*i,n.scaleY=f+(Math.abs(h)*M.signum(f)-n.data.scaleY)*i}else switch(m){case 0:d=Math.abs(n.data.scaleX)*M.signum(o),f=Math.abs(n.data.scaleY)*M.signum(h),n.scaleX=d+(o-d)*i,n.scaleY=f+(h-f)*i;break;case 1:case 2:d=Math.abs(n.scaleX)*M.signum(o),f=Math.abs(n.scaleY)*M.signum(h),n.scaleX=d+(o-d)*i,n.scaleY=f+(h-f)*i;break;case 3:d=M.signum(o),f=M.signum(h),n.scaleX=Math.abs(n.scaleX)*d+(o-Math.abs(n.data.scaleX)*d)*i,n.scaleY=Math.abs(n.scaleY)*f+(h-Math.abs(n.data.scaleY)*f)*i}}}},He=class extends ce{constructor(e,r,t){super(e,r,_.scaleX+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.scaleX=n.data.scaleX;return;case 1:n.scaleX+=(n.data.scaleX-n.scaleX)*i}return}let o=this.getCurveValue(t)*n.data.scaleX;if(i==1)m==3?n.scaleX+=o-n.data.scaleX:n.scaleX=o;else{let h=0;if(s==1)switch(m){case 0:h=n.data.scaleX,n.scaleX=h+(Math.abs(o)*M.signum(h)-h)*i;break;case 1:case 2:h=n.scaleX,n.scaleX=h+(Math.abs(o)*M.signum(h)-h)*i;break;case 3:h=n.scaleX,n.scaleX=h+(Math.abs(o)*M.signum(h)-n.data.scaleX)*i}else switch(m){case 0:h=Math.abs(n.data.scaleX)*M.signum(o),n.scaleX=h+(o-h)*i;break;case 1:case 2:h=Math.abs(n.scaleX)*M.signum(o),n.scaleX=h+(o-h)*i;break;case 3:h=M.signum(o),n.scaleX=Math.abs(n.scaleX)*h+(o-Math.abs(n.data.scaleX)*h)*i}}}},Ge=class extends ce{constructor(e,r,t){super(e,r,_.scaleY+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.scaleY=n.data.scaleY;return;case 1:n.scaleY+=(n.data.scaleY-n.scaleY)*i}return}let o=this.getCurveValue(t)*n.data.scaleY;if(i==1)m==3?n.scaleY+=o-n.data.scaleY:n.scaleY=o;else{let h=0;if(s==1)switch(m){case 0:h=n.data.scaleY,n.scaleY=h+(Math.abs(o)*M.signum(h)-h)*i;break;case 1:case 2:h=n.scaleY,n.scaleY=h+(Math.abs(o)*M.signum(h)-h)*i;break;case 3:h=n.scaleY,n.scaleY=h+(Math.abs(o)*M.signum(h)-n.data.scaleY)*i}else switch(m){case 0:h=Math.abs(n.data.scaleY)*M.signum(o),n.scaleY=h+(o-h)*i;break;case 1:case 2:h=Math.abs(n.scaleY)*M.signum(o),n.scaleY=h+(o-h)*i;break;case 3:h=M.signum(o),n.scaleY=Math.abs(n.scaleY)*h+(o-Math.abs(n.data.scaleY)*h)*i}}}},je=class extends yt{constructor(e,r,t){super(e,r,_.shearX+"|"+t,_.shearY+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.shearX=n.data.shearX,n.shearY=n.data.shearY;return;case 1:n.shearX+=(n.data.shearX-n.shearX)*i,n.shearY+=(n.data.shearY-n.shearY)*i}return}let o=0,h=0,c=Q.search(l,t,3),u=this.curves[c/3];switch(u){case 0:let d=l[c];o=l[c+1],h=l[c+2];let f=(t-d)/(l[c+3]-d);o+=(l[c+3+1]-o)*f,h+=(l[c+3+2]-h)*f;break;case 1:o=l[c+1],h=l[c+2];break;default:o=this.getBezierValue(t,c,1,u-2),h=this.getBezierValue(t,c,2,u+18-2)}switch(m){case 0:n.shearX=n.data.shearX+o*i,n.shearY=n.data.shearY+h*i;break;case 1:case 2:n.shearX+=(n.data.shearX+o-n.shearX)*i,n.shearY+=(n.data.shearY+h-n.shearY)*i;break;case 3:n.shearX+=o*i,n.shearY+=h*i}}},$e=class extends ce{constructor(e,r,t){super(e,r,_.shearX+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.shearX=n.data.shearX;return;case 1:n.shearX+=(n.data.shearX-n.shearX)*i}return}let o=this.getCurveValue(t);switch(m){case 0:n.shearX=n.data.shearX+o*i;break;case 1:case 2:n.shearX+=(n.data.shearX+o-n.shearX)*i;break;case 3:n.shearX+=o*i}}},_e=class extends ce{constructor(e,r,t){super(e,r,_.shearY+"|"+t);this.boneIndex=0;this.boneIndex=t}apply(e,r,t,a,i,m,s){let n=e.bones[this.boneIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.shearY=n.data.shearY;return;case 1:n.shearY+=(n.data.shearY-n.shearY)*i}return}let o=this.getCurveValue(t);switch(m){case 0:n.shearY=n.data.shearY+o*i;break;case 1:case 2:n.shearY+=(n.data.shearY+o-n.shearY)*i;break;case 3:n.shearY+=o*i}}},Je=class extends me{constructor(e,r,t){super(e,r,[_.rgb+"|"+t,_.alpha+"|"+t]);this.slotIndex=0;this.slotIndex=t}getFrameEntries(){return 5}setFrame(e,r,t,a,i,m){e*=5,this.frames[e]=r,this.frames[e+1]=t,this.frames[e+2]=a,this.frames[e+3]=i,this.frames[e+4]=m}apply(e,r,t,a,i,m,s){let n=e.slots[this.slotIndex];if(!n.bone.active)return;let l=this.frames,o=n.color;if(t<l[0]){let y=n.data.color;switch(m){case 0:o.setFromColor(y);return;case 1:o.add((y.r-o.r)*i,(y.g-o.g)*i,(y.b-o.b)*i,(y.a-o.a)*i)}return}let h=0,c=0,u=0,d=0,f=Q.search(l,t,5),b=this.curves[f/5];switch(b){case 0:let y=l[f];h=l[f+1],c=l[f+2],u=l[f+3],d=l[f+4];let A=(t-y)/(l[f+5]-y);h+=(l[f+5+1]-h)*A,c+=(l[f+5+2]-c)*A,u+=(l[f+5+3]-u)*A,d+=(l[f+5+4]-d)*A;break;case 1:h=l[f+1],c=l[f+2],u=l[f+3],d=l[f+4];break;default:h=this.getBezierValue(t,f,1,b-2),c=this.getBezierValue(t,f,2,b+18-2),u=this.getBezierValue(t,f,3,b+18*2-2),d=this.getBezierValue(t,f,4,b+18*3-2)}i==1?o.set(h,c,u,d):(m==0&&o.setFromColor(n.data.color),o.add((h-o.r)*i,(c-o.g)*i,(u-o.b)*i,(d-o.a)*i))}},Qe=class extends me{constructor(e,r,t){super(e,r,[_.rgb+"|"+t]);this.slotIndex=0;this.slotIndex=t}getFrameEntries(){return 4}setFrame(e,r,t,a,i){e<<=2,this.frames[e]=r,this.frames[e+1]=t,this.frames[e+2]=a,this.frames[e+3]=i}apply(e,r,t,a,i,m,s){let n=e.slots[this.slotIndex];if(!n.bone.active)return;let l=this.frames,o=n.color;if(t<l[0]){let b=n.data.color;switch(m){case 0:o.r=b.r,o.g=b.g,o.b=b.b;return;case 1:o.r+=(b.r-o.r)*i,o.g+=(b.g-o.g)*i,o.b+=(b.b-o.b)*i}return}let h=0,c=0,u=0,d=Q.search(l,t,4),f=this.curves[d>>2];switch(f){case 0:let b=l[d];h=l[d+1],c=l[d+2],u=l[d+3];let y=(t-b)/(l[d+4]-b);h+=(l[d+4+1]-h)*y,c+=(l[d+4+2]-c)*y,u+=(l[d+4+3]-u)*y;break;case 1:h=l[d+1],c=l[d+2],u=l[d+3];break;default:h=this.getBezierValue(t,d,1,f-2),c=this.getBezierValue(t,d,2,f+18-2),u=this.getBezierValue(t,d,3,f+18*2-2)}if(i==1)o.r=h,o.g=c,o.b=u;else{if(m==0){let b=n.data.color;o.r=b.r,o.g=b.g,o.b=b.b}o.r+=(h-o.r)*i,o.g+=(c-o.g)*i,o.b+=(u-o.b)*i}}},Ze=class extends ce{constructor(e,r,t){super(e,r,_.alpha+"|"+t);this.slotIndex=0;this.slotIndex=t}apply(e,r,t,a,i,m,s){let n=e.slots[this.slotIndex];if(!n.bone.active)return;let l=n.color;if(t<this.frames[0]){let h=n.data.color;switch(m){case 0:l.a=h.a;return;case 1:l.a+=(h.a-l.a)*i}return}let o=this.getCurveValue(t);i==1?l.a=o:(m==0&&(l.a=n.data.color.a),l.a+=(o-l.a)*i)}},Ke=class extends me{constructor(e,r,t){super(e,r,[_.rgb+"|"+t,_.alpha+"|"+t,_.rgb2+"|"+t]);this.slotIndex=0;this.slotIndex=t}getFrameEntries(){return 8}setFrame(e,r,t,a,i,m,s,n,l){e<<=3,this.frames[e]=r,this.frames[e+1]=t,this.frames[e+2]=a,this.frames[e+3]=i,this.frames[e+4]=m,this.frames[e+5]=s,this.frames[e+6]=n,this.frames[e+7]=l}apply(e,r,t,a,i,m,s){let n=e.slots[this.slotIndex];if(!n.bone.active)return;let l=this.frames,o=n.color,h=n.darkColor;if(t<l[0]){let x=n.data.color,w=n.data.darkColor;switch(m){case 0:o.setFromColor(x),h.r=w.r,h.g=w.g,h.b=w.b;return;case 1:o.add((x.r-o.r)*i,(x.g-o.g)*i,(x.b-o.b)*i,(x.a-o.a)*i),h.r+=(w.r-h.r)*i,h.g+=(w.g-h.g)*i,h.b+=(w.b-h.b)*i}return}let c=0,u=0,d=0,f=0,b=0,y=0,A=0,g=Q.search(l,t,8),p=this.curves[g>>3];switch(p){case 0:let x=l[g];c=l[g+1],u=l[g+2],d=l[g+3],f=l[g+4],b=l[g+5],y=l[g+6],A=l[g+7];let w=(t-x)/(l[g+8]-x);c+=(l[g+8+1]-c)*w,u+=(l[g+8+2]-u)*w,d+=(l[g+8+3]-d)*w,f+=(l[g+8+4]-f)*w,b+=(l[g+8+5]-b)*w,y+=(l[g+8+6]-y)*w,A+=(l[g+8+7]-A)*w;break;case 1:c=l[g+1],u=l[g+2],d=l[g+3],f=l[g+4],b=l[g+5],y=l[g+6],A=l[g+7];break;default:c=this.getBezierValue(t,g,1,p-2),u=this.getBezierValue(t,g,2,p+18-2),d=this.getBezierValue(t,g,3,p+18*2-2),f=this.getBezierValue(t,g,4,p+18*3-2),b=this.getBezierValue(t,g,5,p+18*4-2),y=this.getBezierValue(t,g,6,p+18*5-2),A=this.getBezierValue(t,g,7,p+18*6-2)}if(i==1)o.set(c,u,d,f),h.r=b,h.g=y,h.b=A;else{if(m==0){o.setFromColor(n.data.color);let x=n.data.darkColor;h.r=x.r,h.g=x.g,h.b=x.b}o.add((c-o.r)*i,(u-o.g)*i,(d-o.b)*i,(f-o.a)*i),h.r+=(b-h.r)*i,h.g+=(y-h.g)*i,h.b+=(A-h.b)*i}}},et=class extends me{constructor(e,r,t){super(e,r,[_.rgb+"|"+t,_.rgb2+"|"+t]);this.slotIndex=0;this.slotIndex=t}getFrameEntries(){return 7}setFrame(e,r,t,a,i,m,s,n){e*=7,this.frames[e]=r,this.frames[e+1]=t,this.frames[e+2]=a,this.frames[e+3]=i,this.frames[e+4]=m,this.frames[e+5]=s,this.frames[e+6]=n}apply(e,r,t,a,i,m,s){let n=e.slots[this.slotIndex];if(!n.bone.active)return;let l=this.frames,o=n.color,h=n.darkColor;if(t<l[0]){let x=n.data.color,w=n.data.darkColor;switch(m){case 0:o.r=x.r,o.g=x.g,o.b=x.b,h.r=w.r,h.g=w.g,h.b=w.b;return;case 1:o.r+=(x.r-o.r)*i,o.g+=(x.g-o.g)*i,o.b+=(x.b-o.b)*i,h.r+=(w.r-h.r)*i,h.g+=(w.g-h.g)*i,h.b+=(w.b-h.b)*i}return}let c=0,u=0,d=0,f=0,b=0,y=0,A=0,g=Q.search(l,t,7),p=this.curves[g/7];switch(p){case 0:let x=l[g];c=l[g+1],u=l[g+2],d=l[g+3],b=l[g+4],y=l[g+5],A=l[g+6];let w=(t-x)/(l[g+7]-x);c+=(l[g+7+1]-c)*w,u+=(l[g+7+2]-u)*w,d+=(l[g+7+3]-d)*w,b+=(l[g+7+4]-b)*w,y+=(l[g+7+5]-y)*w,A+=(l[g+7+6]-A)*w;break;case 1:c=l[g+1],u=l[g+2],d=l[g+3],b=l[g+4],y=l[g+5],A=l[g+6];break;default:c=this.getBezierValue(t,g,1,p-2),u=this.getBezierValue(t,g,2,p+18-2),d=this.getBezierValue(t,g,3,p+18*2-2),b=this.getBezierValue(t,g,4,p+18*3-2),y=this.getBezierValue(t,g,5,p+18*4-2),A=this.getBezierValue(t,g,6,p+18*5-2)}if(i==1)o.r=c,o.g=u,o.b=d,h.r=b,h.g=y,h.b=A;else{if(m==0){let x=n.data.color,w=n.data.darkColor;o.r=x.r,o.g=x.g,o.b=x.b,h.r=w.r,h.g=w.g,h.b=w.b}o.r+=(c-o.r)*i,o.g+=(u-o.g)*i,o.b+=(d-o.b)*i,h.r+=(b-h.r)*i,h.g+=(y-h.g)*i,h.b+=(A-h.b)*i}}},de=class extends Q{constructor(e,r){super(e,[_.attachment+"|"+r]);this.slotIndex=0;this.slotIndex=r,this.attachmentNames=new Array(e)}getFrameCount(){return this.frames.length}setFrame(e,r,t){this.frames[e]=r,this.attachmentNames[e]=t}apply(e,r,t,a,i,m,s){let n=e.slots[this.slotIndex];if(!!n.bone.active){if(s==1){m==0&&this.setAttachment(e,n,n.data.attachmentName);return}if(t<this.frames[0]){(m==0||m==1)&&this.setAttachment(e,n,n.data.attachmentName);return}this.setAttachment(e,n,this.attachmentNames[Q.search1(this.frames,t)])}}setAttachment(e,r,t){r.setAttachment(t?e.getAttachment(this.slotIndex,t):null)}},tt=class extends me{constructor(e,r,t,a){super(e,r,[_.deform+"|"+t+"|"+a.id]);this.slotIndex=0;this.slotIndex=t,this.attachment=a,this.vertices=new Array(e)}getFrameCount(){return this.frames.length}setFrame(e,r,t){this.frames[e]=r,this.vertices[e]=t}setBezier(e,r,t,a,i,m,s,n,l,o,h){let c=this.curves,u=this.getFrameCount()+e*18;t==0&&(c[r]=2+u);let d=(a-m*2+n)*.03,f=l*.03-s*.06,b=((m-n)*3-a+o)*.006,y=(s-l+.33333333)*.018,A=d*2+b,g=f*2+y,p=(m-a)*.3+d+b*.16666667,x=s*.3+f+y*.16666667,w=a+p,k=x;for(let v=u+18;u<v;u+=2)c[u]=w,c[u+1]=k,p+=A,x+=g,A+=b,g+=y,w+=p,k+=x}getCurvePercent(e,r){let t=this.curves,a=t[r];switch(a){case 0:let n=this.frames[r];return(e-n)/(this.frames[r+this.getFrameEntries()]-n);case 1:return 0}if(a-=2,t[a]>e){let n=this.frames[r];return t[a+1]*(e-n)/(t[a]-n)}let i=a+18;for(a+=2;a<i;a+=2)if(t[a]>=e){let n=t[a-2],l=t[a-1];return l+(e-n)/(t[a]-n)*(t[a+1]-l)}let m=t[i-2],s=t[i-1];return s+(1-s)*(e-m)/(this.frames[r+this.getFrameEntries()]-m)}apply(e,r,t,a,i,m,s){let n=e.slots[this.slotIndex];if(!n.bone.active)return;let l=n.getAttachment();if(!(l instanceof K)||l.deformAttachment!=this.attachment)return;let o=n.deform;o.length==0&&(m=0);let h=this.vertices,c=h[0].length,u=this.frames;if(t<u[0]){let g=l;switch(m){case 0:o.length=0;return;case 1:if(i==1){o.length=0;return}if(o.length=c,g.bones){i=1-i;for(var d=0;d<c;d++)o[d]*=i}else{let p=g.vertices;for(var d=0;d<c;d++)o[d]+=(p[d]-o[d])*i}}return}if(o.length=c,t>=u[u.length-1]){let g=h[u.length-1];if(i==1)if(m==3){let p=l;if(p.bones)for(let x=0;x<c;x++)o[x]+=g[x];else{let x=p.vertices;for(let w=0;w<c;w++)o[w]+=g[w]-x[w]}}else P.arrayCopy(g,0,o,0,c);else switch(m){case 0:{let x=l;if(x.bones)for(let w=0;w<c;w++)o[w]=g[w]*i;else{let w=x.vertices;for(let k=0;k<c;k++){let v=w[k];o[k]=v+(g[k]-v)*i}}break}case 1:case 2:for(let x=0;x<c;x++)o[x]+=(g[x]-o[x])*i;break;case 3:let p=l;if(p.bones)for(let x=0;x<c;x++)o[x]+=g[x]*i;else{let x=p.vertices;for(let w=0;w<c;w++)o[w]+=(g[w]-x[w])*i}}return}let f=Q.search1(u,t),b=this.getCurvePercent(t,f),y=h[f],A=h[f+1];if(i==1)if(m==3){let g=l;if(g.bones)for(let p=0;p<c;p++){let x=y[p];o[p]+=x+(A[p]-x)*b}else{let p=g.vertices;for(let x=0;x<c;x++){let w=y[x];o[x]+=w+(A[x]-w)*b-p[x]}}}else for(let g=0;g<c;g++){let p=y[g];o[g]=p+(A[g]-p)*b}else switch(m){case 0:{let p=l;if(p.bones)for(let x=0;x<c;x++){let w=y[x];o[x]=(w+(A[x]-w)*b)*i}else{let x=p.vertices;for(let w=0;w<c;w++){let k=y[w],v=x[w];o[w]=v+(k+(A[w]-k)*b-v)*i}}break}case 1:case 2:for(let p=0;p<c;p++){let x=y[p];o[p]+=(x+(A[p]-x)*b-o[p])*i}break;case 3:let g=l;if(g.bones)for(let p=0;p<c;p++){let x=y[p];o[p]+=(x+(A[p]-x)*b)*i}else{let p=g.vertices;for(let x=0;x<c;x++){let w=y[x];o[x]+=(w+(A[x]-w)*b-p[x])*i}}}}},jt=class extends Q{constructor(e){super(e,jt.propertyIds);this.events=new Array(e)}getFrameCount(){return this.frames.length}setFrame(e,r){this.frames[e]=r.time,this.events[e]=r}apply(e,r,t,a,i,m,s){if(!a)return;let n=this.frames,l=this.frames.length;if(r>t)this.apply(e,r,Number.MAX_VALUE,a,i,m,s),r=-1;else if(r>=n[l-1])return;if(t<n[0])return;let o=0;if(r<n[0])o=0;else{o=Q.search1(n,r)+1;let h=n[o];for(;o>0&&n[o-1]==h;)o--}for(;o<l&&t>=n[o];o++)a.push(this.events[o])}},ve=jt;ve.propertyIds=[""+_.event];var $t=class extends Q{constructor(e){super(e,$t.propertyIds);this.drawOrders=new Array(e)}getFrameCount(){return this.frames.length}setFrame(e,r,t){this.frames[e]=r,this.drawOrders[e]=t}apply(e,r,t,a,i,m,s){if(s==1){m==0&&P.arrayCopy(e.slots,0,e.drawOrder,0,e.slots.length);return}if(t<this.frames[0]){(m==0||m==1)&&P.arrayCopy(e.slots,0,e.drawOrder,0,e.slots.length);return}let n=this.drawOrders[Q.search1(this.frames,t)];if(!n)P.arrayCopy(e.slots,0,e.drawOrder,0,e.slots.length);else{let l=e.drawOrder,o=e.slots;for(let h=0,c=n.length;h<c;h++)l[h]=o[n[h]]}}},fe=$t;fe.propertyIds=[""+_.drawOrder];var rt=class extends me{constructor(e,r,t){super(e,r,[_.ikConstraint+"|"+t]);this.ikConstraintIndex=t}getFrameEntries(){return 6}setFrame(e,r,t,a,i,m,s){e*=6,this.frames[e]=r,this.frames[e+1]=t,this.frames[e+2]=a,this.frames[e+3]=i,this.frames[e+4]=m?1:0,this.frames[e+5]=s?1:0}apply(e,r,t,a,i,m,s){let n=e.ikConstraints[this.ikConstraintIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.mix=n.data.mix,n.softness=n.data.softness,n.bendDirection=n.data.bendDirection,n.compress=n.data.compress,n.stretch=n.data.stretch;return;case 1:n.mix+=(n.data.mix-n.mix)*i,n.softness+=(n.data.softness-n.softness)*i,n.bendDirection=n.data.bendDirection,n.compress=n.data.compress,n.stretch=n.data.stretch}return}let o=0,h=0,c=Q.search(l,t,6),u=this.curves[c/6];switch(u){case 0:let d=l[c];o=l[c+1],h=l[c+2];let f=(t-d)/(l[c+6]-d);o+=(l[c+6+1]-o)*f,h+=(l[c+6+2]-h)*f;break;case 1:o=l[c+1],h=l[c+2];break;default:o=this.getBezierValue(t,c,1,u-2),h=this.getBezierValue(t,c,2,u+18-2)}m==0?(n.mix=n.data.mix+(o-n.data.mix)*i,n.softness=n.data.softness+(h-n.data.softness)*i,s==1?(n.bendDirection=n.data.bendDirection,n.compress=n.data.compress,n.stretch=n.data.stretch):(n.bendDirection=l[c+3],n.compress=l[c+4]!=0,n.stretch=l[c+5]!=0)):(n.mix+=(o-n.mix)*i,n.softness+=(h-n.softness)*i,s==0&&(n.bendDirection=l[c+3],n.compress=l[c+4]!=0,n.stretch=l[c+5]!=0))}},nt=class extends me{constructor(e,r,t){super(e,r,[_.transformConstraint+"|"+t]);this.transformConstraintIndex=t}getFrameEntries(){return 7}setFrame(e,r,t,a,i,m,s,n){let l=this.frames;e*=7,l[e]=r,l[e+1]=t,l[e+2]=a,l[e+3]=i,l[e+4]=m,l[e+5]=s,l[e+6]=n}apply(e,r,t,a,i,m,s){let n=e.transformConstraints[this.transformConstraintIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){let A=n.data;switch(m){case 0:n.mixRotate=A.mixRotate,n.mixX=A.mixX,n.mixY=A.mixY,n.mixScaleX=A.mixScaleX,n.mixScaleY=A.mixScaleY,n.mixShearY=A.mixShearY;return;case 1:n.mixRotate+=(A.mixRotate-n.mixRotate)*i,n.mixX+=(A.mixX-n.mixX)*i,n.mixY+=(A.mixY-n.mixY)*i,n.mixScaleX+=(A.mixScaleX-n.mixScaleX)*i,n.mixScaleY+=(A.mixScaleY-n.mixScaleY)*i,n.mixShearY+=(A.mixShearY-n.mixShearY)*i}return}let o,h,c,u,d,f,b=Q.search(l,t,7),y=this.curves[b/7];switch(y){case 0:let A=l[b];o=l[b+1],h=l[b+2],c=l[b+3],u=l[b+4],d=l[b+5],f=l[b+6];let g=(t-A)/(l[b+7]-A);o+=(l[b+7+1]-o)*g,h+=(l[b+7+2]-h)*g,c+=(l[b+7+3]-c)*g,u+=(l[b+7+4]-u)*g,d+=(l[b+7+5]-d)*g,f+=(l[b+7+6]-f)*g;break;case 1:o=l[b+1],h=l[b+2],c=l[b+3],u=l[b+4],d=l[b+5],f=l[b+6];break;default:o=this.getBezierValue(t,b,1,y-2),h=this.getBezierValue(t,b,2,y+18-2),c=this.getBezierValue(t,b,3,y+18*2-2),u=this.getBezierValue(t,b,4,y+18*3-2),d=this.getBezierValue(t,b,5,y+18*4-2),f=this.getBezierValue(t,b,6,y+18*5-2)}if(m==0){let A=n.data;n.mixRotate=A.mixRotate+(o-A.mixRotate)*i,n.mixX=A.mixX+(h-A.mixX)*i,n.mixY=A.mixY+(c-A.mixY)*i,n.mixScaleX=A.mixScaleX+(u-A.mixScaleX)*i,n.mixScaleY=A.mixScaleY+(d-A.mixScaleY)*i,n.mixShearY=A.mixShearY+(f-A.mixShearY)*i}else n.mixRotate+=(o-n.mixRotate)*i,n.mixX+=(h-n.mixX)*i,n.mixY+=(c-n.mixY)*i,n.mixScaleX+=(u-n.mixScaleX)*i,n.mixScaleY+=(d-n.mixScaleY)*i,n.mixShearY+=(f-n.mixShearY)*i}},it=class extends ce{constructor(e,r,t){super(e,r,_.pathConstraintPosition+"|"+t);this.pathConstraintIndex=t}apply(e,r,t,a,i,m,s){let n=e.pathConstraints[this.pathConstraintIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.position=n.data.position;return;case 1:n.position+=(n.data.position-n.position)*i}return}let o=this.getCurveValue(t);m==0?n.position=n.data.position+(o-n.data.position)*i:n.position+=(o-n.position)*i}},at=class extends ce{constructor(e,r,t){super(e,r,_.pathConstraintSpacing+"|"+t);this.pathConstraintIndex=0;this.pathConstraintIndex=t}apply(e,r,t,a,i,m,s){let n=e.pathConstraints[this.pathConstraintIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.spacing=n.data.spacing;return;case 1:n.spacing+=(n.data.spacing-n.spacing)*i}return}let o=this.getCurveValue(t);m==0?n.spacing=n.data.spacing+(o-n.data.spacing)*i:n.spacing+=(o-n.spacing)*i}},st=class extends me{constructor(e,r,t){super(e,r,[_.pathConstraintMix+"|"+t]);this.pathConstraintIndex=0;this.pathConstraintIndex=t}getFrameEntries(){return 4}setFrame(e,r,t,a,i){let m=this.frames;e<<=2,m[e]=r,m[e+1]=t,m[e+2]=a,m[e+3]=i}apply(e,r,t,a,i,m,s){let n=e.pathConstraints[this.pathConstraintIndex];if(!n.active)return;let l=this.frames;if(t<l[0]){switch(m){case 0:n.mixRotate=n.data.mixRotate,n.mixX=n.data.mixX,n.mixY=n.data.mixY;return;case 1:n.mixRotate+=(n.data.mixRotate-n.mixRotate)*i,n.mixX+=(n.data.mixX-n.mixX)*i,n.mixY+=(n.data.mixY-n.mixY)*i}return}let o,h,c,u=Q.search(l,t,4),d=this.curves[u>>2];switch(d){case 0:let f=l[u];o=l[u+1],h=l[u+2],c=l[u+3];let b=(t-f)/(l[u+4]-f);o+=(l[u+4+1]-o)*b,h+=(l[u+4+2]-h)*b,c+=(l[u+4+3]-c)*b;break;case 1:o=l[u+1],h=l[u+2],c=l[u+3];break;default:o=this.getBezierValue(t,u,1,d-2),h=this.getBezierValue(t,u,2,d+18-2),c=this.getBezierValue(t,u,3,d+18*2-2)}if(m==0){let f=n.data;n.mixRotate=f.mixRotate+(o-f.mixRotate)*i,n.mixX=f.mixX+(h-f.mixX)*i,n.mixY=f.mixY+(c-f.mixY)*i}else n.mixRotate+=(o-n.mixRotate)*i,n.mixX+=(h-n.mixX)*i,n.mixY+=(c-n.mixY)*i}};var At=class{constructor(e){this.tracks=new Array;this.timeScale=1;this.unkeyedState=0;this.events=new Array;this.listeners=new Array;this.queue=new Jt(this);this.propertyIDs=new Ne;this.animationsChanged=!1;this.trackEntryPool=new we(()=>new _t);this.data=e}static emptyAnimation(){return er||(er=new Ye("<empty>",[],0)),er}update(e){e*=this.timeScale;let r=this.tracks;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(!i)continue;i.animationLast=i.nextAnimationLast,i.trackLast=i.nextTrackLast;let m=e*i.timeScale;if(i.delay>0){if(i.delay-=m,i.delay>0)continue;m=-i.delay,i.delay=0}let s=i.next;if(s){let n=i.trackLast-s.delay;if(n>=0){for(s.delay=0,s.trackTime+=i.timeScale==0?0:(n/i.timeScale+e)*s.timeScale,i.trackTime+=m,this.setCurrent(t,s,!0);s.mixingFrom;)s.mixTime+=e,s=s.mixingFrom;continue}}else if(i.trackLast>=i.trackEnd&&!i.mixingFrom){r[t]=null,this.queue.end(i),this.clearNext(i);continue}if(i.mixingFrom&&this.updateMixingFrom(i,e)){let n=i.mixingFrom;for(i.mixingFrom=null,n&&(n.mixingTo=null);n;)this.queue.end(n),n=n.mixingFrom}i.trackTime+=m}this.queue.drain()}updateMixingFrom(e,r){let t=e.mixingFrom;if(!t)return!0;let a=this.updateMixingFrom(t,r);return t.animationLast=t.nextAnimationLast,t.trackLast=t.nextTrackLast,e.mixTime>0&&e.mixTime>=e.mixDuration?((t.totalAlpha==0||e.mixDuration==0)&&(e.mixingFrom=t.mixingFrom,t.mixingFrom&&(t.mixingFrom.mixingTo=e),e.interruptAlpha=t.interruptAlpha,this.queue.end(t)),a):(t.trackTime+=r*t.timeScale,e.mixTime+=r,!1)}apply(e){if(!e)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();let r=this.events,t=this.tracks,a=!1;for(let c=0,u=t.length;c<u;c++){let d=t[c];if(!d||d.delay>0)continue;a=!0;let f=c==0?S.first:d.mixBlend,b=d.alpha;d.mixingFrom?b*=this.applyMixingFrom(d,e,f):d.trackTime>=d.trackEnd&&!d.next&&(b=0);let y=d.animationLast,A=d.getAnimationTime(),g=A,p=r;d.reverse&&(g=d.animation.duration-g,p=null);let x=d.animation.timelines,w=x.length;if(c==0&&b==1||f==S.add)for(let k=0;k<w;k++){P.webkit602BugfixHelper(b,f);var i=x[k];i instanceof de?this.applyAttachmentTimeline(i,e,g,f,!0):i.apply(e,y,g,p,b,f,re.mixIn)}else{let k=d.timelineMode,v=d.timelinesRotation.length!=w<<1;v&&(d.timelinesRotation.length=w<<1);for(let B=0;B<w;B++){let I=x[B],D=k[B]==Xt?f:S.setup;I instanceof ke?this.applyRotateTimeline(I,e,g,b,D,d.timelinesRotation,B<<1,v):I instanceof de?this.applyAttachmentTimeline(I,e,g,f,!0):(P.webkit602BugfixHelper(b,f),I.apply(e,y,g,p,b,D,re.mixIn))}}this.queueEvents(d,A),r.length=0,d.nextAnimationLast=A,d.nextTrackLast=d.trackTime}for(var m=this.unkeyedState+Kt,s=e.slots,n=0,l=e.slots.length;n<l;n++){var o=s[n];if(o.attachmentState==m){var h=o.data.attachmentName;o.setAttachment(h?e.getAttachment(o.data.index,h):null)}}return this.unkeyedState+=2,this.queue.drain(),a}applyMixingFrom(e,r,t){let a=e.mixingFrom;a.mixingFrom&&this.applyMixingFrom(a,r,t);let i=0;e.mixDuration==0?(i=1,t==S.first&&(t=S.setup)):(i=e.mixTime/e.mixDuration,i>1&&(i=1),t!=S.first&&(t=a.mixBlend));let m=i<a.attachmentThreshold,s=i<a.drawOrderThreshold,n=a.animation.timelines,l=n.length,o=a.alpha*e.interruptAlpha,h=o*(1-i),c=a.animationLast,u=a.getAnimationTime(),d=u,f=null;if(a.reverse?d=a.animation.duration-d:i<a.eventThreshold&&(f=this.events),t==S.add)for(let b=0;b<l;b++)n[b].apply(r,c,d,f,h,t,re.mixOut);else{let b=a.timelineMode,y=a.timelineHoldMix,A=a.timelinesRotation.length!=l<<1;A&&(a.timelinesRotation.length=l<<1),a.totalAlpha=0;for(let g=0;g<l;g++){let p=n[g],x=re.mixOut,w,k=0;switch(b[g]){case Xt:if(!s&&p instanceof fe)continue;w=t,k=h;break;case Qt:w=S.setup,k=h;break;case Zt:w=t,k=o;break;case Ft:w=S.setup,k=o;break;default:w=S.setup;let v=y[g];k=o*Math.max(0,1-v.mixTime/v.mixDuration);break}a.totalAlpha+=k,p instanceof ke?this.applyRotateTimeline(p,r,d,k,w,a.timelinesRotation,g<<1,A):p instanceof de?this.applyAttachmentTimeline(p,r,d,w,m):(P.webkit602BugfixHelper(k,t),s&&p instanceof fe&&w==S.setup&&(x=re.mixIn),p.apply(r,c,d,f,k,w,x))}}return e.mixDuration>0&&this.queueEvents(a,u),this.events.length=0,a.nextAnimationLast=u,a.nextTrackLast=a.trackTime,i}applyAttachmentTimeline(e,r,t,a,i){var m=r.slots[e.slotIndex];!m.bone.active||(t<e.frames[0]?(a==S.setup||a==S.first)&&this.setAttachment(r,m,m.data.attachmentName,i):this.setAttachment(r,m,e.attachmentNames[Q.search1(e.frames,t)],i),m.attachmentState<=this.unkeyedState&&(m.attachmentState=this.unkeyedState+Kt))}setAttachment(e,r,t,a){r.setAttachment(t?e.getAttachment(r.data.index,t):null),a&&(r.attachmentState=this.unkeyedState+kr)}applyRotateTimeline(e,r,t,a,i,m,s,n){if(n&&(m[s]=0),a==1){e.apply(r,0,t,null,1,i,re.mixIn);return}let l=r.bones[e.boneIndex];if(!l.active)return;let o=e.frames,h=0,c=0;if(t<o[0])switch(i){case S.setup:l.rotation=l.data.rotation;default:return;case S.first:h=l.rotation,c=l.data.rotation}else h=i==S.setup?l.data.rotation:l.rotation,c=l.data.rotation+e.getCurveValue(t);let u=0,d=c-h;if(d-=(16384-(16384.499999999996-d/360|0))*360,d==0)u=m[s];else{let f=0,b=0;n?(f=0,b=d):(f=m[s],b=m[s+1]);let y=d>0,A=f>=0;M.signum(b)!=M.signum(d)&&Math.abs(b)<=90&&(Math.abs(f)>180&&(f+=360*M.signum(f)),A=y),u=d+f-f%360,A!=y&&(u+=360*M.signum(f)),m[s]=u}m[s+1]=d,l.rotation=h+u*a}queueEvents(e,r){let t=e.animationStart,a=e.animationEnd,i=a-t,m=e.trackLast%i,s=this.events,n=0,l=s.length;for(;n<l;n++){let h=s[n];if(h.time<m)break;h.time>a||this.queue.event(e,h)}let o=!1;for(e.loop?o=i==0||m>e.trackTime%i:o=r>=a&&e.animationLast<a,o&&this.queue.complete(e);n<l;n++){let h=s[n];h.time<t||this.queue.event(e,h)}}clearTracks(){let e=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let r=0,t=this.tracks.length;r<t;r++)this.clearTrack(r);this.tracks.length=0,this.queue.drainDisabled=e,this.queue.drain()}clearTrack(e){if(e>=this.tracks.length)return;let r=this.tracks[e];if(!r)return;this.queue.end(r),this.clearNext(r);let t=r;for(;;){let a=t.mixingFrom;if(!a)break;this.queue.end(a),t.mixingFrom=null,t.mixingTo=null,t=a}this.tracks[r.trackIndex]=null,this.queue.drain()}setCurrent(e,r,t){let a=this.expandToIndex(e);this.tracks[e]=r,r.previous=null,a&&(t&&this.queue.interrupt(a),r.mixingFrom=a,a.mixingTo=r,r.mixTime=0,a.mixingFrom&&a.mixDuration>0&&(r.interruptAlpha*=Math.min(1,a.mixTime/a.mixDuration)),a.timelinesRotation.length=0),this.queue.start(r)}setAnimation(e,r,t=!1){let a=this.data.skeletonData.findAnimation(r);if(!a)throw new Error("Animation not found: "+r);return this.setAnimationWith(e,a,t)}setAnimationWith(e,r,t=!1){if(!r)throw new Error("animation cannot be null.");let a=!0,i=this.expandToIndex(e);i&&(i.nextTrackLast==-1?(this.tracks[e]=i.mixingFrom,this.queue.interrupt(i),this.queue.end(i),this.clearNext(i),i=i.mixingFrom,a=!1):this.clearNext(i));let m=this.trackEntry(e,r,t,i);return this.setCurrent(e,m,a),this.queue.drain(),m}addAnimation(e,r,t=!1,a=0){let i=this.data.skeletonData.findAnimation(r);if(!i)throw new Error("Animation not found: "+r);return this.addAnimationWith(e,i,t,a)}addAnimationWith(e,r,t=!1,a=0){if(!r)throw new Error("animation cannot be null.");let i=this.expandToIndex(e);if(i)for(;i.next;)i=i.next;let m=this.trackEntry(e,r,t,i);return i?(i.next=m,m.previous=i,a<=0&&(a+=i.getTrackComplete()-m.mixDuration)):(this.setCurrent(e,m,!0),this.queue.drain()),m.delay=a,m}setEmptyAnimation(e,r=0){let t=this.setAnimationWith(e,At.emptyAnimation(),!1);return t.mixDuration=r,t.trackEnd=r,t}addEmptyAnimation(e,r=0,t=0){let a=this.addAnimationWith(e,At.emptyAnimation(),!1,t);return t<=0&&(a.delay+=a.mixDuration-r),a.mixDuration=r,a.trackEnd=r,a}setEmptyAnimations(e=0){let r=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let t=0,a=this.tracks.length;t<a;t++){let i=this.tracks[t];i&&this.setEmptyAnimation(i.trackIndex,e)}this.queue.drainDisabled=r,this.queue.drain()}expandToIndex(e){return e<this.tracks.length?this.tracks[e]:(P.ensureArrayCapacity(this.tracks,e+1,null),this.tracks.length=e+1,null)}trackEntry(e,r,t,a){let i=this.trackEntryPool.obtain();return i.trackIndex=e,i.animation=r,i.loop=t,i.holdPrevious=!1,i.eventThreshold=0,i.attachmentThreshold=0,i.drawOrderThreshold=0,i.animationStart=0,i.animationEnd=r.duration,i.animationLast=-1,i.nextAnimationLast=-1,i.delay=0,i.trackTime=0,i.trackLast=-1,i.nextTrackLast=-1,i.trackEnd=Number.MAX_VALUE,i.timeScale=1,i.alpha=1,i.interruptAlpha=1,i.mixTime=0,i.mixDuration=a?this.data.getMix(a.animation,r):0,i.mixBlend=S.replace,i}clearNext(e){let r=e.next;for(;r;)this.queue.dispose(r),r=r.next;e.next=null}_animationsChanged(){this.animationsChanged=!1,this.propertyIDs.clear();let e=this.tracks;for(let r=0,t=e.length;r<t;r++){let a=e[r];if(!!a){for(;a.mixingFrom;)a=a.mixingFrom;do(!a.mixingTo||a.mixBlend!=S.add)&&this.computeHold(a),a=a.mixingTo;while(a)}}}computeHold(e){let r=e.mixingTo,t=e.animation.timelines,a=e.animation.timelines.length,i=e.timelineMode;i.length=a;let m=e.timelineHoldMix;m.length=0;let s=this.propertyIDs;if(r&&r.holdPrevious){for(let n=0;n<a;n++)i[n]=s.addAll(t[n].getPropertyIds())?Ft:Zt;return}e:for(let n=0;n<a;n++){let l=t[n],o=l.getPropertyIds();if(!s.addAll(o))i[n]=Xt;else if(!r||l instanceof de||l instanceof fe||l instanceof ve||!r.animation.hasTimeline(o))i[n]=Qt;else{for(let h=r.mixingTo;h;h=h.mixingTo)if(!h.animation.hasTimeline(o)){if(e.mixDuration>0){i[n]=wr,m[n]=h;continue e}break}i[n]=Ft}}}getCurrent(e){return e>=this.tracks.length?null:this.tracks[e]}addListener(e){if(!e)throw new Error("listener cannot be null.");this.listeners.push(e)}removeListener(e){let r=this.listeners.indexOf(e);r>=0&&this.listeners.splice(r,1)}clearListeners(){this.listeners.length=0}clearListenerNotifications(){this.queue.clear()}},_t=class{constructor(){this.mixBlend=S.replace;this.timelineMode=new Array;this.timelineHoldMix=new Array;this.timelinesRotation=new Array}reset(){this.next=null,this.previous=null,this.mixingFrom=null,this.mixingTo=null,this.animation=null,this.listener=null,this.timelineMode.length=0,this.timelineHoldMix.length=0,this.timelinesRotation.length=0}getAnimationTime(){if(this.loop){let e=this.animationEnd-this.animationStart;return e==0?this.animationStart:this.trackTime%e+this.animationStart}return Math.min(this.trackTime+this.animationStart,this.animationEnd)}setAnimationLast(e){this.animationLast=e,this.nextAnimationLast=e}isComplete(){return this.trackTime>=this.animationEnd-this.animationStart}resetRotationDirections(){this.timelinesRotation.length=0}getTrackComplete(){let e=this.animationEnd-this.animationStart;if(e!=0){if(this.loop)return e*(1+(this.trackTime/e|0));if(this.trackTime<e)return e}return this.trackTime}},Jt=class{constructor(e){this.objects=[];this.drainDisabled=!1;this.animState=e}start(e){this.objects.push(ae.start),this.objects.push(e),this.animState.animationsChanged=!0}interrupt(e){this.objects.push(ae.interrupt),this.objects.push(e)}end(e){this.objects.push(ae.end),this.objects.push(e),this.animState.animationsChanged=!0}dispose(e){this.objects.push(ae.dispose),this.objects.push(e)}complete(e){this.objects.push(ae.complete),this.objects.push(e)}event(e,r){this.objects.push(ae.event),this.objects.push(e),this.objects.push(r)}drain(){if(this.drainDisabled)return;this.drainDisabled=!0;let e=this.objects,r=this.animState.listeners;for(let t=0;t<e.length;t+=2){let a=e[t],i=e[t+1];switch(a){case ae.start:i.listener&&i.listener.start&&i.listener.start(i);for(let s=0;s<r.length;s++)r[s].start&&r[s].start(i);break;case ae.interrupt:i.listener&&i.listener.interrupt&&i.listener.interrupt(i);for(let s=0;s<r.length;s++)r[s].interrupt&&r[s].interrupt(i);break;case ae.end:i.listener&&i.listener.end&&i.listener.end(i);for(let s=0;s<r.length;s++)r[s].end&&r[s].end(i);case ae.dispose:i.listener&&i.listener.dispose&&i.listener.dispose(i);for(let s=0;s<r.length;s++)r[s].dispose&&r[s].dispose(i);this.animState.trackEntryPool.free(i);break;case ae.complete:i.listener&&i.listener.complete&&i.listener.complete(i);for(let s=0;s<r.length;s++)r[s].complete&&r[s].complete(i);break;case ae.event:let m=e[t+++2];i.listener&&i.listener.event&&i.listener.event(i,m);for(let s=0;s<r.length;s++)r[s].event&&r[s].event(i,m);break}}this.clear(),this.drainDisabled=!1}clear(){this.objects.length=0}},ae;(function(m){m[m.start=0]="start",m[m.interrupt=1]="interrupt",m[m.end=2]="end",m[m.dispose=3]="dispose",m[m.complete=4]="complete",m[m.event=5]="event"})(ae||(ae={}));var Ar=class{start(e){}interrupt(e){}end(e){}dispose(e){}complete(e){}event(e,r){}},Xt=0,Qt=1,Zt=2,Ft=3,wr=4,Kt=1,kr=2,er=null;var vr=class{constructor(e){this.animationToMixTime={};this.defaultMix=0;if(!e)throw new Error("skeletonData cannot be null.");this.skeletonData=e}setMix(e,r,t){let a=this.skeletonData.findAnimation(e);if(!a)throw new Error("Animation not found: "+e);let i=this.skeletonData.findAnimation(r);if(!i)throw new Error("Animation not found: "+r);this.setMixWith(a,i,t)}setMixWith(e,r,t){if(!e)throw new Error("from cannot be null.");if(!r)throw new Error("to cannot be null.");let a=e.name+"."+r.name;this.animationToMixTime[a]=t}getMix(e,r){let t=e.name+"."+r.name,a=this.animationToMixTime[t];return a===void 0?this.defaultMix:a}};var Be=class extends K{constructor(e){super(e);this.color=new R(1,1,1,1)}copy(){let e=new Be(this.name);return this.copyTo(e),e.color.setFromColor(this.color),e}};var ot=class extends K{constructor(e){super(e);this.color=new R(.2275,.2275,.8078,1)}copy(){let e=new ot(this.name);return this.copyTo(e),e.endSlot=this.endSlot,e.color.setFromColor(this.color),e}};var wt=class{constructor(e){this._image=e}getImage(){return this._image}},Xe;(function(s){s[s.Nearest=9728]="Nearest",s[s.Linear=9729]="Linear",s[s.MipMap=9987]="MipMap",s[s.MipMapNearestNearest=9984]="MipMapNearestNearest",s[s.MipMapLinearNearest=9985]="MipMapLinearNearest",s[s.MipMapNearestLinear=9986]="MipMapNearestLinear",s[s.MipMapLinearLinear=9987]="MipMapLinearLinear"})(Xe||(Xe={}));var Fe;(function(t){t[t.MirroredRepeat=33648]="MirroredRepeat",t[t.ClampToEdge=33071]="ClampToEdge",t[t.Repeat=10497]="Repeat"})(Fe||(Fe={}));var Dt=class{constructor(){this.u=0;this.v=0;this.u2=0;this.v2=0;this.width=0;this.height=0;this.degrees=0;this.offsetX=0;this.offsetY=0;this.originalWidth=0;this.originalHeight=0}},Sr=class extends wt{setFilters(e,r){}setWraps(e,r){}dispose(){}};var Et=class{constructor(e){this.pages=new Array;this.regions=new Array;let r=new Cr(e),t=new Array(4),a=null,i=null,m={};m.size=()=>{a.width=parseInt(t[1]),a.height=parseInt(t[2])},m.format=()=>{},m.filter=()=>{a.minFilter=P.enumValue(Xe,t[1]),a.magFilter=P.enumValue(Xe,t[2])},m.repeat=()=>{t[1].indexOf("x")!=-1&&(a.uWrap=Fe.Repeat),t[1].indexOf("y")!=-1&&(a.vWrap=Fe.Repeat)},m.pma=()=>{a.pma=t[1]=="true"};var s={};s.xy=()=>{i.x=parseInt(t[1]),i.y=parseInt(t[2])},s.size=()=>{i.width=parseInt(t[1]),i.height=parseInt(t[2])},s.bounds=()=>{i.x=parseInt(t[1]),i.y=parseInt(t[2]),i.width=parseInt(t[3]),i.height=parseInt(t[4])},s.offset=()=>{i.offsetX=parseInt(t[1]),i.offsetY=parseInt(t[2])},s.orig=()=>{i.originalWidth=parseInt(t[1]),i.originalHeight=parseInt(t[2])},s.offsets=()=>{i.offsetX=parseInt(t[1]),i.offsetY=parseInt(t[2]),i.originalWidth=parseInt(t[3]),i.originalHeight=parseInt(t[4])},s.rotate=()=>{let h=t[1];h=="true"?i.degrees=90:h!="false"&&(i.degrees=parseInt(h))},s.index=()=>{i.index=parseInt(t[1])};let n=r.readLine();for(;n&&n.trim().length==0;)n=r.readLine();for(;!(!n||n.trim().length==0||r.readEntry(t,n)==0);)n=r.readLine();let l=null,o=null;for(;n!==null;)if(n.trim().length==0)a=null,n=r.readLine();else if(a){for(i=new kt,i.page=a,i.name=n;;){let h=r.readEntry(t,n=r.readLine());if(h==0)break;let c=s[t[0]];if(c)c();else{l||(l=[],o=[]),l.push(t[0]);let u=[];for(let d=0;d<h;d++)u.push(parseInt(t[d+1]));o.push(u)}}i.originalWidth==0&&i.originalHeight==0&&(i.originalWidth=i.width,i.originalHeight=i.height),l&&l.length>0&&(i.names=l,i.values=o,l=null,o=null),i.u=i.x/a.width,i.v=i.y/a.height,i.degrees==90?(i.u2=(i.x+i.height)/a.width,i.v2=(i.y+i.width)/a.height):(i.u2=(i.x+i.width)/a.width,i.v2=(i.y+i.height)/a.height),this.regions.push(i)}else{for(a=new tr,a.name=n.trim();r.readEntry(t,n=r.readLine())!=0;){let h=m[t[0]];h&&h()}this.pages.push(a)}}findRegion(e){for(let r=0;r<this.regions.length;r++)if(this.regions[r].name==e)return this.regions[r];return null}setTextures(e,r=""){for(let t of this.pages)t.setTexture(e.get(r+t.name))}dispose(){for(let e=0;e<this.pages.length;e++)this.pages[e].texture.dispose()}},Cr=class{constructor(e){this.index=0;this.lines=e.split(/\r\n|\r|\n/)}readLine(){return this.index>=this.lines.length?null:this.lines[this.index++]}readEntry(e,r){if(!r||(r=r.trim(),r.length==0))return 0;let t=r.indexOf(":");if(t==-1)return 0;e[0]=r.substr(0,t).trim();for(let a=1,i=t+1;;a++){let m=r.indexOf(",",i);if(m==-1)return e[a]=r.substr(i).trim(),a;if(e[a]=r.substr(i,m-i).trim(),i=m+1,a==4)return 4}}},tr=class{constructor(){this.minFilter=Xe.Nearest;this.magFilter=Xe.Nearest;this.uWrap=Fe.ClampToEdge;this.vWrap=Fe.ClampToEdge}setTexture(e){this.texture=e,e.setFilters(this.minFilter,this.magFilter),e.setWraps(this.uWrap,this.vWrap)}},kt=class extends Dt{};var se=class extends K{constructor(e){super(e);this.color=new R(1,1,1,1);this.tempColor=new R(0,0,0,0)}updateUVs(){let e=this.regionUVs;(!this.uvs||this.uvs.length!=e.length)&&(this.uvs=P.newFloatArray(e.length));let r=this.uvs,t=this.uvs.length,a=this.region.u,i=this.region.v,m=0,s=0;if(this.region instanceof kt){let n=this.region,l=n.page.texture.getImage(),o=l.width,h=l.height;switch(n.degrees){case 90:a-=(n.originalHeight-n.offsetY-n.height)/o,i-=(n.originalWidth-n.offsetX-n.width)/h,m=n.originalHeight/o,s=n.originalWidth/h;for(let c=0;c<t;c+=2)r[c]=a+e[c+1]*m,r[c+1]=i+(1-e[c])*s;return;case 180:a-=(n.originalWidth-n.offsetX-n.width)/o,i-=n.offsetY/h,m=n.originalWidth/o,s=n.originalHeight/h;for(let c=0;c<t;c+=2)r[c]=a+(1-e[c])*m,r[c+1]=i+(1-e[c+1])*s;return;case 270:a-=n.offsetY/o,i-=n.offsetX/h,m=n.originalHeight/o,s=n.originalWidth/h;for(let c=0;c<t;c+=2)r[c]=a+(1-e[c+1])*m,r[c+1]=i+e[c]*s;return}a-=n.offsetX/o,i-=(n.originalHeight-n.offsetY-n.height)/h,m=n.originalWidth/o,s=n.originalHeight/h}else this.region?(m=this.region.u2-a,s=this.region.v2-i):(a=i=0,m=s=1);for(let n=0;n<t;n+=2)r[n]=a+e[n]*m,r[n+1]=i+e[n+1]*s}getParentMesh(){return this.parentMesh}setParentMesh(e){this.parentMesh=e,e&&(this.bones=e.bones,this.vertices=e.vertices,this.worldVerticesLength=e.worldVerticesLength,this.regionUVs=e.regionUVs,this.triangles=e.triangles,this.hullLength=e.hullLength,this.worldVerticesLength=e.worldVerticesLength)}copy(){if(this.parentMesh)return this.newLinkedMesh();let e=new se(this.name);return e.region=this.region,e.path=this.path,e.color.setFromColor(this.color),this.copyTo(e),e.regionUVs=new Array(this.regionUVs.length),P.arrayCopy(this.regionUVs,0,e.regionUVs,0,this.regionUVs.length),e.uvs=new Array(this.uvs.length),P.arrayCopy(this.uvs,0,e.uvs,0,this.uvs.length),e.triangles=new Array(this.triangles.length),P.arrayCopy(this.triangles,0,e.triangles,0,this.triangles.length),e.hullLength=this.hullLength,this.edges&&(e.edges=new Array(this.edges.length),P.arrayCopy(this.edges,0,e.edges,0,this.edges.length)),e.width=this.width,e.height=this.height,e}newLinkedMesh(){let e=new se(this.name);return e.region=this.region,e.path=this.path,e.color.setFromColor(this.color),e.deformAttachment=this.deformAttachment,e.setParentMesh(this.parentMesh?this.parentMesh:this),e.updateUVs(),e}};var ge=class extends K{constructor(e){super(e);this.closed=!1;this.constantSpeed=!1;this.color=new R(1,1,1,1)}copy(){let e=new ge(this.name);return this.copyTo(e),e.lengths=new Array(this.lengths.length),P.arrayCopy(this.lengths,0,e.lengths,0,this.lengths.length),e.closed=closed,e.constantSpeed=this.constantSpeed,e.color.setFromColor(this.color),e}};var lt=class extends K{constructor(e){super(e);this.color=new R(.38,.94,0,1)}computeWorldPosition(e,r){return r.x=this.x*e.a+this.y*e.b+e.worldX,r.y=this.x*e.c+this.y*e.d+e.worldY,r}computeWorldRotation(e){let r=M.cosDeg(this.rotation),t=M.sinDeg(this.rotation),a=r*e.a+t*e.b,i=r*e.c+t*e.d;return Math.atan2(i,a)*M.radDeg}copy(){let e=new lt(this.name);return e.x=this.x,e.y=this.y,e.rotation=this.rotation,e.color.setFromColor(this.color),e}};var rr=class extends xt{constructor(e){super(e);this.x=0;this.y=0;this.scaleX=1;this.scaleY=1;this.rotation=0;this.width=0;this.height=0;this.color=new R(1,1,1,1);this.offset=P.newFloatArray(8);this.uvs=P.newFloatArray(8);this.tempColor=new R(1,1,1,1)}updateOffset(){let e=this.region,r=this.width/this.region.originalWidth*this.scaleX,t=this.height/this.region.originalHeight*this.scaleY,a=-this.width/2*this.scaleX+this.region.offsetX*r,i=-this.height/2*this.scaleY+this.region.offsetY*t,m=a+this.region.width*r,s=i+this.region.height*t,n=this.rotation*Math.PI/180,l=Math.cos(n),o=Math.sin(n),h=this.x,c=this.y,u=a*l+h,d=a*o,f=i*l+c,b=i*o,y=m*l+h,A=m*o,g=s*l+c,p=s*o,x=this.offset;x[0]=u-b,x[1]=f+d,x[2]=u-p,x[3]=g+d,x[4]=y-p,x[5]=g+A,x[6]=y-b,x[7]=f+A}setRegion(e){this.region=e;let r=this.uvs;e.degrees==90?(r[2]=e.u,r[3]=e.v2,r[4]=e.u,r[5]=e.v,r[6]=e.u2,r[7]=e.v,r[0]=e.u2,r[1]=e.v2):(r[0]=e.u,r[1]=e.v2,r[2]=e.u,r[3]=e.v,r[4]=e.u2,r[5]=e.v,r[6]=e.u2,r[7]=e.v2)}computeWorldVertices(e,r,t,a){let i=this.offset,m=e.worldX,s=e.worldY,n=e.a,l=e.b,o=e.c,h=e.d,c=0,u=0;c=i[0],u=i[1],r[t]=c*n+u*l+m,r[t+1]=c*o+u*h+s,t+=a,c=i[2],u=i[3],r[t]=c*n+u*l+m,r[t+1]=c*o+u*h+s,t+=a,c=i[4],u=i[5],r[t]=c*n+u*l+m,r[t+1]=c*o+u*h+s,t+=a,c=i[6],u=i[7],r[t]=c*n+u*l+m,r[t+1]=c*o+u*h+s}copy(){let e=new rr(this.name);return e.region=this.region,e.rendererObject=this.rendererObject,e.path=this.path,e.x=this.x,e.y=this.y,e.scaleX=this.scaleX,e.scaleY=this.scaleY,e.rotation=this.rotation,e.width=this.width,e.height=this.height,P.arrayCopy(this.uvs,0,e.uvs,0,8),P.arrayCopy(this.offset,0,e.offset,0,8),e.color.setFromColor(this.color),e}},V=rr;V.X1=0,V.Y1=1,V.C1R=2,V.C1G=3,V.C1B=4,V.C1A=5,V.U1=6,V.V1=7,V.X2=8,V.Y2=9,V.C2R=10,V.C2G=11,V.C2B=12,V.C2A=13,V.U2=14,V.V2=15,V.X3=16,V.Y3=17,V.C3R=18,V.C3G=19,V.C3B=20,V.C3A=21,V.U3=22,V.V3=23,V.X4=24,V.Y4=25,V.C4R=26,V.C4G=27,V.C4B=28,V.C4A=29,V.U4=30,V.V4=31;var Tr=class{constructor(e){this.atlas=e}newRegionAttachment(e,r,t){let a=this.atlas.findRegion(t);if(!a)throw new Error("Region not found in atlas: "+t+" (region attachment: "+r+")");a.renderObject=a;let i=new V(r);return i.setRegion(a),i}newMeshAttachment(e,r,t){let a=this.atlas.findRegion(t);if(!a)throw new Error("Region not found in atlas: "+t+" (mesh attachment: "+r+")");a.renderObject=a;let i=new se(r);return i.region=a,i}newBoundingBoxAttachment(e,r){return new Be(r)}newPathAttachment(e,r){return new ge(r)}newPointAttachment(e,r){return new lt(r)}newClippingAttachment(e,r){return new ot(r)}};var ht=class{constructor(e,r,t){this.x=0;this.y=0;this.rotation=0;this.scaleX=1;this.scaleY=1;this.shearX=0;this.shearY=0;this.transformMode=ee.Normal;this.skinRequired=!1;this.color=new R;if(e<0)throw new Error("index must be >= 0.");if(!r)throw new Error("name cannot be null.");this.index=e,this.name=r,this.parent=t}},ee;(function(i){i[i.Normal=0]="Normal",i[i.OnlyTranslation=1]="OnlyTranslation",i[i.NoRotationOrReflection=2]="NoRotationOrReflection",i[i.NoScale=3]="NoScale",i[i.NoScaleOrReflection=4]="NoScaleOrReflection"})(ee||(ee={}));var vt=class{constructor(e,r,t){this.children=new Array;this.x=0;this.y=0;this.rotation=0;this.scaleX=0;this.scaleY=0;this.shearX=0;this.shearY=0;this.ax=0;this.ay=0;this.arotation=0;this.ascaleX=0;this.ascaleY=0;this.ashearX=0;this.ashearY=0;this.a=0;this.b=0;this.c=0;this.d=0;this.worldY=0;this.worldX=0;this.sorted=!1;this.active=!1;if(!e)throw new Error("data cannot be null.");if(!r)throw new Error("skeleton cannot be null.");this.data=e,this.skeleton=r,this.parent=t,this.setToSetupPose()}isActive(){return this.active}update(){this.updateWorldTransformWith(this.ax,this.ay,this.arotation,this.ascaleX,this.ascaleY,this.ashearX,this.ashearY)}updateWorldTransform(){this.updateWorldTransformWith(this.x,this.y,this.rotation,this.scaleX,this.scaleY,this.shearX,this.shearY)}updateWorldTransformWith(e,r,t,a,i,m,s){this.ax=e,this.ay=r,this.arotation=t,this.ascaleX=a,this.ascaleY=i,this.ashearX=m,this.ashearY=s;let n=this.parent;if(!n){let u=this.skeleton,d=t+90+s,f=u.scaleX,b=u.scaleY;this.a=M.cosDeg(t+m)*a*f,this.b=M.cosDeg(d)*i*f,this.c=M.sinDeg(t+m)*a*b,this.d=M.sinDeg(d)*i*b,this.worldX=e*f+u.x,this.worldY=r*b+u.y;return}let l=n.a,o=n.b,h=n.c,c=n.d;switch(this.worldX=l*e+o*r+n.worldX,this.worldY=h*e+c*r+n.worldY,this.data.transformMode){case ee.Normal:{let u=t+90+s,d=M.cosDeg(t+m)*a,f=M.cosDeg(u)*i,b=M.sinDeg(t+m)*a,y=M.sinDeg(u)*i;this.a=l*d+o*b,this.b=l*f+o*y,this.c=h*d+c*b,this.d=h*f+c*y;return}case ee.OnlyTranslation:{let u=t+90+s;this.a=M.cosDeg(t+m)*a,this.b=M.cosDeg(u)*i,this.c=M.sinDeg(t+m)*a,this.d=M.sinDeg(u)*i;break}case ee.NoRotationOrReflection:{let u=l*l+h*h,d=0;u>1e-4?(u=Math.abs(l*c-o*h)/u,l/=this.skeleton.scaleX,h/=this.skeleton.scaleY,o=h*u,c=l*u,d=Math.atan2(h,l)*M.radDeg):(l=0,h=0,d=90-Math.atan2(c,o)*M.radDeg);let f=t+m-d,b=t+s-d+90,y=M.cosDeg(f)*a,A=M.cosDeg(b)*i,g=M.sinDeg(f)*a,p=M.sinDeg(b)*i;this.a=l*y-o*g,this.b=l*A-o*p,this.c=h*y+c*g,this.d=h*A+c*p;break}case ee.NoScale:case ee.NoScaleOrReflection:{let u=M.cosDeg(t),d=M.sinDeg(t),f=(l*u+o*d)/this.skeleton.scaleX,b=(h*u+c*d)/this.skeleton.scaleY,y=Math.sqrt(f*f+b*b);y>1e-5&&(y=1/y),f*=y,b*=y,y=Math.sqrt(f*f+b*b),this.data.transformMode==ee.NoScale&&l*c-o*h<0!=(this.skeleton.scaleX<0!=this.skeleton.scaleY<0)&&(y=-y);let A=Math.PI/2+Math.atan2(b,f),g=Math.cos(A)*y,p=Math.sin(A)*y,x=M.cosDeg(m)*a,w=M.cosDeg(90+s)*i,k=M.sinDeg(m)*a,v=M.sinDeg(90+s)*i;this.a=f*x+g*k,this.b=f*w+g*v,this.c=b*x+p*k,this.d=b*w+p*v;break}}this.a*=this.skeleton.scaleX,this.b*=this.skeleton.scaleX,this.c*=this.skeleton.scaleY,this.d*=this.skeleton.scaleY}setToSetupPose(){let e=this.data;this.x=e.x,this.y=e.y,this.rotation=e.rotation,this.scaleX=e.scaleX,this.scaleY=e.scaleY,this.shearX=e.shearX,this.shearY=e.shearY}getWorldRotationX(){return Math.atan2(this.c,this.a)*M.radDeg}getWorldRotationY(){return Math.atan2(this.d,this.b)*M.radDeg}getWorldScaleX(){return Math.sqrt(this.a*this.a+this.c*this.c)}getWorldScaleY(){return Math.sqrt(this.b*this.b+this.d*this.d)}updateAppliedTransform(){let e=this.parent;if(!e){this.ax=this.worldX,this.ay=this.worldY,this.arotation=Math.atan2(this.c,this.a)*M.radDeg,this.ascaleX=Math.sqrt(this.a*this.a+this.c*this.c),this.ascaleY=Math.sqrt(this.b*this.b+this.d*this.d),this.ashearX=0,this.ashearY=Math.atan2(this.a*this.b+this.c*this.d,this.a*this.d-this.b*this.c)*M.radDeg;return}let r=e.a,t=e.b,a=e.c,i=e.d,m=1/(r*i-t*a),s=this.worldX-e.worldX,n=this.worldY-e.worldY;this.ax=s*i*m-n*t*m,this.ay=n*r*m-s*a*m;let l=m*i,o=m*r,h=m*t,c=m*a,u=l*this.a-h*this.c,d=l*this.b-h*this.d,f=o*this.c-c*this.a,b=o*this.d-c*this.b;if(this.ashearX=0,this.ascaleX=Math.sqrt(u*u+f*f),this.ascaleX>1e-4){let y=u*b-d*f;this.ascaleY=y/this.ascaleX,this.ashearY=Math.atan2(u*d+f*b,y)*M.radDeg,this.arotation=Math.atan2(f,u)*M.radDeg}else this.ascaleX=0,this.ascaleY=Math.sqrt(d*d+b*b),this.ashearY=0,this.arotation=90-Math.atan2(b,d)*M.radDeg}worldToLocal(e){let r=1/(this.a*this.d-this.b*this.c),t=e.x-this.worldX,a=e.y-this.worldY;return e.x=t*this.d*r-a*this.b*r,e.y=a*this.a*r-t*this.c*r,e}localToWorld(e){let r=e.x,t=e.y;return e.x=r*this.a+t*this.b+this.worldX,e.y=r*this.c+t*this.d+this.worldY,e}worldToLocalRotation(e){let r=M.sinDeg(e),t=M.cosDeg(e);return Math.atan2(this.a*r-this.c*t,this.d*t-this.b*r)*M.radDeg+this.rotation-this.shearX}localToWorldRotation(e){e-=this.rotation-this.shearX;let r=M.sinDeg(e),t=M.cosDeg(e);return Math.atan2(t*this.c+r*this.d,t*this.a+r*this.b)*M.radDeg}rotateWorld(e){let r=this.a,t=this.b,a=this.c,i=this.d,m=M.cosDeg(e),s=M.sinDeg(e);this.a=m*r-s*a,this.b=m*t-s*i,this.c=s*r+m*a,this.d=s*t+m*i}};var De=class{constructor(e,r,t){this.name=e;this.order=r;this.skinRequired=t}};var Pt=class{constructor(e,r="",t=null){this.assets={};this.errors={};this.toLoad=0;this.loaded=0;this.textureLoader=e,this.pathPrefix=r,this.downloader=t||new nr}start(e){return this.toLoad++,this.pathPrefix+e}success(e,r,t){this.toLoad--,this.loaded++,this.assets[r]=t,e&&e(r,t)}error(e,r,t){this.toLoad--,this.loaded++,this.errors[r]=t,e&&e(r,t)}setRawDataURI(e,r){this.downloader.rawDataUris[this.pathPrefix+e]=r}loadBinary(e,r=null,t=null){e=this.start(e),this.downloader.downloadBinary(e,a=>{this.success(r,e,a)},(a,i)=>{this.error(t,e,`Couldn't load binary ${e}: status ${a}, ${i}`)})}loadText(e,r=null,t=null){e=this.start(e),this.downloader.downloadText(e,a=>{this.success(r,e,a)},(a,i)=>{this.error(t,e,`Couldn't load text ${e}: status ${a}, ${i}`)})}loadJson(e,r=null,t=null){e=this.start(e),this.downloader.downloadJson(e,a=>{this.success(r,e,a)},(a,i)=>{this.error(t,e,`Couldn't load JSON ${e}: status ${a}, ${i}`)})}loadTexture(e,r=null,t=null){if(e=this.start(e),!!!(typeof window!="undefined"&&typeof navigator!="undefined"&&window.document))fetch(e,{mode:"cors"}).then(m=>m.ok?m.blob():(this.error(t,e,`Couldn't load image: ${e}`),null)).then(m=>m?createImageBitmap(m,{premultiplyAlpha:"none",colorSpaceConversion:"none"}):null).then(m=>{m&&this.success(r,e,this.textureLoader(m))});else{let m=new Image;m.crossOrigin="anonymous",m.onload=()=>{this.success(r,e,this.textureLoader(m))},m.onerror=()=>{this.error(t,e,`Couldn't load image: ${e}`)},this.downloader.rawDataUris[e]&&(e=this.downloader.rawDataUris[e]),m.src=e}}loadTextureAtlas(e,r=null,t=null){let a=e.lastIndexOf("/"),i=a>=0?e.substring(0,a+1):"";e=this.start(e),this.downloader.downloadText(e,m=>{try{let s=new Et(m),n=s.pages.length,l=!1;for(let o of s.pages)this.loadTexture(i+o.name,(h,c)=>{l||(o.setTexture(c),--n==0&&this.success(r,e,s))},(h,c)=>{l||this.error(t,e,`Couldn't load texture atlas ${e} page image: ${h}`),l=!0})}catch(s){this.error(t,e,`Couldn't parse texture atlas ${e}: ${s.message}`)}},(m,s)=>{this.error(t,e,`Couldn't load texture atlas ${e}: status ${m}, ${s}`)})}get(e){return this.assets[this.pathPrefix+e]}require(e){e=this.pathPrefix+e;let r=this.assets[e];if(r)return r;let t=this.errors[e];throw Error("Asset not found: "+e+(t?`
|
|
`+t:""))}remove(e){e=this.pathPrefix+e;let r=this.assets[e];return r.dispose&&r.dispose(),delete this.assets[e],r}removeAll(){for(let e in this.assets){let r=this.assets[e];r.dispose&&r.dispose()}this.assets={}}isLoadingComplete(){return this.toLoad==0}getToLoad(){return this.toLoad}getLoaded(){return this.loaded}dispose(){this.removeAll()}hasErrors(){return Object.keys(this.errors).length>0}getErrors(){return this.errors}},nr=class{constructor(){this.callbacks={};this.rawDataUris={}}downloadText(e,r,t){if(this.rawDataUris[e]&&(e=this.rawDataUris[e]),this.start(e,r,t))return;let a=new XMLHttpRequest;a.overrideMimeType("text/html"),a.open("GET",e,!0);let i=()=>{this.finish(e,a.status,a.responseText)};a.onload=i,a.onerror=i,a.send()}downloadJson(e,r,t){this.downloadText(e,a=>{r(JSON.parse(a))},t)}downloadBinary(e,r,t){if(this.rawDataUris[e]&&(e=this.rawDataUris[e]),this.start(e,r,t))return;let a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer";let i=()=>{this.finish(e,a.status,a.responseText)};a.onload=()=>{a.status==200?this.finish(e,200,new Uint8Array(a.response)):i()},a.onerror=i,a.send()}start(e,r,t){let a=this.callbacks[e];try{if(a)return!0;this.callbacks[e]=a=[]}finally{a.push(r,t)}}finish(e,r,t){let a=this.callbacks[e];delete this.callbacks[e];let i=r==200?[t]:[r,t];for(let m=i.length-1,s=a.length;m<s;m+=2)a[m].apply(null,i)}};var mt=class{constructor(e,r){if(!r)throw new Error("data cannot be null.");this.time=e,this.data=r}};var ct=class{constructor(e){this.name=e}};var Lt=class{constructor(e,r){this.bendDirection=0;this.compress=!1;this.stretch=!1;this.mix=1;this.softness=0;this.active=!1;if(!e)throw new Error("data cannot be null.");if(!r)throw new Error("skeleton cannot be null.");this.data=e,this.mix=e.mix,this.softness=e.softness,this.bendDirection=e.bendDirection,this.compress=e.compress,this.stretch=e.stretch,this.bones=new Array;for(let t=0;t<e.bones.length;t++)this.bones.push(r.findBone(e.bones[t].name));this.target=r.findBone(e.target.name)}isActive(){return this.active}update(){if(this.mix==0)return;let e=this.target,r=this.bones;switch(r.length){case 1:this.apply1(r[0],e.worldX,e.worldY,this.compress,this.stretch,this.data.uniform,this.mix);break;case 2:this.apply2(r[0],r[1],e.worldX,e.worldY,this.bendDirection,this.stretch,this.data.uniform,this.softness,this.mix);break}}apply1(e,r,t,a,i,m,s){let n=e.parent,l=n.a,o=n.b,h=n.c,c=n.d,u=-e.ashearX-e.arotation,d=0,f=0;switch(e.data.transformMode){case ee.OnlyTranslation:d=r-e.worldX,f=t-e.worldY;break;case ee.NoRotationOrReflection:let A=Math.abs(l*c-o*h)/(l*l+h*h),g=l/e.skeleton.scaleX,p=h/e.skeleton.scaleY;o=-p*A*e.skeleton.scaleX,c=g*A*e.skeleton.scaleY,u+=Math.atan2(p,g)*M.radDeg;default:let x=r-n.worldX,w=t-n.worldY,k=l*c-o*h;d=(x*c-w*o)/k-e.ax,f=(w*l-x*h)/k-e.ay}u+=Math.atan2(f,d)*M.radDeg,e.ascaleX<0&&(u+=180),u>180?u-=360:u<-180&&(u+=360);let b=e.ascaleX,y=e.ascaleY;if(a||i){switch(e.data.transformMode){case ee.NoScale:case ee.NoScaleOrReflection:d=r-e.worldX,f=t-e.worldY}let A=e.data.length*b,g=Math.sqrt(d*d+f*f);if(a&&g<A||i&&g>A&&A>1e-4){let p=(g/A-1)*s+1;b*=p,m&&(y*=p)}}e.updateWorldTransformWith(e.ax,e.ay,e.arotation+u*s,b,y,e.ashearX,e.ashearY)}apply2(e,r,t,a,i,m,s,n,l){let o=e.ax,h=e.ay,c=e.ascaleX,u=e.ascaleY,d=c,f=u,b=r.ascaleX,y=0,A=0,g=0;c<0?(c=-c,y=180,g=-1):(y=0,g=1),u<0&&(u=-u,g=-g),b<0?(b=-b,A=180):A=0;let p=r.ax,x=0,w=0,k=0,v=e.a,B=e.b,I=e.c,D=e.d,L=Math.abs(c-u)<=1e-4;!L||m?(x=0,w=v*p+e.worldX,k=I*p+e.worldY):(x=r.ay,w=v*p+B*x+e.worldX,k=I*p+D*x+e.worldY);let E=e.parent;v=E.a,B=E.b,I=E.c,D=E.d;let F=1/(v*D-B*I),T=w-E.worldX,X=k-E.worldY,W=(T*D-X*B)*F-o,H=(X*v-T*I)*F-h,U=Math.sqrt(W*W+H*H),G=r.data.length*b,J,j;if(U<1e-4){this.apply1(e,t,a,!1,m,!1,l),r.updateWorldTransformWith(p,x,0,r.ascaleX,r.ascaleY,r.ashearX,r.ashearY);return}T=t-E.worldX,X=a-E.worldY;let O=(T*D-X*B)*F-o,N=(X*v-T*I)*F-h,$=O*O+N*N;if(n!=0){n*=c*(b+1)*.5;let te=Math.sqrt($),le=te-U-G*c+n;if(le>0){let he=Math.min(1,le/(n*2))-1;he=(le-n*(1-he*he))/te,O-=he*O,N-=he*N,$=O*O+N*N}}e:if(L){G*=c;let te=($-U*U-G*G)/(2*U*G);te<-1?(te=-1,j=Math.PI*i):te>1?(te=1,j=0,m&&(v=(Math.sqrt($)/(U+G)-1)*l+1,d*=v,s&&(f*=v))):j=Math.acos(te)*i,v=U+G*te,B=G*Math.sin(j),J=Math.atan2(N*v-O*B,O*v+N*B)}else{v=c*G,B=u*G;let te=v*v,le=B*B,he=Math.atan2(N,O);I=le*U*U+te*$-te*le;let Ie=-2*le*U,Ve=le-te;if(D=Ie*Ie-4*Ve*I,D>=0){let Re=Math.sqrt(D);Ie<0&&(Re=-Re),Re=-(Ie+Re)*.5;let dr=Re/Ve,fr=I/Re,Ue=Math.abs(dr)<Math.abs(fr)?dr:fr;if(Ue*Ue<=$){X=Math.sqrt($-Ue*Ue)*i,J=he-Math.atan2(X,Ue),j=Math.atan2(X/u,(Ue-U)/c);break e}}let pt=M.PI,It=U-v,Wt=It*It,mr=0,cr=0,Mt=U+v,zt=Mt*Mt,ur=0;I=-v*U/(te-le),I>=-1&&I<=1&&(I=Math.acos(I),T=v*Math.cos(I)+U,X=B*Math.sin(I),D=T*T+X*X,D<Wt&&(pt=I,Wt=D,It=T,mr=X),D>zt&&(cr=I,zt=D,Mt=T,ur=X)),$<=(Wt+zt)*.5?(J=he-Math.atan2(mr*i,It),j=pt*i):(J=he-Math.atan2(ur*i,Mt),j=cr*i)}let ie=Math.atan2(x,p)*g,ue=e.arotation;J=(J-ie)*M.radDeg+y-ue,J>180?J-=360:J<-180&&(J+=360),e.updateWorldTransformWith(o,h,ue+J*l,d,f,0,0),ue=r.arotation,j=((j+ie)*M.radDeg-r.ashearX)*g+A-ue,j>180?j-=360:j<-180&&(j+=360),r.updateWorldTransformWith(p,x,ue+j*l,r.ascaleX,r.ascaleY,r.ashearX,r.ashearY)}};var ut=class extends De{constructor(e){super(e,0,!1);this.bones=new Array;this.bendDirection=1;this.compress=!1;this.stretch=!1;this.uniform=!1;this.mix=1;this.softness=0}};var dt=class extends De{constructor(e){super(e,0,!1);this.bones=new Array;this.mixRotate=0;this.mixX=0;this.mixY=0}},oe;(function(r){r[r.Fixed=0]="Fixed",r[r.Percent=1]="Percent"})(oe||(oe={}));var Z;(function(a){a[a.Length=0]="Length",a[a.Fixed=1]="Fixed",a[a.Percent=2]="Percent",a[a.Proportional=3]="Proportional"})(Z||(Z={}));var Se;(function(t){t[t.Tangent=0]="Tangent",t[t.Chain=1]="Chain",t[t.ChainScale=2]="ChainScale"})(Se||(Se={}));var ye=class{constructor(e,r){this.position=0;this.spacing=0;this.mixRotate=0;this.mixX=0;this.mixY=0;this.spaces=new Array;this.positions=new Array;this.world=new Array;this.curves=new Array;this.lengths=new Array;this.segments=new Array;this.active=!1;if(!e)throw new Error("data cannot be null.");if(!r)throw new Error("skeleton cannot be null.");this.data=e,this.bones=new Array;for(let t=0,a=e.bones.length;t<a;t++)this.bones.push(r.findBone(e.bones[t].name));this.target=r.findSlot(e.target.name),this.position=e.position,this.spacing=e.spacing,this.mixRotate=e.mixRotate,this.mixX=e.mixX,this.mixY=e.mixY}isActive(){return this.active}update(){let e=this.target.getAttachment();if(!(e instanceof ge))return;let r=this.mixRotate,t=this.mixX,a=this.mixY;if(r==0&&t==0&&a==0)return;let i=this.data,m=i.rotateMode==Se.Tangent,s=i.rotateMode==Se.ChainScale,n=this.bones,l=n.length,o=m?l:l+1,h=P.setArraySize(this.spaces,o),c=s?this.lengths=P.setArraySize(this.lengths,l):null,u=this.spacing;switch(i.spacingMode){case Z.Percent:if(s)for(let x=0,w=o-1;x<w;x++){let k=n[x],v=k.data.length;if(v<ye.epsilon)c[x]=0;else{let B=v*k.a,I=v*k.c;c[x]=Math.sqrt(B*B+I*I)}}P.arrayFill(h,1,o,u);break;case Z.Proportional:let g=0;for(let x=0,w=o-1;x<w;){let k=n[x],v=k.data.length;if(v<ye.epsilon)s&&(c[x]=0),h[++x]=u;else{let B=v*k.a,I=v*k.c,D=Math.sqrt(B*B+I*I);s&&(c[x]=D),h[++x]=D,g+=D}}if(g>0){g=o/g*u;for(let x=1;x<o;x++)h[x]*=g}break;default:let p=i.spacingMode==Z.Length;for(let x=0,w=o-1;x<w;){let k=n[x],v=k.data.length;if(v<ye.epsilon)s&&(c[x]=0),h[++x]=u;else{let B=v*k.a,I=v*k.c,D=Math.sqrt(B*B+I*I);s&&(c[x]=D),h[++x]=(p?v+u:u)*D/v}}}let d=this.computeWorldPositions(e,o,m),f=d[0],b=d[1],y=i.offsetRotation,A=!1;if(y==0)A=i.rotateMode==Se.Chain;else{A=!1;let g=this.target.bone;y*=g.a*g.d-g.b*g.c>0?M.degRad:-M.degRad}for(let g=0,p=3;g<l;g++,p+=3){let x=n[g];x.worldX+=(f-x.worldX)*t,x.worldY+=(b-x.worldY)*a;let w=d[p],k=d[p+1],v=w-f,B=k-b;if(s){let I=c[g];if(I!=0){let D=(Math.sqrt(v*v+B*B)/I-1)*r+1;x.a*=D,x.c*=D}}if(f=w,b=k,r>0){let I=x.a,D=x.b,L=x.c,E=x.d,F=0,T=0,X=0;if(m?F=d[p-1]:h[g+1]==0?F=d[p+2]:F=Math.atan2(B,v),F-=Math.atan2(L,I),A){T=Math.cos(F),X=Math.sin(F);let W=x.data.length;f+=(W*(T*I-X*L)-v)*r,b+=(W*(X*I+T*L)-B)*r}else F+=y;F>M.PI?F-=M.PI2:F<-M.PI&&(F+=M.PI2),F*=r,T=Math.cos(F),X=Math.sin(F),x.a=T*I-X*L,x.b=T*D-X*E,x.c=X*I+T*L,x.d=X*D+T*E}x.updateAppliedTransform()}}computeWorldPositions(e,r,t){let a=this.target,i=this.position,m=this.spaces,s=P.setArraySize(this.positions,r*3+2),n=null,l=e.closed,o=e.worldVerticesLength,h=o/6,c=ye.NONE;if(!e.constantSpeed){let H=e.lengths;h-=l?1:2;let U=H[h];this.data.positionMode==oe.Percent&&(i*=U);let G;switch(this.data.spacingMode){case Z.Percent:G=U;break;case Z.Proportional:G=U/r;break;default:G=1}n=P.setArraySize(this.world,8);for(let J=0,j=0,O=0;J<r;J++,j+=3){let N=m[J]*G;i+=N;let $=i;if(l)$%=U,$<0&&($+=U),O=0;else if($<0){c!=ye.BEFORE&&(c=ye.BEFORE,e.computeWorldVertices(a,2,4,n,0,2)),this.addBeforePosition($,n,0,s,j);continue}else if($>U){c!=ye.AFTER&&(c=ye.AFTER,e.computeWorldVertices(a,o-6,4,n,0,2)),this.addAfterPosition($-U,n,0,s,j);continue}for(;;O++){let ie=H[O];if(!($>ie)){if(O==0)$/=ie;else{let ue=H[O-1];$=($-ue)/(ie-ue)}break}}O!=c&&(c=O,l&&O==h?(e.computeWorldVertices(a,o-4,4,n,0,2),e.computeWorldVertices(a,0,4,n,4,2)):e.computeWorldVertices(a,O*6+2,8,n,0,2)),this.addCurvePosition($,n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],s,j,t||J>0&&N==0)}return s}l?(o+=2,n=P.setArraySize(this.world,o),e.computeWorldVertices(a,2,o-4,n,0,2),e.computeWorldVertices(a,0,2,n,o-4,2),n[o-2]=n[0],n[o-1]=n[1]):(h--,o-=4,n=P.setArraySize(this.world,o),e.computeWorldVertices(a,2,o,n,0,2));let u=P.setArraySize(this.curves,h),d=0,f=n[0],b=n[1],y=0,A=0,g=0,p=0,x=0,w=0,k=0,v=0,B=0,I=0,D=0,L=0,E=0,F=0;for(let H=0,U=2;H<h;H++,U+=6)y=n[U],A=n[U+1],g=n[U+2],p=n[U+3],x=n[U+4],w=n[U+5],k=(f-y*2+g)*.1875,v=(b-A*2+p)*.1875,B=((y-g)*3-f+x)*.09375,I=((A-p)*3-b+w)*.09375,D=k*2+B,L=v*2+I,E=(y-f)*.75+k+B*.16666667,F=(A-b)*.75+v+I*.16666667,d+=Math.sqrt(E*E+F*F),E+=D,F+=L,D+=B,L+=I,d+=Math.sqrt(E*E+F*F),E+=D,F+=L,d+=Math.sqrt(E*E+F*F),E+=D+B,F+=L+I,d+=Math.sqrt(E*E+F*F),u[H]=d,f=x,b=w;this.data.positionMode==oe.Percent&&(i*=d);let T;switch(this.data.spacingMode){case Z.Percent:T=d;break;case Z.Proportional:T=d/r;break;default:T=1}let X=this.segments,W=0;for(let H=0,U=0,G=0,J=0;H<r;H++,U+=3){let j=m[H]*T;i+=j;let O=i;if(l)O%=d,O<0&&(O+=d),G=0;else if(O<0){this.addBeforePosition(O,n,0,s,U);continue}else if(O>d){this.addAfterPosition(O-d,n,o-4,s,U);continue}for(;;G++){let N=u[G];if(!(O>N)){if(G==0)O/=N;else{let $=u[G-1];O=(O-$)/(N-$)}break}}if(G!=c){c=G;let N=G*6;for(f=n[N],b=n[N+1],y=n[N+2],A=n[N+3],g=n[N+4],p=n[N+5],x=n[N+6],w=n[N+7],k=(f-y*2+g)*.03,v=(b-A*2+p)*.03,B=((y-g)*3-f+x)*.006,I=((A-p)*3-b+w)*.006,D=k*2+B,L=v*2+I,E=(y-f)*.3+k+B*.16666667,F=(A-b)*.3+v+I*.16666667,W=Math.sqrt(E*E+F*F),X[0]=W,N=1;N<8;N++)E+=D,F+=L,D+=B,L+=I,W+=Math.sqrt(E*E+F*F),X[N]=W;E+=D,F+=L,W+=Math.sqrt(E*E+F*F),X[8]=W,E+=D+B,F+=L+I,W+=Math.sqrt(E*E+F*F),X[9]=W,J=0}for(O*=W;;J++){let N=X[J];if(!(O>N)){if(J==0)O/=N;else{let $=X[J-1];O=J+(O-$)/(N-$)}break}}this.addCurvePosition(O*.1,f,b,y,A,g,p,x,w,s,U,t||H>0&&j==0)}return s}addBeforePosition(e,r,t,a,i){let m=r[t],s=r[t+1],n=r[t+2]-m,l=r[t+3]-s,o=Math.atan2(l,n);a[i]=m+e*Math.cos(o),a[i+1]=s+e*Math.sin(o),a[i+2]=o}addAfterPosition(e,r,t,a,i){let m=r[t+2],s=r[t+3],n=m-r[t],l=s-r[t+1],o=Math.atan2(l,n);a[i]=m+e*Math.cos(o),a[i+1]=s+e*Math.sin(o),a[i+2]=o}addCurvePosition(e,r,t,a,i,m,s,n,l,o,h,c){if(e==0||isNaN(e)){o[h]=r,o[h+1]=t,o[h+2]=Math.atan2(i-t,a-r);return}let u=e*e,d=u*e,f=1-e,b=f*f,y=b*f,A=f*e,g=A*3,p=f*g,x=g*e,w=r*y+a*p+m*x+n*d,k=t*y+i*p+s*x+l*d;o[h]=w,o[h+1]=k,c&&(e<.001?o[h+2]=Math.atan2(i-t,a-r):o[h+2]=Math.atan2(k-(t*b+i*A*2+s*u),w-(r*b+a*A*2+m*u)))}},Ee=ye;Ee.NONE=-1,Ee.BEFORE=-2,Ee.AFTER=-3,Ee.epsilon=1e-5;var Vt=class{constructor(e,r){this.deform=new Array;if(!e)throw new Error("data cannot be null.");if(!r)throw new Error("bone cannot be null.");this.data=e,this.bone=r,this.color=new R,this.darkColor=e.darkColor?new R:null,this.setToSetupPose()}getSkeleton(){return this.bone.skeleton}getAttachment(){return this.attachment}setAttachment(e){this.attachment!=e&&((!(e instanceof K)||!(this.attachment instanceof K)||e.deformAttachment!=this.attachment.deformAttachment)&&(this.deform.length=0),this.attachment=e,this.attachmentTime=this.bone.skeleton.time)}setAttachmentTime(e){this.attachmentTime=this.bone.skeleton.time-e}getAttachmentTime(){return this.bone.skeleton.time-this.attachmentTime}setToSetupPose(){this.color.setFromColor(this.data.color),this.darkColor&&this.darkColor.setFromColor(this.data.darkColor),this.data.attachmentName?(this.attachment=null,this.setAttachment(this.bone.skeleton.getAttachment(this.data.index,this.data.attachmentName))):this.attachment=null}};var Rt=class{constructor(e,r){this.mixRotate=0;this.mixX=0;this.mixY=0;this.mixScaleX=0;this.mixScaleY=0;this.mixShearY=0;this.temp=new Bt;this.active=!1;if(!e)throw new Error("data cannot be null.");if(!r)throw new Error("skeleton cannot be null.");this.data=e,this.mixRotate=e.mixRotate,this.mixX=e.mixX,this.mixY=e.mixY,this.mixScaleX=e.mixScaleX,this.mixScaleY=e.mixScaleY,this.mixShearY=e.mixShearY,this.bones=new Array;for(let t=0;t<e.bones.length;t++)this.bones.push(r.findBone(e.bones[t].name));this.target=r.findBone(e.target.name)}isActive(){return this.active}update(){this.mixRotate==0&&this.mixX==0&&this.mixY==0&&this.mixScaleX==0&&this.mixScaleX==0&&this.mixShearY==0||(this.data.local?this.data.relative?this.applyRelativeLocal():this.applyAbsoluteLocal():this.data.relative?this.applyRelativeWorld():this.applyAbsoluteWorld())}applyAbsoluteWorld(){let e=this.mixRotate,r=this.mixX,t=this.mixY,a=this.mixScaleX,i=this.mixScaleY,m=this.mixShearY,s=r!=0||t!=0,n=this.target,l=n.a,o=n.b,h=n.c,c=n.d,u=l*c-o*h>0?M.degRad:-M.degRad,d=this.data.offsetRotation*u,f=this.data.offsetShearY*u,b=this.bones;for(let y=0,A=b.length;y<A;y++){let g=b[y];if(e!=0){let p=g.a,x=g.b,w=g.c,k=g.d,v=Math.atan2(h,l)-Math.atan2(w,p)+d;v>M.PI?v-=M.PI2:v<-M.PI&&(v+=M.PI2),v*=e;let B=Math.cos(v),I=Math.sin(v);g.a=B*p-I*w,g.b=B*x-I*k,g.c=I*p+B*w,g.d=I*x+B*k}if(s){let p=this.temp;n.localToWorld(p.set(this.data.offsetX,this.data.offsetY)),g.worldX+=(p.x-g.worldX)*r,g.worldY+=(p.y-g.worldY)*t}if(a!=0){let p=Math.sqrt(g.a*g.a+g.c*g.c);p!=0&&(p=(p+(Math.sqrt(l*l+h*h)-p+this.data.offsetScaleX)*a)/p),g.a*=p,g.c*=p}if(i!=0){let p=Math.sqrt(g.b*g.b+g.d*g.d);p!=0&&(p=(p+(Math.sqrt(o*o+c*c)-p+this.data.offsetScaleY)*i)/p),g.b*=p,g.d*=p}if(m>0){let p=g.b,x=g.d,w=Math.atan2(x,p),k=Math.atan2(c,o)-Math.atan2(h,l)-(w-Math.atan2(g.c,g.a));k>M.PI?k-=M.PI2:k<-M.PI&&(k+=M.PI2),k=w+(k+f)*m;let v=Math.sqrt(p*p+x*x);g.b=Math.cos(k)*v,g.d=Math.sin(k)*v}g.updateAppliedTransform()}}applyRelativeWorld(){let e=this.mixRotate,r=this.mixX,t=this.mixY,a=this.mixScaleX,i=this.mixScaleY,m=this.mixShearY,s=r!=0||t!=0,n=this.target,l=n.a,o=n.b,h=n.c,c=n.d,u=l*c-o*h>0?M.degRad:-M.degRad,d=this.data.offsetRotation*u,f=this.data.offsetShearY*u,b=this.bones;for(let y=0,A=b.length;y<A;y++){let g=b[y];if(e!=0){let p=g.a,x=g.b,w=g.c,k=g.d,v=Math.atan2(h,l)+d;v>M.PI?v-=M.PI2:v<-M.PI&&(v+=M.PI2),v*=e;let B=Math.cos(v),I=Math.sin(v);g.a=B*p-I*w,g.b=B*x-I*k,g.c=I*p+B*w,g.d=I*x+B*k}if(s){let p=this.temp;n.localToWorld(p.set(this.data.offsetX,this.data.offsetY)),g.worldX+=p.x*r,g.worldY+=p.y*t}if(a!=0){let p=(Math.sqrt(l*l+h*h)-1+this.data.offsetScaleX)*a+1;g.a*=p,g.c*=p}if(i!=0){let p=(Math.sqrt(o*o+c*c)-1+this.data.offsetScaleY)*i+1;g.b*=p,g.d*=p}if(m>0){let p=Math.atan2(c,o)-Math.atan2(h,l);p>M.PI?p-=M.PI2:p<-M.PI&&(p+=M.PI2);let x=g.b,w=g.d;p=Math.atan2(w,x)+(p-M.PI/2+f)*m;let k=Math.sqrt(x*x+w*w);g.b=Math.cos(p)*k,g.d=Math.sin(p)*k}g.updateAppliedTransform()}}applyAbsoluteLocal(){let e=this.mixRotate,r=this.mixX,t=this.mixY,a=this.mixScaleX,i=this.mixScaleY,m=this.mixShearY,s=this.target,n=this.bones;for(let l=0,o=n.length;l<o;l++){let h=n[l],c=h.arotation;if(e!=0){let A=s.arotation-c+this.data.offsetRotation;A-=(16384-(16384.499999999996-A/360|0))*360,c+=A*e}let u=h.ax,d=h.ay;u+=(s.ax-u+this.data.offsetX)*r,d+=(s.ay-d+this.data.offsetY)*t;let f=h.ascaleX,b=h.ascaleY;a!=0&&f!=0&&(f=(f+(s.ascaleX-f+this.data.offsetScaleX)*a)/f),i!=0&&b!=0&&(b=(b+(s.ascaleY-b+this.data.offsetScaleY)*i)/b);let y=h.ashearY;if(m!=0){let A=s.ashearY-y+this.data.offsetShearY;A-=(16384-(16384.499999999996-A/360|0))*360,y+=A*m}h.updateWorldTransformWith(u,d,c,f,b,h.ashearX,y)}}applyRelativeLocal(){let e=this.mixRotate,r=this.mixX,t=this.mixY,a=this.mixScaleX,i=this.mixScaleY,m=this.mixShearY,s=this.target,n=this.bones;for(let l=0,o=n.length;l<o;l++){let h=n[l],c=h.arotation+(s.arotation+this.data.offsetRotation)*e,u=h.ax+(s.ax+this.data.offsetX)*r,d=h.ay+(s.ay+this.data.offsetY)*t,f=h.ascaleX*((s.ascaleX-1+this.data.offsetScaleX)*a)+1,b=h.ascaleY*((s.ascaleY-1+this.data.offsetScaleY)*i)+1,y=h.ashearY+(s.ashearY+this.data.offsetShearY)*m;h.updateWorldTransformWith(u,d,c,f,b,h.ashearX,y)}}};var Ir=class{constructor(e){this._updateCache=new Array;this.time=0;this.scaleX=1;this.scaleY=1;this.x=0;this.y=0;if(!e)throw new Error("data cannot be null.");this.data=e,this.bones=new Array;for(let r=0;r<e.bones.length;r++){let t=e.bones[r],a;if(!t.parent)a=new vt(t,this,null);else{let i=this.bones[t.parent.index];a=new vt(t,this,i),i.children.push(a)}this.bones.push(a)}this.slots=new Array,this.drawOrder=new Array;for(let r=0;r<e.slots.length;r++){let t=e.slots[r],a=this.bones[t.boneData.index],i=new Vt(t,a);this.slots.push(i),this.drawOrder.push(i)}this.ikConstraints=new Array;for(let r=0;r<e.ikConstraints.length;r++){let t=e.ikConstraints[r];this.ikConstraints.push(new Lt(t,this))}this.transformConstraints=new Array;for(let r=0;r<e.transformConstraints.length;r++){let t=e.transformConstraints[r];this.transformConstraints.push(new Rt(t,this))}this.pathConstraints=new Array;for(let r=0;r<e.pathConstraints.length;r++){let t=e.pathConstraints[r];this.pathConstraints.push(new Ee(t,this))}this.color=new R(1,1,1,1),this.updateCache()}updateCache(){let e=this._updateCache;e.length=0;let r=this.bones;for(let o=0,h=r.length;o<h;o++){let c=r[o];c.sorted=c.data.skinRequired,c.active=!c.sorted}if(this.skin){let o=this.skin.bones;for(let h=0,c=this.skin.bones.length;h<c;h++){let u=this.bones[o[h].index];do u.sorted=!1,u.active=!0,u=u.parent;while(u)}}let t=this.ikConstraints,a=this.transformConstraints,i=this.pathConstraints,m=t.length,s=a.length,n=i.length,l=m+s+n;e:for(let o=0;o<l;o++){for(let h=0;h<m;h++){let c=t[h];if(c.data.order==o){this.sortIkConstraint(c);continue e}}for(let h=0;h<s;h++){let c=a[h];if(c.data.order==o){this.sortTransformConstraint(c);continue e}}for(let h=0;h<n;h++){let c=i[h];if(c.data.order==o){this.sortPathConstraint(c);continue e}}}for(let o=0,h=r.length;o<h;o++)this.sortBone(r[o])}sortIkConstraint(e){if(e.active=e.target.isActive()&&(!e.data.skinRequired||this.skin&&P.contains(this.skin.constraints,e.data,!0)),!e.active)return;let r=e.target;this.sortBone(r);let t=e.bones,a=t[0];if(this.sortBone(a),t.length==1)this._updateCache.push(e),this.sortReset(a.children);else{let i=t[t.length-1];this.sortBone(i),this._updateCache.push(e),this.sortReset(a.children),i.sorted=!0}}sortPathConstraint(e){if(e.active=e.target.bone.isActive()&&(!e.data.skinRequired||this.skin&&P.contains(this.skin.constraints,e.data,!0)),!e.active)return;let r=e.target,t=r.data.index,a=r.bone;this.skin&&this.sortPathConstraintAttachment(this.skin,t,a),this.data.defaultSkin&&this.data.defaultSkin!=this.skin&&this.sortPathConstraintAttachment(this.data.defaultSkin,t,a);for(let n=0,l=this.data.skins.length;n<l;n++)this.sortPathConstraintAttachment(this.data.skins[n],t,a);let i=r.getAttachment();i instanceof ge&&this.sortPathConstraintAttachmentWith(i,a);let m=e.bones,s=m.length;for(let n=0;n<s;n++)this.sortBone(m[n]);this._updateCache.push(e);for(let n=0;n<s;n++)this.sortReset(m[n].children);for(let n=0;n<s;n++)m[n].sorted=!0}sortTransformConstraint(e){if(e.active=e.target.isActive()&&(!e.data.skinRequired||this.skin&&P.contains(this.skin.constraints,e.data,!0)),!e.active)return;this.sortBone(e.target);let r=e.bones,t=r.length;if(e.data.local)for(let a=0;a<t;a++){let i=r[a];this.sortBone(i.parent),this.sortBone(i)}else for(let a=0;a<t;a++)this.sortBone(r[a]);this._updateCache.push(e);for(let a=0;a<t;a++)this.sortReset(r[a].children);for(let a=0;a<t;a++)r[a].sorted=!0}sortPathConstraintAttachment(e,r,t){let a=e.attachments[r];if(!!a)for(let i in a)this.sortPathConstraintAttachmentWith(a[i],t)}sortPathConstraintAttachmentWith(e,r){if(!(e instanceof ge))return;let t=e.bones;if(!t)this.sortBone(r);else{let a=this.bones;for(let i=0,m=t.length;i<m;){let s=t[i++];for(s+=i;i<s;)this.sortBone(a[t[i++]])}}}sortBone(e){if(e.sorted)return;let r=e.parent;r&&this.sortBone(r),e.sorted=!0,this._updateCache.push(e)}sortReset(e){for(let r=0,t=e.length;r<t;r++){let a=e[r];!a.active||(a.sorted&&this.sortReset(a.children),a.sorted=!1)}}updateWorldTransform(){let e=this.bones;for(let t=0,a=e.length;t<a;t++){let i=e[t];i.ax=i.x,i.ay=i.y,i.arotation=i.rotation,i.ascaleX=i.scaleX,i.ascaleY=i.scaleY,i.ashearX=i.shearX,i.ashearY=i.shearY}let r=this._updateCache;for(let t=0,a=r.length;t<a;t++)r[t].update()}updateWorldTransformWith(e){let r=this.getRootBone(),t=e.a,a=e.b,i=e.c,m=e.d;r.worldX=t*this.x+a*this.y+e.worldX,r.worldY=i*this.x+m*this.y+e.worldY;let s=r.rotation+90+r.shearY,n=M.cosDeg(r.rotation+r.shearX)*r.scaleX,l=M.cosDeg(s)*r.scaleY,o=M.sinDeg(r.rotation+r.shearX)*r.scaleX,h=M.sinDeg(s)*r.scaleY;r.a=(t*n+a*o)*this.scaleX,r.b=(t*l+a*h)*this.scaleX,r.c=(i*n+m*o)*this.scaleY,r.d=(i*l+m*h)*this.scaleY;let c=this._updateCache;for(let u=0,d=c.length;u<d;u++){let f=c[u];f!=r&&f.update()}}setToSetupPose(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()}setBonesToSetupPose(){let e=this.bones;for(let i=0,m=e.length;i<m;i++)e[i].setToSetupPose();let r=this.ikConstraints;for(let i=0,m=r.length;i<m;i++){let s=r[i];s.mix=s.data.mix,s.softness=s.data.softness,s.bendDirection=s.data.bendDirection,s.compress=s.data.compress,s.stretch=s.data.stretch}let t=this.transformConstraints;for(let i=0,m=t.length;i<m;i++){let s=t[i],n=s.data;s.mixRotate=n.mixRotate,s.mixX=n.mixX,s.mixY=n.mixY,s.mixScaleX=n.mixScaleX,s.mixScaleY=n.mixScaleY,s.mixShearY=n.mixShearY}let a=this.pathConstraints;for(let i=0,m=a.length;i<m;i++){let s=a[i],n=s.data;s.position=n.position,s.spacing=n.spacing,s.mixRotate=n.mixRotate,s.mixX=n.mixX,s.mixY=n.mixY}}setSlotsToSetupPose(){let e=this.slots;P.arrayCopy(e,0,this.drawOrder,0,e.length);for(let r=0,t=e.length;r<t;r++)e[r].setToSetupPose()}getRootBone(){return this.bones.length==0?null:this.bones[0]}findBone(e){if(!e)throw new Error("boneName cannot be null.");let r=this.bones;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.data.name==e)return i}return null}findBoneIndex(e){if(!e)throw new Error("boneName cannot be null.");let r=this.bones;for(let t=0,a=r.length;t<a;t++)if(r[t].data.name==e)return t;return-1}findSlot(e){if(!e)throw new Error("slotName cannot be null.");let r=this.slots;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.data.name==e)return i}return null}findSlotIndex(e){if(!e)throw new Error("slotName cannot be null.");let r=this.slots;for(let t=0,a=r.length;t<a;t++)if(r[t].data.name==e)return t;return-1}setSkinByName(e){let r=this.data.findSkin(e);if(!r)throw new Error("Skin not found: "+e);this.setSkin(r)}setSkin(e){if(e!=this.skin){if(e)if(this.skin)e.attachAll(this,this.skin);else{let r=this.slots;for(let t=0,a=r.length;t<a;t++){let i=r[t],m=i.data.attachmentName;if(m){let s=e.getAttachment(t,m);s&&i.setAttachment(s)}}}this.skin=e,this.updateCache()}}getAttachmentByName(e,r){return this.getAttachment(this.data.findSlotIndex(e),r)}getAttachment(e,r){if(!r)throw new Error("attachmentName cannot be null.");if(this.skin){let t=this.skin.getAttachment(e,r);if(t)return t}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(e,r):null}setAttachment(e,r){if(!e)throw new Error("slotName cannot be null.");let t=this.slots;for(let a=0,i=t.length;a<i;a++){let m=t[a];if(m.data.name==e){let s=null;if(r&&(s=this.getAttachment(a,r),!s))throw new Error("Attachment not found: "+r+", for slot: "+e);m.setAttachment(s);return}}throw new Error("Slot not found: "+e)}findIkConstraint(e){if(!e)throw new Error("constraintName cannot be null.");let r=this.ikConstraints;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.data.name==e)return i}return null}findTransformConstraint(e){if(!e)throw new Error("constraintName cannot be null.");let r=this.transformConstraints;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.data.name==e)return i}return null}findPathConstraint(e){if(!e)throw new Error("constraintName cannot be null.");let r=this.pathConstraints;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.data.name==e)return i}return null}getBounds(e,r,t=new Array(2)){if(!e)throw new Error("offset cannot be null.");if(!r)throw new Error("size cannot be null.");let a=this.drawOrder,i=Number.POSITIVE_INFINITY,m=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,n=Number.NEGATIVE_INFINITY;for(let l=0,o=a.length;l<o;l++){let h=a[l];if(!h.bone.active)continue;let c=0,u=null,d=h.getAttachment();if(d instanceof V)c=8,u=P.setArraySize(t,c,0),d.computeWorldVertices(h.bone,u,0,2);else if(d instanceof se){let f=d;c=f.worldVerticesLength,u=P.setArraySize(t,c,0),f.computeWorldVertices(h,0,c,u,0,2)}if(u)for(let f=0,b=u.length;f<b;f+=2){let y=u[f],A=u[f+1];i=Math.min(i,y),m=Math.min(m,A),s=Math.max(s,y),n=Math.max(n,A)}}e.set(i,m),r.set(s-i,n-m)}update(e){this.time+=e}};var ft=class{constructor(){this.bones=new Array;this.slots=new Array;this.skins=new Array;this.events=new Array;this.animations=new Array;this.ikConstraints=new Array;this.transformConstraints=new Array;this.pathConstraints=new Array;this.fps=0}findBone(e){if(!e)throw new Error("boneName cannot be null.");let r=this.bones;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.name==e)return i}return null}findBoneIndex(e){if(!e)throw new Error("boneName cannot be null.");let r=this.bones;for(let t=0,a=r.length;t<a;t++)if(r[t].name==e)return t;return-1}findSlot(e){if(!e)throw new Error("slotName cannot be null.");let r=this.slots;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.name==e)return i}return null}findSlotIndex(e){if(!e)throw new Error("slotName cannot be null.");let r=this.slots;for(let t=0,a=r.length;t<a;t++)if(r[t].name==e)return t;return-1}findSkin(e){if(!e)throw new Error("skinName cannot be null.");let r=this.skins;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.name==e)return i}return null}findEvent(e){if(!e)throw new Error("eventDataName cannot be null.");let r=this.events;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.name==e)return i}return null}findAnimation(e){if(!e)throw new Error("animationName cannot be null.");let r=this.animations;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.name==e)return i}return null}findIkConstraint(e){if(!e)throw new Error("constraintName cannot be null.");let r=this.ikConstraints;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.name==e)return i}return null}findTransformConstraint(e){if(!e)throw new Error("constraintName cannot be null.");let r=this.transformConstraints;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.name==e)return i}return null}findPathConstraint(e){if(!e)throw new Error("constraintName cannot be null.");let r=this.pathConstraints;for(let t=0,a=r.length;t<a;t++){let i=r[t];if(i.name==e)return i}return null}};var Ut=class{constructor(e,r,t){this.slotIndex=e;this.name=r;this.attachment=t}},Le=class{constructor(e){this.attachments=new Array;this.bones=Array();this.constraints=new Array;if(!e)throw new Error("name cannot be null.");this.name=e}setAttachment(e,r,t){if(!t)throw new Error("attachment cannot be null.");let a=this.attachments;e>=a.length&&(a.length=e+1),a[e]||(a[e]={}),a[e][r]=t}addSkin(e){for(let a=0;a<e.bones.length;a++){let i=e.bones[a],m=!1;for(let s=0;s<this.bones.length;s++)if(this.bones[s]==i){m=!0;break}m||this.bones.push(i)}for(let a=0;a<e.constraints.length;a++){let i=e.constraints[a],m=!1;for(let s=0;s<this.constraints.length;s++)if(this.constraints[s]==i){m=!0;break}m||this.constraints.push(i)}let r=e.getAttachments();for(let a=0;a<r.length;a++){var t=r[a];this.setAttachment(t.slotIndex,t.name,t.attachment)}}copySkin(e){for(let a=0;a<e.bones.length;a++){let i=e.bones[a],m=!1;for(let s=0;s<this.bones.length;s++)if(this.bones[s]==i){m=!0;break}m||this.bones.push(i)}for(let a=0;a<e.constraints.length;a++){let i=e.constraints[a],m=!1;for(let s=0;s<this.constraints.length;s++)if(this.constraints[s]==i){m=!0;break}m||this.constraints.push(i)}let r=e.getAttachments();for(let a=0;a<r.length;a++){var t=r[a];!t.attachment||(t.attachment instanceof se?(t.attachment=t.attachment.newLinkedMesh(),this.setAttachment(t.slotIndex,t.name,t.attachment)):(t.attachment=t.attachment.copy(),this.setAttachment(t.slotIndex,t.name,t.attachment)))}}getAttachment(e,r){let t=this.attachments[e];return t?t[r]:null}removeAttachment(e,r){let t=this.attachments[e];t&&(t[r]=null)}getAttachments(){let e=new Array;for(var r=0;r<this.attachments.length;r++){let t=this.attachments[r];if(t)for(let a in t){let i=t[a];i&&e.push(new Ut(r,a,i))}}return e}getAttachmentsForSlot(e,r){let t=this.attachments[e];if(t)for(let a in t){let i=t[a];i&&r.push(new Ut(e,a,i))}}clear(){this.attachments.length=0,this.bones.length=0,this.constraints.length=0}attachAll(e,r){let t=0;for(let a=0;a<e.slots.length;a++){let i=e.slots[a],m=i.getAttachment();if(m&&t<r.attachments.length){let s=r.attachments[t];for(let n in s){let l=s[n];if(m==l){let o=this.getAttachment(t,n);o&&i.setAttachment(o);break}}}t++}}};var gt=class{constructor(e,r,t){this.color=new R(1,1,1,1);if(e<0)throw new Error("index must be >= 0.");if(!r)throw new Error("name cannot be null.");if(!t)throw new Error("boneData cannot be null.");this.index=e,this.name=r,this.boneData=t}},St;(function(a){a[a.Normal=0]="Normal",a[a.Additive=1]="Additive",a[a.Multiply=2]="Multiply",a[a.Screen=3]="Screen"})(St||(St={}));var bt=class extends De{constructor(e){super(e,0,!1);this.bones=new Array;this.mixRotate=0;this.mixX=0;this.mixY=0;this.mixScaleX=0;this.mixScaleY=0;this.mixShearY=0;this.offsetRotation=0;this.offsetX=0;this.offsetY=0;this.offsetScaleX=0;this.offsetScaleY=0;this.offsetShearY=0;this.relative=!1;this.local=!1}};var Mr=class{constructor(e){this.scale=1;this.linkedMeshes=new Array;this.attachmentLoader=e}readSkeletonData(e){let r=this.scale,t=new ft;t.name="";let a=new ir(e),i=a.readInt32(),m=a.readInt32();t.hash=m==0&&i==0?null:m.toString(16)+i.toString(16),t.version=a.readString(),t.x=a.readFloat(),t.y=a.readFloat(),t.width=a.readFloat(),t.height=a.readFloat();let s=a.readBoolean();s&&(t.fps=a.readFloat(),t.imagesPath=a.readString(),t.audioPath=a.readString());let n=0;n=a.readInt(!0);for(let o=0;o<n;o++)a.strings.push(a.readString());n=a.readInt(!0);for(let o=0;o<n;o++){let h=a.readString(),c=o==0?null:t.bones[a.readInt(!0)],u=new ht(o,h,c);u.rotation=a.readFloat(),u.x=a.readFloat()*r,u.y=a.readFloat()*r,u.scaleX=a.readFloat(),u.scaleY=a.readFloat(),u.shearX=a.readFloat(),u.shearY=a.readFloat(),u.length=a.readFloat()*r,u.transformMode=a.readInt(!0),u.skinRequired=a.readBoolean(),s&&R.rgba8888ToColor(u.color,a.readInt32()),t.bones.push(u)}n=a.readInt(!0);for(let o=0;o<n;o++){let h=a.readString(),c=t.bones[a.readInt(!0)],u=new gt(o,h,c);R.rgba8888ToColor(u.color,a.readInt32());let d=a.readInt32();d!=-1&&R.rgb888ToColor(u.darkColor=new R,d),u.attachmentName=a.readStringRef(),u.blendMode=a.readInt(!0),t.slots.push(u)}n=a.readInt(!0);for(let o=0,h;o<n;o++){let c=new ut(a.readString());c.order=a.readInt(!0),c.skinRequired=a.readBoolean(),h=a.readInt(!0);for(let u=0;u<h;u++)c.bones.push(t.bones[a.readInt(!0)]);c.target=t.bones[a.readInt(!0)],c.mix=a.readFloat(),c.softness=a.readFloat()*r,c.bendDirection=a.readByte(),c.compress=a.readBoolean(),c.stretch=a.readBoolean(),c.uniform=a.readBoolean(),t.ikConstraints.push(c)}n=a.readInt(!0);for(let o=0,h;o<n;o++){let c=new bt(a.readString());c.order=a.readInt(!0),c.skinRequired=a.readBoolean(),h=a.readInt(!0);for(let u=0;u<h;u++)c.bones.push(t.bones[a.readInt(!0)]);c.target=t.bones[a.readInt(!0)],c.local=a.readBoolean(),c.relative=a.readBoolean(),c.offsetRotation=a.readFloat(),c.offsetX=a.readFloat()*r,c.offsetY=a.readFloat()*r,c.offsetScaleX=a.readFloat(),c.offsetScaleY=a.readFloat(),c.offsetShearY=a.readFloat(),c.mixRotate=a.readFloat(),c.mixX=a.readFloat(),c.mixY=a.readFloat(),c.mixScaleX=a.readFloat(),c.mixScaleY=a.readFloat(),c.mixShearY=a.readFloat(),t.transformConstraints.push(c)}n=a.readInt(!0);for(let o=0,h;o<n;o++){let c=new dt(a.readString());c.order=a.readInt(!0),c.skinRequired=a.readBoolean(),h=a.readInt(!0);for(let u=0;u<h;u++)c.bones.push(t.bones[a.readInt(!0)]);c.target=t.slots[a.readInt(!0)],c.positionMode=a.readInt(!0),c.spacingMode=a.readInt(!0),c.rotateMode=a.readInt(!0),c.offsetRotation=a.readFloat(),c.position=a.readFloat(),c.positionMode==oe.Fixed&&(c.position*=r),c.spacing=a.readFloat(),(c.spacingMode==Z.Length||c.spacingMode==Z.Fixed)&&(c.spacing*=r),c.mixRotate=a.readFloat(),c.mixX=a.readFloat(),c.mixY=a.readFloat(),t.pathConstraints.push(c)}let l=this.readSkin(a,t,!0,s);l&&(t.defaultSkin=l,t.skins.push(l));{let o=t.skins.length;for(P.setArraySize(t.skins,n=o+a.readInt(!0));o<n;o++)t.skins[o]=this.readSkin(a,t,!1,s)}n=this.linkedMeshes.length;for(let o=0;o<n;o++){let h=this.linkedMeshes[o],u=(h.skin?t.findSkin(h.skin):t.defaultSkin).getAttachment(h.slotIndex,h.parent);h.mesh.deformAttachment=h.inheritDeform?u:h.mesh,h.mesh.setParentMesh(u),h.mesh.updateUVs()}this.linkedMeshes.length=0,n=a.readInt(!0);for(let o=0;o<n;o++){let h=new ct(a.readStringRef());h.intValue=a.readInt(!1),h.floatValue=a.readFloat(),h.stringValue=a.readString(),h.audioPath=a.readString(),h.audioPath&&(h.volume=a.readFloat(),h.balance=a.readFloat()),t.events.push(h)}n=a.readInt(!0);for(let o=0;o<n;o++)t.animations.push(this.readAnimation(a,a.readString(),t));return t}readSkin(e,r,t,a){let i=null,m=0;if(t){if(m=e.readInt(!0),m==0)return null;i=new Le("default")}else{i=new Le(e.readStringRef()),i.bones.length=e.readInt(!0);for(let s=0,n=i.bones.length;s<n;s++)i.bones[s]=r.bones[e.readInt(!0)];for(let s=0,n=e.readInt(!0);s<n;s++)i.constraints.push(r.ikConstraints[e.readInt(!0)]);for(let s=0,n=e.readInt(!0);s<n;s++)i.constraints.push(r.transformConstraints[e.readInt(!0)]);for(let s=0,n=e.readInt(!0);s<n;s++)i.constraints.push(r.pathConstraints[e.readInt(!0)]);m=e.readInt(!0)}for(let s=0;s<m;s++){let n=e.readInt(!0);for(let l=0,o=e.readInt(!0);l<o;l++){let h=e.readStringRef(),c=this.readAttachment(e,r,i,n,h,a);c&&i.setAttachment(n,h,c)}}return i}readAttachment(e,r,t,a,i,m){let s=this.scale,n=e.readStringRef();switch(n||(n=i),e.readByte()){case Ce.Region:{let l=e.readStringRef(),o=e.readFloat(),h=e.readFloat(),c=e.readFloat(),u=e.readFloat(),d=e.readFloat(),f=e.readFloat(),b=e.readFloat(),y=e.readInt32();l||(l=n);let A=this.attachmentLoader.newRegionAttachment(t,n,l);return A?(A.path=l,A.x=h*s,A.y=c*s,A.scaleX=u,A.scaleY=d,A.rotation=o,A.width=f*s,A.height=b*s,R.rgba8888ToColor(A.color,y),A.updateOffset(),A):null}case Ce.BoundingBox:{let l=e.readInt(!0),o=this.readVertices(e,l),h=m?e.readInt32():0,c=this.attachmentLoader.newBoundingBoxAttachment(t,n);return c?(c.worldVerticesLength=l<<1,c.vertices=o.vertices,c.bones=o.bones,m&&R.rgba8888ToColor(c.color,h),c):null}case Ce.Mesh:{let l=e.readStringRef(),o=e.readInt32(),h=e.readInt(!0),c=this.readFloatArray(e,h<<1,1),u=this.readShortArray(e),d=this.readVertices(e,h),f=e.readInt(!0),b=null,y=0,A=0;m&&(b=this.readShortArray(e),y=e.readFloat(),A=e.readFloat()),l||(l=n);let g=this.attachmentLoader.newMeshAttachment(t,n,l);return g?(g.path=l,R.rgba8888ToColor(g.color,o),g.bones=d.bones,g.vertices=d.vertices,g.worldVerticesLength=h<<1,g.triangles=u,g.regionUVs=c,g.updateUVs(),g.hullLength=f<<1,m&&(g.edges=b,g.width=y*s,g.height=A*s),g):null}case Ce.LinkedMesh:{let l=e.readStringRef(),o=e.readInt32(),h=e.readStringRef(),c=e.readStringRef(),u=e.readBoolean(),d=0,f=0;m&&(d=e.readFloat(),f=e.readFloat()),l||(l=n);let b=this.attachmentLoader.newMeshAttachment(t,n,l);return b?(b.path=l,R.rgba8888ToColor(b.color,o),m&&(b.width=d*s,b.height=f*s),this.linkedMeshes.push(new Yr(b,h,a,c,u)),b):null}case Ce.Path:{let l=e.readBoolean(),o=e.readBoolean(),h=e.readInt(!0),c=this.readVertices(e,h),u=P.newArray(h/3,0);for(let b=0,y=u.length;b<y;b++)u[b]=e.readFloat()*s;let d=m?e.readInt32():0,f=this.attachmentLoader.newPathAttachment(t,n);return f?(f.closed=l,f.constantSpeed=o,f.worldVerticesLength=h<<1,f.vertices=c.vertices,f.bones=c.bones,f.lengths=u,m&&R.rgba8888ToColor(f.color,d),f):null}case Ce.Point:{let l=e.readFloat(),o=e.readFloat(),h=e.readFloat(),c=m?e.readInt32():0,u=this.attachmentLoader.newPointAttachment(t,n);return u?(u.x=o*s,u.y=h*s,u.rotation=l,m&&R.rgba8888ToColor(u.color,c),u):null}case Ce.Clipping:{let l=e.readInt(!0),o=e.readInt(!0),h=this.readVertices(e,o),c=m?e.readInt32():0,u=this.attachmentLoader.newClippingAttachment(t,n);return u?(u.endSlot=r.slots[l],u.worldVerticesLength=o<<1,u.vertices=h.vertices,u.bones=h.bones,m&&R.rgba8888ToColor(u.color,c),u):null}}return null}readVertices(e,r){let t=this.scale,a=r<<1,i=new Br;if(!e.readBoolean())return i.vertices=this.readFloatArray(e,a,t),i;let m=new Array,s=new Array;for(let n=0;n<r;n++){let l=e.readInt(!0);s.push(l);for(let o=0;o<l;o++)s.push(e.readInt(!0)),m.push(e.readFloat()*t),m.push(e.readFloat()*t),m.push(e.readFloat())}return i.vertices=P.toFloatArray(m),i.bones=s,i}readFloatArray(e,r,t){let a=new Array(r);if(t==1)for(let i=0;i<r;i++)a[i]=e.readFloat();else for(let i=0;i<r;i++)a[i]=e.readFloat()*t;return a}readShortArray(e){let r=e.readInt(!0),t=new Array(r);for(let a=0;a<r;a++)t[a]=e.readShort();return t}readAnimation(e,r,t){e.readInt(!0);let a=new Array,i=this.scale,m=new R,s=new R;for(let h=0,c=e.readInt(!0);h<c;h++){let u=e.readInt(!0);for(let d=0,f=e.readInt(!0);d<f;d++){let b=e.readByte(),y=e.readInt(!0),A=y-1;switch(b){case $r:{let g=new de(y,u);for(let p=0;p<y;p++)g.setFrame(p,e.readFloat(),e.readStringRef());a.push(g);break}case _r:{let g=e.readInt(!0),p=new Je(y,g,u),x=e.readFloat(),w=e.readUnsignedByte()/255,k=e.readUnsignedByte()/255,v=e.readUnsignedByte()/255,B=e.readUnsignedByte()/255;for(let I=0,D=0;p.setFrame(I,x,w,k,v,B),I!=A;I++){let L=e.readFloat(),E=e.readUnsignedByte()/255,F=e.readUnsignedByte()/255,T=e.readUnsignedByte()/255,X=e.readUnsignedByte()/255;switch(e.readByte()){case be:p.setStepped(I);break;case pe:z(e,p,D++,I,0,x,L,w,E,1),z(e,p,D++,I,1,x,L,k,F,1),z(e,p,D++,I,2,x,L,v,T,1),z(e,p,D++,I,3,x,L,B,X,1)}x=L,w=E,k=F,v=T,B=X}a.push(p);break}case Jr:{let g=e.readInt(!0),p=new Qe(y,g,u),x=e.readFloat(),w=e.readUnsignedByte()/255,k=e.readUnsignedByte()/255,v=e.readUnsignedByte()/255;for(let B=0,I=0;p.setFrame(B,x,w,k,v),B!=A;B++){let D=e.readFloat(),L=e.readUnsignedByte()/255,E=e.readUnsignedByte()/255,F=e.readUnsignedByte()/255;switch(e.readByte()){case be:p.setStepped(B);break;case pe:z(e,p,I++,B,0,x,D,w,L,1),z(e,p,I++,B,1,x,D,k,E,1),z(e,p,I++,B,2,x,D,v,F,1)}x=D,w=L,k=E,v=F}a.push(p);break}case Qr:{let g=e.readInt(!0),p=new Ke(y,g,u),x=e.readFloat(),w=e.readUnsignedByte()/255,k=e.readUnsignedByte()/255,v=e.readUnsignedByte()/255,B=e.readUnsignedByte()/255,I=e.readUnsignedByte()/255,D=e.readUnsignedByte()/255,L=e.readUnsignedByte()/255;for(let E=0,F=0;p.setFrame(E,x,w,k,v,B,I,D,L),E!=A;E++){let T=e.readFloat(),X=e.readUnsignedByte()/255,W=e.readUnsignedByte()/255,H=e.readUnsignedByte()/255,U=e.readUnsignedByte()/255,G=e.readUnsignedByte()/255,J=e.readUnsignedByte()/255,j=e.readUnsignedByte()/255;switch(e.readByte()){case be:p.setStepped(E);break;case pe:z(e,p,F++,E,0,x,T,w,X,1),z(e,p,F++,E,1,x,T,k,W,1),z(e,p,F++,E,2,x,T,v,H,1),z(e,p,F++,E,3,x,T,B,U,1),z(e,p,F++,E,4,x,T,I,G,1),z(e,p,F++,E,5,x,T,D,J,1),z(e,p,F++,E,6,x,T,L,j,1)}x=T,w=X,k=W,v=H,B=U,I=G,D=J,L=j}a.push(p);break}case Zr:{let g=e.readInt(!0),p=new et(y,g,u),x=e.readFloat(),w=e.readUnsignedByte()/255,k=e.readUnsignedByte()/255,v=e.readUnsignedByte()/255,B=e.readUnsignedByte()/255,I=e.readUnsignedByte()/255,D=e.readUnsignedByte()/255;for(let L=0,E=0;p.setFrame(L,x,w,k,v,B,I,D),L!=A;L++){let F=e.readFloat(),T=e.readUnsignedByte()/255,X=e.readUnsignedByte()/255,W=e.readUnsignedByte()/255,H=e.readUnsignedByte()/255,U=e.readUnsignedByte()/255,G=e.readUnsignedByte()/255;switch(e.readByte()){case be:p.setStepped(L);break;case pe:z(e,p,E++,L,0,x,F,w,T,1),z(e,p,E++,L,1,x,F,k,X,1),z(e,p,E++,L,2,x,F,v,W,1),z(e,p,E++,L,3,x,F,B,H,1),z(e,p,E++,L,4,x,F,I,U,1),z(e,p,E++,L,5,x,F,D,G,1)}x=F,w=T,k=X,v=W,B=H,I=U,D=G}a.push(p);break}case Kr:{let g=new Ze(y,e.readInt(!0),u),p=e.readFloat(),x=e.readUnsignedByte()/255;for(let w=0,k=0;g.setFrame(w,p,x),w!=A;w++){let v=e.readFloat(),B=e.readUnsignedByte()/255;switch(e.readByte()){case be:g.setStepped(w);break;case pe:z(e,g,k++,w,0,p,v,x,B,1)}p=v,x=B}a.push(g);break}}}}for(let h=0,c=e.readInt(!0);h<c;h++){let u=e.readInt(!0);for(let d=0,f=e.readInt(!0);d<f;d++){let b=e.readByte(),y=e.readInt(!0),A=e.readInt(!0);switch(b){case Rr:a.push(Te(e,new ke(y,A,u),1));break;case Ur:a.push(ar(e,new Oe(y,A,u),i));break;case Nr:a.push(Te(e,new We(y,A,u),i));break;case Or:a.push(Te(e,new ze(y,A,u),i));break;case Wr:a.push(ar(e,new qe(y,A,u),1));break;case zr:a.push(Te(e,new He(y,A,u),1));break;case qr:a.push(Te(e,new Ge(y,A,u),1));break;case Hr:a.push(ar(e,new je(y,A,u),1));break;case Gr:a.push(Te(e,new $e(y,A,u),1));break;case jr:a.push(Te(e,new _e(y,A,u),1))}}}for(let h=0,c=e.readInt(!0);h<c;h++){let u=e.readInt(!0),d=e.readInt(!0),f=d-1,b=new rt(d,e.readInt(!0),u),y=e.readFloat(),A=e.readFloat(),g=e.readFloat()*i;for(let p=0,x=0;b.setFrame(p,y,A,g,e.readByte(),e.readBoolean(),e.readBoolean()),p!=f;p++){let w=e.readFloat(),k=e.readFloat(),v=e.readFloat()*i;switch(e.readByte()){case be:b.setStepped(p);break;case pe:z(e,b,x++,p,0,y,w,A,k,1),z(e,b,x++,p,1,y,w,g,v,i)}y=w,A=k,g=v}a.push(b)}for(let h=0,c=e.readInt(!0);h<c;h++){let u=e.readInt(!0),d=e.readInt(!0),f=d-1,b=new nt(d,e.readInt(!0),u),y=e.readFloat(),A=e.readFloat(),g=e.readFloat(),p=e.readFloat(),x=e.readFloat(),w=e.readFloat(),k=e.readFloat();for(let v=0,B=0;b.setFrame(v,y,A,g,p,x,w,k),v!=f;v++){let I=e.readFloat(),D=e.readFloat(),L=e.readFloat(),E=e.readFloat(),F=e.readFloat(),T=e.readFloat(),X=e.readFloat();switch(e.readByte()){case be:b.setStepped(v);break;case pe:z(e,b,B++,v,0,y,I,A,D,1),z(e,b,B++,v,1,y,I,g,L,1),z(e,b,B++,v,2,y,I,p,E,1),z(e,b,B++,v,3,y,I,x,F,1),z(e,b,B++,v,4,y,I,w,T,1),z(e,b,B++,v,5,y,I,k,X,1)}y=I,A=D,g=L,p=E,x=F,w=T,k=X}a.push(b)}for(let h=0,c=e.readInt(!0);h<c;h++){let u=e.readInt(!0),d=t.pathConstraints[u];for(let f=0,b=e.readInt(!0);f<b;f++)switch(e.readByte()){case en:a.push(Te(e,new it(e.readInt(!0),e.readInt(!0),u),d.positionMode==oe.Fixed?i:1));break;case tn:a.push(Te(e,new at(e.readInt(!0),e.readInt(!0),u),d.spacingMode==Z.Length||d.spacingMode==Z.Fixed?i:1));break;case rn:let y=new st(e.readInt(!0),e.readInt(!0),u),A=e.readFloat(),g=e.readFloat(),p=e.readFloat(),x=e.readFloat();for(let w=0,k=0,v=y.getFrameCount()-1;y.setFrame(w,A,g,p,x),w!=v;w++){let B=e.readFloat(),I=e.readFloat(),D=e.readFloat(),L=e.readFloat();switch(e.readByte()){case be:y.setStepped(w);break;case pe:z(e,y,k++,w,0,A,B,g,I,1),z(e,y,k++,w,1,A,B,p,D,1),z(e,y,k++,w,2,A,B,x,L,1)}A=B,g=I,p=D,x=L}a.push(y)}}for(let h=0,c=e.readInt(!0);h<c;h++){let u=t.skins[e.readInt(!0)];for(let d=0,f=e.readInt(!0);d<f;d++){let b=e.readInt(!0);for(let y=0,A=e.readInt(!0);y<A;y++){let g=e.readStringRef(),p=u.getAttachment(b,g),x=p.bones,w=p.vertices,k=x?w.length/3*2:w.length,v=e.readInt(!0),B=v-1,I=e.readInt(!0),D=new tt(v,I,b,p),L=e.readFloat();for(let E=0,F=0;;E++){let T,X=e.readInt(!0);if(X==0)T=x?P.newFloatArray(k):w;else{T=P.newFloatArray(k);let H=e.readInt(!0);if(X+=H,i==1)for(let U=H;U<X;U++)T[U]=e.readFloat();else for(let U=H;U<X;U++)T[U]=e.readFloat()*i;if(!x)for(let U=0,G=T.length;U<G;U++)T[U]+=w[U]}if(D.setFrame(E,L,T),E==B)break;let W=e.readFloat();switch(e.readByte()){case be:D.setStepped(E);break;case pe:z(e,D,F++,E,0,L,W,0,1,1)}L=W}a.push(D)}}}let n=e.readInt(!0);if(n>0){let h=new fe(n),c=t.slots.length;for(let u=0;u<n;u++){let d=e.readFloat(),f=e.readInt(!0),b=P.newArray(c,0);for(let p=c-1;p>=0;p--)b[p]=-1;let y=P.newArray(c-f,0),A=0,g=0;for(let p=0;p<f;p++){let x=e.readInt(!0);for(;A!=x;)y[g++]=A++;b[A+e.readInt(!0)]=A++}for(;A<c;)y[g++]=A++;for(let p=c-1;p>=0;p--)b[p]==-1&&(b[p]=y[--g]);h.setFrame(u,d,b)}a.push(h)}let l=e.readInt(!0);if(l>0){let h=new ve(l);for(let c=0;c<l;c++){let u=e.readFloat(),d=t.events[e.readInt(!0)],f=new mt(u,d);f.intValue=e.readInt(!1),f.floatValue=e.readFloat(),f.stringValue=e.readBoolean()?e.readString():d.stringValue,f.data.audioPath&&(f.volume=e.readFloat(),f.balance=e.readFloat()),h.setFrame(c,f)}a.push(h)}let o=0;for(let h=0,c=a.length;h<c;h++)o=Math.max(o,a[h].getDuration());return new Ye(r,a,o)}},ir=class{constructor(e,r=new Array,t=0,a=new DataView(e.buffer)){this.strings=r;this.index=t;this.buffer=a}readByte(){return this.buffer.getInt8(this.index++)}readUnsignedByte(){return this.buffer.getUint8(this.index++)}readShort(){let e=this.buffer.getInt16(this.index);return this.index+=2,e}readInt32(){let e=this.buffer.getInt32(this.index);return this.index+=4,e}readInt(e){let r=this.readByte(),t=r&127;return(r&128)!=0&&(r=this.readByte(),t|=(r&127)<<7,(r&128)!=0&&(r=this.readByte(),t|=(r&127)<<14,(r&128)!=0&&(r=this.readByte(),t|=(r&127)<<21,(r&128)!=0&&(r=this.readByte(),t|=(r&127)<<28)))),e?t:t>>>1^-(t&1)}readStringRef(){let e=this.readInt(!0);return e==0?null:this.strings[e-1]}readString(){let e=this.readInt(!0);switch(e){case 0:return null;case 1:return""}e--;let r="",t=0;for(let a=0;a<e;){let i=this.readByte();switch(i>>4){case 12:case 13:r+=String.fromCharCode((i&31)<<6|this.readByte()&63),a+=2;break;case 14:r+=String.fromCharCode((i&15)<<12|(this.readByte()&63)<<6|this.readByte()&63),a+=3;break;default:r+=String.fromCharCode(i),a++}}return r}readFloat(){let e=this.buffer.getFloat32(this.index);return this.index+=4,e}readBoolean(){return this.readByte()!=0}},Yr=class{constructor(e,r,t,a,i){this.mesh=e,this.skin=r,this.slotIndex=t,this.parent=a,this.inheritDeform=i}},Br=class{constructor(e=null,r=null){this.bones=e;this.vertices=r}},Ce;(function(s){s[s.Region=0]="Region",s[s.BoundingBox=1]="BoundingBox",s[s.Mesh=2]="Mesh",s[s.LinkedMesh=3]="LinkedMesh",s[s.Path=4]="Path",s[s.Point=5]="Point",s[s.Clipping=6]="Clipping"})(Ce||(Ce={}));function Te(Y,e,r){let t=Y.readFloat(),a=Y.readFloat()*r;for(let i=0,m=0,s=e.getFrameCount()-1;e.setFrame(i,t,a),i!=s;i++){let n=Y.readFloat(),l=Y.readFloat()*r;switch(Y.readByte()){case be:e.setStepped(i);break;case pe:z(Y,e,m++,i,0,t,n,a,l,r)}t=n,a=l}return e}function ar(Y,e,r){let t=Y.readFloat(),a=Y.readFloat()*r,i=Y.readFloat()*r;for(let m=0,s=0,n=e.getFrameCount()-1;e.setFrame(m,t,a,i),m!=n;m++){let l=Y.readFloat(),o=Y.readFloat()*r,h=Y.readFloat()*r;switch(Y.readByte()){case be:e.setStepped(m);break;case pe:z(Y,e,s++,m,0,t,l,a,o,r),z(Y,e,s++,m,1,t,l,i,h,r)}t=l,a=o,i=h}return e}function z(Y,e,r,t,a,i,m,s,n,l){e.setBezier(r,t,a,i,s,Y.readFloat(),Y.readFloat()*l,Y.readFloat(),Y.readFloat()*l,m,n)}var Rr=0,Ur=1,Nr=2,Or=3,Wr=4,zr=5,qr=6,Hr=7,Gr=8,jr=9,$r=0,_r=1,Jr=2,Qr=3,Zr=4,Kr=5,en=0,tn=1,rn=2;var be=1,pe=2;var Xr=class{constructor(){this.minX=0;this.minY=0;this.maxX=0;this.maxY=0;this.boundingBoxes=new Array;this.polygons=new Array;this.polygonPool=new we(()=>P.newFloatArray(16))}update(e,r){if(!e)throw new Error("skeleton cannot be null.");let t=this.boundingBoxes,a=this.polygons,i=this.polygonPool,m=e.slots,s=m.length;t.length=0,i.freeAll(a),a.length=0;for(let n=0;n<s;n++){let l=m[n];if(!l.bone.active)continue;let o=l.getAttachment();if(o instanceof Be){let h=o;t.push(h);let c=i.obtain();c.length!=h.worldVerticesLength&&(c=P.newFloatArray(h.worldVerticesLength)),a.push(c),h.computeWorldVertices(l,0,h.worldVerticesLength,c,0,2)}}r?this.aabbCompute():(this.minX=Number.POSITIVE_INFINITY,this.minY=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY,this.maxY=Number.NEGATIVE_INFINITY)}aabbCompute(){let e=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY,a=Number.NEGATIVE_INFINITY,i=this.polygons;for(let m=0,s=i.length;m<s;m++){let n=i[m],l=n;for(let o=0,h=n.length;o<h;o+=2){let c=l[o],u=l[o+1];e=Math.min(e,c),r=Math.min(r,u),t=Math.max(t,c),a=Math.max(a,u)}}this.minX=e,this.minY=r,this.maxX=t,this.maxY=a}aabbContainsPoint(e,r){return e>=this.minX&&e<=this.maxX&&r>=this.minY&&r<=this.maxY}aabbIntersectsSegment(e,r,t,a){let i=this.minX,m=this.minY,s=this.maxX,n=this.maxY;if(e<=i&&t<=i||r<=m&&a<=m||e>=s&&t>=s||r>=n&&a>=n)return!1;let l=(a-r)/(t-e),o=l*(i-e)+r;if(o>m&&o<n||(o=l*(s-e)+r,o>m&&o<n))return!0;let h=(m-r)/l+e;return!!(h>i&&h<s||(h=(n-r)/l+e,h>i&&h<s))}aabbIntersectsSkeleton(e){return this.minX<e.maxX&&this.maxX>e.minX&&this.minY<e.maxY&&this.maxY>e.minY}containsPoint(e,r){let t=this.polygons;for(let a=0,i=t.length;a<i;a++)if(this.containsPointPolygon(t[a],e,r))return this.boundingBoxes[a];return null}containsPointPolygon(e,r,t){let a=e,i=e.length,m=i-2,s=!1;for(let n=0;n<i;n+=2){let l=a[n+1],o=a[m+1];if(l<t&&o>=t||o<t&&l>=t){let h=a[n];h+(t-l)/(o-l)*(a[m]-h)<r&&(s=!s)}m=n}return s}intersectsSegment(e,r,t,a){let i=this.polygons;for(let m=0,s=i.length;m<s;m++)if(this.intersectsSegmentPolygon(i[m],e,r,t,a))return this.boundingBoxes[m];return null}intersectsSegmentPolygon(e,r,t,a,i){let m=e,s=e.length,n=r-a,l=t-i,o=r*i-t*a,h=m[s-2],c=m[s-1];for(let u=0;u<s;u+=2){let d=m[u],f=m[u+1],b=h*f-c*d,y=h-d,A=c-f,g=n*A-l*y,p=(o*y-n*b)/g;if((p>=h&&p<=d||p>=d&&p<=h)&&(p>=r&&p<=a||p>=a&&p<=r)){let x=(o*A-l*b)/g;if((x>=c&&x<=f||x>=f&&x<=c)&&(x>=t&&x<=i||x>=i&&x<=t))return!0}h=d,c=f}return!1}getPolygon(e){if(!e)throw new Error("boundingBox cannot be null.");let r=this.boundingBoxes.indexOf(e);return r==-1?null:this.polygons[r]}getWidth(){return this.maxX-this.minX}getHeight(){return this.maxY-this.minY}};var ne=class{constructor(){this.convexPolygons=new Array;this.convexPolygonsIndices=new Array;this.indicesArray=new Array;this.isConcaveArray=new Array;this.triangles=new Array;this.polygonPool=new we(()=>new Array);this.polygonIndicesPool=new we(()=>new Array)}triangulate(e){let r=e,t=e.length>>1,a=this.indicesArray;a.length=0;for(let s=0;s<t;s++)a[s]=s;let i=this.isConcaveArray;i.length=0;for(let s=0,n=t;s<n;++s)i[s]=ne.isConcave(s,t,r,a);let m=this.triangles;for(m.length=0;t>3;){let s=t-1,n=0,l=1;for(;;){e:if(!i[n]){let c=a[s]<<1,u=a[n]<<1,d=a[l]<<1,f=r[c],b=r[c+1],y=r[u],A=r[u+1],g=r[d],p=r[d+1];for(let x=(l+1)%t;x!=s;x=(x+1)%t){if(!i[x])continue;let w=a[x]<<1,k=r[w],v=r[w+1];if(ne.positiveArea(g,p,f,b,k,v)&&ne.positiveArea(f,b,y,A,k,v)&&ne.positiveArea(y,A,g,p,k,v))break e}break}if(l==0){do{if(!i[n])break;n--}while(n>0);break}s=n,n=l,l=(l+1)%t}m.push(a[(t+n-1)%t]),m.push(a[n]),m.push(a[(n+1)%t]),a.splice(n,1),i.splice(n,1),t--;let o=(t+n-1)%t,h=n==t?0:n;i[o]=ne.isConcave(o,t,r,a),i[h]=ne.isConcave(h,t,r,a)}return t==3&&(m.push(a[2]),m.push(a[0]),m.push(a[1])),m}decompose(e,r){let t=e,a=this.convexPolygons;this.polygonPool.freeAll(a),a.length=0;let i=this.convexPolygonsIndices;this.polygonIndicesPool.freeAll(i),i.length=0;let m=this.polygonIndicesPool.obtain();m.length=0;let s=this.polygonPool.obtain();s.length=0;let n=-1,l=0;for(let o=0,h=r.length;o<h;o+=3){let c=r[o]<<1,u=r[o+1]<<1,d=r[o+2]<<1,f=t[c],b=t[c+1],y=t[u],A=t[u+1],g=t[d],p=t[d+1],x=!1;if(n==c){let w=s.length-4,k=ne.winding(s[w],s[w+1],s[w+2],s[w+3],g,p),v=ne.winding(g,p,s[0],s[1],s[2],s[3]);k==l&&v==l&&(s.push(g),s.push(p),m.push(d),x=!0)}x||(s.length>0?(a.push(s),i.push(m)):(this.polygonPool.free(s),this.polygonIndicesPool.free(m)),s=this.polygonPool.obtain(),s.length=0,s.push(f),s.push(b),s.push(y),s.push(A),s.push(g),s.push(p),m=this.polygonIndicesPool.obtain(),m.length=0,m.push(c),m.push(u),m.push(d),l=ne.winding(f,b,y,A,g,p),n=c)}s.length>0&&(a.push(s),i.push(m));for(let o=0,h=a.length;o<h;o++){if(m=i[o],m.length==0)continue;let c=m[0],u=m[m.length-1];s=a[o];let d=s.length-4,f=s[d],b=s[d+1],y=s[d+2],A=s[d+3],g=s[0],p=s[1],x=s[2],w=s[3],k=ne.winding(f,b,y,A,g,p);for(let v=0;v<h;v++){if(v==o)continue;let B=i[v];if(B.length!=3)continue;let I=B[0],D=B[1],L=B[2],E=a[v],F=E[E.length-2],T=E[E.length-1];if(I!=c||D!=u)continue;let X=ne.winding(f,b,y,A,F,T),W=ne.winding(F,T,g,p,x,w);X==k&&W==k&&(E.length=0,B.length=0,s.push(F),s.push(T),m.push(L),f=y,b=A,y=F,A=T,v=0)}}for(let o=a.length-1;o>=0;o--)s=a[o],s.length==0&&(a.splice(o,1),this.polygonPool.free(s),m=i[o],i.splice(o,1),this.polygonIndicesPool.free(m));return a}static isConcave(e,r,t,a){let i=a[(r+e-1)%r]<<1,m=a[e]<<1,s=a[(e+1)%r]<<1;return!this.positiveArea(t[i],t[i+1],t[m],t[m+1],t[s],t[s+1])}static positiveArea(e,r,t,a,i,m){return e*(m-a)+t*(r-m)+i*(a-r)>=0}static winding(e,r,t,a,i,m){let s=t-e,n=a-r;return i*n-m*s+s*r-e*n>=0?1:-1}};var Ct=class{constructor(){this.triangulator=new ne;this.clippingPolygon=new Array;this.clipOutput=new Array;this.clippedVertices=new Array;this.clippedTriangles=new Array;this.scratch=new Array}clipStart(e,r){if(this.clipAttachment)return 0;this.clipAttachment=r;let t=r.worldVerticesLength,a=P.setArraySize(this.clippingPolygon,t);r.computeWorldVertices(e,0,t,a,0,2);let i=this.clippingPolygon;Ct.makeClockwise(i);let m=this.clippingPolygons=this.triangulator.decompose(i,this.triangulator.triangulate(i));for(let s=0,n=m.length;s<n;s++){let l=m[s];Ct.makeClockwise(l),l.push(l[0]),l.push(l[1])}return m.length}clipEndWithSlot(e){this.clipAttachment&&this.clipAttachment.endSlot==e.data&&this.clipEnd()}clipEnd(){!this.clipAttachment||(this.clipAttachment=null,this.clippingPolygons=null,this.clippedVertices.length=0,this.clippedTriangles.length=0,this.clippingPolygon.length=0)}isClipping(){return this.clipAttachment!=null}clipTriangles(e,r,t,a,i,m,s,n){let l=this.clipOutput,o=this.clippedVertices,h=this.clippedTriangles,c=this.clippingPolygons,u=this.clippingPolygons.length,d=n?12:8,f=0;o.length=0,h.length=0;e:for(let b=0;b<a;b+=3){let y=t[b]<<1,A=e[y],g=e[y+1],p=i[y],x=i[y+1];y=t[b+1]<<1;let w=e[y],k=e[y+1],v=i[y],B=i[y+1];y=t[b+2]<<1;let I=e[y],D=e[y+1],L=i[y],E=i[y+1];for(let F=0;F<u;F++){let T=o.length;if(this.clip(A,g,w,k,I,D,c[F],l)){let X=l.length;if(X==0)continue;let W=k-D,H=I-w,U=A-I,G=D-g,J=1/(W*U+H*(g-D)),j=X>>1,O=this.clipOutput,N=P.setArraySize(o,T+j*d);for(let ie=0;ie<X;ie+=2){let ue=O[ie],te=O[ie+1];N[T]=ue,N[T+1]=te,N[T+2]=m.r,N[T+3]=m.g,N[T+4]=m.b,N[T+5]=m.a;let le=ue-I,he=te-D,Ie=(W*le+H*he)*J,Ve=(G*le+U*he)*J,pt=1-Ie-Ve;N[T+6]=p*Ie+v*Ve+L*pt,N[T+7]=x*Ie+B*Ve+E*pt,n&&(N[T+8]=s.r,N[T+9]=s.g,N[T+10]=s.b,N[T+11]=s.a),T+=d}T=h.length;let $=P.setArraySize(h,T+3*(j-2));j--;for(let ie=1;ie<j;ie++)$[T]=f,$[T+1]=f+ie,$[T+2]=f+ie+1,T+=3;f+=j+1}else{let X=P.setArraySize(o,T+3*d);X[T]=A,X[T+1]=g,X[T+2]=m.r,X[T+3]=m.g,X[T+4]=m.b,X[T+5]=m.a,n?(X[T+6]=p,X[T+7]=x,X[T+8]=s.r,X[T+9]=s.g,X[T+10]=s.b,X[T+11]=s.a,X[T+12]=w,X[T+13]=k,X[T+14]=m.r,X[T+15]=m.g,X[T+16]=m.b,X[T+17]=m.a,X[T+18]=v,X[T+19]=B,X[T+20]=s.r,X[T+21]=s.g,X[T+22]=s.b,X[T+23]=s.a,X[T+24]=I,X[T+25]=D,X[T+26]=m.r,X[T+27]=m.g,X[T+28]=m.b,X[T+29]=m.a,X[T+30]=L,X[T+31]=E,X[T+32]=s.r,X[T+33]=s.g,X[T+34]=s.b,X[T+35]=s.a):(X[T+6]=p,X[T+7]=x,X[T+8]=w,X[T+9]=k,X[T+10]=m.r,X[T+11]=m.g,X[T+12]=m.b,X[T+13]=m.a,X[T+14]=v,X[T+15]=B,X[T+16]=I,X[T+17]=D,X[T+18]=m.r,X[T+19]=m.g,X[T+20]=m.b,X[T+21]=m.a,X[T+22]=L,X[T+23]=E),T=h.length;let W=P.setArraySize(h,T+3);W[T]=f,W[T+1]=f+1,W[T+2]=f+2,f+=3;continue e}}}}clip(e,r,t,a,i,m,s,n){let l=n,o=!1,h=null;s.length%4>=2?(h=n,n=this.scratch):h=this.scratch,h.length=0,h.push(e),h.push(r),h.push(t),h.push(a),h.push(i),h.push(m),h.push(e),h.push(r),n.length=0;let c=s,u=s.length-4;for(let d=0;;d+=2){let f=c[d],b=c[d+1],y=c[d+2],A=c[d+3],g=f-y,p=b-A,x=h,w=h.length-2,k=n.length;for(let B=0;B<w;B+=2){let I=x[B],D=x[B+1],L=x[B+2],E=x[B+3],F=g*(E-A)-p*(L-y)>0;if(g*(D-A)-p*(I-y)>0){if(F){n.push(L),n.push(E);continue}let T=E-D,X=L-I,W=T*(y-f)-X*(A-b);if(Math.abs(W)>1e-6){let H=(X*(b-D)-T*(f-I))/W;n.push(f+(y-f)*H),n.push(b+(A-b)*H)}else n.push(f),n.push(b)}else if(F){let T=E-D,X=L-I,W=T*(y-f)-X*(A-b);if(Math.abs(W)>1e-6){let H=(X*(b-D)-T*(f-I))/W;n.push(f+(y-f)*H),n.push(b+(A-b)*H)}else n.push(f),n.push(b);n.push(L),n.push(E)}o=!0}if(k==n.length)return l.length=0,!0;if(n.push(n[0]),n.push(n[1]),d==u)break;let v=n;n=h,n.length=0,h=v}if(l!=n){l.length=0;for(let d=0,f=n.length-2;d<f;d++)l[d]=n[d]}else l.length=l.length-2;return o}static makeClockwise(e){let r=e,t=e.length,a=r[t-2]*r[1]-r[0]*r[t-1],i=0,m=0,s=0,n=0;for(let l=0,o=t-3;l<o;l+=2)i=r[l],m=r[l+1],s=r[l+2],n=r[l+3],a+=i*n-s*m;if(!(a<0))for(let l=0,o=t-2,h=t>>1;l<h;l+=2){let c=r[l],u=r[l+1],d=o-l;r[l]=r[d],r[l+1]=r[d+1],r[d]=c,r[d+1]=u}}};var Fr=class{constructor(e){this.scale=1;this.linkedMeshes=new Array;this.attachmentLoader=e}readSkeletonData(e){let r=this.scale,t=new ft,a=typeof e=="string"?JSON.parse(e):e,i=a.skeleton;if(i&&(t.hash=i.hash,t.version=i.spine,t.x=i.x,t.y=i.y,t.width=i.width,t.height=i.height,t.fps=i.fps,t.imagesPath=i.images),a.bones)for(let m=0;m<a.bones.length;m++){let s=a.bones[m],n=null,l=C(s,"parent",null);l&&(n=t.findBone(l));let o=new ht(t.bones.length,s.name,n);o.length=C(s,"length",0)*r,o.x=C(s,"x",0)*r,o.y=C(s,"y",0)*r,o.rotation=C(s,"rotation",0),o.scaleX=C(s,"scaleX",1),o.scaleY=C(s,"scaleY",1),o.shearX=C(s,"shearX",0),o.shearY=C(s,"shearY",0),o.transformMode=P.enumValue(ee,C(s,"transform","Normal")),o.skinRequired=C(s,"skin",!1);let h=C(s,"color",null);h&&o.color.setFromString(h),t.bones.push(o)}if(a.slots)for(let m=0;m<a.slots.length;m++){let s=a.slots[m],n=t.findBone(s.bone),l=new gt(t.slots.length,s.name,n),o=C(s,"color",null);o&&l.color.setFromString(o);let h=C(s,"dark",null);h&&(l.darkColor=R.fromString(h)),l.attachmentName=C(s,"attachment",null),l.blendMode=P.enumValue(St,C(s,"blend","normal")),t.slots.push(l)}if(a.ik)for(let m=0;m<a.ik.length;m++){let s=a.ik[m],n=new ut(s.name);n.order=C(s,"order",0),n.skinRequired=C(s,"skin",!1);for(let l=0;l<s.bones.length;l++)n.bones.push(t.findBone(s.bones[l]));n.target=t.findBone(s.target),n.mix=C(s,"mix",1),n.softness=C(s,"softness",0)*r,n.bendDirection=C(s,"bendPositive",!0)?1:-1,n.compress=C(s,"compress",!1),n.stretch=C(s,"stretch",!1),n.uniform=C(s,"uniform",!1),t.ikConstraints.push(n)}if(a.transform)for(let m=0;m<a.transform.length;m++){let s=a.transform[m],n=new bt(s.name);n.order=C(s,"order",0),n.skinRequired=C(s,"skin",!1);for(let o=0;o<s.bones.length;o++)n.bones.push(t.findBone(s.bones[o]));let l=s.target;n.target=t.findBone(l),n.local=C(s,"local",!1),n.relative=C(s,"relative",!1),n.offsetRotation=C(s,"rotation",0),n.offsetX=C(s,"x",0)*r,n.offsetY=C(s,"y",0)*r,n.offsetScaleX=C(s,"scaleX",0),n.offsetScaleY=C(s,"scaleY",0),n.offsetShearY=C(s,"shearY",0),n.mixRotate=C(s,"mixRotate",1),n.mixX=C(s,"mixX",1),n.mixY=C(s,"mixY",n.mixX),n.mixScaleX=C(s,"mixScaleX",1),n.mixScaleY=C(s,"mixScaleY",n.mixScaleX),n.mixShearY=C(s,"mixShearY",1),t.transformConstraints.push(n)}if(a.path)for(let m=0;m<a.path.length;m++){let s=a.path[m],n=new dt(s.name);n.order=C(s,"order",0),n.skinRequired=C(s,"skin",!1);for(let o=0;o<s.bones.length;o++)n.bones.push(t.findBone(s.bones[o]));let l=s.target;n.target=t.findSlot(l),n.positionMode=P.enumValue(oe,C(s,"positionMode","Percent")),n.spacingMode=P.enumValue(Z,C(s,"spacingMode","Length")),n.rotateMode=P.enumValue(Se,C(s,"rotateMode","Tangent")),n.offsetRotation=C(s,"rotation",0),n.position=C(s,"position",0),n.positionMode==oe.Fixed&&(n.position*=r),n.spacing=C(s,"spacing",0),(n.spacingMode==Z.Length||n.spacingMode==Z.Fixed)&&(n.spacing*=r),n.mixRotate=C(s,"mixRotate",1),n.mixX=C(s,"mixX",1),n.mixY=C(s,"mixY",n.mixX),t.pathConstraints.push(n)}if(a.skins)for(let m=0;m<a.skins.length;m++){let s=a.skins[m],n=new Le(s.name);if(s.bones)for(let l=0;l<s.bones.length;l++)n.bones.push(t.findBone(s.bones[l]));if(s.ik)for(let l=0;l<s.ik.length;l++)n.constraints.push(t.findIkConstraint(s.ik[l]));if(s.transform)for(let l=0;l<s.transform.length;l++)n.constraints.push(t.findTransformConstraint(s.transform[l]));if(s.path)for(let l=0;l<s.path.length;l++)n.constraints.push(t.findPathConstraint(s.path[l]));for(let l in s.attachments){let o=t.findSlot(l),h=s.attachments[l];for(let c in h){let u=this.readAttachment(h[c],n,o.index,c,t);u&&n.setAttachment(o.index,c,u)}}t.skins.push(n),n.name=="default"&&(t.defaultSkin=n)}for(let m=0,s=this.linkedMeshes.length;m<s;m++){let n=this.linkedMeshes[m],o=(n.skin?t.findSkin(n.skin):t.defaultSkin).getAttachment(n.slotIndex,n.parent);n.mesh.deformAttachment=n.inheritDeform?o:n.mesh,n.mesh.setParentMesh(o),n.mesh.updateUVs()}if(this.linkedMeshes.length=0,a.events)for(let m in a.events){let s=a.events[m],n=new ct(m);n.intValue=C(s,"int",0),n.floatValue=C(s,"float",0),n.stringValue=C(s,"string",""),n.audioPath=C(s,"audio",null),n.audioPath&&(n.volume=C(s,"volume",1),n.balance=C(s,"balance",0)),t.events.push(n)}if(a.animations)for(let m in a.animations){let s=a.animations[m];this.readAnimation(s,m,t)}return t}readAttachment(e,r,t,a,i){let m=this.scale;switch(a=C(e,"name",a),C(e,"type","region")){case"region":{let s=C(e,"path",a),n=this.attachmentLoader.newRegionAttachment(r,a,s);if(!n)return null;n.path=s,n.x=C(e,"x",0)*m,n.y=C(e,"y",0)*m,n.scaleX=C(e,"scaleX",1),n.scaleY=C(e,"scaleY",1),n.rotation=C(e,"rotation",0),n.width=e.width*m,n.height=e.height*m;let l=C(e,"color",null);return l&&n.color.setFromString(l),n.updateOffset(),n}case"boundingbox":{let s=this.attachmentLoader.newBoundingBoxAttachment(r,a);if(!s)return null;this.readVertices(e,s,e.vertexCount<<1);let n=C(e,"color",null);return n&&s.color.setFromString(n),s}case"mesh":case"linkedmesh":{let s=C(e,"path",a),n=this.attachmentLoader.newMeshAttachment(r,a,s);if(!n)return null;n.path=s;let l=C(e,"color",null);l&&n.color.setFromString(l),n.width=C(e,"width",0)*m,n.height=C(e,"height",0)*m;let o=C(e,"parent",null);if(o)return this.linkedMeshes.push(new Dr(n,C(e,"skin",null),t,o,C(e,"deform",!0))),n;let h=e.uvs;return this.readVertices(e,n,h.length),n.triangles=e.triangles,n.regionUVs=h,n.updateUVs(),n.edges=C(e,"edges",null),n.hullLength=C(e,"hull",0)*2,n}case"path":{let s=this.attachmentLoader.newPathAttachment(r,a);if(!s)return null;s.closed=C(e,"closed",!1),s.constantSpeed=C(e,"constantSpeed",!0);let n=e.vertexCount;this.readVertices(e,s,n<<1);let l=P.newArray(n/3,0);for(let h=0;h<e.lengths.length;h++)l[h]=e.lengths[h]*m;s.lengths=l;let o=C(e,"color",null);return o&&s.color.setFromString(o),s}case"point":{let s=this.attachmentLoader.newPointAttachment(r,a);if(!s)return null;s.x=C(e,"x",0)*m,s.y=C(e,"y",0)*m,s.rotation=C(e,"rotation",0);let n=C(e,"color",null);return n&&s.color.setFromString(n),s}case"clipping":{let s=this.attachmentLoader.newClippingAttachment(r,a);if(!s)return null;let n=C(e,"end",null);n&&(s.endSlot=i.findSlot(n));let l=e.vertexCount;this.readVertices(e,s,l<<1);let o=C(e,"color",null);return o&&s.color.setFromString(o),s}}return null}readVertices(e,r,t){let a=this.scale;r.worldVerticesLength=t;let i=e.vertices;if(t==i.length){let n=P.toFloatArray(i);if(a!=1)for(let l=0,o=i.length;l<o;l++)n[l]*=a;r.vertices=n;return}let m=new Array,s=new Array;for(let n=0,l=i.length;n<l;){let o=i[n++];s.push(o);for(let h=n+o*4;n<h;n+=4)s.push(i[n]),m.push(i[n+1]*a),m.push(i[n+2]*a),m.push(i[n+3])}r.bones=s,r.vertices=P.toFloatArray(m)}readAnimation(e,r,t){let a=this.scale,i=new Array;if(e.slots)for(let s in e.slots){let n=e.slots[s],l=t.findSlotIndex(s);for(let o in n){let h=n[o];if(!!h){if(o=="attachment"){let c=new de(h.length,l);for(let u=0;u<h.length;u++){let d=h[u];c.setFrame(u,C(d,"time",0),d.name)}i.push(c)}else if(o=="rgba"){let c=new Je(h.length,h.length<<2,l),u=h[0],d=C(u,"time",0),f=R.fromString(u.color);for(let b=0,y=0;;b++){c.setFrame(b,d,f.r,f.g,f.b,f.a);let A=h[b+1];if(!A){c.shrink(y);break}let g=C(A,"time",0),p=R.fromString(A.color),x=u.curve;x&&(y=q(x,c,y,b,0,d,g,f.r,p.r,1),y=q(x,c,y,b,1,d,g,f.g,p.g,1),y=q(x,c,y,b,2,d,g,f.b,p.b,1),y=q(x,c,y,b,3,d,g,f.a,p.a,1)),d=g,f=p,u=A}i.push(c)}else if(o=="rgb"){let c=new Qe(h.length,h.length*3,l),u=h[0],d=C(u,"time",0),f=R.fromString(u.color);for(let b=0,y=0;;b++){c.setFrame(b,d,f.r,f.g,f.b);let A=h[b+1];if(!A){c.shrink(y);break}let g=C(A,"time",0),p=R.fromString(A.color),x=u.curve;x&&(y=q(x,c,y,b,0,d,g,f.r,p.r,1),y=q(x,c,y,b,1,d,g,f.g,p.g,1),y=q(x,c,y,b,2,d,g,f.b,p.b,1)),d=g,f=p,u=A}i.push(c)}else if(o=="alpha")i.push(Ae(h,new Ze(h.length,h.length,l),0,1));else if(o=="rgba2"){let c=new Ke(h.length,h.length*7,l),u=h[0],d=C(u,"time",0),f=R.fromString(u.light),b=R.fromString(u.dark);for(let y=0,A=0;;y++){c.setFrame(y,d,f.r,f.g,f.b,f.a,b.r,b.g,b.b);let g=h[y+1];if(!g){c.shrink(A);break}let p=C(g,"time",0),x=R.fromString(g.light),w=R.fromString(g.dark),k=u.curve;k&&(A=q(k,c,A,y,0,d,p,f.r,x.r,1),A=q(k,c,A,y,1,d,p,f.g,x.g,1),A=q(k,c,A,y,2,d,p,f.b,x.b,1),A=q(k,c,A,y,3,d,p,f.a,x.a,1),A=q(k,c,A,y,4,d,p,b.r,w.r,1),A=q(k,c,A,y,5,d,p,b.g,w.g,1),A=q(k,c,A,y,6,d,p,b.b,w.b,1)),d=p,f=x,b=w,u=g}i.push(c)}else if(o=="rgb2"){let c=new et(h.length,h.length*6,l),u=h[0],d=C(u,"time",0),f=R.fromString(u.light),b=R.fromString(u.dark);for(let y=0,A=0;;y++){c.setFrame(y,d,f.r,f.g,f.b,b.r,b.g,b.b);let g=h[y+1];if(!g){c.shrink(A);break}let p=C(g,"time",0),x=R.fromString(g.light),w=R.fromString(g.dark),k=u.curve;k&&(A=q(k,c,A,y,0,d,p,f.r,x.r,1),A=q(k,c,A,y,1,d,p,f.g,x.g,1),A=q(k,c,A,y,2,d,p,f.b,x.b,1),A=q(k,c,A,y,3,d,p,b.r,w.r,1),A=q(k,c,A,y,4,d,p,b.g,w.g,1),A=q(k,c,A,y,5,d,p,b.b,w.b,1)),d=p,f=x,b=w,u=g}i.push(c)}}}}if(e.bones)for(let s in e.bones){let n=e.bones[s],l=t.findBoneIndex(s);for(let o in n){let h=n[o];if(h.length!=0){if(o==="rotate")i.push(Ae(h,new ke(h.length,h.length,l),0,1));else if(o==="translate"){let c=new Oe(h.length,h.length<<1,l);i.push(sr(h,c,"x","y",0,a))}else if(o==="translatex"){let c=new We(h.length,h.length,l);i.push(Ae(h,c,0,a))}else if(o==="translatey"){let c=new ze(h.length,h.length,l);i.push(Ae(h,c,0,a))}else if(o==="scale"){let c=new qe(h.length,h.length<<1,l);i.push(sr(h,c,"x","y",1,1))}else if(o==="scalex"){let c=new He(h.length,h.length,l);i.push(Ae(h,c,1,1))}else if(o==="scaley"){let c=new Ge(h.length,h.length,l);i.push(Ae(h,c,1,1))}else if(o==="shear"){let c=new je(h.length,h.length<<1,l);i.push(sr(h,c,"x","y",0,1))}else if(o==="shearx"){let c=new $e(h.length,h.length,l);i.push(Ae(h,c,0,1))}else if(o==="sheary"){let c=new _e(h.length,h.length,l);i.push(Ae(h,c,0,1))}}}}if(e.ik)for(let s in e.ik){let n=e.ik[s],l=n[0];if(!l)continue;let o=t.findIkConstraint(s),h=t.ikConstraints.indexOf(o),c=new rt(n.length,n.length<<1,h),u=C(l,"time",0),d=C(l,"mix",1),f=C(l,"softness",0)*a;for(let b=0,y=0;;b++){c.setFrame(b,u,d,f,C(l,"bendPositive",!0)?1:-1,C(l,"compress",!1),C(l,"stretch",!1));let A=n[b+1];if(!A){c.shrink(y);break}let g=C(A,"time",0),p=C(A,"mix",1),x=C(A,"softness",0)*a,w=l.curve;w&&(y=q(w,c,y,b,0,u,g,d,p,1),y=q(w,c,y,b,1,u,g,f,x,a)),u=g,d=p,f=x,l=A}i.push(c)}if(e.transform)for(let s in e.transform){let n=e.transform[s],l=n[0];if(!l)continue;let o=t.findTransformConstraint(s),h=t.transformConstraints.indexOf(o),c=new nt(n.length,n.length<<2,h),u=C(l,"time",0),d=C(l,"mixRotate",1),f=C(l,"mixX",1),b=C(l,"mixY",f),y=C(l,"mixScaleX",1),A=C(l,"mixScaleY",y),g=C(l,"mixShearY",1);for(let p=0,x=0;;p++){c.setFrame(p,u,d,f,b,y,A,g);let w=n[p+1];if(!w){c.shrink(x);break}let k=C(w,"time",0),v=C(w,"mixRotate",1),B=C(w,"mixX",1),I=C(w,"mixY",B),D=C(w,"mixScaleX",1),L=C(w,"mixScaleY",D),E=C(w,"mixShearY",1),F=l.curve;F&&(x=q(F,c,x,p,0,u,k,d,v,1),x=q(F,c,x,p,1,u,k,f,B,1),x=q(F,c,x,p,2,u,k,b,I,1),x=q(F,c,x,p,3,u,k,y,D,1),x=q(F,c,x,p,4,u,k,A,L,1),x=q(F,c,x,p,5,u,k,g,E,1)),u=k,d=v,f=B,b=I,y=D,A=L,y=D,l=w}i.push(c)}if(e.path)for(let s in e.path){let n=e.path[s],l=t.findPathConstraint(s),o=t.pathConstraints.indexOf(l);for(let h in n){let c=n[h],u=c[0];if(!!u){if(h==="position"){let d=new it(c.length,c.length,o);i.push(Ae(c,d,0,l.positionMode==oe.Fixed?a:1))}else if(h==="spacing"){let d=new at(c.length,c.length,o);i.push(Ae(c,d,0,l.spacingMode==Z.Length||l.spacingMode==Z.Fixed?a:1))}else if(h==="mix"){let d=new st(c.size,c.size*3,o),f=C(u,"time",0),b=C(u,"mixRotate",1),y=C(u,"mixX",1),A=C(u,"mixY",y);for(let g=0,p=0;;g++){d.setFrame(g,f,b,y,A);let x=c[g+1];if(!x){d.shrink(p);break}let w=C(x,"time",0),k=C(x,"mixRotate",1),v=C(x,"mixX",1),B=C(x,"mixY",v),I=u.curve;I&&(p=q(I,d,p,g,0,f,w,b,k,1),p=q(I,d,p,g,1,f,w,y,v,1),p=q(I,d,p,g,2,f,w,A,B,1)),f=w,b=k,y=v,A=B,u=x}i.push(d)}}}}if(e.deform)for(let s in e.deform){let n=e.deform[s],l=t.findSkin(s);for(let o in n){let h=n[o],c=t.findSlotIndex(o);for(let u in h){let d=h[u],f=d[0];if(!f)continue;let b=l.getAttachment(c,u),y=b.bones,A=b.vertices,g=y?A.length/3*2:A.length,p=new tt(d.length,d.length,c,b),x=C(f,"time",0);for(let w=0,k=0;;w++){let v,B=C(f,"vertices",null);if(!B)v=y?P.newFloatArray(g):A;else{v=P.newFloatArray(g);let E=C(f,"offset",0);if(P.arrayCopy(B,0,v,E,B.length),a!=1)for(let F=E,T=F+B.length;F<T;F++)v[F]*=a;if(!y)for(let F=0;F<g;F++)v[F]+=A[F]}p.setFrame(w,x,v);let I=d[w+1];if(!I){p.shrink(k);break}let D=C(I,"time",0),L=f.curve;L&&(k=q(L,p,k,w,0,x,D,0,1,1)),x=D,f=I}i.push(p)}}}if(e.drawOrder){let s=new fe(e.drawOrder.length),n=t.slots.length,l=0;for(let o=0;o<e.drawOrder.length;o++,l++){let h=e.drawOrder[o],c=null,u=C(h,"offsets",null);if(u){c=P.newArray(n,-1);let d=P.newArray(n-u.length,0),f=0,b=0;for(let y=0;y<u.length;y++){let A=u[y],g=t.findSlotIndex(A.slot);for(;f!=g;)d[b++]=f++;c[f+A.offset]=f++}for(;f<n;)d[b++]=f++;for(let y=n-1;y>=0;y--)c[y]==-1&&(c[y]=d[--b])}s.setFrame(l,C(h,"time",0),c)}i.push(s)}if(e.events){let s=new ve(e.events.length),n=0;for(let l=0;l<e.events.length;l++,n++){let o=e.events[l],h=t.findEvent(o.name),c=new mt(P.toSinglePrecision(C(o,"time",0)),h);c.intValue=C(o,"int",h.intValue),c.floatValue=C(o,"float",h.floatValue),c.stringValue=C(o,"string",h.stringValue),c.data.audioPath&&(c.volume=C(o,"volume",1),c.balance=C(o,"balance",0)),s.setFrame(n,c)}i.push(s)}let m=0;for(let s=0,n=i.length;s<n;s++)m=Math.max(m,i[s].getDuration());t.animations.push(new Ye(r,i,m))}},Dr=class{constructor(e,r,t,a,i){this.mesh=e,this.skin=r,this.slotIndex=t,this.parent=a,this.inheritDeform=i}};function Ae(Y,e,r,t){let a=Y[0],i=C(a,"time",0),m=C(a,"value",r)*t,s=0;for(let n=0;;n++){e.setFrame(n,i,m);let l=Y[n+1];if(!l)return e.shrink(s),e;let o=C(l,"time",0),h=C(l,"value",r)*t;a.curve&&(s=q(a.curve,e,s,n,0,i,o,m,h,t)),i=o,m=h,a=l}}function sr(Y,e,r,t,a,i){let m=Y[0],s=C(m,"time",0),n=C(m,r,a)*i,l=C(m,t,a)*i,o=0;for(let h=0;;h++){e.setFrame(h,s,n,l);let c=Y[h+1];if(!c)return e.shrink(o),e;let u=C(c,"time",0),d=C(c,r,a)*i,f=C(c,t,a)*i,b=m.curve;b&&(o=q(b,e,o,h,0,s,u,n,d,i),o=q(b,e,o,h,1,s,u,l,f,i)),s=u,n=d,l=f,m=c}}function q(Y,e,r,t,a,i,m,s,n,l){if(Y=="stepped")return e.setStepped(t),r;let o=a<<2,h=Y[o],c=Y[o+1]*l,u=Y[o+2],d=Y[o+3]*l;return e.setBezier(r,t,a,i,s,h,c,u,d,m,n),r+1}function C(Y,e,r){return Y[e]!==void 0?Y[e]:r}(()=>{typeof Math.fround=="undefined"&&(Math.fround=function(Y){return function(e){return Y[0]=e,Y[0]}}(new Float32Array(1)))})();var Er=class{constructor(e,r){this.jitterX=0;this.jitterY=0;this.jitterX=e,this.jitterY=r}begin(e){}transform(e,r,t,a){e.x+=M.randomTriangular(-this.jitterX,this.jitterY),e.y+=M.randomTriangular(-this.jitterX,this.jitterY)}end(){}};var lr=class{constructor(e){this.centerX=0;this.centerY=0;this.radius=0;this.angle=0;this.worldX=0;this.worldY=0;this.radius=e}begin(e){this.worldX=e.x+this.centerX,this.worldY=e.y+this.centerY}transform(e,r,t,a){let i=this.angle*M.degreesToRadians,m=e.x-this.worldX,s=e.y-this.worldY,n=Math.sqrt(m*m+s*s);if(n<this.radius){let l=lr.interpolation.apply(0,i,(this.radius-n)/this.radius),o=Math.cos(l),h=Math.sin(l);e.x=o*m-h*s+this.worldX,e.y=h*m+o*s+this.worldY}}end(){}},or=lr;or.interpolation=new Yt(2);var Nt=class extends wt{constructor(e){super(e)}setFilters(e,r){}setWraps(e,r){}dispose(){}};var Pr=class extends Pt{constructor(e="",r=null){super(t=>new Nt(t),e,r)}};var Tt=class{constructor(e){this.triangleRendering=!1;this.debugRendering=!1;this.vertices=P.newFloatArray(8*1024);this.tempColor=new R;this.ctx=e}draw(e){this.triangleRendering?this.drawTriangles(e):this.drawImages(e)}drawImages(e){let r=this.ctx,t=this.tempColor,a=e.color,i=e.drawOrder;this.debugRendering&&(r.strokeStyle="green");for(let m=0,s=i.length;m<s;m++){let n=i[m],l=n.bone;if(!l.active)continue;let o=n.getAttachment();if(!(o instanceof V))continue;let h=o.region,c=h.page.texture.getImage(),u=n.color,d=o.color;t.set(a.r*u.r*d.r,a.g*u.g*d.g,a.b*u.b*d.b,a.a*u.a*d.a),r.save(),r.transform(l.a,l.c,l.b,l.d,l.worldX,l.worldY),r.translate(o.offset[0],o.offset[1]),r.rotate(o.rotation*Math.PI/180);let f=o.width/h.originalWidth;r.scale(f*o.scaleX,f*o.scaleY);let b=h.width,y=h.height;if(r.translate(b/2,y/2),o.region.degrees==90){let A=b;b=y,y=A,r.rotate(-Math.PI/2)}r.scale(1,-1),r.translate(-b/2,-y/2),(t.r!=1||t.g!=1||t.b!=1||t.a!=1)&&(r.globalAlpha=t.a),r.drawImage(c,h.x,h.y,b,y,0,0,b,y),this.debugRendering&&r.strokeRect(0,0,b,y),r.restore()}}drawTriangles(e){let r=this.ctx,t=this.tempColor,a=e.color,i=e.drawOrder,m=null,s=this.vertices,n=null;for(let o=0,h=i.length;o<h;o++){let c=i[o],u=c.getAttachment(),d,f;if(u instanceof V){let b=u;s=this.computeRegionVertices(c,b,!1),n=Tt.QUAD_TRIANGLES,f=b.region,d=f.page.texture.getImage()}else if(u instanceof se){let b=u;s=this.computeMeshVertices(c,b,!1),n=b.triangles,d=b.region.renderObject.page.texture.getImage()}else continue;if(d){c.data.blendMode!=m&&(m=c.data.blendMode);let b=c.color,y=u.color;t.set(a.r*b.r*y.r,a.g*b.g*y.g,a.b*b.b*y.b,a.a*b.a*y.a),(t.r!=1||t.g!=1||t.b!=1||t.a!=1)&&(r.globalAlpha=t.a);for(var l=0;l<n.length;l+=3){let A=n[l]*8,g=n[l+1]*8,p=n[l+2]*8,x=s[A],w=s[A+1],k=s[A+6],v=s[A+7],B=s[g],I=s[g+1],D=s[g+6],L=s[g+7],E=s[p],F=s[p+1],T=s[p+6],X=s[p+7];this.drawTriangle(d,x,w,k,v,B,I,D,L,E,F,T,X),this.debugRendering&&(r.strokeStyle="green",r.beginPath(),r.moveTo(x,w),r.lineTo(B,I),r.lineTo(E,F),r.lineTo(x,w),r.stroke())}}}this.ctx.globalAlpha=1}drawTriangle(e,r,t,a,i,m,s,n,l,o,h,c,u){let d=this.ctx;a*=e.width,i*=e.height,n*=e.width,l*=e.height,c*=e.width,u*=e.height,d.beginPath(),d.moveTo(r,t),d.lineTo(m,s),d.lineTo(o,h),d.closePath(),m-=r,s-=t,o-=r,h-=t,n-=a,l-=i,c-=a,u-=i;var f=1/(n*u-c*l),b=(u*m-l*o)*f,y=(u*s-l*h)*f,A=(n*o-c*m)*f,g=(n*h-c*s)*f,p=r-b*a-A*i,x=t-y*a-g*i;d.save(),d.transform(b,y,A,g,p,x),d.clip(),d.drawImage(e,0,0),d.restore()}computeRegionVertices(e,r,t){let a=e.bone.skeleton.color,i=e.color,m=r.color,s=a.a*i.a*m.a,n=t?s:1,l=this.tempColor;l.set(a.r*i.r*m.r*n,a.g*i.g*m.g*n,a.b*i.b*m.b*n,s),r.computeWorldVertices(e.bone,this.vertices,0,Tt.VERTEX_SIZE);let o=this.vertices,h=r.uvs;return o[V.C1R]=l.r,o[V.C1G]=l.g,o[V.C1B]=l.b,o[V.C1A]=l.a,o[V.U1]=h[0],o[V.V1]=h[1],o[V.C2R]=l.r,o[V.C2G]=l.g,o[V.C2B]=l.b,o[V.C2A]=l.a,o[V.U2]=h[2],o[V.V2]=h[3],o[V.C3R]=l.r,o[V.C3G]=l.g,o[V.C3B]=l.b,o[V.C3A]=l.a,o[V.U3]=h[4],o[V.V3]=h[5],o[V.C4R]=l.r,o[V.C4G]=l.g,o[V.C4B]=l.b,o[V.C4A]=l.a,o[V.U4]=h[6],o[V.V4]=h[7],o}computeMeshVertices(e,r,t){let a=e.bone.skeleton.color,i=e.color,m=r.color,s=a.a*i.a*m.a,n=t?s:1,l=this.tempColor;l.set(a.r*i.r*m.r*n,a.g*i.g*m.g*n,a.b*i.b*m.b*n,s);let o=r.worldVerticesLength/2,h=this.vertices;h.length<r.worldVerticesLength&&(this.vertices=h=P.newFloatArray(r.worldVerticesLength)),r.computeWorldVertices(e,0,r.worldVerticesLength,h,0,Tt.VERTEX_SIZE);let c=r.uvs;for(let u=0,d=0,f=2;u<o;u++)h[f++]=l.r,h[f++]=l.g,h[f++]=l.b,h[f++]=l.a,h[f++]=c[d++],h[f++]=c[d++],f+=2;return h}},Ot=Tt;Ot.QUAD_TRIANGLES=[0,1,2,2,3,0],Ot.VERTEX_SIZE=2+2+4;var hr=eval("src_exports");hr&&(hr.canvas=hr);return nn;})();
|
|
//# sourceMappingURL=spine-canvas.js.map
|