"use strict";(()=>{var M=Uint8Array,G=Uint16Array,ot=Uint32Array,ft=new M([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),lt=new M([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),xt=new M([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ht=function(i,e){for(var t=new G(31),r=0;r<31;++r)t[r]=e+=1<>>1|(p&21845)<<1,P=(P&52428)>>>2|(P&13107)<<2,P=(P&61680)>>>4|(P&3855)<<4,tt[p]=((P&65280)>>>8|(P&255)<<8)>>>1;var P,p,K=function(i,e,t){for(var r=i.length,s=0,o=new G(e);s>>a]=h}else for(u=new G(r),s=0;s>>15-i[s]);return u},H=new M(288);for(p=0;p<144;++p)H[p]=8;var p;for(p=144;p<256;++p)H[p]=9;var p;for(p=256;p<280;++p)H[p]=7;var p;for(p=280;p<288;++p)H[p]=8;var p,pt=new M(32);for(p=0;p<32;++p)pt[p]=5;var p;var It=K(H,9,1);var At=K(pt,5,1),W=function(i){for(var e=i[0],t=1;te&&(e=i[t]);return e},U=function(i,e,t){var r=e/8|0;return(i[r]|i[r+1]<<8)>>(e&7)&t},J=function(i,e){var t=e/8|0;return(i[t]|i[t+1]<<8|i[t+2]<<16)>>(e&7)},yt=function(i){return(i+7)/8|0},St=function(i,e,t){(e==null||e<0)&&(e=0),(t==null||t>i.length)&&(t=i.length);var r=new(i.BYTES_PER_ELEMENT==2?G:i.BYTES_PER_ELEMENT==4?ot:M)(t-e);return r.set(i.subarray(e,t)),r};var Tt=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],D=function(i,e,t){var r=new Error(e||Tt[i]);if(r.code=i,Error.captureStackTrace&&Error.captureStackTrace(r,D),!t)throw r;return r},et=function(i,e,t){var r=i.length;if(!r||t&&t.f&&!t.l)return e||new M(0);var s=!e||t,o=!t||t.i;t||(t={}),e||(e=new M(r*3));var n=function(rt){var st=e.length;if(rt>st){var at=new M(Math.max(st*2,rt));at.set(e),e=at}},u=t.f||0,a=t.p||0,h=t.b||0,c=t.l,l=t.d,v=t.m,x=t.n,m=r*8;do{if(!c){u=U(i,a,1);var d=U(i,a+1,3);if(a+=3,d)if(d==1)c=It,l=At,v=9,x=5;else if(d==2){var B=U(i,a,31)+257,L=U(i,a+10,15)+4,b=B+U(i,a+5,31)+1;a+=14;for(var O=new M(b),R=new M(19),y=0;y>>4;if(E<16)O[y++]=E;else{var _=0,C=0;for(E==16?(C=3+U(i,a,3),a+=2,_=O[y-1]):E==17?(C=3+U(i,a,7),a+=3):E==18&&(C=11+U(i,a,127),a+=7);C--;)O[y++]=_}}var N=O.subarray(0,B),I=O.subarray(B);v=W(N),x=W(I),c=K(N,v,1),l=K(I,x,1)}else D(1);else{var E=yt(a)+4,T=i[E-4]|i[E-3]<<8,A=E+T;if(A>r){o&&D(0);break}s&&n(h+T),e.set(i.subarray(E,A),h),t.b=h+=T,t.p=a=A*8,t.f=u;continue}if(a>m){o&&D(0);break}}s&&n(h+131072);for(var z=(1<>>4;if(a+=_&15,a>m){o&&D(0);break}if(_||D(2),Y<256)e[h++]=Y;else if(Y==256){F=a,c=null;break}else{var it=Y-254;if(Y>264){var y=Y-257,V=ft[y];it=U(i,a,(1<>>4;j||D(3),a+=j&15;var I=_t[$];if($>3){var V=lt[$];I+=J(i,a)&(1<m){o&&D(0);break}s&&n(h+131072);for(var nt=h+it;h>3&1)+(e>>4&1);r>0;r-=!i[t++]);return t+(e&2)},Mt=function(i){var e=i.length;return(i[e-4]|i[e-3]<<8|i[e-2]<<16|i[e-1]<<24)>>>0};var Ft=function(i){((i[0]&15)!=8||i[0]>>>4>7||(i[0]<<8|i[1])%31)&&D(6,"invalid zlib data"),i[1]&32&&D(6,"invalid zlib data: preset dictionaries not supported")};function Nt(i,e){return et(i,e)}function Ut(i,e){return et(i.subarray(Ct(i),-8),e||new M(Mt(i)))}function Dt(i,e){return et((Ft(i),i.subarray(2,-4)),e)}function gt(i,e){return i[0]==31&&i[1]==139&&i[2]==8?Ut(i,e):(i[0]&15)!=8||i[0]>>4>7||(i[0]<<8|i[1])%31?Nt(i,e):Dt(i,e)}var zt=typeof TextDecoder<"u"&&new TextDecoder,qt=0;try{zt.decode(wt,{stream:!0}),qt=1}catch{}var Q=class{esize;ecode;edata;littleEndian;constructor(e,t,r,s){if(e%16!=0)throw new Error("This does not appear to be a NIFTI extension");this.esize=e,this.ecode=t,this.edata=r,this.littleEndian=s}toArrayBuffer(){let e=new Uint8Array(this.esize),t=new Uint8Array(this.edata);e.set(t,8);let r=new DataView(e.buffer);return r.setInt32(0,this.esize,this.littleEndian),r.setInt32(4,this.ecode,this.littleEndian),e.buffer}};var f=class i{static crcTable=null;static GUNZIP_MAGIC_COOKIE1=31;static GUNZIP_MAGIC_COOKIE2=139;static getStringAt(e,t,r){var s="",o,n;for(o=t;os&&(u=!u,a=i.getIntAt(e,n,u),a+n>s))throw new Error("This does not appear to be a valid NIFTI extension");if(a%16!=0)throw new Error("This does not appear to be a NIFTI extension");let h=i.getIntAt(e,n+4,u),c=e.buffer.slice(n+8,n+a),l=new Q(a,h,c,u);o.push(l),n+=a}return o}static toArrayBuffer(e){var t,r,s;for(t=new ArrayBuffer(e.length),r=new Uint8Array(t),s=0;s>>1:e>>>1;t[r]=e}return t}static crc32(e){i.crcTable||(i.crcTable=i.makeCRCTable());let t=i.crcTable,r=-1;for(var s=0;s>>8^t[(r^e.getUint8(s))&255];return(r^-1)>>>0}};var g=class i{littleEndian=!1;dim_info=0;dims=[];intent_p1=0;intent_p2=0;intent_p3=0;intent_code=0;datatypeCode=0;numBitsPerVoxel=0;slice_start=0;slice_end=0;slice_code=0;pixDims=[];vox_offset=0;scl_slope=1;scl_inter=0;xyzt_units=0;cal_max=0;cal_min=0;slice_duration=0;toffset=0;description="";aux_file="";intent_name="";qform_code=0;sform_code=0;quatern_a=0;quatern_b=0;quatern_c=0;quatern_d=0;qoffset_x=0;qoffset_y=0;qoffset_z=0;affine=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];qfac=1;quatern_R;magic="0";isHDR=!1;extensionFlag=[0,0,0,0];extensionSize=0;extensionCode=0;extensions=[];static TYPE_NONE=0;static TYPE_BINARY=1;static TYPE_UINT8=2;static TYPE_INT16=4;static TYPE_INT32=8;static TYPE_FLOAT32=16;static TYPE_COMPLEX64=32;static TYPE_FLOAT64=64;static TYPE_RGB24=128;static TYPE_INT8=256;static TYPE_UINT16=512;static TYPE_UINT32=768;static TYPE_INT64=1024;static TYPE_UINT64=1280;static TYPE_FLOAT128=1536;static TYPE_COMPLEX128=1792;static TYPE_COMPLEX256=2048;static XFORM_UNKNOWN=0;static XFORM_SCANNER_ANAT=1;static XFORM_ALIGNED_ANAT=2;static XFORM_TALAIRACH=3;static XFORM_MNI_152=4;static SPATIAL_UNITS_MASK=7;static TEMPORAL_UNITS_MASK=56;static UNITS_UNKNOWN=0;static UNITS_METER=1;static UNITS_MM=2;static UNITS_MICRON=3;static UNITS_SEC=8;static UNITS_MSEC=16;static UNITS_USEC=24;static UNITS_HZ=32;static UNITS_PPM=40;static UNITS_RADS=48;static MAGIC_COOKIE=348;static STANDARD_HEADER_SIZE=348;static MAGIC_NUMBER_LOCATION=344;static MAGIC_NUMBER=[110,43,49];static MAGIC_NUMBER2=[110,105,49];static EXTENSION_HEADER_SIZE=8;readHeader(e){var t=new DataView(e),r=f.getIntAt(t,0,this.littleEndian),s,o,n,u;if(r!==i.MAGIC_COOKIE&&(this.littleEndian=!0,r=f.getIntAt(t,0,this.littleEndian)),r!==i.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.dim_info=f.getByteAt(t,39),s=0;s<8;s+=1)u=40+s*2,this.dims[s]=f.getShortAt(t,u,this.littleEndian);for(this.intent_p1=f.getFloatAt(t,56,this.littleEndian),this.intent_p2=f.getFloatAt(t,60,this.littleEndian),this.intent_p3=f.getFloatAt(t,64,this.littleEndian),this.intent_code=f.getShortAt(t,68,this.littleEndian),this.datatypeCode=f.getShortAt(t,70,this.littleEndian),this.numBitsPerVoxel=f.getShortAt(t,72,this.littleEndian),this.slice_start=f.getShortAt(t,74,this.littleEndian),s=0;s<8;s+=1)u=76+s*4,this.pixDims[s]=f.getFloatAt(t,u,this.littleEndian);if(this.vox_offset=f.getFloatAt(t,108,this.littleEndian),this.scl_slope=f.getFloatAt(t,112,this.littleEndian),this.scl_inter=f.getFloatAt(t,116,this.littleEndian),this.slice_end=f.getShortAt(t,120,this.littleEndian),this.slice_code=f.getByteAt(t,122),this.xyzt_units=f.getByteAt(t,123),this.cal_max=f.getFloatAt(t,124,this.littleEndian),this.cal_min=f.getFloatAt(t,128,this.littleEndian),this.slice_duration=f.getFloatAt(t,132,this.littleEndian),this.toffset=f.getFloatAt(t,136,this.littleEndian),this.description=f.getStringAt(t,148,228),this.aux_file=f.getStringAt(t,228,252),this.qform_code=f.getShortAt(t,252,this.littleEndian),this.sform_code=f.getShortAt(t,254,this.littleEndian),this.quatern_b=f.getFloatAt(t,256,this.littleEndian),this.quatern_c=f.getFloatAt(t,260,this.littleEndian),this.quatern_d=f.getFloatAt(t,264,this.littleEndian),this.quatern_a=Math.sqrt(1-(Math.pow(this.quatern_b,2)+Math.pow(this.quatern_c,2)+Math.pow(this.quatern_d,2))),this.qoffset_x=f.getFloatAt(t,268,this.littleEndian),this.qoffset_y=f.getFloatAt(t,272,this.littleEndian),this.qoffset_z=f.getFloatAt(t,276,this.littleEndian),this.qform_code<1&&this.sform_code<1&&(this.affine[0][0]=this.pixDims[1],this.affine[1][1]=this.pixDims[2],this.affine[2][2]=this.pixDims[3]),this.qform_code>0&&this.sform_code0)for(o=0;o<3;o+=1)for(n=0;n<4;n+=1)u=280+(o*4+n)*4,this.affine[o][n]=f.getFloatAt(t,u,this.littleEndian);if(this.affine[3][0]=0,this.affine[3][1]=0,this.affine[3][2]=0,this.affine[3][3]=1,this.intent_name=f.getStringAt(t,328,344),this.magic=f.getStringAt(t,344,348),this.isHDR=this.magic===String.fromCharCode.apply(null,i.MAGIC_NUMBER2),t.byteLength>i.MAGIC_COOKIE){this.extensionFlag[0]=f.getByteAt(t,348),this.extensionFlag[1]=f.getByteAt(t,349),this.extensionFlag[2]=f.getByteAt(t,350),this.extensionFlag[3]=f.getByteAt(t,351);let a=!0;!this.isHDR&&this.vox_offset<=352&&(a=!1),t.byteLength<=368&&(a=!1),a&&this.extensionFlag[0]&&(this.extensions=f.getExtensionsAt(t,this.getExtensionLocation(),this.littleEndian,this.vox_offset),this.extensionSize=this.extensions[0].esize,this.extensionCode=this.extensions[0].ecode)}}toFormattedString(){var e=f.formatNumber,t="";return t+="Dim Info = "+this.dim_info+` `,t+="Image Dimensions (1-8): "+this.dims[0]+", "+this.dims[1]+", "+this.dims[2]+", "+this.dims[3]+", "+this.dims[4]+", "+this.dims[5]+", "+this.dims[6]+", "+this.dims[7]+` `,t+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+` `,t+="Intent Code = "+this.intent_code+` `,t+="Datatype = "+this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+`) `,t+="Bits Per Voxel = "+this.numBitsPerVoxel+` `,t+="Slice Start = "+this.slice_start+` `,t+="Voxel Dimensions (1-8): "+e(this.pixDims[0])+", "+e(this.pixDims[1])+", "+e(this.pixDims[2])+", "+e(this.pixDims[3])+", "+e(this.pixDims[4])+", "+e(this.pixDims[5])+", "+e(this.pixDims[6])+", "+e(this.pixDims[7])+` `,t+="Image Offset = "+this.vox_offset+` `,t+="Data Scale: Slope = "+e(this.scl_slope)+" Intercept = "+e(this.scl_inter)+` `,t+="Slice End = "+this.slice_end+` `,t+="Slice Code = "+this.slice_code+` `,t+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(i.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(i.TEMPORAL_UNITS_MASK&this.xyzt_units)+`) `,t+="Display Range: Max = "+e(this.cal_max)+" Min = "+e(this.cal_min)+` `,t+="Slice Duration = "+this.slice_duration+` `,t+="Time Axis Shift = "+this.toffset+` `,t+='Description: "'+this.description+`" `,t+='Auxiliary File: "'+this.aux_file+`" `,t+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+`) `,t+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+`) `,t+="Quaternion Parameters: b = "+e(this.quatern_b)+" c = "+e(this.quatern_c)+" d = "+e(this.quatern_d)+` `,t+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+` `,t+="S-Form Parameters X: "+e(this.affine[0][0])+", "+e(this.affine[0][1])+", "+e(this.affine[0][2])+", "+e(this.affine[0][3])+` `,t+="S-Form Parameters Y: "+e(this.affine[1][0])+", "+e(this.affine[1][1])+", "+e(this.affine[1][2])+", "+e(this.affine[1][3])+` `,t+="S-Form Parameters Z: "+e(this.affine[2][0])+", "+e(this.affine[2][1])+", "+e(this.affine[2][2])+", "+e(this.affine[2][3])+` `,t+='Intent Name: "'+this.intent_name+`" `,this.extensionFlag[0]&&(t+="Extension: Size = "+this.extensionSize+" Code = "+this.extensionCode+` `),t}getDatatypeCodeString=function(e){return e===i.TYPE_UINT8?"1-Byte Unsigned Integer":e===i.TYPE_INT16?"2-Byte Signed Integer":e===i.TYPE_INT32?"4-Byte Signed Integer":e===i.TYPE_FLOAT32?"4-Byte Float":e===i.TYPE_FLOAT64?"8-Byte Float":e===i.TYPE_RGB24?"RGB":e===i.TYPE_INT8?"1-Byte Signed Integer":e===i.TYPE_UINT16?"2-Byte Unsigned Integer":e===i.TYPE_UINT32?"4-Byte Unsigned Integer":e===i.TYPE_INT64?"8-Byte Signed Integer":e===i.TYPE_UINT64?"8-Byte Unsigned Integer":"Unknown"};getTransformCodeString=function(e){return e===i.XFORM_SCANNER_ANAT?"Scanner":e===i.XFORM_ALIGNED_ANAT?"Aligned":e===i.XFORM_TALAIRACH?"Talairach":e===i.XFORM_MNI_152?"MNI":"Unknown"};getUnitsCodeString=function(e){return e===i.UNITS_METER?"Meters":e===i.UNITS_MM?"Millimeters":e===i.UNITS_MICRON?"Microns":e===i.UNITS_SEC?"Seconds":e===i.UNITS_MSEC?"Milliseconds":e===i.UNITS_USEC?"Microseconds":e===i.UNITS_HZ?"Hz":e===i.UNITS_PPM?"PPM":e===i.UNITS_RADS?"Rads":"Unknown"};getQformMat(){return this.convertNiftiQFormToNiftiSForm(this.quatern_b,this.quatern_c,this.quatern_d,this.qoffset_x,this.qoffset_y,this.qoffset_z,this.pixDims[1],this.pixDims[2],this.pixDims[3],this.pixDims[0])}convertNiftiQFormToNiftiSForm(e,t,r,s,o,n,u,a,h,c){var l=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],v,x=e,m=t,d=r,E,T,A;return l[3][0]=l[3][1]=l[3][2]=0,l[3][3]=1,v=1-(x*x+m*m+d*d),v<1e-7?(v=1/Math.sqrt(x*x+m*m+d*d),x*=v,m*=v,d*=v,v=0):v=Math.sqrt(v),E=u>0?u:1,T=a>0?a:1,A=h>0?h:1,c<0&&(A=-A),l[0][0]=(v*v+x*x-m*m-d*d)*E,l[0][1]=2*(x*m-v*d)*T,l[0][2]=2*(x*d+v*m)*A,l[1][0]=2*(x*m+v*d)*E,l[1][1]=(v*v+m*m-x*x-d*d)*T,l[1][2]=2*(m*d-v*x)*A,l[2][0]=2*(x*d-v*m)*E,l[2][1]=2*(m*d+v*x)*T,l[2][2]=(v*v+d*d-m*m-x*x)*A,l[0][3]=s,l[1][3]=o,l[2][3]=n,l}convertNiftiSFormToNEMA(e){var t,r,s,o,n,u,a,h,c,l,v,x,m,d,E,T,A,B,L,b,O,R,y,k,Z,X,S,_,C,N,I,z,q,F;if(E=0,S=[[0,0,0],[0,0,0],[0,0,0]],_=[[0,0,0],[0,0,0],[0,0,0]],t=e[0][0],r=e[0][1],s=e[0][2],o=e[1][0],n=e[1][1],u=e[1][2],a=e[2][0],h=e[2][1],c=e[2][2],l=Math.sqrt(t*t+o*o+a*a),l===0||(t/=l,o/=l,a/=l,l=Math.sqrt(r*r+n*n+h*h),l===0))return null;if(r/=l,n/=l,h/=l,l=t*r+o*n+a*h,Math.abs(l)>1e-4){if(r-=l*t,n-=l*o,h-=l*a,l=Math.sqrt(r*r+n*n+h*h),l===0)return null;r/=l,n/=l,h/=l}if(l=Math.sqrt(s*s+u*u+c*c),l===0?(s=o*h-a*n,u=a*r-h*t,c=t*n-o*r):(s/=l,u/=l,c/=l),l=t*s+o*u+a*c,Math.abs(l)>1e-4){if(s-=l*t,u-=l*o,c-=l*a,l=Math.sqrt(s*s+u*u+c*c),l===0)return null;s/=l,u/=l,c/=l}if(l=r*s+n*u+h*c,Math.abs(l)>1e-4){if(s-=l*r,u-=l*n,c-=l*h,l=Math.sqrt(s*s+u*u+c*c),l===0)return null;s/=l,u/=l,c/=l}if(S[0][0]=t,S[0][1]=r,S[0][2]=s,S[1][0]=o,S[1][1]=n,S[1][2]=u,S[2][0]=a,S[2][1]=h,S[2][2]=c,v=this.nifti_mat33_determ(S),v===0)return null;for(X=-666,L=R=y=k=1,b=2,O=3,m=1;m<=3;m+=1)for(d=1;d<=3;d+=1)if(m!==d){for(E=1;E<=3;E+=1)if(!(m===E||d===E))for(_[0][0]=_[0][1]=_[0][2]=_[1][0]=_[1][1]=_[1][2]=_[2][0]=_[2][1]=_[2][2]=0,T=-1;T<=1;T+=2)for(A=-1;A<=1;A+=2)for(B=-1;B<=1;B+=2)_[0][m-1]=T,_[1][d-1]=A,_[2][E-1]=B,x=this.nifti_mat33_determ(_),x*v>0&&(Z=this.nifti_mat33_mul(_,S),l=Z[0][0]+Z[1][1]+Z[2][2],l>X&&(X=l,L=m,b=d,O=E,R=T,y=A,k=B))}switch(C=N=I=z=q=F="",L*R){case 1:C="X",z="+";break;case-1:C="X",z="-";break;case 2:C="Y",z="+";break;case-2:C="Y",z="-";break;case 3:C="Z",z="+";break;case-3:C="Z",z="-";break}switch(b*y){case 1:N="X",q="+";break;case-1:N="X",q="-";break;case 2:N="Y",q="+";break;case-2:N="Y",q="-";break;case 3:N="Z",q="+";break;case-3:N="Z",q="-";break}switch(O*k){case 1:I="X",F="+";break;case-1:I="X",F="-";break;case 2:I="Y",F="+";break;case-2:I="Y",F="-";break;case 3:I="Z",F="+";break;case-3:I="Z",F="-";break}return C+N+I+z+q+F}nifti_mat33_mul=function(e,t){var r=[[0,0,0],[0,0,0],[0,0,0]],s,o;for(s=0;s<3;s+=1)for(o=0;o<3;o+=1)r[s][o]=e[s][0]*t[0][o]+e[s][1]*t[1][o]+e[s][2]*t[2][o];return r};nifti_mat33_determ=function(e){var t,r,s,o,n,u,a,h,c;return t=e[0][0],r=e[0][1],s=e[0][2],o=e[1][0],n=e[1][1],u=e[1][2],a=e[2][0],h=e[2][1],c=e[2][2],t*n*c-t*h*u-o*r*c+o*h*s+a*r*u-a*n*s};getExtensionLocation(){return i.MAGIC_COOKIE+4}getExtensionSize(e){return f.getIntAt(e,this.getExtensionLocation(),this.littleEndian)}getExtensionCode(e){return f.getIntAt(e,this.getExtensionLocation()+4,this.littleEndian)}addExtension(e,t=-1){t==-1?this.extensions.push(e):this.extensions.splice(t,0,e),this.vox_offset+=e.esize}removeExtension(e){let t=this.extensions[e];t&&(this.vox_offset-=t.esize),this.extensions.splice(e,1)}toArrayBuffer(e=!1){let s=352;if(e)for(let a of this.extensions)s+=a.esize;let o=new Uint8Array(s),n=new DataView(o.buffer);n.setInt32(0,348,this.littleEndian),n.setUint8(39,this.dim_info);for(let a=0;a<8;a++)n.setUint16(40+2*a,this.dims[a],this.littleEndian);n.setFloat32(56,this.intent_p1,this.littleEndian),n.setFloat32(60,this.intent_p2,this.littleEndian),n.setFloat32(64,this.intent_p3,this.littleEndian),n.setInt16(68,this.intent_code,this.littleEndian),n.setInt16(70,this.datatypeCode,this.littleEndian),n.setInt16(72,this.numBitsPerVoxel,this.littleEndian),n.setInt16(74,this.slice_start,this.littleEndian);for(let a=0;a<8;a++)n.setFloat32(76+4*a,this.pixDims[a],this.littleEndian);n.setFloat32(108,this.vox_offset,this.littleEndian),n.setFloat32(112,this.scl_slope,this.littleEndian),n.setFloat32(116,this.scl_inter,this.littleEndian),n.setInt16(120,this.slice_end,this.littleEndian),n.setUint8(122,this.slice_code),n.setUint8(123,this.xyzt_units),n.setFloat32(124,this.cal_max,this.littleEndian),n.setFloat32(128,this.cal_min,this.littleEndian),n.setFloat32(132,this.slice_duration,this.littleEndian),n.setFloat32(136,this.toffset,this.littleEndian),o.set(new TextEncoder().encode(this.description),148),o.set(new TextEncoder().encode(this.aux_file),228),n.setInt16(252,this.qform_code,this.littleEndian),n.setInt16(254,this.sform_code,this.littleEndian),n.setFloat32(256,this.quatern_b,this.littleEndian),n.setFloat32(260,this.quatern_c,this.littleEndian),n.setFloat32(264,this.quatern_d,this.littleEndian),n.setFloat32(268,this.qoffset_x,this.littleEndian),n.setFloat32(272,this.qoffset_y,this.littleEndian),n.setFloat32(276,this.qoffset_z,this.littleEndian);let u=this.affine.flat();for(let a=0;a<12;a++)n.setFloat32(280+4*a,u[a],this.littleEndian);if(o.set(new TextEncoder().encode(this.intent_name),328),o.set(new TextEncoder().encode(this.magic),344),e){o.set(Uint8Array.from([1,0,0,0]),348);let a=this.getExtensionLocation();for(let h of this.extensions)n.setInt32(a,h.esize,h.littleEndian),n.setInt32(a+4,h.ecode,h.littleEndian),o.set(new Uint8Array(h.edata),a+8),a+=h.esize}else o.set(new Uint8Array(4).fill(0),348);return o.buffer}};var w=class i{littleEndian=!1;dim_info=0;dims=[];intent_p1=0;intent_p2=0;intent_p3=0;intent_code=0;datatypeCode=0;numBitsPerVoxel=0;slice_start=0;slice_end=0;slice_code=0;pixDims=[];vox_offset=0;scl_slope=1;scl_inter=0;xyzt_units=0;cal_max=0;cal_min=0;slice_duration=0;toffset=0;description="";aux_file="";intent_name="";qform_code=0;sform_code=0;quatern_b=0;quatern_c=0;quatern_d=0;qoffset_x=0;qoffset_y=0;qoffset_z=0;affine=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];magic="0";extensionFlag=[0,0,0,0];extensions=[];extensionSize=0;extensionCode=0;static MAGIC_COOKIE=540;static MAGIC_NUMBER_LOCATION=4;static MAGIC_NUMBER=[110,43,50,0,13,10,26,10];static MAGIC_NUMBER2=[110,105,50,0,13,10,26,10];readHeader(e){var t=new DataView(e),r=f.getIntAt(t,0,this.littleEndian),s,o,n,u,a;if(r!==i.MAGIC_COOKIE&&(this.littleEndian=!0,r=f.getIntAt(t,0,this.littleEndian)),r!==i.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.magic=f.getStringAt(t,4,12),this.datatypeCode=f.getShortAt(t,12,this.littleEndian),this.numBitsPerVoxel=f.getShortAt(t,14,this.littleEndian),s=0;s<8;s+=1)u=16+s*8,this.dims[s]=f.getInt64At(t,u,this.littleEndian);for(this.intent_p1=f.getDoubleAt(t,80,this.littleEndian),this.intent_p2=f.getDoubleAt(t,88,this.littleEndian),this.intent_p3=f.getDoubleAt(t,96,this.littleEndian),s=0;s<8;s+=1)u=104+s*8,this.pixDims[s]=f.getDoubleAt(t,u,this.littleEndian);for(this.vox_offset=f.getInt64At(t,168,this.littleEndian),this.scl_slope=f.getDoubleAt(t,176,this.littleEndian),this.scl_inter=f.getDoubleAt(t,184,this.littleEndian),this.cal_max=f.getDoubleAt(t,192,this.littleEndian),this.cal_min=f.getDoubleAt(t,200,this.littleEndian),this.slice_duration=f.getDoubleAt(t,208,this.littleEndian),this.toffset=f.getDoubleAt(t,216,this.littleEndian),this.slice_start=f.getInt64At(t,224,this.littleEndian),this.slice_end=f.getInt64At(t,232,this.littleEndian),this.description=f.getStringAt(t,240,320),this.aux_file=f.getStringAt(t,320,344),this.qform_code=f.getIntAt(t,344,this.littleEndian),this.sform_code=f.getIntAt(t,348,this.littleEndian),this.quatern_b=f.getDoubleAt(t,352,this.littleEndian),this.quatern_c=f.getDoubleAt(t,360,this.littleEndian),this.quatern_d=f.getDoubleAt(t,368,this.littleEndian),this.qoffset_x=f.getDoubleAt(t,376,this.littleEndian),this.qoffset_y=f.getDoubleAt(t,384,this.littleEndian),this.qoffset_z=f.getDoubleAt(t,392,this.littleEndian),o=0;o<3;o+=1)for(n=0;n<4;n+=1)u=400+(o*4+n)*8,this.affine[o][n]=f.getDoubleAt(t,u,this.littleEndian);this.affine[3][0]=0,this.affine[3][1]=0,this.affine[3][2]=0,this.affine[3][3]=1,this.slice_code=f.getIntAt(t,496,this.littleEndian),this.xyzt_units=f.getIntAt(t,500,this.littleEndian),this.intent_code=f.getIntAt(t,504,this.littleEndian),this.intent_name=f.getStringAt(t,508,524),this.dim_info=f.getByteAt(t,524),t.byteLength>i.MAGIC_COOKIE&&(this.extensionFlag[0]=f.getByteAt(t,540),this.extensionFlag[1]=f.getByteAt(t,541),this.extensionFlag[2]=f.getByteAt(t,542),this.extensionFlag[3]=f.getByteAt(t,543),this.extensionFlag[0]&&(this.extensions=f.getExtensionsAt(t,this.getExtensionLocation(),this.littleEndian,this.vox_offset),this.extensionSize=this.extensions[0].esize,this.extensionCode=this.extensions[0].ecode))}toFormattedString(){var e=f.formatNumber,t="";return t+="Datatype = "+ +this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+`) `,t+="Bits Per Voxel = = "+this.numBitsPerVoxel+` `,t+="Image Dimensions (1-8): "+this.dims[0]+", "+this.dims[1]+", "+this.dims[2]+", "+this.dims[3]+", "+this.dims[4]+", "+this.dims[5]+", "+this.dims[6]+", "+this.dims[7]+` `,t+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+` `,t+="Voxel Dimensions (1-8): "+e(this.pixDims[0])+", "+e(this.pixDims[1])+", "+e(this.pixDims[2])+", "+e(this.pixDims[3])+", "+e(this.pixDims[4])+", "+e(this.pixDims[5])+", "+e(this.pixDims[6])+", "+e(this.pixDims[7])+` `,t+="Image Offset = "+this.vox_offset+` `,t+="Data Scale: Slope = "+e(this.scl_slope)+" Intercept = "+e(this.scl_inter)+` `,t+="Display Range: Max = "+e(this.cal_max)+" Min = "+e(this.cal_min)+` `,t+="Slice Duration = "+this.slice_duration+` `,t+="Time Axis Shift = "+this.toffset+` `,t+="Slice Start = "+this.slice_start+` `,t+="Slice End = "+this.slice_end+` `,t+='Description: "'+this.description+`" `,t+='Auxiliary File: "'+this.aux_file+`" `,t+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+`) `,t+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+`) `,t+="Quaternion Parameters: b = "+e(this.quatern_b)+" c = "+e(this.quatern_c)+" d = "+e(this.quatern_d)+` `,t+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+` `,t+="S-Form Parameters X: "+e(this.affine[0][0])+", "+e(this.affine[0][1])+", "+e(this.affine[0][2])+", "+e(this.affine[0][3])+` `,t+="S-Form Parameters Y: "+e(this.affine[1][0])+", "+e(this.affine[1][1])+", "+e(this.affine[1][2])+", "+e(this.affine[1][3])+` `,t+="S-Form Parameters Z: "+e(this.affine[2][0])+", "+e(this.affine[2][1])+", "+e(this.affine[2][2])+", "+e(this.affine[2][3])+` `,t+="Slice Code = "+this.slice_code+` `,t+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(g.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(g.TEMPORAL_UNITS_MASK&this.xyzt_units)+`) `,t+="Intent Code = "+this.intent_code+` `,t+='Intent Name: "'+this.intent_name+`" `,t+="Dim Info = "+this.dim_info+` `,t}getExtensionLocation=function(){return i.MAGIC_COOKIE+4};getExtensionSize=g.prototype.getExtensionSize;getExtensionCode=g.prototype.getExtensionCode;addExtension=g.prototype.addExtension;removeExtension=g.prototype.removeExtension;getDatatypeCodeString=g.prototype.getDatatypeCodeString;getTransformCodeString=g.prototype.getTransformCodeString;getUnitsCodeString=g.prototype.getUnitsCodeString;getQformMat=g.prototype.getQformMat;convertNiftiQFormToNiftiSForm=g.prototype.convertNiftiQFormToNiftiSForm;convertNiftiSFormToNEMA=g.prototype.convertNiftiSFormToNEMA;nifti_mat33_mul=g.prototype.nifti_mat33_mul;nifti_mat33_determ=g.prototype.nifti_mat33_determ;toArrayBuffer(e=!1){let s=544;if(e)for(let a of this.extensions)s+=a.esize;let o=new Uint8Array(s),n=new DataView(o.buffer);n.setInt32(0,540,this.littleEndian),o.set(new TextEncoder().encode(this.magic),4),n.setInt16(12,this.datatypeCode,this.littleEndian),n.setInt16(14,this.numBitsPerVoxel,this.littleEndian);for(let a=0;a<8;a++)n.setBigInt64(16+8*a,BigInt(this.dims[a]),this.littleEndian);n.setFloat64(80,this.intent_p1,this.littleEndian),n.setFloat64(88,this.intent_p2,this.littleEndian),n.setFloat64(96,this.intent_p3,this.littleEndian);for(let a=0;a<8;a++)n.setFloat64(104+8*a,this.pixDims[a],this.littleEndian);n.setBigInt64(168,BigInt(this.vox_offset),this.littleEndian),n.setFloat64(176,this.scl_slope,this.littleEndian),n.setFloat64(184,this.scl_inter,this.littleEndian),n.setFloat64(192,this.cal_max,this.littleEndian),n.setFloat64(200,this.cal_min,this.littleEndian),n.setFloat64(208,this.slice_duration,this.littleEndian),n.setFloat64(216,this.toffset,this.littleEndian),n.setBigInt64(224,BigInt(this.slice_start),this.littleEndian),n.setBigInt64(232,BigInt(this.slice_end),this.littleEndian),o.set(new TextEncoder().encode(this.description),240),o.set(new TextEncoder().encode(this.aux_file),320),n.setInt32(344,this.qform_code,this.littleEndian),n.setInt32(348,this.sform_code,this.littleEndian),n.setFloat64(352,this.quatern_b,this.littleEndian),n.setFloat64(360,this.quatern_c,this.littleEndian),n.setFloat64(368,this.quatern_d,this.littleEndian),n.setFloat64(376,this.qoffset_x,this.littleEndian),n.setFloat64(384,this.qoffset_y,this.littleEndian),n.setFloat64(392,this.qoffset_z,this.littleEndian);let u=this.affine.flat();for(let a=0;a<12;a++)n.setFloat64(400+8*a,u[a],this.littleEndian);if(n.setInt32(496,this.slice_code,this.littleEndian),n.setInt32(500,this.xyzt_units,this.littleEndian),n.setInt32(504,this.intent_code,this.littleEndian),o.set(new TextEncoder().encode(this.intent_name),508),n.setUint8(524,this.dim_info),e){o.set(Uint8Array.from([1,0,0,0]),540);let a=this.getExtensionLocation();for(let h of this.extensions)n.setInt32(a,h.esize,h.littleEndian),n.setInt32(a+4,h.ecode,h.littleEndian),o.set(new Uint8Array(h.edata),a+8),a+=h.esize}else o.set(new Uint8Array(4).fill(0),540);return o.buffer}};function mt(i,e=!1){var t,r,s,o;return i.byteLength