@fnndsc/argus 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import{c4 as Jf,c5 as Ai,c6 as Xo,c7 as Yf,c8 as Xf,c9 as Kf,ca as Qf,cb as ec,cc as tc,cd as rc,ce as nc,cf as ac,cg as ic,ch as oc,ci as sc,cj as lc,ck as fc,cl as cc,cm as uc,cn as dc,co as hc,bi as vn,t as Pa,e as xa,ah as _n,cp as ll,aN as fl,au as pc,aV as vc,K as gc,bP as _c,cq as cl,cr as ul,cs as lo,aX as ca,ct as yc,bL as mc,aQ as bc,at as wc,cu as Pc,cv as xc}from"./Settings-CepUR3VB.js";import{r as ei}from"./cornerstoneEngine-oWB9T9Cs.js";import"./Texture-CA0OMvaZ.js";import{u as dl}from"./index-NTe9svEs.js";import{c as gn,g as Ci}from"./_commonjsHelpers-CE1G-McA.js";import{_ as hl}from"./index-BSiKqAGW.js";import"./dcmjs.es-DfWkgqfk.js";const pl=["PixelData","FramePixelData","FloatPixelData","7FE00010","7fe00010","7FE00008","7fe00008"],Ec=["FloatPixelData","7FE00008","7fe00008"];function Tc(e){for(const r of pl){const t=e[r];if(t!=null&&Array.isArray(t)&&t.length>0)return t}}function $c(e){for(const r of pl){const t=e[r];if(t!=null&&Array.isArray(t)&&t.length>0)return r}}function Ac(e){const r=$c(e);return r!==void 0&&Ec.includes(r)}function fo(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function Cc(e){return e instanceof ArrayBuffer,e.byteLength}function Ko(e,r){const t=e[r];if(t!=null)return Array.isArray(t)?t.map(fo):fo(t)}function Sc(e,r,t,n){if(e.length!==1||!Ac(n))return;const i=e[0];if(i==null)return;const l=fo(i),a=Cc(i);if(t<=0||a%t!==0)return;const d=a/t,P=r*d;return P+d>a?void 0:(console.warn("[compressedFrameData] Splitting single-buffer pixel data by numberOfFrames for paramap-type image; frameIndex=",r,", numberOfFrames=",t,", frameSize=",d),[(l instanceof Uint8Array?l:new Uint8Array(l.buffer,l.byteOffset,l.byteLength)).subarray(P,P+d)])}function Dc(e,r){if(!e)return;const t=Tc(e);if(!t)return;const{TransferSyntaxUID:n}=e;if(!n)return;const i=r??0,l=i+1,a=e.NumberOfFrames!=null?Number(e.NumberOfFrames):1;let d;if(t.length===a?d=Ko(t,i):(d=Sc(t,i,a,e),d===void 0&&(d=Ko(t,i))),d!==void 0)return{transferSyntaxUid:n,frameOfInterest:i,frameNumber:l,pixelData:d}}const Rc=Ai.COMPRESSED_FRAME_DATA,Ic=(e,r,t,n)=>{const i=n?.frameIndex??0,l=Dc(t,i);return l||e(r,t,n)};function Oc(){Jf(Rc,Ic)}const kc=-1e3;function vl(){Xo(Yf,kc),Xo(Xf.get),Kf(),Qf(),ec(),tc(),rc(),nc(),ac(),ic(),oc(),sc(),lc(),fc(),cc(),uc(),dc(),Oc(),hc()}function Do(e,r,t){if(e===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0;if(t){for(let a=0;a<n;a++)r[l++]=e[i++],r[l++]=e[i++],r[l++]=e[i++],r[l++]=255;return}r.set(e)}function gl(e,r,t){if(e===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0,a=n,d=n*2;if(t)for(let P=0;P<n;P++)r[i++]=e[l++],r[i++]=e[a++],r[i++]=e[d++],r[i++]=255;else for(let P=0;P<n;P++)r[i++]=e[l++],r[i++]=e[a++],r[i++]=e[d++]}function _l(e,r,t){if(e===void 0)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!==0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0;if(t){for(let a=0;a<n;a++){const d=e[i++],P=e[i++],y=e[i++];r[l++]=d+1.402*(y-128),r[l++]=d-.34414*(P-128)-.71414*(y-128),r[l++]=d+1.772*(P-128),r[l++]=255}return}for(let a=0;a<n;a++){const d=e[i++],P=e[i++],y=e[i++];r[l++]=d+1.402*(y-128),r[l++]=d-.34414*(P-128)-.71414*(y-128),r[l++]=d+1.772*(P-128)}}function yl(e,r,t){if(e===void 0)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!==0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0,a=n,d=n*2;if(t){for(let P=0;P<n;P++){const y=e[l++],w=e[a++],W=e[d++];r[i++]=y+1.402*(W-128),r[i++]=y-.34414*(w-128)-.71414*(W-128),r[i++]=y+1.772*(w-128),r[i++]=255}return}for(let P=0;P<n;P++){const y=e[l++],w=e[a++],W=e[d++];r[i++]=y+1.402*(W-128),r[i++]=y-.34414*(w-128)-.71414*(W-128),r[i++]=y+1.772*(w-128)}}function Lc(e,r,t){if(e===void 0)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!==0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let i=0,l=0;if(t){for(let a=0;a<n;a+=2){const d=e[i++],P=e[i++],y=e[i++],w=e[i++];r[l++]=d+1.402*(w-128),r[l++]=d-.34414*(y-128)-.71414*(w-128),r[l++]=d+1.772*(y-128),r[l++]=255,r[l++]=P+1.402*(w-128),r[l++]=P-.34414*(y-128)-.71414*(w-128),r[l++]=P+1.772*(y-128),r[l++]=255}return}for(let a=0;a<n;a+=2){const d=e[i++],P=e[i++],y=e[i++],w=e[i++];r[l++]=d+1.402*(w-128),r[l++]=d-.34414*(y-128)-.71414*(w-128),r[l++]=d+1.772*(y-128),r[l++]=P+1.402*(w-128),r[l++]=P-.34414*(y-128)-.71414*(w-128),r[l++]=P+1.772*(y-128)}}function Ea(e,r,t){const n=e[`${r}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const i=vn("imagePixelModule",e.imageId);return i&&typeof i.then=="function"?i.then(l=>l?l[`${r}PaletteColorLookupTableData`]:t):Promise.resolve(i?i[`${r}PaletteColorLookupTableData`]:t)}async function Uc(e){const r=[];if(!e.redPaletteColorLookupTableData||!e.greenPaletteColorLookupTableData||!e.bluePaletteColorLookupTableData){const n=Promise.all([Ea(e,"red",null),Ea(e,"green",null),Ea(e,"blue",null)]).then(([i,l,a])=>{e.redPaletteColorLookupTableData=i,e.greenPaletteColorLookupTableData=l,e.bluePaletteColorLookupTableData=a});r.push(n)}r.length>0&&await Promise.all(r)}function Bi(e,r){const t=e.length,n=new Uint8ClampedArray(t);for(let i=0;i<t;++i)n[i]=e[i]>>r;return n}function Ro(e,r,t){const n=e.columns*e.rows,i=e.pixelData,l=e.redPaletteColorLookupTableData,a=e.greenPaletteColorLookupTableData,d=e.bluePaletteColorLookupTableData;if(!l||!a||!d)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const P=l.length;let y=0,w=0;const W=e.redPaletteColorLookupTableDescriptor[1],k=e.redPaletteColorLookupTableDescriptor[2]>8&&l.some(ee=>ee>255)?8:0,j=Bi(l,k),Y=Bi(a,k),K=Bi(d,k);if(t){for(let ee=0;ee<n;++ee){let X=i[y++];X<W?X=0:X>W+P-1?X=P-1:X-=W,r[w++]=j[X],r[w++]=Y[X],r[w++]=K[X],r[w++]=255}return}for(let ee=0;ee<n;++ee){let X=i[y++];X<W?X=0:X>W+P-1?X=P-1:X-=W,r[w++]=j[X],r[w++]=Y[X],r[w++]=K[X]}}async function Mc(e,r,t){await Uc(e),Ro(e,r,t)}function ji(e,r){if(!(!e.elements[r]||e.elements[r].length!==6))return[e.uint16(r,0),e.uint16(r,1),e.uint16(r,2)]}function Hi(e,r,t){const n=[],i=e.elements[r];for(let l=0;l<t[0];l++)t[2]===16?n[l]=e.uint16(r,l):n[l]=e.byteArray[l+i.dataOffset];return n}function Fc(e,r){r.redPaletteColorLookupTableDescriptor=ji(e,"x00281101"),r.greenPaletteColorLookupTableDescriptor=ji(e,"x00281102"),r.bluePaletteColorLookupTableDescriptor=ji(e,"x00281103"),r.redPaletteColorLookupTableDescriptor[0]===0&&(r.redPaletteColorLookupTableDescriptor[0]=65536,r.greenPaletteColorLookupTableDescriptor[0]=65536,r.bluePaletteColorLookupTableDescriptor[0]=65536);const t=r.redPaletteColorLookupTableDescriptor[0],i=e.elements.x00281201.length===t?8:16;r.redPaletteColorLookupTableDescriptor[2]!==i&&(r.redPaletteColorLookupTableDescriptor[2]=i,r.greenPaletteColorLookupTableDescriptor[2]=i,r.bluePaletteColorLookupTableDescriptor[2]=i),r.redPaletteColorLookupTableData=Hi(e,"x00281201",r.redPaletteColorLookupTableDescriptor),r.greenPaletteColorLookupTableData=Hi(e,"x00281202",r.greenPaletteColorLookupTableDescriptor),r.bluePaletteColorLookupTableData=Hi(e,"x00281203",r.bluePaletteColorLookupTableDescriptor)}function Nc(e,r){e.uint16("x00280103")===0?(r.smallestPixelValue=e.uint16("x00280106"),r.largestPixelValue=e.uint16("x00280107")):(r.smallestPixelValue=e.int16("x00280106"),r.largestPixelValue=e.int16("x00280107"))}function ml(e){const r={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return Nc(e,r),r.photometricInterpretation==="PALETTE COLOR"&&e.elements.x00281101&&Fc(e,r),r}function Wc(e,r){let t=r.uint16("x00283002",0);t===0&&(t=65535);let n=0;e===0?n=r.uint16("x00283002",1):n=r.int16("x00283002",1);const i=r.uint16("x00283002",2),l={id:"1",firstValueMapped:n,numBitsPerEntry:i,lut:[]};for(let a=0;a<t;a++)e===0?l.lut[a]=r.uint16("x00283006",a):l.lut[a]=r.int16("x00283006",a);return l}function co(e,r){if(!r||!r.items||!r.items.length)return;const t=[];for(let n=0;n<r.items.length;n++){const i=r.items[n].dataSet,l=Wc(e,i);l&&t.push(l)}return t}function Bc(e){const r=e.uint16("x00280103"),t=e.uint16("x00280101");return r===0?0:-1<<t-1}function bl(e){const r=e.string("x00080016");if(r==="1.2.840.10008.5.1.4.1.1.2"||r==="1.2.840.10008.5.1.4.1.1.2.1")return 1;const t=e.floatString("x00281052"),n=e.floatString("x00281053");return t!==void 0&&n!==void 0?Bc(e)*n+t<0?1:0:e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")}function Ar(e,r,t){const n=[],i=e.string(r);if(!i)return;const l=i.split("\\");if(!(t&&l.length<t)){for(let a=0;a<l.length;a++)n.push(parseFloat(l[a]));return n}}var yi={exports:{}};var jc=yi.exports,Qo;function Hc(){return Qo||(Qo=1,(function(e,r){(function(t,n){e.exports=n(ei)})(jc,function(t){return i=[function(a,d){a.exports=t},function(a,d,P){P.r(d),P.d(d,"isStringVr",function(){return w}),P.d(d,"isPrivateTag",function(){return W}),P.d(d,"parsePN",function(){return F}),P.d(d,"parseTM",function(){return k}),P.d(d,"parseDA",function(){return Y}),P.d(d,"explicitElementToString",function(){return K}),P.d(d,"explicitDataSetToJS",function(){return ee}),P.d(d,"createJPEGBasicOffsetTable",function(){return J}),P.d(d,"parseDicomDataSetExplicit",function(){return Ke}),P.d(d,"parseDicomDataSetImplicit",function(){return ft}),P.d(d,"readFixedString",function(){return le}),P.d(d,"alloc",function(){return bt}),P.d(d,"version",function(){return ot}),P.d(d,"bigEndianByteArrayParser",function(){return Ze}),P.d(d,"ByteStream",function(){return Qe}),P.d(d,"sharedCopy",function(){return He}),P.d(d,"DataSet",function(){return oe}),P.d(d,"findAndSetUNElementLength",function(){return re}),P.d(d,"findEndOfEncapsulatedElement",function(){return he}),P.d(d,"findItemDelimitationItemAndSetElementLength",function(){return be}),P.d(d,"littleEndianByteArrayParser",function(){return vt}),P.d(d,"parseDicom",function(){return Bt}),P.d(d,"readDicomElementExplicit",function(){return Ce}),P.d(d,"readDicomElementImplicit",function(){return ve}),P.d(d,"readEncapsulatedImageFrame",function(){return vr}),P.d(d,"readEncapsulatedPixelData",function(){return Sr}),P.d(d,"readEncapsulatedPixelDataFromFragments",function(){return wt}),P.d(d,"readPart10Header",function(){return Zt}),P.d(d,"readSequenceItemsExplicit",function(){return Be}),P.d(d,"readSequenceItemsImplicit",function(){return Fe}),P.d(d,"readSequenceItem",function(){return ge}),P.d(d,"readTag",function(){return ce});var y={AE:!0,AS:!0,AT:!1,CS:!0,DA:!0,DS:!0,DT:!0,FL:!1,FD:!1,IS:!0,LO:!0,LT:!0,OB:!1,OD:!1,OF:!1,OW:!1,PN:!0,SH:!0,SL:!1,SQ:!1,SS:!1,ST:!0,TM:!0,UI:!0,UL:!1,UN:void 0,UR:!0,US:!1,UT:!0},w=function(m){return y[m]},W=function(m){if(m=parseInt(m[4],16),isNaN(m))throw"dicomParser.isPrivateTag: cannot parse last character of group";return m%2==1},F=function(m){if(m!==void 0)return m=m.split("^"),{familyName:m[0],givenName:m[1],middleName:m[2],prefix:m[3],suffix:m[4]}};function k(m,$){if(2<=m.length){var I=parseInt(m.substring(0,2),10),T=4<=m.length?parseInt(m.substring(2,4),10):void 0,L=6<=m.length?parseInt(m.substring(4,6),10):void 0,Z=8<=m.length?m.substring(7,13):void 0,Z=Z?parseInt(Z,10)*Math.pow(10,6-Z.length):void 0;if($&&(isNaN(I)||T!==void 0&&isNaN(T)||L!==void 0&&isNaN(L)||Z!==void 0&&isNaN(Z)||I<0||23<I||T&&(T<0||59<T)||L&&(L<0||59<L)||Z&&(Z<0||999999<Z)))throw"invalid TM '".concat(m,"'");return{hours:I,minutes:T,seconds:L,fractionalSeconds:Z}}if($)throw"invalid TM '".concat(m,"'")}function j(m,$,I){return!isNaN(I)&&0<$&&$<=12&&0<m&&m<=(function(T,L){switch(T){case 2:return L%4==0&&L%100||L%400==0?29:28;case 9:case 4:case 6:case 11:return 30;default:return 31}})($,I)}function Y(m,$){if(m&&m.length===8){var I=parseInt(m.substring(0,4),10),T=parseInt(m.substring(4,6),10),L=parseInt(m.substring(6,8),10);if($&&j(L,T,I)!==!0)throw"invalid DA '".concat(m,"'");return{year:I,month:T,day:L}}if($)throw"invalid DA '".concat(m,"'")}function K(m,$){if(m===void 0||$===void 0)throw"dicomParser.explicitElementToString: missing required parameters";if($.vr===void 0)throw"dicomParser.explicitElementToString: cannot convert implicit element to string";var I,T=$.vr,L=$.tag;function Z(xe,De){for(var ze="",Ee=0;Ee<xe;Ee++)Ee!==0&&(ze+="/"),ze+=De.call(m,L,Ee).toString();return ze}if(w(T)===!0)I=m.string(L);else{if(T==="AT"){var fe=m.uint32(L);return fe===void 0?void 0:"x".concat((fe=fe<0?4294967295+fe+1:fe).toString(16).toUpperCase())}T==="US"?I=Z($.length/2,m.uint16):T==="SS"?I=Z($.length/2,m.int16):T==="UL"?I=Z($.length/4,m.uint32):T==="SL"?I=Z($.length/4,m.int32):T==="FD"?I=Z($.length/8,m.double):T==="FL"&&(I=Z($.length/4,m.float))}return I}function ee(m,$){if(m===void 0)throw"dicomParser.explicitDataSetToJS: missing required parameter dataSet";$=$||{omitPrivateAttibutes:!0,maxElementLength:128};var I,T={};for(I in m.elements){var L=m.elements[I];if($.omitPrivateAttibutes!==!0||!W(I))if(L.items){for(var Z=[],fe=0;fe<L.items.length;fe++)Z.push(ee(L.items[fe].dataSet,$));T[I]=Z}else{var xe=void 0;L.length<$.maxElementLength&&(xe=K(m,L)),T[I]=xe!==void 0?xe:{dataOffset:L.dataOffset,length:L.length}}}return T}function X(m,$){return m.byteArray[$]===255&&m.byteArray[$+1]===217}function H(m,$,I){for(var T,L,Z=I;Z<$.fragments.length;Z++)if(T=m,L=Z,L=$.fragments[L],!(!X(T,L.position+L.length-2)&&!X(T,L.position+L.length-3)))return Z}function J(m,$,I){if(m===void 0)throw"dicomParser.createJPEGBasicOffsetTable: missing required parameter dataSet";if($===void 0)throw"dicomParser.createJPEGBasicOffsetTable: missing required parameter pixelDataElement";if($.tag!=="x7fe00010")throw"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010'";if($.encapsulatedPixelData!==!0||$.hadUndefinedLength!==!0||$.basicOffsetTable===void 0||$.fragments===void 0||$.fragments.length<=0)throw"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if(I&&I.length<=0)throw"dicomParser.createJPEGBasicOffsetTable: parameter 'fragments' must not be zero length";I=I||$.fragments;for(var T=[],L=0;;){T.push($.fragments[L].offset);var Z=H(m,$,L);if(Z===void 0||Z===$.fragments.length-1)return T;L=Z+1}}function ce(I){if(I===void 0)throw"dicomParser.readTag: missing required parameter 'byteStream'";var $=256*I.readUint16()*256,I=I.readUint16();return"x".concat("00000000".concat(($+I).toString(16)).substr(-8))}function he(m,$,I){if(m===void 0)throw"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'element'";if($.encapsulatedPixelData=!0,$.basicOffsetTable=[],$.fragments=[],ce(m)!=="xfffee000")throw"dicomParser.findEndOfEncapsulatedElement: basic offset table not found";for(var T=m.readUint32()/4,L=0;L<T;L++){var Z=m.readUint32();$.basicOffsetTable.push(Z)}for(var fe=m.position;m.position<m.byteArray.length;){var xe=ce(m),De=m.readUint32();if(xe==="xfffee0dd")return m.seek(De),void($.length=m.position-$.dataOffset);if(xe!=="xfffee000")return I&&I.push("unexpected tag ".concat(xe," while searching for end of pixel data element with undefined length")),De>m.byteArray.length-m.position&&(De=m.byteArray.length-m.position),$.fragments.push({offset:m.position-fe-8,position:m.position,length:De}),m.seek(De),void($.length=m.position-$.dataOffset);$.fragments.push({offset:m.position-fe-8,position:m.position,length:De}),m.seek(De)}I&&I.push("pixel data element ".concat($.tag," missing sequence delimiter tag xfffee0dd"))}function re(m,$){if(m===void 0)throw"dicomParser.findAndSetUNElementLength: missing required parameter 'byteStream'";for(var I=m.byteArray.length-8;m.position<=I;)if(m.readUint16()===65534){var T=m.readUint16();if(T===57565)return m.readUint32()!==0&&m.warnings("encountered non zero length following item delimiter at position ".concat(m.position-4," while reading element of undefined length with tag ").concat($.tag)),void($.length=m.position-$.dataOffset)}$.length=m.byteArray.length-$.dataOffset,m.seek(m.byteArray.length-m.position)}function le(m,$,I){if(I<0)throw"dicomParser.readFixedString - length cannot be less than 0";if($+I>m.length)throw"dicomParser.readFixedString: attempt to read past end of buffer";for(var T,L="",Z=0;Z<I;Z++){if((T=m[$+Z])===0)return $+=I,L;L+=String.fromCharCode(T)}return L}function ie(m,$){for(var I=0;I<$.length;I++){var T=$[I];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(m,T.key,T)}}function te(m,$){return m.parser!==void 0?m.parser:$}var oe=(function(){function m(T,L,Z){(function(fe,xe){if(!(fe instanceof xe))throw new TypeError("Cannot call a class as a function")})(this,m),this.byteArrayParser=T,this.byteArray=L,this.elements=Z}var $,I;return $=m,(I=[{key:"uint16",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readUint16(this.byteArray,T.dataOffset+2*L)}},{key:"int16",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readInt16(this.byteArray,T.dataOffset+2*L)}},{key:"uint32",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readUint32(this.byteArray,T.dataOffset+4*L)}},{key:"int32",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readInt32(this.byteArray,T.dataOffset+4*L)}},{key:"float",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readFloat(this.byteArray,T.dataOffset+4*L)}},{key:"double",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readDouble(this.byteArray,T.dataOffset+8*L)}},{key:"numStringValues",value:function(T){if(T=this.elements[T],T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length).match(/\\/g),T===null?1:T.length+1}},{key:"string",value:function(T,L){if(T=this.elements[T],T&&T.Value)return T.Value;if(T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length),0<=L?T.split("\\")[L].trim():T.trim()}},{key:"text",value:function(T,L){if(T=this.elements[T],T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length),0<=L?T.split("\\")[L].replace(/ +$/,""):T.replace(/ +$/,"")}},{key:"floatString",value:function(T,L){var Z=this.elements[T];if(Z&&0<Z.length&&(L=this.string(T,L=L!==void 0?L:0),L!==void 0))return parseFloat(L)}},{key:"intString",value:function(T,L){var Z=this.elements[T];if(Z&&0<Z.length&&(L=this.string(T,L=L!==void 0?L:0),L!==void 0))return parseInt(L)}},{key:"attributeTag",value:function(T){var L=this.elements[T];if(L&&L.length===4){var Z=te(L,this.byteArrayParser).readUint16,T=this.byteArray,L=L.dataOffset;return"x".concat("00000000".concat((256*Z(T,L)*256+Z(T,L+2)).toString(16)).substr(-8))}}}])&&ie($.prototype,I),Object.defineProperty($,"prototype",{writable:!1}),m})();function be(m,$){if(m===void 0)throw"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'";for(var I=m.byteArray.length-8;m.position<=I;)if(m.readUint16()===65534){var T=m.readUint16();if(T===57357)return m.readUint32()!==0&&m.warnings("encountered non zero length following item delimiter at position ".concat(m.position-4," while reading element of undefined length with tag ").concat($.tag)),void($.length=m.position-$.dataOffset)}$.length=m.byteArray.length-$.dataOffset,m.seek(m.byteArray.length-m.position)}var Te=function(m,$){return m.vr!==void 0?m.vr==="SQ":$.position+4<=$.byteArray.length?(m=ce($),$.seek(-4),m==="xfffee000"||m==="xfffee0dd"):($.warnings.push("eof encountered before finding sequence item tag or sequence delimiter tag in peeking to determine VR"),!1)};function ve(m,$,I){if(m===void 0)throw"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'";var T=ce(m),T={tag:T,vr:I!==void 0?I(T):void 0,length:m.readUint32(),dataOffset:m.position};return T.length===4294967295&&(T.hadUndefinedLength=!0),T.tag===$||(!Te(T,m)||W(T.tag)&&!T.hadUndefinedLength?T.hadUndefinedLength?be(m,T):m.seek(T.length):(Fe(m,T,I),W(T.tag)&&(T.items=void 0))),T}function ge(m){if(m===void 0)throw"dicomParser.readSequenceItem: missing required parameter 'byteStream'";var $={tag:ce(m),length:m.readUint32(),dataOffset:m.position};if($.tag!=="xfffee000")throw"dicomParser.readSequenceItem: item tag (FFFE,E000) not found at offset ".concat(m.position);return $}function Re(m,$){var I=ge(m);return I.length===4294967295?(I.hadUndefinedLength=!0,I.dataSet=(function(T,L){for(var Z={};T.position<T.byteArray.length;){var fe=ve(T,void 0,L);if((Z[fe.tag]=fe).tag==="xfffee00d")return new oe(T.byteArrayParser,T.byteArray,Z)}return T.warnings.push("eof encountered before finding sequence item delimiter in sequence item of undefined length"),new oe(T.byteArrayParser,T.byteArray,Z)})(m,$),I.length=m.position-I.dataOffset):(I.dataSet=new oe(m.byteArrayParser,m.byteArray,{}),ft(I.dataSet,m,m.position+I.length,{vrCallback:$})),I}function Fe(m,$,I){if(m===void 0)throw"dicomParser.readSequenceItemsImplicit: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.readSequenceItemsImplicit: missing required parameter 'element'";$.items=[],($.length===4294967295?function(T,L,Z){for(;T.position+4<=T.byteArray.length;){var fe=ce(T);if(T.seek(-4),fe==="xfffee0dd")return L.length=T.position-L.dataOffset,T.seek(8);fe=Re(T,Z),L.items.push(fe)}T.warnings.push("eof encountered before finding sequence delimiter in sequence of undefined length"),L.length=T.byteArray.length-L.dataOffset}:function(T,L,Z){for(var fe=L.dataOffset+L.length;T.position<fe;){var xe=Re(T,Z);L.items.push(xe)}})(m,$,I)}function Ie(m,$){var I=ge(m);return I.length===4294967295?(I.hadUndefinedLength=!0,I.dataSet=(function(T,L){for(var Z={};T.position<T.byteArray.length;){var fe=Ce(T,L);if((Z[fe.tag]=fe).tag==="xfffee00d")return new oe(T.byteArrayParser,T.byteArray,Z)}return L.push("eof encountered before finding item delimiter tag while reading sequence item of undefined length"),new oe(T.byteArrayParser,T.byteArray,Z)})(m,$),I.length=m.position-I.dataOffset):(I.dataSet=new oe(m.byteArrayParser,m.byteArray,{}),Ke(I.dataSet,m,m.position+I.length)),I}function Be(m,$,I){if(m===void 0)throw"dicomParser.readSequenceItemsExplicit: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.readSequenceItemsExplicit: missing required parameter 'element'";$.items=[],($.length===4294967295?function(T,L,Z){for(;T.position+4<=T.byteArray.length;){var fe=ce(T);if(T.seek(-4),fe==="xfffee0dd")return L.length=T.position-L.dataOffset,T.seek(8);fe=Ie(T,Z),L.items.push(fe)}Z.push("eof encountered before finding sequence delimitation tag while reading sequence of undefined length"),L.length=T.position-L.dataOffset}:function(T,L,Z){for(var fe=L.dataOffset+L.length;T.position<fe;){var xe=Ie(T,Z);L.items.push(xe)}})(m,$,I)}var je=function(m){return m==="OB"||m==="OD"||m==="OL"||m==="OW"||m==="SQ"||m==="OF"||m==="UC"||m==="UR"||m==="UT"||m==="UN"?4:2};function Ce(m,$,I){if(m===void 0)throw"dicomParser.readDicomElementExplicit: missing required parameter 'byteStream'";var T={tag:ce(m),vr:m.readFixedString(2)};return je(T.vr)===2?T.length=m.readUint16():(m.seek(2),T.length=m.readUint32()),T.dataOffset=m.position,T.length===4294967295&&(T.hadUndefinedLength=!0),T.tag===I||(T.vr==="SQ"?Be(m,T,$):T.length===4294967295?T.tag==="x7fe00010"?he(m,T,$):(T.vr==="UN"?Fe:be)(m,T):m.seek(T.length)),T}function Ke(m,$,I){var T=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{};if(I=I===void 0?$.byteArray.length:I,$===void 0)throw"dicomParser.parseDicomDataSetExplicit: missing required parameter 'byteStream'";if(I<$.position||I>$.byteArray.length)throw"dicomParser.parseDicomDataSetExplicit: invalid value for parameter 'maxP osition'";for(var L=m.elements;$.position<I;){var Z=Ce($,m.warnings,T.untilTag);if((L[Z.tag]=Z).tag===T.untilTag)return}if($.position>I)throw"dicomParser:parseDicomDataSetExplicit: buffer overrun"}function ft(m,$,I){var T=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{};if(I=I===void 0?m.byteArray.length:I,$===void 0)throw"dicomParser.parseDicomDataSetImplicit: missing required parameter 'byteStream'";if(I<$.position||I>$.byteArray.length)throw"dicomParser.parseDicomDataSetImplicit: invalid value for parameter 'maxPosition'";for(var L=m.elements;$.position<I;){var Z=ve($,T.untilTag,T.vrCallback);if((L[Z.tag]=Z).tag===T.untilTag)return}}function bt(m,$){if(typeof Buffer<"u"&&m instanceof Buffer)return Buffer.alloc($);if(m instanceof Uint8Array)return new Uint8Array($);throw"dicomParser.alloc: unknown type for byteArray"}var ot="1.8.12",Ze={readUint16:function(m,$){if($<0)throw"bigEndianByteArrayParser.readUint16: position cannot be less than 0";if($+2>m.length)throw"bigEndianByteArrayParser.readUint16: attempt to read past end of buffer";return(m[$]<<8)+m[$+1]},readInt16:function(m,$){if($<0)throw"bigEndianByteArrayParser.readInt16: position cannot be less than 0";if($+2>m.length)throw"bigEndianByteArrayParser.readInt16: attempt to read past end of buffer";return $=(m[$]<<8)+m[$+1],$=32768&$?$-65535-1:$},readUint32:function(m,$){if($<0)throw"bigEndianByteArrayParser.readUint32: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readUint32: attempt to read past end of buffer";return 256*(256*(256*m[$]+m[$+1])+m[$+2])+m[$+3]},readInt32:function(m,$){if($<0)throw"bigEndianByteArrayParser.readInt32: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readInt32: attempt to read past end of buffer";return(m[$]<<24)+(m[$+1]<<16)+(m[$+2]<<8)+m[$+3]},readFloat:function(m,$){if($<0)throw"bigEndianByteArrayParser.readFloat: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readFloat: attempt to read past end of buffer";var I=new Uint8Array(4);return I[3]=m[$],I[2]=m[$+1],I[1]=m[$+2],I[0]=m[$+3],new Float32Array(I.buffer)[0]},readDouble:function(m,$){if($<0)throw"bigEndianByteArrayParser.readDouble: position cannot be less than 0";if($+8>m.length)throw"bigEndianByteArrayParser.readDouble: attempt to read past end of buffer";var I=new Uint8Array(8);return I[7]=m[$],I[6]=m[$+1],I[5]=m[$+2],I[4]=m[$+3],I[3]=m[$+4],I[2]=m[$+5],I[1]=m[$+6],I[0]=m[$+7],new Float64Array(I.buffer)[0]}};function He(m,$,I){if(typeof Buffer<"u"&&m instanceof Buffer)return m.slice($,$+I);if(m instanceof Uint8Array)return new Uint8Array(m.buffer,m.byteOffset+$,I);throw"dicomParser.from: unknown type for byteArray"}function ke(m,$){for(var I=0;I<$.length;I++){var T=$[I];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(m,T.key,T)}}var Qe=(function(){function m(T,L,Z){if((function(fe,xe){if(!(fe instanceof xe))throw new TypeError("Cannot call a class as a function")})(this,m),T===void 0)throw"dicomParser.ByteStream: missing required parameter 'byteArrayParser'";if(L===void 0)throw"dicomParser.ByteStream: missing required parameter 'byteArray'";if(!(L instanceof Uint8Array)&&(typeof Buffer>"u"||!(L instanceof Buffer)))throw"dicomParser.ByteStream: parameter byteArray is not of type Uint8Array or Buffer";if(Z<0)throw"dicomParser.ByteStream: parameter 'position' cannot be less than 0";if(Z>=L.length)throw"dicomParser.ByteStream: parameter 'position' cannot be greater than or equal to 'byteArray' length";this.byteArrayParser=T,this.byteArray=L,this.position=Z||0,this.warnings=[]}var $,I;return $=m,(I=[{key:"seek",value:function(T){if(this.position+T<0)throw"dicomParser.ByteStream.prototype.seek: cannot seek to position < 0";this.position+=T}},{key:"readByteStream",value:function(T){if(this.position+T>this.byteArray.length)throw"dicomParser.ByteStream.prototype.readByteStream: readByteStream - buffer overread";var L=He(this.byteArray,this.position,T);return this.position+=T,new m(this.byteArrayParser,L)}},{key:"getSize",value:function(){return this.byteArray.length}},{key:"readUint16",value:function(){var T=this.byteArrayParser.readUint16(this.byteArray,this.position);return this.position+=2,T}},{key:"readUint32",value:function(){var T=this.byteArrayParser.readUint32(this.byteArray,this.position);return this.position+=4,T}},{key:"readFixedString",value:function(T){var L=le(this.byteArray,this.position,T);return this.position+=T,L}}])&&ke($.prototype,I),Object.defineProperty($,"prototype",{writable:!1}),m})(),vt={readUint16:function(m,$){if($<0)throw"littleEndianByteArrayParser.readUint16: position cannot be less than 0";if($+2>m.length)throw"littleEndianByteArrayParser.readUint16: attempt to read past end of buffer";return m[$]+256*m[$+1]},readInt16:function(m,$){if($<0)throw"littleEndianByteArrayParser.readInt16: position cannot be less than 0";if($+2>m.length)throw"littleEndianByteArrayParser.readInt16: attempt to read past end of buffer";return $=m[$]+(m[$+1]<<8),$=32768&$?$-65535-1:$},readUint32:function(m,$){if($<0)throw"littleEndianByteArrayParser.readUint32: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readUint32: attempt to read past end of buffer";return m[$]+256*m[$+1]+256*m[$+2]*256+256*m[$+3]*256*256},readInt32:function(m,$){if($<0)throw"littleEndianByteArrayParser.readInt32: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readInt32: attempt to read past end of buffer";return m[$]+(m[$+1]<<8)+(m[$+2]<<16)+(m[$+3]<<24)},readFloat:function(m,$){if($<0)throw"littleEndianByteArrayParser.readFloat: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readFloat: attempt to read past end of buffer";var I=new Uint8Array(4);return I[0]=m[$],I[1]=m[$+1],I[2]=m[$+2],I[3]=m[$+3],new Float32Array(I.buffer)[0]},readDouble:function(m,$){if($<0)throw"littleEndianByteArrayParser.readDouble: position cannot be less than 0";if($+8>m.length)throw"littleEndianByteArrayParser.readDouble: attempt to read past end of buffer";var I=new Uint8Array(8);return I[0]=m[$],I[1]=m[$+1],I[2]=m[$+2],I[3]=m[$+3],I[4]=m[$+4],I[5]=m[$+5],I[6]=m[$+6],I[7]=m[$+7],new Float64Array(I.buffer)[0]}};function Zt(m){var $=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};if(m===void 0)throw"dicomParser.readPart10Header: missing required parameter 'byteArray'";var I=$.TransferSyntaxUID,T=new Qe(vt,m);return(function(){var L=(function(){if(T.getSize()<=132&&I)return!1;if(T.seek(128),T.readFixedString(4)==="DICM")return!0;if(!($||{}).TransferSyntaxUID)throw"dicomParser.readPart10Header: DICM prefix not found at location 132 - this is not a valid DICOM P10 file.";return T.seek(0),!1})(),Z=[],fe={};if(!L)return T.position=0,{elements:{x00020010:{tag:"x00020010",vr:"UI",Value:I}},warnings:Z};for(;T.position<T.byteArray.length;){var xe=T.position,De=Ce(T,Z);if("x0002ffff"<De.tag){T.position=xe;break}De.parser=vt,fe[De.tag]=De}return(L=new oe(T.byteArrayParser,T.byteArray,fe)).warnings=T.warnings,L.position=T.position,L})()}var Wt="1.2.840.10008.1.2.2";function Bt(m){var $=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};if(m===void 0)throw new Error("dicomParser.parseDicom: missing required parameter 'byteArray'");var I,T=function(Z){if(Z.elements.x00020010===void 0)throw new Error("dicomParser.parseDicom: missing required meta header attribute 0002,0010");return Z=Z.elements.x00020010,Z&&Z.Value||le(m,Z.dataOffset,Z.length)};function L(De){var xe=T(De),fe=xe!=="1.2.840.10008.1.2",xe=(function(ze,Ee){var qe=Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]";if(ze!=="1.2.840.10008.1.2.1.99")return new Qe(ze===Wt?Ze:vt,m,Ee);if($&&$.inflater)return ze=$.inflater(m,Ee),new Qe(vt,ze,0);if(qe==!0){var Ne=P(0),Ve=He(m,Ee,m.length-Ee),Ne=Ne.inflateRawSync(Ve),Ve=bt(m,Ne.length+Ee);return m.copy(Ve,0,0,Ee),Ne.copy(Ve,Ee),new Qe(vt,Ve,0)}if(typeof pako>"u")throw"dicomParser.parseDicom: no inflater available to handle deflate transfer syntax";return Ne=m.slice(Ee),Ve=pako.inflateRaw(Ne),(Ne=bt(m,Ve.length+Ee)).set(m.slice(0,Ee),0),Ne.set(Ve,Ee),new Qe(vt,Ne,0)})(xe,De.position),De=new oe(xe.byteArrayParser,xe.byteArray,{});De.warnings=xe.warnings;try{(fe?Ke:ft)(De,xe,xe.byteArray.length,$)}catch(ze){throw{exception:ze,dataSet:De}}return De}return(function(Z,fe){for(var xe in Z.elements)Z.elements.hasOwnProperty(xe)&&(fe.elements[xe]=Z.elements[xe]);return Z.warnings!==void 0&&(fe.warnings=Z.warnings.concat(fe.warnings)),fe})(I=Zt(m,$),L(I))}var kt=function(m,$,I){for(var T=0,L=$;L<$+I;L++)T+=m[L].length;return T};function wt(m,fe,I,T,L){if(L=L||fe.fragments,m===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'dataSet'";if(fe===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'pixelDataElement'";if(I===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'startFragmentIndex'";if((T=T||1)===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'numFragments'";if(fe.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010";if(fe.encapsulatedPixelData!==!0||fe.hadUndefinedLength!==!0||fe.basicOffsetTable===void 0||fe.fragments===void 0||fe.fragments.length<=0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if(I<0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be >= 0";if(I>=fe.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be < number of fragments";if(T<1)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'numFragments' must be > 0";if(I+T>fe.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragment' + 'numFragments' < number of fragments";var Z=new Qe(m.byteArrayParser,m.byteArray,fe.dataOffset),fe=ge(Z);if(fe.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";Z.seek(fe.length);var xe=Z.position;if(T===1)return He(Z.byteArray,xe+L[I].offset+8,L[I].length);for(var fe=kt(L,I,T),De=bt(Z.byteArray,fe),ze=0,Ee=I;Ee<I+T;Ee++)for(var qe=xe+L[Ee].offset+8,Ne=0;Ne<L[Ee].length;Ne++)De[ze++]=Z.byteArray[qe++];return De}var hr=function(m,$){for(var I=0;I<m.length;I++)if(m[I].offset===$)return I},pr=function(m,$,I,T){if(m===$.length-1)return I.length-T;for(var L=$[m+1],Z=T+1;Z<I.length;Z++)if(I[Z].offset===L)return Z-T;throw"dicomParser.calculateNumberOfFragmentsForFrame: could not find fragment with offset matching basic offset table"};function vr(m,$,I,T,L){if(T=T||$.basicOffsetTable,L=L||$.fragments,m===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'dataSet'";if($===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'pixelDataElement'";if(I===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'frameIndex'";if(T===void 0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' does not have basicOffsetTable";if($.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010)";if($.encapsulatedPixelData!==!0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if($.hadUndefinedLength!==!0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have undefined length";if($.fragments===void 0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have fragments";if(T.length===0)throw"dicomParser.readEncapsulatedImageFrame: basicOffsetTable has zero entries";if(I<0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be >= 0";if(I>=T.length)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be < basicOffsetTable.length";var Z=T[I],Z=hr(L,Z);if(Z===void 0)throw"dicomParser.readEncapsulatedImageFrame: unable to find fragment that matches basic offset table entry";return wt(m,$,Z,pr(I,T,L,Z),L)}var Cr=!1;function Sr(m,$,I){if(Cr||(Cr=!0,console&&console.log&&console.log("WARNING: dicomParser.readEncapsulatedPixelData() has been deprecated")),m===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'dataSet'";if($===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'element'";if(I===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'frame'";if($.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to non pixel data tag (expected tag = x7fe00010)";if($.encapsulatedPixelData!==!0||$.hadUndefinedLength!==!0||$.basicOffsetTable===void 0||$.fragments===void 0)throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data";if(I<0)throw"dicomParser.readEncapsulatedPixelData: parameter 'frame' must be >= 0";return $.basicOffsetTable.length!==0?vr(m,$,I):wt(m,$,0,$.fragments.length)}d.default={isStringVr:w,isPrivateTag:W,parsePN:F,parseTM:k,parseDA:Y,explicitElementToString:K,explicitDataSetToJS:ee,createJPEGBasicOffsetTable:J,parseDicomDataSetExplicit:Ke,parseDicomDataSetImplicit:ft,readFixedString:le,alloc:bt,version:ot,bigEndianByteArrayParser:Ze,ByteStream:Qe,sharedCopy:He,DataSet:oe,findAndSetUNElementLength:re,findEndOfEncapsulatedElement:he,findItemDelimitationItemAndSetElementLength:be,littleEndianByteArrayParser:vt,parseDicom:Bt,readDicomElementExplicit:Ce,readDicomElementImplicit:ve,readEncapsulatedImageFrame:vr,readEncapsulatedPixelData:Sr,readEncapsulatedPixelDataFromFragments:wt,readPart10Header:Zt,readSequenceItemsExplicit:Be,readSequenceItemsImplicit:Fe,readSequenceItem:ge,readTag:ce,LEI:"1.2.840.10008.1.2",LEE:"1.2.840.10008.1.2.1"}}],l={},n.m=i,n.c=l,n.d=function(a,d,P){n.o(a,d)||Object.defineProperty(a,d,{enumerable:!0,get:P})},n.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},n.t=function(a,d){if(1&d&&(a=n(a)),8&d||4&d&&typeof a=="object"&&a&&a.__esModule)return a;var P=Object.create(null);if(n.r(P),Object.defineProperty(P,"default",{enumerable:!0,value:a}),2&d&&typeof a!="string")for(var y in a)n.d(P,y,(function(w){return a[w]}).bind(null,y));return P},n.n=function(a){var d=a&&a.__esModule?function(){return a.default}:function(){return a};return n.d(d,"a",d),d},n.o=function(a,d){return Object.prototype.hasOwnProperty.call(a,d)},n.p="",n(n.s=1);function n(a){if(l[a])return l[a].exports;var d=l[a]={i:a,l:!1,exports:{}};return i[a].call(d.exports,d,d.exports,n),d.l=!0,d.exports}var i,l})})(yi)),yi.exports}var ar=Hc();function Da(e){const r=e.indexOf(":");let t=e.substring(r+1);const n=t.indexOf("frame=");let i;if(n!==-1){const d=t.substring(n+6);i=parseInt(d,10),t=t.substring(0,n-1)}const l=e.substring(0,r),a=i!==void 0?i-1:void 0;return{scheme:l,url:t,frame:i,pixelDataFrame:a}}let uo={open(e,r){e.open("get",r,!0)},beforeSend:async()=>{},beforeProcessing(e){return Promise.resolve(e.response)},imageCreated(){},strict:!1};function wl(e){uo=Object.assign(uo,e)}function ti(){return uo}function Si(e,r,t={},n={}){const i=ti(),l=P=>{if(typeof i.errorInterceptor=="function"){const y=new Error("request failed");y.request=P,y.response=P.response,y.status=P.status,i.errorInterceptor(y)}},a=new XMLHttpRequest,d=new Promise(async(P,y)=>{i.open(a,e,t,n);const w=await i.beforeSend(a,r,t,n);a.responseType="arraybuffer";const W=Object.assign({},t,w);Object.keys(W).forEach(function(F){W[F]!==null&&(F==="Accept"&&e.indexOf("accept=")!==-1||a.setRequestHeader(F,W[F]))}),n.deferred={resolve:P,reject:y},n.url=e,n.imageId=r,a.onloadstart=function(F){i.onloadstart&&i.onloadstart(F,n),Pa(xa,"cornerstoneimageloadstart",{url:e,imageId:r})},a.onloadend=function(F){i.onloadend&&i.onloadend(F,n),Pa(xa,"cornerstoneimageloadend",{url:e,imageId:r})},a.onreadystatechange=function(F){i.onreadystatechange&&i.onreadystatechange(F,n),a.readyState===4&&(a.status===200||a.status===206?i.beforeProcessing(a).then(P).catch(()=>{l(a),y(a)}):(l(a),y(a)))},a.onprogress=function(F){const k=F.loaded;let j,Y;F.lengthComputable&&(j=F.total,Y=Math.round(k/j*100)),Pa(xa,"cornerstoneimageloadprogress",{url:e,imageId:r,loaded:k,total:j,percentComplete:Y}),i.onprogress&&i.onprogress(F,n)},a.onerror=function(){l(a),y(a)},a.onabort=function(){l(a),y(a)},a.send()});return d.xhr=a,d}function zc(e,r,t){if(t+e.length>r.length)return!1;let n=t;for(let i=0;i<e.length;i++)if(e[i]!==r[n++])return!1;return!0}function Vc(e){const r=new Uint8Array(e.length);for(let t=0,n=e.length;t<n;t++)r[t]=e.charCodeAt(t);return r}function ho(e,r,t){t=t||0;const n=Vc(r);for(let i=t;i<e.length;i++)if(n[0]===e[i]&&zc(n,e,i))return i;return-1}const{ImageQualityStatus:es}=_n;function Io(e,r,t){t||={};const n=new Uint8Array(r),i=!!t?.isPartial;if(e.indexOf("multipart")===-1)return{contentType:e,imageQualityStatus:i?es.SUBRESOLUTION:es.FULL_RESOLUTION,pixelData:n};let{tokenIndex:l,responseHeaders:a,boundary:d,multipartContentType:P}=t;if(l||=ho(n,`\r
1
+ import{c4 as Jf,c5 as Ai,c6 as Xo,c7 as Yf,c8 as Xf,c9 as Kf,ca as Qf,cb as ec,cc as tc,cd as rc,ce as nc,cf as ac,cg as ic,ch as oc,ci as sc,cj as lc,ck as fc,cl as cc,cm as uc,cn as dc,co as hc,bi as vn,t as Pa,e as xa,ah as _n,cp as ll,aN as fl,au as pc,aV as vc,K as gc,bP as _c,cq as cl,cr as ul,cs as lo,aX as ca,ct as yc,bL as mc,aQ as bc,at as wc,cu as Pc,cv as xc}from"./Settings-DScSRN4w.js";import{r as ei}from"./cornerstoneEngine-CZtg0zW5.js";import"./Texture-C5SfDh5g.js";import{u as dl}from"./index-Cp_HszKm.js";import{c as gn,g as Ci}from"./_commonjsHelpers-CE1G-McA.js";import{_ as hl}from"./index-ZX_UE_97.js";import"./dcmjs.es-DfWkgqfk.js";const pl=["PixelData","FramePixelData","FloatPixelData","7FE00010","7fe00010","7FE00008","7fe00008"],Ec=["FloatPixelData","7FE00008","7fe00008"];function Tc(e){for(const r of pl){const t=e[r];if(t!=null&&Array.isArray(t)&&t.length>0)return t}}function $c(e){for(const r of pl){const t=e[r];if(t!=null&&Array.isArray(t)&&t.length>0)return r}}function Ac(e){const r=$c(e);return r!==void 0&&Ec.includes(r)}function fo(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function Cc(e){return e instanceof ArrayBuffer,e.byteLength}function Ko(e,r){const t=e[r];if(t!=null)return Array.isArray(t)?t.map(fo):fo(t)}function Sc(e,r,t,n){if(e.length!==1||!Ac(n))return;const i=e[0];if(i==null)return;const l=fo(i),a=Cc(i);if(t<=0||a%t!==0)return;const d=a/t,P=r*d;return P+d>a?void 0:(console.warn("[compressedFrameData] Splitting single-buffer pixel data by numberOfFrames for paramap-type image; frameIndex=",r,", numberOfFrames=",t,", frameSize=",d),[(l instanceof Uint8Array?l:new Uint8Array(l.buffer,l.byteOffset,l.byteLength)).subarray(P,P+d)])}function Dc(e,r){if(!e)return;const t=Tc(e);if(!t)return;const{TransferSyntaxUID:n}=e;if(!n)return;const i=r??0,l=i+1,a=e.NumberOfFrames!=null?Number(e.NumberOfFrames):1;let d;if(t.length===a?d=Ko(t,i):(d=Sc(t,i,a,e),d===void 0&&(d=Ko(t,i))),d!==void 0)return{transferSyntaxUid:n,frameOfInterest:i,frameNumber:l,pixelData:d}}const Rc=Ai.COMPRESSED_FRAME_DATA,Ic=(e,r,t,n)=>{const i=n?.frameIndex??0,l=Dc(t,i);return l||e(r,t,n)};function Oc(){Jf(Rc,Ic)}const kc=-1e3;function vl(){Xo(Yf,kc),Xo(Xf.get),Kf(),Qf(),ec(),tc(),rc(),nc(),ac(),ic(),oc(),sc(),lc(),fc(),cc(),uc(),dc(),Oc(),hc()}function Do(e,r,t){if(e===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0;if(t){for(let a=0;a<n;a++)r[l++]=e[i++],r[l++]=e[i++],r[l++]=e[i++],r[l++]=255;return}r.set(e)}function gl(e,r,t){if(e===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0,a=n,d=n*2;if(t)for(let P=0;P<n;P++)r[i++]=e[l++],r[i++]=e[a++],r[i++]=e[d++],r[i++]=255;else for(let P=0;P<n;P++)r[i++]=e[l++],r[i++]=e[a++],r[i++]=e[d++]}function _l(e,r,t){if(e===void 0)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!==0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0;if(t){for(let a=0;a<n;a++){const d=e[i++],P=e[i++],y=e[i++];r[l++]=d+1.402*(y-128),r[l++]=d-.34414*(P-128)-.71414*(y-128),r[l++]=d+1.772*(P-128),r[l++]=255}return}for(let a=0;a<n;a++){const d=e[i++],P=e[i++],y=e[i++];r[l++]=d+1.402*(y-128),r[l++]=d-.34414*(P-128)-.71414*(y-128),r[l++]=d+1.772*(P-128)}}function yl(e,r,t){if(e===void 0)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!==0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0,a=n,d=n*2;if(t){for(let P=0;P<n;P++){const y=e[l++],w=e[a++],W=e[d++];r[i++]=y+1.402*(W-128),r[i++]=y-.34414*(w-128)-.71414*(W-128),r[i++]=y+1.772*(w-128),r[i++]=255}return}for(let P=0;P<n;P++){const y=e[l++],w=e[a++],W=e[d++];r[i++]=y+1.402*(W-128),r[i++]=y-.34414*(w-128)-.71414*(W-128),r[i++]=y+1.772*(w-128)}}function Lc(e,r,t){if(e===void 0)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!==0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let i=0,l=0;if(t){for(let a=0;a<n;a+=2){const d=e[i++],P=e[i++],y=e[i++],w=e[i++];r[l++]=d+1.402*(w-128),r[l++]=d-.34414*(y-128)-.71414*(w-128),r[l++]=d+1.772*(y-128),r[l++]=255,r[l++]=P+1.402*(w-128),r[l++]=P-.34414*(y-128)-.71414*(w-128),r[l++]=P+1.772*(y-128),r[l++]=255}return}for(let a=0;a<n;a+=2){const d=e[i++],P=e[i++],y=e[i++],w=e[i++];r[l++]=d+1.402*(w-128),r[l++]=d-.34414*(y-128)-.71414*(w-128),r[l++]=d+1.772*(y-128),r[l++]=P+1.402*(w-128),r[l++]=P-.34414*(y-128)-.71414*(w-128),r[l++]=P+1.772*(y-128)}}function Ea(e,r,t){const n=e[`${r}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const i=vn("imagePixelModule",e.imageId);return i&&typeof i.then=="function"?i.then(l=>l?l[`${r}PaletteColorLookupTableData`]:t):Promise.resolve(i?i[`${r}PaletteColorLookupTableData`]:t)}async function Uc(e){const r=[];if(!e.redPaletteColorLookupTableData||!e.greenPaletteColorLookupTableData||!e.bluePaletteColorLookupTableData){const n=Promise.all([Ea(e,"red",null),Ea(e,"green",null),Ea(e,"blue",null)]).then(([i,l,a])=>{e.redPaletteColorLookupTableData=i,e.greenPaletteColorLookupTableData=l,e.bluePaletteColorLookupTableData=a});r.push(n)}r.length>0&&await Promise.all(r)}function Bi(e,r){const t=e.length,n=new Uint8ClampedArray(t);for(let i=0;i<t;++i)n[i]=e[i]>>r;return n}function Ro(e,r,t){const n=e.columns*e.rows,i=e.pixelData,l=e.redPaletteColorLookupTableData,a=e.greenPaletteColorLookupTableData,d=e.bluePaletteColorLookupTableData;if(!l||!a||!d)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const P=l.length;let y=0,w=0;const W=e.redPaletteColorLookupTableDescriptor[1],k=e.redPaletteColorLookupTableDescriptor[2]>8&&l.some(ee=>ee>255)?8:0,j=Bi(l,k),Y=Bi(a,k),K=Bi(d,k);if(t){for(let ee=0;ee<n;++ee){let X=i[y++];X<W?X=0:X>W+P-1?X=P-1:X-=W,r[w++]=j[X],r[w++]=Y[X],r[w++]=K[X],r[w++]=255}return}for(let ee=0;ee<n;++ee){let X=i[y++];X<W?X=0:X>W+P-1?X=P-1:X-=W,r[w++]=j[X],r[w++]=Y[X],r[w++]=K[X]}}async function Mc(e,r,t){await Uc(e),Ro(e,r,t)}function ji(e,r){if(!(!e.elements[r]||e.elements[r].length!==6))return[e.uint16(r,0),e.uint16(r,1),e.uint16(r,2)]}function Hi(e,r,t){const n=[],i=e.elements[r];for(let l=0;l<t[0];l++)t[2]===16?n[l]=e.uint16(r,l):n[l]=e.byteArray[l+i.dataOffset];return n}function Fc(e,r){r.redPaletteColorLookupTableDescriptor=ji(e,"x00281101"),r.greenPaletteColorLookupTableDescriptor=ji(e,"x00281102"),r.bluePaletteColorLookupTableDescriptor=ji(e,"x00281103"),r.redPaletteColorLookupTableDescriptor[0]===0&&(r.redPaletteColorLookupTableDescriptor[0]=65536,r.greenPaletteColorLookupTableDescriptor[0]=65536,r.bluePaletteColorLookupTableDescriptor[0]=65536);const t=r.redPaletteColorLookupTableDescriptor[0],i=e.elements.x00281201.length===t?8:16;r.redPaletteColorLookupTableDescriptor[2]!==i&&(r.redPaletteColorLookupTableDescriptor[2]=i,r.greenPaletteColorLookupTableDescriptor[2]=i,r.bluePaletteColorLookupTableDescriptor[2]=i),r.redPaletteColorLookupTableData=Hi(e,"x00281201",r.redPaletteColorLookupTableDescriptor),r.greenPaletteColorLookupTableData=Hi(e,"x00281202",r.greenPaletteColorLookupTableDescriptor),r.bluePaletteColorLookupTableData=Hi(e,"x00281203",r.bluePaletteColorLookupTableDescriptor)}function Nc(e,r){e.uint16("x00280103")===0?(r.smallestPixelValue=e.uint16("x00280106"),r.largestPixelValue=e.uint16("x00280107")):(r.smallestPixelValue=e.int16("x00280106"),r.largestPixelValue=e.int16("x00280107"))}function ml(e){const r={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return Nc(e,r),r.photometricInterpretation==="PALETTE COLOR"&&e.elements.x00281101&&Fc(e,r),r}function Wc(e,r){let t=r.uint16("x00283002",0);t===0&&(t=65535);let n=0;e===0?n=r.uint16("x00283002",1):n=r.int16("x00283002",1);const i=r.uint16("x00283002",2),l={id:"1",firstValueMapped:n,numBitsPerEntry:i,lut:[]};for(let a=0;a<t;a++)e===0?l.lut[a]=r.uint16("x00283006",a):l.lut[a]=r.int16("x00283006",a);return l}function co(e,r){if(!r||!r.items||!r.items.length)return;const t=[];for(let n=0;n<r.items.length;n++){const i=r.items[n].dataSet,l=Wc(e,i);l&&t.push(l)}return t}function Bc(e){const r=e.uint16("x00280103"),t=e.uint16("x00280101");return r===0?0:-1<<t-1}function bl(e){const r=e.string("x00080016");if(r==="1.2.840.10008.5.1.4.1.1.2"||r==="1.2.840.10008.5.1.4.1.1.2.1")return 1;const t=e.floatString("x00281052"),n=e.floatString("x00281053");return t!==void 0&&n!==void 0?Bc(e)*n+t<0?1:0:e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")}function Ar(e,r,t){const n=[],i=e.string(r);if(!i)return;const l=i.split("\\");if(!(t&&l.length<t)){for(let a=0;a<l.length;a++)n.push(parseFloat(l[a]));return n}}var yi={exports:{}};var jc=yi.exports,Qo;function Hc(){return Qo||(Qo=1,(function(e,r){(function(t,n){e.exports=n(ei)})(jc,function(t){return i=[function(a,d){a.exports=t},function(a,d,P){P.r(d),P.d(d,"isStringVr",function(){return w}),P.d(d,"isPrivateTag",function(){return W}),P.d(d,"parsePN",function(){return F}),P.d(d,"parseTM",function(){return k}),P.d(d,"parseDA",function(){return Y}),P.d(d,"explicitElementToString",function(){return K}),P.d(d,"explicitDataSetToJS",function(){return ee}),P.d(d,"createJPEGBasicOffsetTable",function(){return J}),P.d(d,"parseDicomDataSetExplicit",function(){return Ke}),P.d(d,"parseDicomDataSetImplicit",function(){return ft}),P.d(d,"readFixedString",function(){return le}),P.d(d,"alloc",function(){return bt}),P.d(d,"version",function(){return ot}),P.d(d,"bigEndianByteArrayParser",function(){return Ze}),P.d(d,"ByteStream",function(){return Qe}),P.d(d,"sharedCopy",function(){return He}),P.d(d,"DataSet",function(){return oe}),P.d(d,"findAndSetUNElementLength",function(){return re}),P.d(d,"findEndOfEncapsulatedElement",function(){return he}),P.d(d,"findItemDelimitationItemAndSetElementLength",function(){return be}),P.d(d,"littleEndianByteArrayParser",function(){return vt}),P.d(d,"parseDicom",function(){return Bt}),P.d(d,"readDicomElementExplicit",function(){return Ce}),P.d(d,"readDicomElementImplicit",function(){return ve}),P.d(d,"readEncapsulatedImageFrame",function(){return vr}),P.d(d,"readEncapsulatedPixelData",function(){return Sr}),P.d(d,"readEncapsulatedPixelDataFromFragments",function(){return wt}),P.d(d,"readPart10Header",function(){return Zt}),P.d(d,"readSequenceItemsExplicit",function(){return Be}),P.d(d,"readSequenceItemsImplicit",function(){return Fe}),P.d(d,"readSequenceItem",function(){return ge}),P.d(d,"readTag",function(){return ce});var y={AE:!0,AS:!0,AT:!1,CS:!0,DA:!0,DS:!0,DT:!0,FL:!1,FD:!1,IS:!0,LO:!0,LT:!0,OB:!1,OD:!1,OF:!1,OW:!1,PN:!0,SH:!0,SL:!1,SQ:!1,SS:!1,ST:!0,TM:!0,UI:!0,UL:!1,UN:void 0,UR:!0,US:!1,UT:!0},w=function(m){return y[m]},W=function(m){if(m=parseInt(m[4],16),isNaN(m))throw"dicomParser.isPrivateTag: cannot parse last character of group";return m%2==1},F=function(m){if(m!==void 0)return m=m.split("^"),{familyName:m[0],givenName:m[1],middleName:m[2],prefix:m[3],suffix:m[4]}};function k(m,$){if(2<=m.length){var I=parseInt(m.substring(0,2),10),T=4<=m.length?parseInt(m.substring(2,4),10):void 0,L=6<=m.length?parseInt(m.substring(4,6),10):void 0,Z=8<=m.length?m.substring(7,13):void 0,Z=Z?parseInt(Z,10)*Math.pow(10,6-Z.length):void 0;if($&&(isNaN(I)||T!==void 0&&isNaN(T)||L!==void 0&&isNaN(L)||Z!==void 0&&isNaN(Z)||I<0||23<I||T&&(T<0||59<T)||L&&(L<0||59<L)||Z&&(Z<0||999999<Z)))throw"invalid TM '".concat(m,"'");return{hours:I,minutes:T,seconds:L,fractionalSeconds:Z}}if($)throw"invalid TM '".concat(m,"'")}function j(m,$,I){return!isNaN(I)&&0<$&&$<=12&&0<m&&m<=(function(T,L){switch(T){case 2:return L%4==0&&L%100||L%400==0?29:28;case 9:case 4:case 6:case 11:return 30;default:return 31}})($,I)}function Y(m,$){if(m&&m.length===8){var I=parseInt(m.substring(0,4),10),T=parseInt(m.substring(4,6),10),L=parseInt(m.substring(6,8),10);if($&&j(L,T,I)!==!0)throw"invalid DA '".concat(m,"'");return{year:I,month:T,day:L}}if($)throw"invalid DA '".concat(m,"'")}function K(m,$){if(m===void 0||$===void 0)throw"dicomParser.explicitElementToString: missing required parameters";if($.vr===void 0)throw"dicomParser.explicitElementToString: cannot convert implicit element to string";var I,T=$.vr,L=$.tag;function Z(xe,De){for(var ze="",Ee=0;Ee<xe;Ee++)Ee!==0&&(ze+="/"),ze+=De.call(m,L,Ee).toString();return ze}if(w(T)===!0)I=m.string(L);else{if(T==="AT"){var fe=m.uint32(L);return fe===void 0?void 0:"x".concat((fe=fe<0?4294967295+fe+1:fe).toString(16).toUpperCase())}T==="US"?I=Z($.length/2,m.uint16):T==="SS"?I=Z($.length/2,m.int16):T==="UL"?I=Z($.length/4,m.uint32):T==="SL"?I=Z($.length/4,m.int32):T==="FD"?I=Z($.length/8,m.double):T==="FL"&&(I=Z($.length/4,m.float))}return I}function ee(m,$){if(m===void 0)throw"dicomParser.explicitDataSetToJS: missing required parameter dataSet";$=$||{omitPrivateAttibutes:!0,maxElementLength:128};var I,T={};for(I in m.elements){var L=m.elements[I];if($.omitPrivateAttibutes!==!0||!W(I))if(L.items){for(var Z=[],fe=0;fe<L.items.length;fe++)Z.push(ee(L.items[fe].dataSet,$));T[I]=Z}else{var xe=void 0;L.length<$.maxElementLength&&(xe=K(m,L)),T[I]=xe!==void 0?xe:{dataOffset:L.dataOffset,length:L.length}}}return T}function X(m,$){return m.byteArray[$]===255&&m.byteArray[$+1]===217}function H(m,$,I){for(var T,L,Z=I;Z<$.fragments.length;Z++)if(T=m,L=Z,L=$.fragments[L],!(!X(T,L.position+L.length-2)&&!X(T,L.position+L.length-3)))return Z}function J(m,$,I){if(m===void 0)throw"dicomParser.createJPEGBasicOffsetTable: missing required parameter dataSet";if($===void 0)throw"dicomParser.createJPEGBasicOffsetTable: missing required parameter pixelDataElement";if($.tag!=="x7fe00010")throw"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010'";if($.encapsulatedPixelData!==!0||$.hadUndefinedLength!==!0||$.basicOffsetTable===void 0||$.fragments===void 0||$.fragments.length<=0)throw"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if(I&&I.length<=0)throw"dicomParser.createJPEGBasicOffsetTable: parameter 'fragments' must not be zero length";I=I||$.fragments;for(var T=[],L=0;;){T.push($.fragments[L].offset);var Z=H(m,$,L);if(Z===void 0||Z===$.fragments.length-1)return T;L=Z+1}}function ce(I){if(I===void 0)throw"dicomParser.readTag: missing required parameter 'byteStream'";var $=256*I.readUint16()*256,I=I.readUint16();return"x".concat("00000000".concat(($+I).toString(16)).substr(-8))}function he(m,$,I){if(m===void 0)throw"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'element'";if($.encapsulatedPixelData=!0,$.basicOffsetTable=[],$.fragments=[],ce(m)!=="xfffee000")throw"dicomParser.findEndOfEncapsulatedElement: basic offset table not found";for(var T=m.readUint32()/4,L=0;L<T;L++){var Z=m.readUint32();$.basicOffsetTable.push(Z)}for(var fe=m.position;m.position<m.byteArray.length;){var xe=ce(m),De=m.readUint32();if(xe==="xfffee0dd")return m.seek(De),void($.length=m.position-$.dataOffset);if(xe!=="xfffee000")return I&&I.push("unexpected tag ".concat(xe," while searching for end of pixel data element with undefined length")),De>m.byteArray.length-m.position&&(De=m.byteArray.length-m.position),$.fragments.push({offset:m.position-fe-8,position:m.position,length:De}),m.seek(De),void($.length=m.position-$.dataOffset);$.fragments.push({offset:m.position-fe-8,position:m.position,length:De}),m.seek(De)}I&&I.push("pixel data element ".concat($.tag," missing sequence delimiter tag xfffee0dd"))}function re(m,$){if(m===void 0)throw"dicomParser.findAndSetUNElementLength: missing required parameter 'byteStream'";for(var I=m.byteArray.length-8;m.position<=I;)if(m.readUint16()===65534){var T=m.readUint16();if(T===57565)return m.readUint32()!==0&&m.warnings("encountered non zero length following item delimiter at position ".concat(m.position-4," while reading element of undefined length with tag ").concat($.tag)),void($.length=m.position-$.dataOffset)}$.length=m.byteArray.length-$.dataOffset,m.seek(m.byteArray.length-m.position)}function le(m,$,I){if(I<0)throw"dicomParser.readFixedString - length cannot be less than 0";if($+I>m.length)throw"dicomParser.readFixedString: attempt to read past end of buffer";for(var T,L="",Z=0;Z<I;Z++){if((T=m[$+Z])===0)return $+=I,L;L+=String.fromCharCode(T)}return L}function ie(m,$){for(var I=0;I<$.length;I++){var T=$[I];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(m,T.key,T)}}function te(m,$){return m.parser!==void 0?m.parser:$}var oe=(function(){function m(T,L,Z){(function(fe,xe){if(!(fe instanceof xe))throw new TypeError("Cannot call a class as a function")})(this,m),this.byteArrayParser=T,this.byteArray=L,this.elements=Z}var $,I;return $=m,(I=[{key:"uint16",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readUint16(this.byteArray,T.dataOffset+2*L)}},{key:"int16",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readInt16(this.byteArray,T.dataOffset+2*L)}},{key:"uint32",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readUint32(this.byteArray,T.dataOffset+4*L)}},{key:"int32",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readInt32(this.byteArray,T.dataOffset+4*L)}},{key:"float",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readFloat(this.byteArray,T.dataOffset+4*L)}},{key:"double",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readDouble(this.byteArray,T.dataOffset+8*L)}},{key:"numStringValues",value:function(T){if(T=this.elements[T],T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length).match(/\\/g),T===null?1:T.length+1}},{key:"string",value:function(T,L){if(T=this.elements[T],T&&T.Value)return T.Value;if(T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length),0<=L?T.split("\\")[L].trim():T.trim()}},{key:"text",value:function(T,L){if(T=this.elements[T],T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length),0<=L?T.split("\\")[L].replace(/ +$/,""):T.replace(/ +$/,"")}},{key:"floatString",value:function(T,L){var Z=this.elements[T];if(Z&&0<Z.length&&(L=this.string(T,L=L!==void 0?L:0),L!==void 0))return parseFloat(L)}},{key:"intString",value:function(T,L){var Z=this.elements[T];if(Z&&0<Z.length&&(L=this.string(T,L=L!==void 0?L:0),L!==void 0))return parseInt(L)}},{key:"attributeTag",value:function(T){var L=this.elements[T];if(L&&L.length===4){var Z=te(L,this.byteArrayParser).readUint16,T=this.byteArray,L=L.dataOffset;return"x".concat("00000000".concat((256*Z(T,L)*256+Z(T,L+2)).toString(16)).substr(-8))}}}])&&ie($.prototype,I),Object.defineProperty($,"prototype",{writable:!1}),m})();function be(m,$){if(m===void 0)throw"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'";for(var I=m.byteArray.length-8;m.position<=I;)if(m.readUint16()===65534){var T=m.readUint16();if(T===57357)return m.readUint32()!==0&&m.warnings("encountered non zero length following item delimiter at position ".concat(m.position-4," while reading element of undefined length with tag ").concat($.tag)),void($.length=m.position-$.dataOffset)}$.length=m.byteArray.length-$.dataOffset,m.seek(m.byteArray.length-m.position)}var Te=function(m,$){return m.vr!==void 0?m.vr==="SQ":$.position+4<=$.byteArray.length?(m=ce($),$.seek(-4),m==="xfffee000"||m==="xfffee0dd"):($.warnings.push("eof encountered before finding sequence item tag or sequence delimiter tag in peeking to determine VR"),!1)};function ve(m,$,I){if(m===void 0)throw"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'";var T=ce(m),T={tag:T,vr:I!==void 0?I(T):void 0,length:m.readUint32(),dataOffset:m.position};return T.length===4294967295&&(T.hadUndefinedLength=!0),T.tag===$||(!Te(T,m)||W(T.tag)&&!T.hadUndefinedLength?T.hadUndefinedLength?be(m,T):m.seek(T.length):(Fe(m,T,I),W(T.tag)&&(T.items=void 0))),T}function ge(m){if(m===void 0)throw"dicomParser.readSequenceItem: missing required parameter 'byteStream'";var $={tag:ce(m),length:m.readUint32(),dataOffset:m.position};if($.tag!=="xfffee000")throw"dicomParser.readSequenceItem: item tag (FFFE,E000) not found at offset ".concat(m.position);return $}function Re(m,$){var I=ge(m);return I.length===4294967295?(I.hadUndefinedLength=!0,I.dataSet=(function(T,L){for(var Z={};T.position<T.byteArray.length;){var fe=ve(T,void 0,L);if((Z[fe.tag]=fe).tag==="xfffee00d")return new oe(T.byteArrayParser,T.byteArray,Z)}return T.warnings.push("eof encountered before finding sequence item delimiter in sequence item of undefined length"),new oe(T.byteArrayParser,T.byteArray,Z)})(m,$),I.length=m.position-I.dataOffset):(I.dataSet=new oe(m.byteArrayParser,m.byteArray,{}),ft(I.dataSet,m,m.position+I.length,{vrCallback:$})),I}function Fe(m,$,I){if(m===void 0)throw"dicomParser.readSequenceItemsImplicit: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.readSequenceItemsImplicit: missing required parameter 'element'";$.items=[],($.length===4294967295?function(T,L,Z){for(;T.position+4<=T.byteArray.length;){var fe=ce(T);if(T.seek(-4),fe==="xfffee0dd")return L.length=T.position-L.dataOffset,T.seek(8);fe=Re(T,Z),L.items.push(fe)}T.warnings.push("eof encountered before finding sequence delimiter in sequence of undefined length"),L.length=T.byteArray.length-L.dataOffset}:function(T,L,Z){for(var fe=L.dataOffset+L.length;T.position<fe;){var xe=Re(T,Z);L.items.push(xe)}})(m,$,I)}function Ie(m,$){var I=ge(m);return I.length===4294967295?(I.hadUndefinedLength=!0,I.dataSet=(function(T,L){for(var Z={};T.position<T.byteArray.length;){var fe=Ce(T,L);if((Z[fe.tag]=fe).tag==="xfffee00d")return new oe(T.byteArrayParser,T.byteArray,Z)}return L.push("eof encountered before finding item delimiter tag while reading sequence item of undefined length"),new oe(T.byteArrayParser,T.byteArray,Z)})(m,$),I.length=m.position-I.dataOffset):(I.dataSet=new oe(m.byteArrayParser,m.byteArray,{}),Ke(I.dataSet,m,m.position+I.length)),I}function Be(m,$,I){if(m===void 0)throw"dicomParser.readSequenceItemsExplicit: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.readSequenceItemsExplicit: missing required parameter 'element'";$.items=[],($.length===4294967295?function(T,L,Z){for(;T.position+4<=T.byteArray.length;){var fe=ce(T);if(T.seek(-4),fe==="xfffee0dd")return L.length=T.position-L.dataOffset,T.seek(8);fe=Ie(T,Z),L.items.push(fe)}Z.push("eof encountered before finding sequence delimitation tag while reading sequence of undefined length"),L.length=T.position-L.dataOffset}:function(T,L,Z){for(var fe=L.dataOffset+L.length;T.position<fe;){var xe=Ie(T,Z);L.items.push(xe)}})(m,$,I)}var je=function(m){return m==="OB"||m==="OD"||m==="OL"||m==="OW"||m==="SQ"||m==="OF"||m==="UC"||m==="UR"||m==="UT"||m==="UN"?4:2};function Ce(m,$,I){if(m===void 0)throw"dicomParser.readDicomElementExplicit: missing required parameter 'byteStream'";var T={tag:ce(m),vr:m.readFixedString(2)};return je(T.vr)===2?T.length=m.readUint16():(m.seek(2),T.length=m.readUint32()),T.dataOffset=m.position,T.length===4294967295&&(T.hadUndefinedLength=!0),T.tag===I||(T.vr==="SQ"?Be(m,T,$):T.length===4294967295?T.tag==="x7fe00010"?he(m,T,$):(T.vr==="UN"?Fe:be)(m,T):m.seek(T.length)),T}function Ke(m,$,I){var T=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{};if(I=I===void 0?$.byteArray.length:I,$===void 0)throw"dicomParser.parseDicomDataSetExplicit: missing required parameter 'byteStream'";if(I<$.position||I>$.byteArray.length)throw"dicomParser.parseDicomDataSetExplicit: invalid value for parameter 'maxP osition'";for(var L=m.elements;$.position<I;){var Z=Ce($,m.warnings,T.untilTag);if((L[Z.tag]=Z).tag===T.untilTag)return}if($.position>I)throw"dicomParser:parseDicomDataSetExplicit: buffer overrun"}function ft(m,$,I){var T=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{};if(I=I===void 0?m.byteArray.length:I,$===void 0)throw"dicomParser.parseDicomDataSetImplicit: missing required parameter 'byteStream'";if(I<$.position||I>$.byteArray.length)throw"dicomParser.parseDicomDataSetImplicit: invalid value for parameter 'maxPosition'";for(var L=m.elements;$.position<I;){var Z=ve($,T.untilTag,T.vrCallback);if((L[Z.tag]=Z).tag===T.untilTag)return}}function bt(m,$){if(typeof Buffer<"u"&&m instanceof Buffer)return Buffer.alloc($);if(m instanceof Uint8Array)return new Uint8Array($);throw"dicomParser.alloc: unknown type for byteArray"}var ot="1.8.12",Ze={readUint16:function(m,$){if($<0)throw"bigEndianByteArrayParser.readUint16: position cannot be less than 0";if($+2>m.length)throw"bigEndianByteArrayParser.readUint16: attempt to read past end of buffer";return(m[$]<<8)+m[$+1]},readInt16:function(m,$){if($<0)throw"bigEndianByteArrayParser.readInt16: position cannot be less than 0";if($+2>m.length)throw"bigEndianByteArrayParser.readInt16: attempt to read past end of buffer";return $=(m[$]<<8)+m[$+1],$=32768&$?$-65535-1:$},readUint32:function(m,$){if($<0)throw"bigEndianByteArrayParser.readUint32: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readUint32: attempt to read past end of buffer";return 256*(256*(256*m[$]+m[$+1])+m[$+2])+m[$+3]},readInt32:function(m,$){if($<0)throw"bigEndianByteArrayParser.readInt32: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readInt32: attempt to read past end of buffer";return(m[$]<<24)+(m[$+1]<<16)+(m[$+2]<<8)+m[$+3]},readFloat:function(m,$){if($<0)throw"bigEndianByteArrayParser.readFloat: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readFloat: attempt to read past end of buffer";var I=new Uint8Array(4);return I[3]=m[$],I[2]=m[$+1],I[1]=m[$+2],I[0]=m[$+3],new Float32Array(I.buffer)[0]},readDouble:function(m,$){if($<0)throw"bigEndianByteArrayParser.readDouble: position cannot be less than 0";if($+8>m.length)throw"bigEndianByteArrayParser.readDouble: attempt to read past end of buffer";var I=new Uint8Array(8);return I[7]=m[$],I[6]=m[$+1],I[5]=m[$+2],I[4]=m[$+3],I[3]=m[$+4],I[2]=m[$+5],I[1]=m[$+6],I[0]=m[$+7],new Float64Array(I.buffer)[0]}};function He(m,$,I){if(typeof Buffer<"u"&&m instanceof Buffer)return m.slice($,$+I);if(m instanceof Uint8Array)return new Uint8Array(m.buffer,m.byteOffset+$,I);throw"dicomParser.from: unknown type for byteArray"}function ke(m,$){for(var I=0;I<$.length;I++){var T=$[I];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(m,T.key,T)}}var Qe=(function(){function m(T,L,Z){if((function(fe,xe){if(!(fe instanceof xe))throw new TypeError("Cannot call a class as a function")})(this,m),T===void 0)throw"dicomParser.ByteStream: missing required parameter 'byteArrayParser'";if(L===void 0)throw"dicomParser.ByteStream: missing required parameter 'byteArray'";if(!(L instanceof Uint8Array)&&(typeof Buffer>"u"||!(L instanceof Buffer)))throw"dicomParser.ByteStream: parameter byteArray is not of type Uint8Array or Buffer";if(Z<0)throw"dicomParser.ByteStream: parameter 'position' cannot be less than 0";if(Z>=L.length)throw"dicomParser.ByteStream: parameter 'position' cannot be greater than or equal to 'byteArray' length";this.byteArrayParser=T,this.byteArray=L,this.position=Z||0,this.warnings=[]}var $,I;return $=m,(I=[{key:"seek",value:function(T){if(this.position+T<0)throw"dicomParser.ByteStream.prototype.seek: cannot seek to position < 0";this.position+=T}},{key:"readByteStream",value:function(T){if(this.position+T>this.byteArray.length)throw"dicomParser.ByteStream.prototype.readByteStream: readByteStream - buffer overread";var L=He(this.byteArray,this.position,T);return this.position+=T,new m(this.byteArrayParser,L)}},{key:"getSize",value:function(){return this.byteArray.length}},{key:"readUint16",value:function(){var T=this.byteArrayParser.readUint16(this.byteArray,this.position);return this.position+=2,T}},{key:"readUint32",value:function(){var T=this.byteArrayParser.readUint32(this.byteArray,this.position);return this.position+=4,T}},{key:"readFixedString",value:function(T){var L=le(this.byteArray,this.position,T);return this.position+=T,L}}])&&ke($.prototype,I),Object.defineProperty($,"prototype",{writable:!1}),m})(),vt={readUint16:function(m,$){if($<0)throw"littleEndianByteArrayParser.readUint16: position cannot be less than 0";if($+2>m.length)throw"littleEndianByteArrayParser.readUint16: attempt to read past end of buffer";return m[$]+256*m[$+1]},readInt16:function(m,$){if($<0)throw"littleEndianByteArrayParser.readInt16: position cannot be less than 0";if($+2>m.length)throw"littleEndianByteArrayParser.readInt16: attempt to read past end of buffer";return $=m[$]+(m[$+1]<<8),$=32768&$?$-65535-1:$},readUint32:function(m,$){if($<0)throw"littleEndianByteArrayParser.readUint32: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readUint32: attempt to read past end of buffer";return m[$]+256*m[$+1]+256*m[$+2]*256+256*m[$+3]*256*256},readInt32:function(m,$){if($<0)throw"littleEndianByteArrayParser.readInt32: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readInt32: attempt to read past end of buffer";return m[$]+(m[$+1]<<8)+(m[$+2]<<16)+(m[$+3]<<24)},readFloat:function(m,$){if($<0)throw"littleEndianByteArrayParser.readFloat: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readFloat: attempt to read past end of buffer";var I=new Uint8Array(4);return I[0]=m[$],I[1]=m[$+1],I[2]=m[$+2],I[3]=m[$+3],new Float32Array(I.buffer)[0]},readDouble:function(m,$){if($<0)throw"littleEndianByteArrayParser.readDouble: position cannot be less than 0";if($+8>m.length)throw"littleEndianByteArrayParser.readDouble: attempt to read past end of buffer";var I=new Uint8Array(8);return I[0]=m[$],I[1]=m[$+1],I[2]=m[$+2],I[3]=m[$+3],I[4]=m[$+4],I[5]=m[$+5],I[6]=m[$+6],I[7]=m[$+7],new Float64Array(I.buffer)[0]}};function Zt(m){var $=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};if(m===void 0)throw"dicomParser.readPart10Header: missing required parameter 'byteArray'";var I=$.TransferSyntaxUID,T=new Qe(vt,m);return(function(){var L=(function(){if(T.getSize()<=132&&I)return!1;if(T.seek(128),T.readFixedString(4)==="DICM")return!0;if(!($||{}).TransferSyntaxUID)throw"dicomParser.readPart10Header: DICM prefix not found at location 132 - this is not a valid DICOM P10 file.";return T.seek(0),!1})(),Z=[],fe={};if(!L)return T.position=0,{elements:{x00020010:{tag:"x00020010",vr:"UI",Value:I}},warnings:Z};for(;T.position<T.byteArray.length;){var xe=T.position,De=Ce(T,Z);if("x0002ffff"<De.tag){T.position=xe;break}De.parser=vt,fe[De.tag]=De}return(L=new oe(T.byteArrayParser,T.byteArray,fe)).warnings=T.warnings,L.position=T.position,L})()}var Wt="1.2.840.10008.1.2.2";function Bt(m){var $=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};if(m===void 0)throw new Error("dicomParser.parseDicom: missing required parameter 'byteArray'");var I,T=function(Z){if(Z.elements.x00020010===void 0)throw new Error("dicomParser.parseDicom: missing required meta header attribute 0002,0010");return Z=Z.elements.x00020010,Z&&Z.Value||le(m,Z.dataOffset,Z.length)};function L(De){var xe=T(De),fe=xe!=="1.2.840.10008.1.2",xe=(function(ze,Ee){var qe=Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]";if(ze!=="1.2.840.10008.1.2.1.99")return new Qe(ze===Wt?Ze:vt,m,Ee);if($&&$.inflater)return ze=$.inflater(m,Ee),new Qe(vt,ze,0);if(qe==!0){var Ne=P(0),Ve=He(m,Ee,m.length-Ee),Ne=Ne.inflateRawSync(Ve),Ve=bt(m,Ne.length+Ee);return m.copy(Ve,0,0,Ee),Ne.copy(Ve,Ee),new Qe(vt,Ve,0)}if(typeof pako>"u")throw"dicomParser.parseDicom: no inflater available to handle deflate transfer syntax";return Ne=m.slice(Ee),Ve=pako.inflateRaw(Ne),(Ne=bt(m,Ve.length+Ee)).set(m.slice(0,Ee),0),Ne.set(Ve,Ee),new Qe(vt,Ne,0)})(xe,De.position),De=new oe(xe.byteArrayParser,xe.byteArray,{});De.warnings=xe.warnings;try{(fe?Ke:ft)(De,xe,xe.byteArray.length,$)}catch(ze){throw{exception:ze,dataSet:De}}return De}return(function(Z,fe){for(var xe in Z.elements)Z.elements.hasOwnProperty(xe)&&(fe.elements[xe]=Z.elements[xe]);return Z.warnings!==void 0&&(fe.warnings=Z.warnings.concat(fe.warnings)),fe})(I=Zt(m,$),L(I))}var kt=function(m,$,I){for(var T=0,L=$;L<$+I;L++)T+=m[L].length;return T};function wt(m,fe,I,T,L){if(L=L||fe.fragments,m===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'dataSet'";if(fe===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'pixelDataElement'";if(I===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'startFragmentIndex'";if((T=T||1)===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'numFragments'";if(fe.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010";if(fe.encapsulatedPixelData!==!0||fe.hadUndefinedLength!==!0||fe.basicOffsetTable===void 0||fe.fragments===void 0||fe.fragments.length<=0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if(I<0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be >= 0";if(I>=fe.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be < number of fragments";if(T<1)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'numFragments' must be > 0";if(I+T>fe.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragment' + 'numFragments' < number of fragments";var Z=new Qe(m.byteArrayParser,m.byteArray,fe.dataOffset),fe=ge(Z);if(fe.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";Z.seek(fe.length);var xe=Z.position;if(T===1)return He(Z.byteArray,xe+L[I].offset+8,L[I].length);for(var fe=kt(L,I,T),De=bt(Z.byteArray,fe),ze=0,Ee=I;Ee<I+T;Ee++)for(var qe=xe+L[Ee].offset+8,Ne=0;Ne<L[Ee].length;Ne++)De[ze++]=Z.byteArray[qe++];return De}var hr=function(m,$){for(var I=0;I<m.length;I++)if(m[I].offset===$)return I},pr=function(m,$,I,T){if(m===$.length-1)return I.length-T;for(var L=$[m+1],Z=T+1;Z<I.length;Z++)if(I[Z].offset===L)return Z-T;throw"dicomParser.calculateNumberOfFragmentsForFrame: could not find fragment with offset matching basic offset table"};function vr(m,$,I,T,L){if(T=T||$.basicOffsetTable,L=L||$.fragments,m===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'dataSet'";if($===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'pixelDataElement'";if(I===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'frameIndex'";if(T===void 0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' does not have basicOffsetTable";if($.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010)";if($.encapsulatedPixelData!==!0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if($.hadUndefinedLength!==!0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have undefined length";if($.fragments===void 0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have fragments";if(T.length===0)throw"dicomParser.readEncapsulatedImageFrame: basicOffsetTable has zero entries";if(I<0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be >= 0";if(I>=T.length)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be < basicOffsetTable.length";var Z=T[I],Z=hr(L,Z);if(Z===void 0)throw"dicomParser.readEncapsulatedImageFrame: unable to find fragment that matches basic offset table entry";return wt(m,$,Z,pr(I,T,L,Z),L)}var Cr=!1;function Sr(m,$,I){if(Cr||(Cr=!0,console&&console.log&&console.log("WARNING: dicomParser.readEncapsulatedPixelData() has been deprecated")),m===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'dataSet'";if($===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'element'";if(I===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'frame'";if($.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to non pixel data tag (expected tag = x7fe00010)";if($.encapsulatedPixelData!==!0||$.hadUndefinedLength!==!0||$.basicOffsetTable===void 0||$.fragments===void 0)throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data";if(I<0)throw"dicomParser.readEncapsulatedPixelData: parameter 'frame' must be >= 0";return $.basicOffsetTable.length!==0?vr(m,$,I):wt(m,$,0,$.fragments.length)}d.default={isStringVr:w,isPrivateTag:W,parsePN:F,parseTM:k,parseDA:Y,explicitElementToString:K,explicitDataSetToJS:ee,createJPEGBasicOffsetTable:J,parseDicomDataSetExplicit:Ke,parseDicomDataSetImplicit:ft,readFixedString:le,alloc:bt,version:ot,bigEndianByteArrayParser:Ze,ByteStream:Qe,sharedCopy:He,DataSet:oe,findAndSetUNElementLength:re,findEndOfEncapsulatedElement:he,findItemDelimitationItemAndSetElementLength:be,littleEndianByteArrayParser:vt,parseDicom:Bt,readDicomElementExplicit:Ce,readDicomElementImplicit:ve,readEncapsulatedImageFrame:vr,readEncapsulatedPixelData:Sr,readEncapsulatedPixelDataFromFragments:wt,readPart10Header:Zt,readSequenceItemsExplicit:Be,readSequenceItemsImplicit:Fe,readSequenceItem:ge,readTag:ce,LEI:"1.2.840.10008.1.2",LEE:"1.2.840.10008.1.2.1"}}],l={},n.m=i,n.c=l,n.d=function(a,d,P){n.o(a,d)||Object.defineProperty(a,d,{enumerable:!0,get:P})},n.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},n.t=function(a,d){if(1&d&&(a=n(a)),8&d||4&d&&typeof a=="object"&&a&&a.__esModule)return a;var P=Object.create(null);if(n.r(P),Object.defineProperty(P,"default",{enumerable:!0,value:a}),2&d&&typeof a!="string")for(var y in a)n.d(P,y,(function(w){return a[w]}).bind(null,y));return P},n.n=function(a){var d=a&&a.__esModule?function(){return a.default}:function(){return a};return n.d(d,"a",d),d},n.o=function(a,d){return Object.prototype.hasOwnProperty.call(a,d)},n.p="",n(n.s=1);function n(a){if(l[a])return l[a].exports;var d=l[a]={i:a,l:!1,exports:{}};return i[a].call(d.exports,d,d.exports,n),d.l=!0,d.exports}var i,l})})(yi)),yi.exports}var ar=Hc();function Da(e){const r=e.indexOf(":");let t=e.substring(r+1);const n=t.indexOf("frame=");let i;if(n!==-1){const d=t.substring(n+6);i=parseInt(d,10),t=t.substring(0,n-1)}const l=e.substring(0,r),a=i!==void 0?i-1:void 0;return{scheme:l,url:t,frame:i,pixelDataFrame:a}}let uo={open(e,r){e.open("get",r,!0)},beforeSend:async()=>{},beforeProcessing(e){return Promise.resolve(e.response)},imageCreated(){},strict:!1};function wl(e){uo=Object.assign(uo,e)}function ti(){return uo}function Si(e,r,t={},n={}){const i=ti(),l=P=>{if(typeof i.errorInterceptor=="function"){const y=new Error("request failed");y.request=P,y.response=P.response,y.status=P.status,i.errorInterceptor(y)}},a=new XMLHttpRequest,d=new Promise(async(P,y)=>{i.open(a,e,t,n);const w=await i.beforeSend(a,r,t,n);a.responseType="arraybuffer";const W=Object.assign({},t,w);Object.keys(W).forEach(function(F){W[F]!==null&&(F==="Accept"&&e.indexOf("accept=")!==-1||a.setRequestHeader(F,W[F]))}),n.deferred={resolve:P,reject:y},n.url=e,n.imageId=r,a.onloadstart=function(F){i.onloadstart&&i.onloadstart(F,n),Pa(xa,"cornerstoneimageloadstart",{url:e,imageId:r})},a.onloadend=function(F){i.onloadend&&i.onloadend(F,n),Pa(xa,"cornerstoneimageloadend",{url:e,imageId:r})},a.onreadystatechange=function(F){i.onreadystatechange&&i.onreadystatechange(F,n),a.readyState===4&&(a.status===200||a.status===206?i.beforeProcessing(a).then(P).catch(()=>{l(a),y(a)}):(l(a),y(a)))},a.onprogress=function(F){const k=F.loaded;let j,Y;F.lengthComputable&&(j=F.total,Y=Math.round(k/j*100)),Pa(xa,"cornerstoneimageloadprogress",{url:e,imageId:r,loaded:k,total:j,percentComplete:Y}),i.onprogress&&i.onprogress(F,n)},a.onerror=function(){l(a),y(a)},a.onabort=function(){l(a),y(a)},a.send()});return d.xhr=a,d}function zc(e,r,t){if(t+e.length>r.length)return!1;let n=t;for(let i=0;i<e.length;i++)if(e[i]!==r[n++])return!1;return!0}function Vc(e){const r=new Uint8Array(e.length);for(let t=0,n=e.length;t<n;t++)r[t]=e.charCodeAt(t);return r}function ho(e,r,t){t=t||0;const n=Vc(r);for(let i=t;i<e.length;i++)if(n[0]===e[i]&&zc(n,e,i))return i;return-1}const{ImageQualityStatus:es}=_n;function Io(e,r,t){t||={};const n=new Uint8Array(r),i=!!t?.isPartial;if(e.indexOf("multipart")===-1)return{contentType:e,imageQualityStatus:i?es.SUBRESOLUTION:es.FULL_RESOLUTION,pixelData:n};let{tokenIndex:l,responseHeaders:a,boundary:d,multipartContentType:P}=t;if(l||=ho(n,`\r
2
2
  \r
3
3
  `),l===-1)throw new Error("invalid response - no multipart mime header");if(!d&&(a=qc(n,0,l).split(`\r
4
4
  `),d=Gc(a),!d))throw new Error("invalid response - no boundary marker");const y=l+4,w=ho(n,d,y);if(w===-1&&!i)throw new Error("invalid response - terminating boundary not found");return P||=Zc(a),t.tokenIndex=l,t.boundary=d,t.responseHeaders=a,t.multipartContentType=P,t.isPartial=w===-1,{contentType:P,extractDone:!i||w!==-1,tokenIndex:l,responseHeaders:a,boundary:d,multipartContentType:P,pixelData:r.slice(y,w-2)}}function Gc(e){for(let r=0;r<e.length;r++)if(e[r].substr(0,2)==="--")return e[r]}function Zc(e){for(let r=0;r<e.length;r++)if(e[r].substr(0,13)==="Content-Type:")return e[r].substr(13).trim()}function qc(e,r,t){r=r||0,t=t||e.length-r;let n="";for(let i=r;i<r+t;i++)n+=String.fromCharCode(e[i]);return n}const{ImageQualityStatus:ts}=_n;function Oo(e,r=!0){return r?e.imageQualityStatus??ts.FULL_RESOLUTION:ts.SUBRESOLUTION}const{ProgressiveIterator:Jc}=dl;function Pl(e,r,t={},n={}){const i=ti(),{retrieveOptions:l={},streamingData:a={}}=n,d=l.minChunkSize||128*1024,P=w=>{if(typeof i.errorInterceptor=="function"){const W=new Error("request failed");i.errorInterceptor(W)}},y=new Jc("streamRequest");return y.generate(async(w,W)=>{const F=await i.beforeSend?.(null,e,t,{}),k=Object.assign({},t,F);Object.keys(k).forEach(function(j){k[j]===null&&(k[j]=void 0),j==="Accept"&&e.indexOf("accept=")!==-1&&(k[j]=void 0)});try{const j=await fetch(e,{headers:k,signal:void 0});if(j.status!==200)throw new Error(`Couldn't retrieve ${e} got status ${j.status}`);const Y=j.body.getReader(),K=j.headers,ee=K.get("content-type"),X=Number(K.get("Content-Length"));let H=!1,J=a.encodedData,ce=a.lastSize||0;for(a.isPartial=!0;!H;){const{done:he,value:re}=await Y.read();if(J=Yc(J,re),!J){if(H)throw new Error(`Done but no image frame available ${r}`);continue}if(H=he||J.byteLength===X,!H&&J.length<ce+d)continue;ce=J.length,a.isPartial=!he;const le=Io(ee,J,a),ie=Oo(l,H),te={url:e,imageId:r,...le,percentComplete:he?100:le.pixelData?.length*100/X,imageQualityStatus:ie,done:H};w.add(te,H)}}catch(j){P(),console.error(j),W(j)}}),y.getNextPromise()}function Yc(e,r){if(!e)return r;if(!r)return e;const t=new Uint8Array(e.length+r.length);return t.set(e,0),t.set(r,e.length),t}const Xc={xhrRequest:Si,streamRequest:Pl,setOptions:wl,getOptions:ti};const Kc=4,rs=0,ns=1,Qc=2;function Ra(e){let r=e.length;for(;--r>=0;)e[r]=0}const eu=0,xl=1,tu=2,ru=3,nu=258,ko=29,ri=256,Ga=ri+1+ko,Ta=30,Lo=19,El=2*Ga+1,da=15,zi=16,au=7,Uo=256,Tl=16,$l=17,Al=18,po=new Uint8Array([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]),mi=new Uint8Array([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]),iu=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Cl=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ou=512,hn=new Array((Ga+2)*2);Ra(hn);const Ba=new Array(Ta*2);Ra(Ba);const Za=new Array(ou);Ra(Za);const qa=new Array(nu-ru+1);Ra(qa);const Mo=new Array(ko);Ra(Mo);const xi=new Array(Ta);Ra(xi);function Vi(e,r,t,n,i){this.static_tree=e,this.extra_bits=r,this.extra_base=t,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}let Sl,Dl,Rl;function Gi(e,r){this.dyn_tree=e,this.max_code=0,this.stat_desc=r}const Il=e=>e<256?Za[e]:Za[256+(e>>>7)],Ja=(e,r)=>{e.pending_buf[e.pending++]=r&255,e.pending_buf[e.pending++]=r>>>8&255},Gt=(e,r,t)=>{e.bi_valid>zi-t?(e.bi_buf|=r<<e.bi_valid&65535,Ja(e,e.bi_buf),e.bi_buf=r>>zi-e.bi_valid,e.bi_valid+=t-zi):(e.bi_buf|=r<<e.bi_valid&65535,e.bi_valid+=t)},Br=(e,r,t)=>{Gt(e,t[r*2],t[r*2+1])},Ol=(e,r)=>{let t=0;do t|=e&1,e>>>=1,t<<=1;while(--r>0);return t>>>1},su=e=>{e.bi_valid===16?(Ja(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},lu=(e,r)=>{const t=r.dyn_tree,n=r.max_code,i=r.stat_desc.static_tree,l=r.stat_desc.has_stree,a=r.stat_desc.extra_bits,d=r.stat_desc.extra_base,P=r.stat_desc.max_length;let y,w,W,F,k,j,Y=0;for(F=0;F<=da;F++)e.bl_count[F]=0;for(t[e.heap[e.heap_max]*2+1]=0,y=e.heap_max+1;y<El;y++)w=e.heap[y],F=t[t[w*2+1]*2+1]+1,F>P&&(F=P,Y++),t[w*2+1]=F,!(w>n)&&(e.bl_count[F]++,k=0,w>=d&&(k=a[w-d]),j=t[w*2],e.opt_len+=j*(F+k),l&&(e.static_len+=j*(i[w*2+1]+k)));if(Y!==0){do{for(F=P-1;e.bl_count[F]===0;)F--;e.bl_count[F]--,e.bl_count[F+1]+=2,e.bl_count[P]--,Y-=2}while(Y>0);for(F=P;F!==0;F--)for(w=e.bl_count[F];w!==0;)W=e.heap[--y],!(W>n)&&(t[W*2+1]!==F&&(e.opt_len+=(F-t[W*2+1])*t[W*2],t[W*2+1]=F),w--)}},kl=(e,r,t)=>{const n=new Array(da+1);let i=0,l,a;for(l=1;l<=da;l++)i=i+t[l-1]<<1,n[l]=i;for(a=0;a<=r;a++){let d=e[a*2+1];d!==0&&(e[a*2]=Ol(n[d]++,d))}},fu=()=>{let e,r,t,n,i;const l=new Array(da+1);for(t=0,n=0;n<ko-1;n++)for(Mo[n]=t,e=0;e<1<<po[n];e++)qa[t++]=n;for(qa[t-1]=n,i=0,n=0;n<16;n++)for(xi[n]=i,e=0;e<1<<mi[n];e++)Za[i++]=n;for(i>>=7;n<Ta;n++)for(xi[n]=i<<7,e=0;e<1<<mi[n]-7;e++)Za[256+i++]=n;for(r=0;r<=da;r++)l[r]=0;for(e=0;e<=143;)hn[e*2+1]=8,e++,l[8]++;for(;e<=255;)hn[e*2+1]=9,e++,l[9]++;for(;e<=279;)hn[e*2+1]=7,e++,l[7]++;for(;e<=287;)hn[e*2+1]=8,e++,l[8]++;for(kl(hn,Ga+1,l),e=0;e<Ta;e++)Ba[e*2+1]=5,Ba[e*2]=Ol(e,5);Sl=new Vi(hn,po,ri+1,Ga,da),Dl=new Vi(Ba,mi,0,Ta,da),Rl=new Vi(new Array(0),iu,0,Lo,au)},Ll=e=>{let r;for(r=0;r<Ga;r++)e.dyn_ltree[r*2]=0;for(r=0;r<Ta;r++)e.dyn_dtree[r*2]=0;for(r=0;r<Lo;r++)e.bl_tree[r*2]=0;e.dyn_ltree[Uo*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Ul=e=>{e.bi_valid>8?Ja(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},as=(e,r,t,n)=>{const i=r*2,l=t*2;return e[i]<e[l]||e[i]===e[l]&&n[r]<=n[t]},Zi=(e,r,t)=>{const n=e.heap[t];let i=t<<1;for(;i<=e.heap_len&&(i<e.heap_len&&as(r,e.heap[i+1],e.heap[i],e.depth)&&i++,!as(r,n,e.heap[i],e.depth));)e.heap[t]=e.heap[i],t=i,i<<=1;e.heap[t]=n},is=(e,r,t)=>{let n,i,l=0,a,d;if(e.sym_next!==0)do n=e.pending_buf[e.sym_buf+l++]&255,n+=(e.pending_buf[e.sym_buf+l++]&255)<<8,i=e.pending_buf[e.sym_buf+l++],n===0?Br(e,i,r):(a=qa[i],Br(e,a+ri+1,r),d=po[a],d!==0&&(i-=Mo[a],Gt(e,i,d)),n--,a=Il(n),Br(e,a,t),d=mi[a],d!==0&&(n-=xi[a],Gt(e,n,d)));while(l<e.sym_next);Br(e,Uo,r)},vo=(e,r)=>{const t=r.dyn_tree,n=r.stat_desc.static_tree,i=r.stat_desc.has_stree,l=r.stat_desc.elems;let a,d,P=-1,y;for(e.heap_len=0,e.heap_max=El,a=0;a<l;a++)t[a*2]!==0?(e.heap[++e.heap_len]=P=a,e.depth[a]=0):t[a*2+1]=0;for(;e.heap_len<2;)y=e.heap[++e.heap_len]=P<2?++P:0,t[y*2]=1,e.depth[y]=0,e.opt_len--,i&&(e.static_len-=n[y*2+1]);for(r.max_code=P,a=e.heap_len>>1;a>=1;a--)Zi(e,t,a);y=l;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Zi(e,t,1),d=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=d,t[y*2]=t[a*2]+t[d*2],e.depth[y]=(e.depth[a]>=e.depth[d]?e.depth[a]:e.depth[d])+1,t[a*2+1]=t[d*2+1]=y,e.heap[1]=y++,Zi(e,t,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],lu(e,r),kl(t,P,e.bl_count)},os=(e,r,t)=>{let n,i=-1,l,a=r[1],d=0,P=7,y=4;for(a===0&&(P=138,y=3),r[(t+1)*2+1]=65535,n=0;n<=t;n++)l=a,a=r[(n+1)*2+1],!(++d<P&&l===a)&&(d<y?e.bl_tree[l*2]+=d:l!==0?(l!==i&&e.bl_tree[l*2]++,e.bl_tree[Tl*2]++):d<=10?e.bl_tree[$l*2]++:e.bl_tree[Al*2]++,d=0,i=l,a===0?(P=138,y=3):l===a?(P=6,y=3):(P=7,y=4))},ss=(e,r,t)=>{let n,i=-1,l,a=r[1],d=0,P=7,y=4;for(a===0&&(P=138,y=3),n=0;n<=t;n++)if(l=a,a=r[(n+1)*2+1],!(++d<P&&l===a)){if(d<y)do Br(e,l,e.bl_tree);while(--d!==0);else l!==0?(l!==i&&(Br(e,l,e.bl_tree),d--),Br(e,Tl,e.bl_tree),Gt(e,d-3,2)):d<=10?(Br(e,$l,e.bl_tree),Gt(e,d-3,3)):(Br(e,Al,e.bl_tree),Gt(e,d-11,7));d=0,i=l,a===0?(P=138,y=3):l===a?(P=6,y=3):(P=7,y=4)}},cu=e=>{let r;for(os(e,e.dyn_ltree,e.l_desc.max_code),os(e,e.dyn_dtree,e.d_desc.max_code),vo(e,e.bl_desc),r=Lo-1;r>=3&&e.bl_tree[Cl[r]*2+1]===0;r--);return e.opt_len+=3*(r+1)+5+5+4,r},uu=(e,r,t,n)=>{let i;for(Gt(e,r-257,5),Gt(e,t-1,5),Gt(e,n-4,4),i=0;i<n;i++)Gt(e,e.bl_tree[Cl[i]*2+1],3);ss(e,e.dyn_ltree,r-1),ss(e,e.dyn_dtree,t-1)},du=e=>{let r=4093624447,t;for(t=0;t<=31;t++,r>>>=1)if(r&1&&e.dyn_ltree[t*2]!==0)return rs;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return ns;for(t=32;t<ri;t++)if(e.dyn_ltree[t*2]!==0)return ns;return rs};let ls=!1;const hu=e=>{ls||(fu(),ls=!0),e.l_desc=new Gi(e.dyn_ltree,Sl),e.d_desc=new Gi(e.dyn_dtree,Dl),e.bl_desc=new Gi(e.bl_tree,Rl),e.bi_buf=0,e.bi_valid=0,Ll(e)},Ml=(e,r,t,n)=>{Gt(e,(eu<<1)+(n?1:0),3),Ul(e),Ja(e,t),Ja(e,~t),t&&e.pending_buf.set(e.window.subarray(r,r+t),e.pending),e.pending+=t},pu=e=>{Gt(e,xl<<1,3),Br(e,Uo,hn),su(e)},vu=(e,r,t,n)=>{let i,l,a=0;e.level>0?(e.strm.data_type===Qc&&(e.strm.data_type=du(e)),vo(e,e.l_desc),vo(e,e.d_desc),a=cu(e),i=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=i&&(i=l)):i=l=t+5,t+4<=i&&r!==-1?Ml(e,r,t,n):e.strategy===Kc||l===i?(Gt(e,(xl<<1)+(n?1:0),3),is(e,hn,Ba)):(Gt(e,(tu<<1)+(n?1:0),3),uu(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),is(e,e.dyn_ltree,e.dyn_dtree)),Ll(e),n&&Ul(e)},gu=(e,r,t)=>(e.pending_buf[e.sym_buf+e.sym_next++]=r,e.pending_buf[e.sym_buf+e.sym_next++]=r>>8,e.pending_buf[e.sym_buf+e.sym_next++]=t,r===0?e.dyn_ltree[t*2]++:(e.matches++,r--,e.dyn_ltree[(qa[t]+ri+1)*2]++,e.dyn_dtree[Il(r)*2]++),e.sym_next===e.sym_end);var _u=hu,yu=Ml,mu=vu,bu=gu,wu=pu,Pu={_tr_init:_u,_tr_stored_block:yu,_tr_flush_block:mu,_tr_tally:bu,_tr_align:wu};const xu=(e,r,t,n)=>{let i=e&65535|0,l=e>>>16&65535|0,a=0;for(;t!==0;){a=t>2e3?2e3:t,t-=a;do i=i+r[n++]|0,l=l+i|0;while(--a);i%=65521,l%=65521}return i|l<<16|0};var Ya=xu;const Eu=()=>{let e,r=[];for(var t=0;t<256;t++){e=t;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r},Tu=new Uint32Array(Eu()),$u=(e,r,t,n)=>{const i=Tu,l=n+t;e^=-1;for(let a=n;a<l;a++)e=e>>>8^i[(e^r[a])&255];return e^-1};var mt=$u,va={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ni={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Au,_tr_stored_block:go,_tr_flush_block:Cu,_tr_tally:Fn,_tr_align:Su}=Pu,{Z_NO_FLUSH:Nn,Z_PARTIAL_FLUSH:Du,Z_FULL_FLUSH:Ru,Z_FINISH:ur,Z_BLOCK:fs,Z_OK:Ct,Z_STREAM_END:cs,Z_STREAM_ERROR:jr,Z_DATA_ERROR:Iu,Z_BUF_ERROR:qi,Z_DEFAULT_COMPRESSION:Ou,Z_FILTERED:ku,Z_HUFFMAN_ONLY:ui,Z_RLE:Lu,Z_FIXED:Uu,Z_DEFAULT_STRATEGY:Mu,Z_UNKNOWN:Fu,Z_DEFLATED:Di}=ni,Nu=9,Wu=15,Bu=8,ju=29,Hu=256,_o=Hu+1+ju,zu=30,Vu=19,Gu=2*_o+1,Zu=15,Oe=3,Mn=258,Hr=Mn+Oe+1,qu=32,Aa=42,Fo=57,yo=69,mo=73,bo=91,wo=103,ha=113,Ua=666,Nt=1,Ia=2,ga=3,Oa=4,Ju=3,pa=(e,r)=>(e.msg=va[r],r),us=e=>e*2-(e>4?9:0),Un=e=>{let r=e.length;for(;--r>=0;)e[r]=0},Yu=e=>{let r,t,n,i=e.w_size;r=e.hash_size,n=r;do t=e.head[--n],e.head[n]=t>=i?t-i:0;while(--r);r=i,n=r;do t=e.prev[--n],e.prev[n]=t>=i?t-i:0;while(--r)};let Xu=(e,r,t)=>(r<<e.hash_shift^t)&e.hash_mask,Wn=Xu;const nr=e=>{const r=e.state;let t=r.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.output.set(r.pending_buf.subarray(r.pending_out,r.pending_out+t),e.next_out),e.next_out+=t,r.pending_out+=t,e.total_out+=t,e.avail_out-=t,r.pending-=t,r.pending===0&&(r.pending_out=0))},ir=(e,r)=>{Cu(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,r),e.block_start=e.strstart,nr(e.strm)},We=(e,r)=>{e.pending_buf[e.pending++]=r},La=(e,r)=>{e.pending_buf[e.pending++]=r>>>8&255,e.pending_buf[e.pending++]=r&255},Po=(e,r,t,n)=>{let i=e.avail_in;return i>n&&(i=n),i===0?0:(e.avail_in-=i,r.set(e.input.subarray(e.next_in,e.next_in+i),t),e.state.wrap===1?e.adler=Ya(e.adler,r,i,t):e.state.wrap===2&&(e.adler=mt(e.adler,r,i,t)),e.next_in+=i,e.total_in+=i,i)},Fl=(e,r)=>{let t=e.max_chain_length,n=e.strstart,i,l,a=e.prev_length,d=e.nice_match;const P=e.strstart>e.w_size-Hr?e.strstart-(e.w_size-Hr):0,y=e.window,w=e.w_mask,W=e.prev,F=e.strstart+Mn;let k=y[n+a-1],j=y[n+a];e.prev_length>=e.good_match&&(t>>=2),d>e.lookahead&&(d=e.lookahead);do if(i=r,!(y[i+a]!==j||y[i+a-1]!==k||y[i]!==y[n]||y[++i]!==y[n+1])){n+=2,i++;do;while(y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&n<F);if(l=Mn-(F-n),n=F-Mn,l>a){if(e.match_start=r,a=l,l>=d)break;k=y[n+a-1],j=y[n+a]}}while((r=W[r&w])>P&&--t!==0);return a<=e.lookahead?a:e.lookahead},Ca=e=>{const r=e.w_size;let t,n,i;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=r+(r-Hr)&&(e.window.set(e.window.subarray(r,r+r-n),0),e.match_start-=r,e.strstart-=r,e.block_start-=r,e.insert>e.strstart&&(e.insert=e.strstart),Yu(e),n+=r),e.strm.avail_in===0)break;if(t=Po(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=t,e.lookahead+e.insert>=Oe)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=Wn(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=Wn(e,e.ins_h,e.window[i+Oe-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<Oe)););}while(e.lookahead<Hr&&e.strm.avail_in!==0)},Nl=(e,r)=>{let t=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n,i,l,a=0,d=e.strm.avail_in;do{if(n=65535,l=e.bi_valid+42>>3,e.strm.avail_out<l||(l=e.strm.avail_out-l,i=e.strstart-e.block_start,n>i+e.strm.avail_in&&(n=i+e.strm.avail_in),n>l&&(n=l),n<t&&(n===0&&r!==ur||r===Nn||n!==i+e.strm.avail_in)))break;a=r===ur&&n===i+e.strm.avail_in?1:0,go(e,0,0,a),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,nr(e.strm),i&&(i>n&&(i=n),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,n-=i),n&&(Po(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}while(a===0);return d-=e.strm.avail_in,d&&(d>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=d&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-d,e.strm.next_in),e.strstart),e.strstart+=d,e.insert+=d>e.w_size-e.insert?e.w_size-e.insert:d),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),a?Oa:r!==Nn&&r!==ur&&e.strm.avail_in===0&&e.strstart===e.block_start?Ia:(l=e.window_size-e.strstart,e.strm.avail_in>l&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,l+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),l>e.strm.avail_in&&(l=e.strm.avail_in),l&&(Po(e.strm,e.window,e.strstart,l),e.strstart+=l,e.insert+=l>e.w_size-e.insert?e.w_size-e.insert:l),e.high_water<e.strstart&&(e.high_water=e.strstart),l=e.bi_valid+42>>3,l=e.pending_buf_size-l>65535?65535:e.pending_buf_size-l,t=l>e.w_size?e.w_size:l,i=e.strstart-e.block_start,(i>=t||(i||r===ur)&&r!==Nn&&e.strm.avail_in===0&&i<=l)&&(n=i>l?l:i,a=r===ur&&e.strm.avail_in===0&&n===i?1:0,go(e,e.block_start,n,a),e.block_start+=n,nr(e.strm)),a?ga:Nt)},Ji=(e,r)=>{let t,n;for(;;){if(e.lookahead<Hr){if(Ca(e),e.lookahead<Hr&&r===Nn)return Nt;if(e.lookahead===0)break}if(t=0,e.lookahead>=Oe&&(e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+Oe-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),t!==0&&e.strstart-t<=e.w_size-Hr&&(e.match_length=Fl(e,t)),e.match_length>=Oe)if(n=Fn(e,e.strstart-e.match_start,e.match_length-Oe),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Oe){e.match_length--;do e.strstart++,e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+Oe-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+1]);else n=Fn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ir(e,!1),e.strm.avail_out===0))return Nt}return e.insert=e.strstart<Oe-1?e.strstart:Oe-1,r===ur?(ir(e,!0),e.strm.avail_out===0?ga:Oa):e.sym_next&&(ir(e,!1),e.strm.avail_out===0)?Nt:Ia},ma=(e,r)=>{let t,n,i;for(;;){if(e.lookahead<Hr){if(Ca(e),e.lookahead<Hr&&r===Nn)return Nt;if(e.lookahead===0)break}if(t=0,e.lookahead>=Oe&&(e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+Oe-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=Oe-1,t!==0&&e.prev_length<e.max_lazy_match&&e.strstart-t<=e.w_size-Hr&&(e.match_length=Fl(e,t),e.match_length<=5&&(e.strategy===ku||e.match_length===Oe&&e.strstart-e.match_start>4096)&&(e.match_length=Oe-1)),e.prev_length>=Oe&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-Oe,n=Fn(e,e.strstart-1-e.prev_match,e.prev_length-Oe),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+Oe-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=Oe-1,e.strstart++,n&&(ir(e,!1),e.strm.avail_out===0))return Nt}else if(e.match_available){if(n=Fn(e,0,e.window[e.strstart-1]),n&&ir(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Nt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Fn(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Oe-1?e.strstart:Oe-1,r===ur?(ir(e,!0),e.strm.avail_out===0?ga:Oa):e.sym_next&&(ir(e,!1),e.strm.avail_out===0)?Nt:Ia},Ku=(e,r)=>{let t,n,i,l;const a=e.window;for(;;){if(e.lookahead<=Mn){if(Ca(e),e.lookahead<=Mn&&r===Nn)return Nt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Oe&&e.strstart>0&&(i=e.strstart-1,n=a[i],n===a[++i]&&n===a[++i]&&n===a[++i])){l=e.strstart+Mn;do;while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<l);e.match_length=Mn-(l-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Oe?(t=Fn(e,1,e.match_length-Oe),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=Fn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(ir(e,!1),e.strm.avail_out===0))return Nt}return e.insert=0,r===ur?(ir(e,!0),e.strm.avail_out===0?ga:Oa):e.sym_next&&(ir(e,!1),e.strm.avail_out===0)?Nt:Ia},Qu=(e,r)=>{let t;for(;;){if(e.lookahead===0&&(Ca(e),e.lookahead===0)){if(r===Nn)return Nt;break}if(e.match_length=0,t=Fn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(ir(e,!1),e.strm.avail_out===0))return Nt}return e.insert=0,r===ur?(ir(e,!0),e.strm.avail_out===0?ga:Oa):e.sym_next&&(ir(e,!1),e.strm.avail_out===0)?Nt:Ia};function Wr(e,r,t,n,i){this.good_length=e,this.max_lazy=r,this.nice_length=t,this.max_chain=n,this.func=i}const Ma=[new Wr(0,0,0,0,Nl),new Wr(4,4,8,4,Ji),new Wr(4,5,16,8,Ji),new Wr(4,6,32,32,Ji),new Wr(4,4,16,16,ma),new Wr(8,16,32,32,ma),new Wr(8,16,128,128,ma),new Wr(8,32,128,256,ma),new Wr(32,128,258,1024,ma),new Wr(32,258,258,4096,ma)],ed=e=>{e.window_size=2*e.w_size,Un(e.head),e.max_lazy_match=Ma[e.level].max_lazy,e.good_match=Ma[e.level].good_length,e.nice_match=Ma[e.level].nice_length,e.max_chain_length=Ma[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Oe-1,e.match_available=0,e.ins_h=0};function td(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Di,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Gu*2),this.dyn_dtree=new Uint16Array((2*zu+1)*2),this.bl_tree=new Uint16Array((2*Vu+1)*2),Un(this.dyn_ltree),Un(this.dyn_dtree),Un(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Zu+1),this.heap=new Uint16Array(2*_o+1),Un(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*_o+1),Un(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const ai=e=>{if(!e)return 1;const r=e.state;return!r||r.strm!==e||r.status!==Aa&&r.status!==Fo&&r.status!==yo&&r.status!==mo&&r.status!==bo&&r.status!==wo&&r.status!==ha&&r.status!==Ua?1:0},Wl=e=>{if(ai(e))return pa(e,jr);e.total_in=e.total_out=0,e.data_type=Fu;const r=e.state;return r.pending=0,r.pending_out=0,r.wrap<0&&(r.wrap=-r.wrap),r.status=r.wrap===2?Fo:r.wrap?Aa:ha,e.adler=r.wrap===2?0:1,r.last_flush=-2,Au(r),Ct},Bl=e=>{const r=Wl(e);return r===Ct&&ed(e.state),r},rd=(e,r)=>ai(e)||e.state.wrap!==2?jr:(e.state.gzhead=r,Ct),jl=(e,r,t,n,i,l)=>{if(!e)return jr;let a=1;if(r===Ou&&(r=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),i<1||i>Nu||t!==Di||n<8||n>15||r<0||r>9||l<0||l>Uu||n===8&&a!==1)return pa(e,jr);n===8&&(n=9);const d=new td;return e.state=d,d.strm=e,d.status=Aa,d.wrap=a,d.gzhead=null,d.w_bits=n,d.w_size=1<<d.w_bits,d.w_mask=d.w_size-1,d.hash_bits=i+7,d.hash_size=1<<d.hash_bits,d.hash_mask=d.hash_size-1,d.hash_shift=~~((d.hash_bits+Oe-1)/Oe),d.window=new Uint8Array(d.w_size*2),d.head=new Uint16Array(d.hash_size),d.prev=new Uint16Array(d.w_size),d.lit_bufsize=1<<i+6,d.pending_buf_size=d.lit_bufsize*4,d.pending_buf=new Uint8Array(d.pending_buf_size),d.sym_buf=d.lit_bufsize,d.sym_end=(d.lit_bufsize-1)*3,d.level=r,d.strategy=l,d.method=t,Bl(e)},nd=(e,r)=>jl(e,r,Di,Wu,Bu,Mu),ad=(e,r)=>{if(ai(e)||r>fs||r<0)return e?pa(e,jr):jr;const t=e.state;if(!e.output||e.avail_in!==0&&!e.input||t.status===Ua&&r!==ur)return pa(e,e.avail_out===0?qi:jr);const n=t.last_flush;if(t.last_flush=r,t.pending!==0){if(nr(e),e.avail_out===0)return t.last_flush=-1,Ct}else if(e.avail_in===0&&us(r)<=us(n)&&r!==ur)return pa(e,qi);if(t.status===Ua&&e.avail_in!==0)return pa(e,qi);if(t.status===Aa&&t.wrap===0&&(t.status=ha),t.status===Aa){let i=Di+(t.w_bits-8<<4)<<8,l=-1;if(t.strategy>=ui||t.level<2?l=0:t.level<6?l=1:t.level===6?l=2:l=3,i|=l<<6,t.strstart!==0&&(i|=qu),i+=31-i%31,La(t,i),t.strstart!==0&&(La(t,e.adler>>>16),La(t,e.adler&65535)),e.adler=1,t.status=ha,nr(e),t.pending!==0)return t.last_flush=-1,Ct}if(t.status===Fo){if(e.adler=0,We(t,31),We(t,139),We(t,8),t.gzhead)We(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),We(t,t.gzhead.time&255),We(t,t.gzhead.time>>8&255),We(t,t.gzhead.time>>16&255),We(t,t.gzhead.time>>24&255),We(t,t.level===9?2:t.strategy>=ui||t.level<2?4:0),We(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(We(t,t.gzhead.extra.length&255),We(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(e.adler=mt(e.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=yo;else if(We(t,0),We(t,0),We(t,0),We(t,0),We(t,0),We(t,t.level===9?2:t.strategy>=ui||t.level<2?4:0),We(t,Ju),t.status=ha,nr(e),t.pending!==0)return t.last_flush=-1,Ct}if(t.status===yo){if(t.gzhead.extra){let i=t.pending,l=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+l>t.pending_buf_size;){let d=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+d),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex+=d,nr(e),t.pending!==0)return t.last_flush=-1,Ct;i=0,l-=d}let a=new Uint8Array(t.gzhead.extra);t.pending_buf.set(a.subarray(t.gzindex,t.gzindex+l),t.pending),t.pending+=l,t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=mo}if(t.status===mo){if(t.gzhead.name){let i=t.pending,l;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),nr(e),t.pending!==0)return t.last_flush=-1,Ct;i=0}t.gzindex<t.gzhead.name.length?l=t.gzhead.name.charCodeAt(t.gzindex++)&255:l=0,We(t,l)}while(l!==0);t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=bo}if(t.status===bo){if(t.gzhead.comment){let i=t.pending,l;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),nr(e),t.pending!==0)return t.last_flush=-1,Ct;i=0}t.gzindex<t.gzhead.comment.length?l=t.gzhead.comment.charCodeAt(t.gzindex++)&255:l=0,We(t,l)}while(l!==0);t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i))}t.status=wo}if(t.status===wo){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(nr(e),t.pending!==0))return t.last_flush=-1,Ct;We(t,e.adler&255),We(t,e.adler>>8&255),e.adler=0}if(t.status=ha,nr(e),t.pending!==0)return t.last_flush=-1,Ct}if(e.avail_in!==0||t.lookahead!==0||r!==Nn&&t.status!==Ua){let i=t.level===0?Nl(t,r):t.strategy===ui?Qu(t,r):t.strategy===Lu?Ku(t,r):Ma[t.level].func(t,r);if((i===ga||i===Oa)&&(t.status=Ua),i===Nt||i===ga)return e.avail_out===0&&(t.last_flush=-1),Ct;if(i===Ia&&(r===Du?Su(t):r!==fs&&(go(t,0,0,!1),r===Ru&&(Un(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),nr(e),e.avail_out===0))return t.last_flush=-1,Ct}return r!==ur?Ct:t.wrap<=0?cs:(t.wrap===2?(We(t,e.adler&255),We(t,e.adler>>8&255),We(t,e.adler>>16&255),We(t,e.adler>>24&255),We(t,e.total_in&255),We(t,e.total_in>>8&255),We(t,e.total_in>>16&255),We(t,e.total_in>>24&255)):(La(t,e.adler>>>16),La(t,e.adler&65535)),nr(e),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?Ct:cs)},id=e=>{if(ai(e))return jr;const r=e.state.status;return e.state=null,r===ha?pa(e,Iu):Ct},od=(e,r)=>{let t=r.length;if(ai(e))return jr;const n=e.state,i=n.wrap;if(i===2||i===1&&n.status!==Aa||n.lookahead)return jr;if(i===1&&(e.adler=Ya(e.adler,r,t,0)),n.wrap=0,t>=n.w_size){i===0&&(Un(n.head),n.strstart=0,n.block_start=0,n.insert=0);let P=new Uint8Array(n.w_size);P.set(r.subarray(t-n.w_size,t),0),r=P,t=n.w_size}const l=e.avail_in,a=e.next_in,d=e.input;for(e.avail_in=t,e.next_in=0,e.input=r,Ca(n);n.lookahead>=Oe;){let P=n.strstart,y=n.lookahead-(Oe-1);do n.ins_h=Wn(n,n.ins_h,n.window[P+Oe-1]),n.prev[P&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=P,P++;while(--y);n.strstart=P,n.lookahead=Oe-1,Ca(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Oe-1,n.match_available=0,e.next_in=a,e.input=d,e.avail_in=l,n.wrap=i,Ct};var sd=nd,ld=jl,fd=Bl,cd=Wl,ud=rd,dd=ad,hd=id,pd=od,vd="pako deflate (from Nodeca project)",ja={deflateInit:sd,deflateInit2:ld,deflateReset:fd,deflateResetKeep:cd,deflateSetHeader:ud,deflate:dd,deflateEnd:hd,deflateSetDictionary:pd,deflateInfo:vd};const gd=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var _d=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const t=r.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const n in t)gd(t,n)&&(e[n]=t[n])}}return e},yd=e=>{let r=0;for(let n=0,i=e.length;n<i;n++)r+=e[n].length;const t=new Uint8Array(r);for(let n=0,i=0,l=e.length;n<l;n++){let a=e[n];t.set(a,i),i+=a.length}return t},Ri={assign:_d,flattenChunks:yd};let Hl=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Hl=!1}const Xa=new Uint8Array(256);for(let e=0;e<256;e++)Xa[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Xa[254]=Xa[254]=1;var md=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let r,t,n,i,l,a=e.length,d=0;for(i=0;i<a;i++)t=e.charCodeAt(i),(t&64512)===55296&&i+1<a&&(n=e.charCodeAt(i+1),(n&64512)===56320&&(t=65536+(t-55296<<10)+(n-56320),i++)),d+=t<128?1:t<2048?2:t<65536?3:4;for(r=new Uint8Array(d),l=0,i=0;l<d;i++)t=e.charCodeAt(i),(t&64512)===55296&&i+1<a&&(n=e.charCodeAt(i+1),(n&64512)===56320&&(t=65536+(t-55296<<10)+(n-56320),i++)),t<128?r[l++]=t:t<2048?(r[l++]=192|t>>>6,r[l++]=128|t&63):t<65536?(r[l++]=224|t>>>12,r[l++]=128|t>>>6&63,r[l++]=128|t&63):(r[l++]=240|t>>>18,r[l++]=128|t>>>12&63,r[l++]=128|t>>>6&63,r[l++]=128|t&63);return r};const bd=(e,r)=>{if(r<65534&&e.subarray&&Hl)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let t="";for(let n=0;n<r;n++)t+=String.fromCharCode(e[n]);return t};var wd=(e,r)=>{const t=r||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,r));let n,i;const l=new Array(t*2);for(i=0,n=0;n<t;){let a=e[n++];if(a<128){l[i++]=a;continue}let d=Xa[a];if(d>4){l[i++]=65533,n+=d-1;continue}for(a&=d===2?31:d===3?15:7;d>1&&n<t;)a=a<<6|e[n++]&63,d--;if(d>1){l[i++]=65533;continue}a<65536?l[i++]=a:(a-=65536,l[i++]=55296|a>>10&1023,l[i++]=56320|a&1023)}return bd(l,i)},Pd=(e,r)=>{r=r||e.length,r>e.length&&(r=e.length);let t=r-1;for(;t>=0&&(e[t]&192)===128;)t--;return t<0||t===0?r:t+Xa[e[t]]>r?t:r},Ka={string2buf:md,buf2string:wd,utf8border:Pd};function xd(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zl=xd;const Vl=Object.prototype.toString,{Z_NO_FLUSH:Ed,Z_SYNC_FLUSH:Td,Z_FULL_FLUSH:$d,Z_FINISH:Ad,Z_OK:Ei,Z_STREAM_END:Cd,Z_DEFAULT_COMPRESSION:Sd,Z_DEFAULT_STRATEGY:Dd,Z_DEFLATED:Rd}=ni;function ii(e){this.options=Ri.assign({level:Sd,method:Rd,chunkSize:16384,windowBits:15,memLevel:8,strategy:Dd},e||{});let r=this.options;r.raw&&r.windowBits>0?r.windowBits=-r.windowBits:r.gzip&&r.windowBits>0&&r.windowBits<16&&(r.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zl,this.strm.avail_out=0;let t=ja.deflateInit2(this.strm,r.level,r.method,r.windowBits,r.memLevel,r.strategy);if(t!==Ei)throw new Error(va[t]);if(r.header&&ja.deflateSetHeader(this.strm,r.header),r.dictionary){let n;if(typeof r.dictionary=="string"?n=Ka.string2buf(r.dictionary):Vl.call(r.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(r.dictionary):n=r.dictionary,t=ja.deflateSetDictionary(this.strm,n),t!==Ei)throw new Error(va[t]);this._dict_set=!0}}ii.prototype.push=function(e,r){const t=this.strm,n=this.options.chunkSize;let i,l;if(this.ended)return!1;for(r===~~r?l=r:l=r===!0?Ad:Ed,typeof e=="string"?t.input=Ka.string2buf(e):Vl.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),(l===Td||l===$d)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(i=ja.deflate(t,l),i===Cd)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),i=ja.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Ei;if(t.avail_out===0){this.onData(t.output);continue}if(l>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};ii.prototype.onData=function(e){this.chunks.push(e)};ii.prototype.onEnd=function(e){e===Ei&&(this.result=Ri.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function No(e,r){const t=new ii(r);if(t.push(e,!0),t.err)throw t.msg||va[t.err];return t.result}function Id(e,r){return r=r||{},r.raw=!0,No(e,r)}function Od(e,r){return r=r||{},r.gzip=!0,No(e,r)}var kd=ii,Ld=No,Ud=Id,Md=Od,Fd={Deflate:kd,deflate:Ld,deflateRaw:Ud,gzip:Md};const di=16209,Nd=16191;var Wd=function(r,t){let n,i,l,a,d,P,y,w,W,F,k,j,Y,K,ee,X,H,J,ce,he,re,le,ie,te;const oe=r.state;n=r.next_in,ie=r.input,i=n+(r.avail_in-5),l=r.next_out,te=r.output,a=l-(t-r.avail_out),d=l+(r.avail_out-257),P=oe.dmax,y=oe.wsize,w=oe.whave,W=oe.wnext,F=oe.window,k=oe.hold,j=oe.bits,Y=oe.lencode,K=oe.distcode,ee=(1<<oe.lenbits)-1,X=(1<<oe.distbits)-1;e:do{j<15&&(k+=ie[n++]<<j,j+=8,k+=ie[n++]<<j,j+=8),H=Y[k&ee];t:for(;;){if(J=H>>>24,k>>>=J,j-=J,J=H>>>16&255,J===0)te[l++]=H&65535;else if(J&16){ce=H&65535,J&=15,J&&(j<J&&(k+=ie[n++]<<j,j+=8),ce+=k&(1<<J)-1,k>>>=J,j-=J),j<15&&(k+=ie[n++]<<j,j+=8,k+=ie[n++]<<j,j+=8),H=K[k&X];r:for(;;){if(J=H>>>24,k>>>=J,j-=J,J=H>>>16&255,J&16){if(he=H&65535,J&=15,j<J&&(k+=ie[n++]<<j,j+=8,j<J&&(k+=ie[n++]<<j,j+=8)),he+=k&(1<<J)-1,he>P){r.msg="invalid distance too far back",oe.mode=di;break e}if(k>>>=J,j-=J,J=l-a,he>J){if(J=he-J,J>w&&oe.sane){r.msg="invalid distance too far back",oe.mode=di;break e}if(re=0,le=F,W===0){if(re+=y-J,J<ce){ce-=J;do te[l++]=F[re++];while(--J);re=l-he,le=te}}else if(W<J){if(re+=y+W-J,J-=W,J<ce){ce-=J;do te[l++]=F[re++];while(--J);if(re=0,W<ce){J=W,ce-=J;do te[l++]=F[re++];while(--J);re=l-he,le=te}}}else if(re+=W-J,J<ce){ce-=J;do te[l++]=F[re++];while(--J);re=l-he,le=te}for(;ce>2;)te[l++]=le[re++],te[l++]=le[re++],te[l++]=le[re++],ce-=3;ce&&(te[l++]=le[re++],ce>1&&(te[l++]=le[re++]))}else{re=l-he;do te[l++]=te[re++],te[l++]=te[re++],te[l++]=te[re++],ce-=3;while(ce>2);ce&&(te[l++]=te[re++],ce>1&&(te[l++]=te[re++]))}}else if((J&64)===0){H=K[(H&65535)+(k&(1<<J)-1)];continue r}else{r.msg="invalid distance code",oe.mode=di;break e}break}}else if((J&64)===0){H=Y[(H&65535)+(k&(1<<J)-1)];continue t}else if(J&32){oe.mode=Nd;break e}else{r.msg="invalid literal/length code",oe.mode=di;break e}break}}while(n<i&&l<d);ce=j>>3,n-=ce,j-=ce<<3,k&=(1<<j)-1,r.next_in=n,r.next_out=l,r.avail_in=n<i?5+(i-n):5-(n-i),r.avail_out=l<d?257+(d-l):257-(l-d),oe.hold=k,oe.bits=j};const ba=15,ds=852,hs=592,ps=0,Yi=1,vs=2,Bd=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),jd=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Hd=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),zd=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Vd=(e,r,t,n,i,l,a,d)=>{const P=d.bits;let y=0,w=0,W=0,F=0,k=0,j=0,Y=0,K=0,ee=0,X=0,H,J,ce,he,re,le=null,ie;const te=new Uint16Array(ba+1),oe=new Uint16Array(ba+1);let be=null,Te,ve,ge;for(y=0;y<=ba;y++)te[y]=0;for(w=0;w<n;w++)te[r[t+w]]++;for(k=P,F=ba;F>=1&&te[F]===0;F--);if(k>F&&(k=F),F===0)return i[l++]=1<<24|64<<16|0,i[l++]=1<<24|64<<16|0,d.bits=1,0;for(W=1;W<F&&te[W]===0;W++);for(k<W&&(k=W),K=1,y=1;y<=ba;y++)if(K<<=1,K-=te[y],K<0)return-1;if(K>0&&(e===ps||F!==1))return-1;for(oe[1]=0,y=1;y<ba;y++)oe[y+1]=oe[y]+te[y];for(w=0;w<n;w++)r[t+w]!==0&&(a[oe[r[t+w]]++]=w);if(e===ps?(le=be=a,ie=20):e===Yi?(le=Bd,be=jd,ie=257):(le=Hd,be=zd,ie=0),X=0,w=0,y=W,re=l,j=k,Y=0,ce=-1,ee=1<<k,he=ee-1,e===Yi&&ee>ds||e===vs&&ee>hs)return 1;for(;;){Te=y-Y,a[w]+1<ie?(ve=0,ge=a[w]):a[w]>=ie?(ve=be[a[w]-ie],ge=le[a[w]-ie]):(ve=96,ge=0),H=1<<y-Y,J=1<<j,W=J;do J-=H,i[re+(X>>Y)+J]=Te<<24|ve<<16|ge|0;while(J!==0);for(H=1<<y-1;X&H;)H>>=1;if(H!==0?(X&=H-1,X+=H):X=0,w++,--te[y]===0){if(y===F)break;y=r[t+a[w]]}if(y>k&&(X&he)!==ce){for(Y===0&&(Y=k),re+=W,j=y-Y,K=1<<j;j+Y<F&&(K-=te[j+Y],!(K<=0));)j++,K<<=1;if(ee+=1<<j,e===Yi&&ee>ds||e===vs&&ee>hs)return 1;ce=X&he,i[ce]=k<<24|j<<16|re-l|0}}return X!==0&&(i[re+X]=y-Y<<24|64<<16|0),d.bits=k,0};var Ha=Vd;const Gd=0,Gl=1,Zl=2,{Z_FINISH:gs,Z_BLOCK:Zd,Z_TREES:hi,Z_OK:_a,Z_STREAM_END:qd,Z_NEED_DICT:Jd,Z_STREAM_ERROR:dr,Z_DATA_ERROR:ql,Z_MEM_ERROR:Jl,Z_BUF_ERROR:Yd,Z_DEFLATED:_s}=ni,Ii=16180,ys=16181,ms=16182,bs=16183,ws=16184,Ps=16185,xs=16186,Es=16187,Ts=16188,$s=16189,Ti=16190,dn=16191,Xi=16192,As=16193,Ki=16194,Cs=16195,Ss=16196,Ds=16197,Rs=16198,pi=16199,vi=16200,Is=16201,Os=16202,ks=16203,Ls=16204,Us=16205,Qi=16206,Ms=16207,Fs=16208,Xe=16209,Yl=16210,Xl=16211,Xd=852,Kd=592,Qd=15,e0=Qd,Ns=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function t0(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const ya=e=>{if(!e)return 1;const r=e.state;return!r||r.strm!==e||r.mode<Ii||r.mode>Xl?1:0},Kl=e=>{if(ya(e))return dr;const r=e.state;return e.total_in=e.total_out=r.total=0,e.msg="",r.wrap&&(e.adler=r.wrap&1),r.mode=Ii,r.last=0,r.havedict=0,r.flags=-1,r.dmax=32768,r.head=null,r.hold=0,r.bits=0,r.lencode=r.lendyn=new Int32Array(Xd),r.distcode=r.distdyn=new Int32Array(Kd),r.sane=1,r.back=-1,_a},Ql=e=>{if(ya(e))return dr;const r=e.state;return r.wsize=0,r.whave=0,r.wnext=0,Kl(e)},ef=(e,r)=>{let t;if(ya(e))return dr;const n=e.state;return r<0?(t=0,r=-r):(t=(r>>4)+5,r<48&&(r&=15)),r&&(r<8||r>15)?dr:(n.window!==null&&n.wbits!==r&&(n.window=null),n.wrap=t,n.wbits=r,Ql(e))},tf=(e,r)=>{if(!e)return dr;const t=new t0;e.state=t,t.strm=e,t.window=null,t.mode=Ii;const n=ef(e,r);return n!==_a&&(e.state=null),n},r0=e=>tf(e,e0);let Ws=!0,eo,to;const n0=e=>{if(Ws){eo=new Int32Array(512),to=new Int32Array(32);let r=0;for(;r<144;)e.lens[r++]=8;for(;r<256;)e.lens[r++]=9;for(;r<280;)e.lens[r++]=7;for(;r<288;)e.lens[r++]=8;for(Ha(Gl,e.lens,0,288,eo,0,e.work,{bits:9}),r=0;r<32;)e.lens[r++]=5;Ha(Zl,e.lens,0,32,to,0,e.work,{bits:5}),Ws=!1}e.lencode=eo,e.lenbits=9,e.distcode=to,e.distbits=5},rf=(e,r,t,n)=>{let i;const l=e.state;return l.window===null&&(l.wsize=1<<l.wbits,l.wnext=0,l.whave=0,l.window=new Uint8Array(l.wsize)),n>=l.wsize?(l.window.set(r.subarray(t-l.wsize,t),0),l.wnext=0,l.whave=l.wsize):(i=l.wsize-l.wnext,i>n&&(i=n),l.window.set(r.subarray(t-n,t-n+i),l.wnext),n-=i,n?(l.window.set(r.subarray(t-n,t),0),l.wnext=n,l.whave=l.wsize):(l.wnext+=i,l.wnext===l.wsize&&(l.wnext=0),l.whave<l.wsize&&(l.whave+=i))),0},a0=(e,r)=>{let t,n,i,l,a,d,P,y,w,W,F,k,j,Y,K=0,ee,X,H,J,ce,he,re,le;const ie=new Uint8Array(4);let te,oe;const be=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ya(e)||!e.output||!e.input&&e.avail_in!==0)return dr;t=e.state,t.mode===dn&&(t.mode=Xi),a=e.next_out,i=e.output,P=e.avail_out,l=e.next_in,n=e.input,d=e.avail_in,y=t.hold,w=t.bits,W=d,F=P,le=_a;e:for(;;)switch(t.mode){case Ii:if(t.wrap===0){t.mode=Xi;break}for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.wrap&2&&y===35615){t.wbits===0&&(t.wbits=15),t.check=0,ie[0]=y&255,ie[1]=y>>>8&255,t.check=mt(t.check,ie,2,0),y=0,w=0,t.mode=ys;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((y&255)<<8)+(y>>8))%31){e.msg="incorrect header check",t.mode=Xe;break}if((y&15)!==_s){e.msg="unknown compression method",t.mode=Xe;break}if(y>>>=4,w-=4,re=(y&15)+8,t.wbits===0&&(t.wbits=re),re>15||re>t.wbits){e.msg="invalid window size",t.mode=Xe;break}t.dmax=1<<t.wbits,t.flags=0,e.adler=t.check=1,t.mode=y&512?$s:dn,y=0,w=0;break;case ys:for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.flags=y,(t.flags&255)!==_s){e.msg="unknown compression method",t.mode=Xe;break}if(t.flags&57344){e.msg="unknown header flags set",t.mode=Xe;break}t.head&&(t.head.text=y>>8&1),t.flags&512&&t.wrap&4&&(ie[0]=y&255,ie[1]=y>>>8&255,t.check=mt(t.check,ie,2,0)),y=0,w=0,t.mode=ms;case ms:for(;w<32;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.head&&(t.head.time=y),t.flags&512&&t.wrap&4&&(ie[0]=y&255,ie[1]=y>>>8&255,ie[2]=y>>>16&255,ie[3]=y>>>24&255,t.check=mt(t.check,ie,4,0)),y=0,w=0,t.mode=bs;case bs:for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.head&&(t.head.xflags=y&255,t.head.os=y>>8),t.flags&512&&t.wrap&4&&(ie[0]=y&255,ie[1]=y>>>8&255,t.check=mt(t.check,ie,2,0)),y=0,w=0,t.mode=ws;case ws:if(t.flags&1024){for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.length=y,t.head&&(t.head.extra_len=y),t.flags&512&&t.wrap&4&&(ie[0]=y&255,ie[1]=y>>>8&255,t.check=mt(t.check,ie,2,0)),y=0,w=0}else t.head&&(t.head.extra=null);t.mode=Ps;case Ps:if(t.flags&1024&&(k=t.length,k>d&&(k=d),k&&(t.head&&(re=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(l,l+k),re)),t.flags&512&&t.wrap&4&&(t.check=mt(t.check,n,k,l)),d-=k,l+=k,t.length-=k),t.length))break e;t.length=0,t.mode=xs;case xs:if(t.flags&2048){if(d===0)break e;k=0;do re=n[l+k++],t.head&&re&&t.length<65536&&(t.head.name+=String.fromCharCode(re));while(re&&k<d);if(t.flags&512&&t.wrap&4&&(t.check=mt(t.check,n,k,l)),d-=k,l+=k,re)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=Es;case Es:if(t.flags&4096){if(d===0)break e;k=0;do re=n[l+k++],t.head&&re&&t.length<65536&&(t.head.comment+=String.fromCharCode(re));while(re&&k<d);if(t.flags&512&&t.wrap&4&&(t.check=mt(t.check,n,k,l)),d-=k,l+=k,re)break e}else t.head&&(t.head.comment=null);t.mode=Ts;case Ts:if(t.flags&512){for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.wrap&4&&y!==(t.check&65535)){e.msg="header crc mismatch",t.mode=Xe;break}y=0,w=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=dn;break;case $s:for(;w<32;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}e.adler=t.check=Ns(y),y=0,w=0,t.mode=Ti;case Ti:if(t.havedict===0)return e.next_out=a,e.avail_out=P,e.next_in=l,e.avail_in=d,t.hold=y,t.bits=w,Jd;e.adler=t.check=1,t.mode=dn;case dn:if(r===Zd||r===hi)break e;case Xi:if(t.last){y>>>=w&7,w-=w&7,t.mode=Qi;break}for(;w<3;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}switch(t.last=y&1,y>>>=1,w-=1,y&3){case 0:t.mode=As;break;case 1:if(n0(t),t.mode=pi,r===hi){y>>>=2,w-=2;break e}break;case 2:t.mode=Ss;break;case 3:e.msg="invalid block type",t.mode=Xe}y>>>=2,w-=2;break;case As:for(y>>>=w&7,w-=w&7;w<32;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if((y&65535)!==(y>>>16^65535)){e.msg="invalid stored block lengths",t.mode=Xe;break}if(t.length=y&65535,y=0,w=0,t.mode=Ki,r===hi)break e;case Ki:t.mode=Cs;case Cs:if(k=t.length,k){if(k>d&&(k=d),k>P&&(k=P),k===0)break e;i.set(n.subarray(l,l+k),a),d-=k,l+=k,P-=k,a+=k,t.length-=k;break}t.mode=dn;break;case Ss:for(;w<14;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.nlen=(y&31)+257,y>>>=5,w-=5,t.ndist=(y&31)+1,y>>>=5,w-=5,t.ncode=(y&15)+4,y>>>=4,w-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=Xe;break}t.have=0,t.mode=Ds;case Ds:for(;t.have<t.ncode;){for(;w<3;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.lens[be[t.have++]]=y&7,y>>>=3,w-=3}for(;t.have<19;)t.lens[be[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,te={bits:t.lenbits},le=Ha(Gd,t.lens,0,19,t.lencode,0,t.work,te),t.lenbits=te.bits,le){e.msg="invalid code lengths set",t.mode=Xe;break}t.have=0,t.mode=Rs;case Rs:for(;t.have<t.nlen+t.ndist;){for(;K=t.lencode[y&(1<<t.lenbits)-1],ee=K>>>24,X=K>>>16&255,H=K&65535,!(ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(H<16)y>>>=ee,w-=ee,t.lens[t.have++]=H;else{if(H===16){for(oe=ee+2;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(y>>>=ee,w-=ee,t.have===0){e.msg="invalid bit length repeat",t.mode=Xe;break}re=t.lens[t.have-1],k=3+(y&3),y>>>=2,w-=2}else if(H===17){for(oe=ee+3;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}y>>>=ee,w-=ee,re=0,k=3+(y&7),y>>>=3,w-=3}else{for(oe=ee+7;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}y>>>=ee,w-=ee,re=0,k=11+(y&127),y>>>=7,w-=7}if(t.have+k>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=Xe;break}for(;k--;)t.lens[t.have++]=re}}if(t.mode===Xe)break;if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block",t.mode=Xe;break}if(t.lenbits=9,te={bits:t.lenbits},le=Ha(Gl,t.lens,0,t.nlen,t.lencode,0,t.work,te),t.lenbits=te.bits,le){e.msg="invalid literal/lengths set",t.mode=Xe;break}if(t.distbits=6,t.distcode=t.distdyn,te={bits:t.distbits},le=Ha(Zl,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,te),t.distbits=te.bits,le){e.msg="invalid distances set",t.mode=Xe;break}if(t.mode=pi,r===hi)break e;case pi:t.mode=vi;case vi:if(d>=6&&P>=258){e.next_out=a,e.avail_out=P,e.next_in=l,e.avail_in=d,t.hold=y,t.bits=w,Wd(e,F),a=e.next_out,i=e.output,P=e.avail_out,l=e.next_in,n=e.input,d=e.avail_in,y=t.hold,w=t.bits,t.mode===dn&&(t.back=-1);break}for(t.back=0;K=t.lencode[y&(1<<t.lenbits)-1],ee=K>>>24,X=K>>>16&255,H=K&65535,!(ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(X&&(X&240)===0){for(J=ee,ce=X,he=H;K=t.lencode[he+((y&(1<<J+ce)-1)>>J)],ee=K>>>24,X=K>>>16&255,H=K&65535,!(J+ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}y>>>=J,w-=J,t.back+=J}if(y>>>=ee,w-=ee,t.back+=ee,t.length=H,X===0){t.mode=Us;break}if(X&32){t.back=-1,t.mode=dn;break}if(X&64){e.msg="invalid literal/length code",t.mode=Xe;break}t.extra=X&15,t.mode=Is;case Is:if(t.extra){for(oe=t.extra;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.length+=y&(1<<t.extra)-1,y>>>=t.extra,w-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=Os;case Os:for(;K=t.distcode[y&(1<<t.distbits)-1],ee=K>>>24,X=K>>>16&255,H=K&65535,!(ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if((X&240)===0){for(J=ee,ce=X,he=H;K=t.distcode[he+((y&(1<<J+ce)-1)>>J)],ee=K>>>24,X=K>>>16&255,H=K&65535,!(J+ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}y>>>=J,w-=J,t.back+=J}if(y>>>=ee,w-=ee,t.back+=ee,X&64){e.msg="invalid distance code",t.mode=Xe;break}t.offset=H,t.extra=X&15,t.mode=ks;case ks:if(t.extra){for(oe=t.extra;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.offset+=y&(1<<t.extra)-1,y>>>=t.extra,w-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=Xe;break}t.mode=Ls;case Ls:if(P===0)break e;if(k=F-P,t.offset>k){if(k=t.offset-k,k>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=Xe;break}k>t.wnext?(k-=t.wnext,j=t.wsize-k):j=t.wnext-k,k>t.length&&(k=t.length),Y=t.window}else Y=i,j=a-t.offset,k=t.length;k>P&&(k=P),P-=k,t.length-=k;do i[a++]=Y[j++];while(--k);t.length===0&&(t.mode=vi);break;case Us:if(P===0)break e;i[a++]=t.length,P--,t.mode=vi;break;case Qi:if(t.wrap){for(;w<32;){if(d===0)break e;d--,y|=n[l++]<<w,w+=8}if(F-=P,e.total_out+=F,t.total+=F,t.wrap&4&&F&&(e.adler=t.check=t.flags?mt(t.check,i,F,a-F):Ya(t.check,i,F,a-F)),F=P,t.wrap&4&&(t.flags?y:Ns(y))!==t.check){e.msg="incorrect data check",t.mode=Xe;break}y=0,w=0}t.mode=Ms;case Ms:if(t.wrap&&t.flags){for(;w<32;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.wrap&4&&y!==(t.total&4294967295)){e.msg="incorrect length check",t.mode=Xe;break}y=0,w=0}t.mode=Fs;case Fs:le=qd;break e;case Xe:le=ql;break e;case Yl:return Jl;case Xl:default:return dr}return e.next_out=a,e.avail_out=P,e.next_in=l,e.avail_in=d,t.hold=y,t.bits=w,(t.wsize||F!==e.avail_out&&t.mode<Xe&&(t.mode<Qi||r!==gs))&&rf(e,e.output,e.next_out,F-e.avail_out),W-=e.avail_in,F-=e.avail_out,e.total_in+=W,e.total_out+=F,t.total+=F,t.wrap&4&&F&&(e.adler=t.check=t.flags?mt(t.check,i,F,e.next_out-F):Ya(t.check,i,F,e.next_out-F)),e.data_type=t.bits+(t.last?64:0)+(t.mode===dn?128:0)+(t.mode===pi||t.mode===Ki?256:0),(W===0&&F===0||r===gs)&&le===_a&&(le=Yd),le},i0=e=>{if(ya(e))return dr;let r=e.state;return r.window&&(r.window=null),e.state=null,_a},o0=(e,r)=>{if(ya(e))return dr;const t=e.state;return(t.wrap&2)===0?dr:(t.head=r,r.done=!1,_a)},s0=(e,r)=>{const t=r.length;let n,i,l;return ya(e)||(n=e.state,n.wrap!==0&&n.mode!==Ti)?dr:n.mode===Ti&&(i=1,i=Ya(i,r,t,0),i!==n.check)?ql:(l=rf(e,r,t,t),l?(n.mode=Yl,Jl):(n.havedict=1,_a))};var l0=Ql,f0=ef,c0=Kl,u0=r0,d0=tf,h0=a0,p0=i0,v0=o0,g0=s0,_0="pako inflate (from Nodeca project)",pn={inflateReset:l0,inflateReset2:f0,inflateResetKeep:c0,inflateInit:u0,inflateInit2:d0,inflate:h0,inflateEnd:p0,inflateGetHeader:v0,inflateSetDictionary:g0,inflateInfo:_0};function y0(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var m0=y0;const nf=Object.prototype.toString,{Z_NO_FLUSH:b0,Z_FINISH:w0,Z_OK:Qa,Z_STREAM_END:ro,Z_NEED_DICT:no,Z_STREAM_ERROR:P0,Z_DATA_ERROR:Bs,Z_MEM_ERROR:x0}=ni;function oi(e){this.options=Ri.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const r=this.options;r.raw&&r.windowBits>=0&&r.windowBits<16&&(r.windowBits=-r.windowBits,r.windowBits===0&&(r.windowBits=-15)),r.windowBits>=0&&r.windowBits<16&&!(e&&e.windowBits)&&(r.windowBits+=32),r.windowBits>15&&r.windowBits<48&&(r.windowBits&15)===0&&(r.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zl,this.strm.avail_out=0;let t=pn.inflateInit2(this.strm,r.windowBits);if(t!==Qa)throw new Error(va[t]);if(this.header=new m0,pn.inflateGetHeader(this.strm,this.header),r.dictionary&&(typeof r.dictionary=="string"?r.dictionary=Ka.string2buf(r.dictionary):nf.call(r.dictionary)==="[object ArrayBuffer]"&&(r.dictionary=new Uint8Array(r.dictionary)),r.raw&&(t=pn.inflateSetDictionary(this.strm,r.dictionary),t!==Qa)))throw new Error(va[t])}oi.prototype.push=function(e,r){const t=this.strm,n=this.options.chunkSize,i=this.options.dictionary;let l,a,d;if(this.ended)return!1;for(r===~~r?a=r:a=r===!0?w0:b0,nf.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),l=pn.inflate(t,a),l===no&&i&&(l=pn.inflateSetDictionary(t,i),l===Qa?l=pn.inflate(t,a):l===Bs&&(l=no));t.avail_in>0&&l===ro&&t.state.wrap>0&&e[t.next_in]!==0;)pn.inflateReset(t),l=pn.inflate(t,a);switch(l){case P0:case Bs:case no:case x0:return this.onEnd(l),this.ended=!0,!1}if(d=t.avail_out,t.next_out&&(t.avail_out===0||l===ro))if(this.options.to==="string"){let P=Ka.utf8border(t.output,t.next_out),y=t.next_out-P,w=Ka.buf2string(t.output,P);t.next_out=y,t.avail_out=n-y,y&&t.output.set(t.output.subarray(P,P+y),0),this.onData(w)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(l===Qa&&d===0)){if(l===ro)return l=pn.inflateEnd(this.strm),this.onEnd(l),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};oi.prototype.onData=function(e){this.chunks.push(e)};oi.prototype.onEnd=function(e){e===Qa&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ri.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Wo(e,r){const t=new oi(r);if(t.push(e),t.err)throw t.msg||va[t.err];return t.result}function E0(e,r){return r=r||{},r.raw=!0,Wo(e,r)}var T0=oi,$0=Wo,A0=E0,C0=Wo,S0={Inflate:T0,inflate:$0,inflateRaw:A0,ungzip:C0};const{Deflate:D0,deflate:R0,deflateRaw:I0,gzip:O0}=Fd,{Inflate:k0,inflate:L0,inflateRaw:U0,ungzip:M0}=S0;var F0=D0,N0=R0,W0=I0,B0=O0,j0=k0,H0=L0,z0=U0,V0=M0,G0=ni,Z0={Deflate:F0,deflate:N0,deflateRaw:W0,gzip:B0,Inflate:j0,inflate:H0,inflateRaw:z0,ungzip:V0,constants:G0};function q0(e,r){const t=e.slice(r),n=Z0.inflateRaw(t),i=new Uint8Array(n.length+r);return i.set(e.slice(0,r),0),i.set(n,r),i}const J0={inflater:q0};function xo(e,r){return ar.parseDicom(e,{...J0,...r})}function Y0(e){const r=e.elements.x7fe00010.fragments,t=e.byteArray.length;for(const n of r){const{position:i,length:l}=n;l>t-i&&(console.log(`Truncated fragment, changing fragment length from ${n.length} to ${t-i}`),n.length=t-i)}return e}function X0(e){let r=xo(e,{untilTag:"x7fe00010"});r.elements.x7fe00010||console.warn("Pixel data not found!");let t;try{t=xo(e)}catch(n){console.error(n),console.log("pixel data dataset:",n.dataSet),t=n.dataSet}return r.elements.x7fe00010=t.elements.x7fe00010,r=Y0(r),r}async function af(e,r,t){const n=X0(e),{uri:i,imageId:l,fileTotalLength:a}=t;return n.fetchMore=async function(d){const P=Object.assign({uri:i,imageId:l,fetchedLength:e.length,lengthToFetch:a-e.length},d),{fetchedLength:y,lengthToFetch:w}=P,{arrayBuffer:W}=await r(i,l,{byteRange:`${y}-${y+w}`}),F=new Uint8Array(W),k=new Uint8Array(n.byteArray.length+F.length);return k.set(n.byteArray),k.set(F,n.byteArray.length),af(k,r,t)},n}function K0(e,r){if(!e)return;const{NumberOfFrames:t,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i}=sf(e);if(n||t>1){const{shared:l,perFrame:a}=of(n,i,r);return{NumberOfFrames:t,PerFrameFunctionalInformation:a,SharedFunctionalInformation:l}}return{NumberOfFrames:t}}function of(e,r,t){const n={};(r?Object.values(r.items[0].dataSet.elements):[]).map(l=>n[l.tag]=l);const i={};return(e?Object.values(e.items[t-1].dataSet.elements):[]).map(l=>i[l.tag]=l),{shared:n,perFrame:i}}function sf(e){if(!e)return;const{elements:r,...t}=e,{x52009230:n,x52009229:i,...l}=r;return{NumberOfFrames:e.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i,otherElements:l,otherAttributtes:t}}function Q0(e,r){if(!r)return;const{NumberOfFrames:t,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i,otherElements:l}=sf(r);if(n||t>1){const{shared:a,perFrame:d}=of(n,i,e),P={elements:{...l,...a,...d}},y=Object.create(r);return Object.assign(y,P)}return r}let pt={};const eh=()=>{pt={}};function Bo(e){if(pt[e])return pt[e]}function th(e){const r=Bo(e);return lf(r)}function lf(e){if(!e)return!1;const r=e.intString("x00280008");return r&&r>1}function rh(e){const r=e.match(/[?&]frame=/);return r?r.index:-1}function nh(e){const r=rh(e),t=r===-1?e:e.slice(0,r),n=parseInt(e.slice(r+7),10)||1;let i;return pt[t]?i=pt[t].dataSet:i=void 0,{dataSet:i,frame:n}}function ah(e){const r=[],t=Bo(e);if(lf(t)){const n=t.intString("x00280008");for(let i=1;i<=n;i++)r.push(`${e}&frame=${i}`)}else r.push(e);return r}const ff={_get:Bo,generateMultiframeWADOURIs:ah,retrieveMultiframeDataset:nh,isMultiframeDataset:th};let Sa=0,ua={};function ih(e){return pt[e]!==void 0}function oh(e){let r;if(/[?&]frame=/.test(e)){const{frame:t,dataSet:n}=ff.retrieveMultiframeDataset(e);r=Q0(t,n)}else pt[e]&&(r=pt[e].dataSet);return r}function sh(e,r){const t=pt[e];if(!t){console.error(`No loaded dataSet for uri ${e}`);return}Sa-=t.dataSet.byteArray.length,t.dataSet=r,Sa+=r.byteArray.length,Pa(xa,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Oi()})}function lh(e,r=Si,t){if(pt[e])return new Promise(l=>{pt[e].cacheCount++,l(pt[e].dataSet)});if(ua[e])return ua[e].cacheCount++,ua[e];const n=r(e,t),i=new Promise((l,a)=>{n.then(async function(d){const P={isPartialContent:!1,fileTotalLength:null};if(!(d instanceof ArrayBuffer)){if(!d.arrayBuffer)return a(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));P.isPartialContent=d.flags.isPartialContent,P.fileTotalLength=d.flags.fileTotalLength,d=d.arrayBuffer}const y=new Uint8Array(d);let w;try{P.isPartialContent?w=await af(y,r,{uri:e,imageId:t,fileTotalLength:P.fileTotalLength}):w=xo(y)}catch(W){return a(W)}pt[e]={dataSet:w,cacheCount:i.cacheCount},Sa+=w.byteArray.length,l(w),Pa(xa,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Oi()})},a).then(()=>{delete ua[e]},()=>{delete ua[e]})});return i.cacheCount=1,ua[e]=i,i}function fh(e){pt[e]&&(pt[e].cacheCount--,pt[e].cacheCount===0&&(Sa-=pt[e].dataSet.byteArray.length,delete pt[e],Pa(xa,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Oi()})))}function Oi(){return{cacheSizeInBytes:Sa,numberOfDataSetsCached:Object.keys(pt).length}}function ch(){eh(),ua={},Sa=0}const si={isLoaded:ih,load:lh,unload:fh,getInfo:Oi,purge:ch,get:oh,update:sh};function uh(e){const r=[];for(let t=0;t<=30;t+=2){let n=`x60${t.toString(16)}`;n.length===4&&(n=`x600${t.toString(16)}`);const i=e.elements[`${n}3000`];if(!i)continue;const l=[];for(let a=0;a<i.length;a++)for(let d=0;d<8;d++){const P=e.byteArray[i.dataOffset+a];l[a*8+d]=P>>d&1}r.push({rows:e.uint16(`${n}0010`),columns:e.uint16(`${n}0011`),type:e.string(`${n}0040`),x:e.int16(`${n}0050`,1)-1,y:e.int16(`${n}0050`,0)-1,pixelData:l,description:e.string(`${n}0022`),label:e.string(`${n}1500`),roiArea:e.string(`${n}1301`),roiMean:e.string(`${n}1302`),roiStandardDeviation:e.string(`${n}1303`)})}return{overlays:r}}function ka(e){return e==="RECON TOMO"||e==="RECON GATED TOMO"}function jo(e,r){const t=e.string("x00080008");if(t){const n=t.split("\\");if(n.length>r)return n[r]}}function dh(e){let r;if(e.string("x00080060")?.includes("NM")){const n=jo(e,2);n&&ka(n)&&e.elements.x00540022&&(r=Ar(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return r}function hh(e){let r;if(e.string("x00080060")?.includes("NM")){const n=jo(e,2);n&&ka(n)&&e.elements.x00540022&&(r=Ar(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return r}function js(e){let r=Ar(e,"x00200037",6);return!r&&e.elements.x00209116?.items?.[0]?.dataSet&&(r=Ar(e.elements.x00209116.items[0].dataSet,"x00200037",6)),r||(r=dh(e)),r}function Hs(e){let r=Ar(e,"x00200032",3);return!r&&e.elements.x00209113?.items?.[0]?.dataSet&&(r=Ar(e.elements.x00209113.items[0].dataSet,"x00200032",3)),r||(r=hh(e)),r}function zs(e){let r=Ar(e,"x00280030",2);return!r&&e.elements.x00289110?.items?.[0]?.dataSet&&(r=Ar(e.elements.x00289110.items[0].dataSet,"x00280030",2)),r}function Vs(e){let r;return e.elements.x00180050?r=e.floatString("x00180050"):e.elements.x00289110&&e.elements.x00289110.items.length&&e.elements.x00289110.items[0].dataSet.elements.x00180050&&(r=e.elements.x00289110.items[0].dataSet.floatString("x00180050")),r}const cf=["multiframeModule","generalSeriesModule","patientStudyModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function Gs(e){const r=e.elements.x00186011;return!r||!r.items?[]:r.items.map(n=>{const i=n.dataSet.double("x0018602c"),l=n.dataSet.double("x0018602e"),a=n.dataSet.uint16("x00186024"),d=n.dataSet.uint16("x00186026"),P=n.dataSet.uint16("x0018601a"),y=n.dataSet.uint16("x0018601e"),w=n.dataSet.uint16("x00186018"),W=n.dataSet.uint16("x0018601c"),F=n.dataSet.int32("x00186020")||null,k=n.dataSet.int32("x00186022")||null,j=n.dataSet.uint16("x0018602a"),Y=n.dataSet.uint16("x00186028"),K=n.dataSet.uint16("x00186012"),ee=n.dataSet.uint16("x00186014"),X=n.dataSet.uint16("x00186016"),H=n.dataSet.uint16("x00186030");return{regionLocationMinY0:P,regionLocationMaxY1:y,regionLocationMinX0:w,regionLocationMaxX1:W,referencePixelX0:F,referencePixelY0:k,physicalDeltaX:i,physicalDeltaY:l,physicalUnitsXDirection:a,physicalUnitsYDirection:d,referencePhysicalPixelValueY:j,referencePhysicalPixelValueX:Y,regionSpatialFormat:K,regionDataType:ee,regionFlags:X,transducerFrequency:H}})}function uf(e,r){const{MetadataModules:t}=_n;if(Array.isArray(r))return;const n=Da(r);if(e===t.MULTIFRAME){const a=ff.retrieveMultiframeDataset(n.url);return a.dataSet?K0(a.dataSet,a.frame):void 0}let i=n.url;n.frame&&(i=`${i}&frame=${n.frame}`);const l=si.get(i);if(l)return df(e,r,l)}function df(e,r,t){const{MetadataModules:n}=_n;if(e===n.GENERAL_STUDY)return{studyDescription:t.string("x00081030"),studyDate:ar.parseDA(t.string("x00080020")),studyTime:ar.parseTM(t.string("x00080030")||""),accessionNumber:t.string("x00080050")};if(e===n.GENERAL_SERIES)return{modality:t.string("x00080060"),seriesInstanceUID:t.string("x0020000e"),seriesDescription:t.string("x0008103e"),seriesNumber:t.intString("x00200011"),studyInstanceUID:t.string("x0020000d"),seriesDate:ar.parseDA(t.string("x00080021")),seriesTime:ar.parseTM(t.string("x00080031")||""),acquisitionDate:ar.parseDA(t.string("x00080022")),acquisitionTime:ar.parseTM(t.string("x00080032")||"")};if(e===n.GENERAL_IMAGE)return{sopInstanceUID:t.string("x00080018"),instanceNumber:t.intString("x00200013"),lossyImageCompression:t.string("x00282110"),lossyImageCompressionRatio:t.floatString("x00282112"),lossyImageCompressionMethod:t.string("x00282114")};if(e===n.PATIENT)return{patientID:t.string("x00100020"),patientName:t.string("x00100010")};if(e===n.PATIENT_STUDY)return{patientAge:t.intString("x00101010"),patientSize:t.floatString("x00101020"),patientSex:t.string("x00100040"),patientWeight:t.floatString("x00101030")};if(e===n.NM_MULTIFRAME_GEOMETRY){const i=t.string("x00080060"),l=jo(t,2);return{modality:i,imageType:t.string("x00080008"),imageSubType:l,imageOrientationPatient:js(t),imagePositionPatient:Hs(t),sliceThickness:Vs(t),pixelSpacing:zs(t),numberOfFrames:t.uint16("x00280008"),isNMReconstructable:ka(l)&&i.includes("NM")}}if(e===n.IMAGE_PLANE){const i=js(t),l=Hs(t),a=zs(t),d=Vs(t);let P=null,y=null,w=!1;a?(y=a[0],P=a[1]):(w=!0,y=1,P=1);let W=null,F=null;return i&&(W=[parseFloat(i[0]),parseFloat(i[1]),parseFloat(i[2])],F=[parseFloat(i[3]),parseFloat(i[4]),parseFloat(i[5])]),{frameOfReferenceUID:t.string("x00200052"),rows:t.uint16("x00280010"),columns:t.uint16("x00280011"),imageOrientationPatient:i,rowCosines:W,columnCosines:F,imagePositionPatient:l,sliceThickness:d,sliceLocation:t.floatString("x00201041"),pixelSpacing:a,rowPixelSpacing:y,columnPixelSpacing:P,usingDefaultValues:w}}if(e===n.CINE)return{frameTime:t.floatString("x00181063")};if(e===n.IMAGE_PIXEL)return ml(t);if(e===n.VOI_LUT){const i=bl(t);return{windowCenter:Ar(t,"x00281050",1),windowWidth:Ar(t,"x00281051",1),voiLUTSequence:co(i,t.elements.x00283010),voiLUTFunction:t.string("x00281056")}}if(e===n.MODALITY_LUT)return{rescaleIntercept:t.floatString("x00281052"),rescaleSlope:t.floatString("x00281053"),rescaleType:t.string("x00281054"),modalityLUTSequence:co(t.uint16("x00280103"),t.elements.x00283000)};if(e===n.SOP_COMMON)return{sopClassUID:t.string("x00080016"),sopInstanceUID:t.string("x00080018")};if(e===n.PET_ISOTOPE){const i=t.elements.x00540016;if(i===void 0)return;const l=i.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:ar.parseTM(l.string("x00181072")||""),radionuclideTotalDose:l.floatString("x00181074"),radionuclideHalfLife:l.floatString("x00181075")}}}if(e===n.OVERLAY_PLANE)return uh(t);if(e==="transferSyntax"){let i;try{i=t.string("x00020010")}catch{}return{transferSyntaxUID:i}}if(e===n.PET_SERIES)return{correctedImage:t.string("x00280051"),units:t.string("x00541001"),decayCorrection:t.string("x00541102")};if(e===n.PET_IMAGE)return{frameReferenceTime:t.floatString(t.string("x00541300")||""),actualFrameDuration:t.intString(t.string("x00181242"))};if(e===n.ULTRASOUND_ENHANCED_REGION)return Gs(t);if(e===n.CALIBRATION&&t.string("x00080060")==="US")return{sequenceOfUltrasoundRegions:Gs(t)};if(e==="instance")return ll(r,cf)}let ki=[];function ph(e){return`dicomfile:${ki.push(e)-1}`}function vh(e){return ki[e]}function gh(e){ki[e]=void 0}function _h(){ki=[]}const hf={add:ph,get:vh,remove:gh,purge:_h};function yh(e){const r=e.intString("x00280008"),t=e.elements.x7fe00010;return r!==t.fragments.length}function pf(e,r){if(e.elements.x7fe00010&&e.elements.x7fe00010.basicOffsetTable.length)return ar.readEncapsulatedImageFrame(e,e.elements.x7fe00010,r);if(yh(e)){const y=ar.createJPEGBasicOffsetTable(e,e.elements.x7fe00010);return ar.readEncapsulatedImageFrame(e,e.elements.x7fe00010,r,y)}const t=e.elements.x7fe00010.fragments,n=new ar.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),i=ar.readSequenceItem(n);if(i.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";n.seek(i.length);const l=n.position;if(r+1>t.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const d=l+t[r].offset+8,P=t[r].length;return new Uint8Array(n.byteArray.buffer.slice(n.byteArray.byteOffset+d,n.byteArray.byteOffset+d+P))}function mh(e,r){return e&1<<r}function vf(e,r,t){const n=new Uint8Array(t);for(let i=0;i<t;i++){const l=Math.floor(i/8),a=e[l+r],d=i%8;n[i]=mh(a,d)?1:0}return n}function gf(e,r){const t=e.elements.x7fe00010||e.elements.x7fe00008,n=e.uint16("x00280100"),i=e.uint16("x00280010"),l=e.uint16("x00280011");let a=e.uint16("x00280002");e.string("x00280004")==="YBR_FULL_422"&&(a=2,console.warn(`Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.
@@ -1 +1 @@
1
- import{v as H,B as U,t as E,E as M,g as L,a as W,b as S,u as G,s as $,V as q,c as Z,e as y,i as F,d as k,f as v,R as O,h as J,j as K,k as Y,l as Q,m as X,n as ee,o as te,p as ne,r as se,q as oe,w as ie,x as ae,y as re,z as de,A as ce,C as le,D as ge,F as me,G as he,I as ue,H as pe,J as N,S as xe,K as j,L as we,M as fe,N as Ie,O as Ve,P as Ce,Q as Pe,W as De,T as Re,U as Se,X as ve,Y as Ee,Z as Me,_ as _e,$ as Ge,a0 as ye,a1 as be,a2 as ze,a3 as Te,a4 as We,a5 as Fe,a6 as ke,a7 as Oe,a8 as Ae,a9 as Le,aa as Ne,ab as je}from"./Settings-CepUR3VB.js";import{ac as xt,ad as wt,ae as ft,af as It,ag as Vt,ah as Ct,ai as Pt,aj as Dt,ak as Rt,al as St,am as vt,an as Et,ao as Mt,ap as _t,aq as Gt,ar as yt,as as bt,at as zt,au as Tt,av as Wt,aw as Ft,ax as kt,ay as Ot,az as At,aA as Lt,aB as Nt,aC as jt,aD as Bt,aE as Ht,aF as Ut,aG as $t,aH as qt,aI as Zt,aJ as Jt,aK as Kt,aL as Yt,aM as Qt,aN as Xt,aO as en,aP as tn,aQ as nn,aR as sn,aS as on,aT as an,aU as rn,aV as dn,aW as cn,aX as ln,aY as gn,aZ as mn,aO as hn,a_ as un,a$ as pn,b0 as xn,b1 as wn,b2 as fn,b3 as In,b4 as Vn,b5 as Cn,b6 as Pn}from"./Settings-CepUR3VB.js";import{a as Be,T as He}from"./index-NTe9svEs.js";import{g as Rn,b as Sn,c as vn,d as En,s as Mn,u as _n,v as Gn,e as yn,f as bn,h as zn}from"./index-NTe9svEs.js";import"./cornerstoneEngine-oWB9T9Cs.js";import"./Texture-CA0OMvaZ.js";import{a as Wn}from"./addVolumesToViewports-DA_rtwe9.js";import"./dcmjs.es-DfWkgqfk.js";import"./index-BSiKqAGW.js";import"./_commonjsHelpers-CE1G-McA.js";function rt(l,e,t){for(const n of t){const o=l.getViewport(n);if(!o)throw new Error(`Viewport with Id ${n} does not exist`);if(!o.addImages){console.warn(`Viewport with Id ${n} does not have addImages. Cannot add image segmentation to this viewport.`);return}}t.forEach(n=>{l.getViewport(n).addImages(e)})}class Ue{constructor(e,t=""){this.contexts=[],this.offScreenCanvasContainers=[],this.viewportToContext=new Map,this.viewportSizes=new Map,this.contextMaxSizes=new Map;for(let n=0;n<e;n++){const o=H.newInstance(),s=document.createElement("div");o.setContainer(s),Be(o,t,n),this.contexts.push(o),this.offScreenCanvasContainers.push(s)}}getContextByIndex(e){return e>=0&&e<this.contexts.length?{context:this.contexts[e],container:this.offScreenCanvasContainers[e]}:null}assignViewportToContext(e,t){this.viewportToContext.set(e,t)}getContextIndexForViewport(e){return this.viewportToContext.get(e)}getAllContexts(){return this.contexts}getContextCount(){return this.contexts.length}updateViewportSize(e,t,n){const o=this.viewportToContext.get(e);if(o===void 0)return!1;this.viewportSizes.set(e,{width:t,height:n});const s=this.contextMaxSizes.get(o),i=this.calculateMaxSizeForContext(o);return this.contextMaxSizes.set(o,i),!s||s.width!==i.width||s.height!==i.height}getMaxSizeForContext(e){return this.contextMaxSizes.get(e)}calculateMaxSizeForContext(e){let t=0,n=0;return this.viewportToContext.forEach((o,s)=>{if(o===e){const i=this.viewportSizes.get(s);i&&(t=Math.max(t,i.width),n=Math.max(n,i.height))}}),{width:t,height:n}}removeViewport(e){const t=this.viewportToContext.get(e);if(this.viewportToContext.delete(e),this.viewportSizes.delete(e),t!==void 0){const n=this.calculateMaxSizeForContext(t);this.contextMaxSizes.set(t,n)}}destroy(){this.contexts.forEach(e=>{e.delete()}),this.contexts=[],this.offScreenCanvasContainers=[],this.viewportToContext.clear(),this.viewportSizes.clear(),this.contextMaxSizes.clear()}}class A extends U{constructor(e){super(e),this._renderFlaggedViewports=()=>{this._throwIfDestroyed();const n=this._getViewportsAsArray().filter(s=>this._needsRender.has(s.id));if(n.length===0){this._animationFrameSet=!1,this._animationFrameHandle=null;return}const o=n.map(s=>{const i=this.renderViewportUsingCustomOrVtkPipeline(s);return s.setRendered(),this._needsRender.delete(s.id),i});this._animationFrameSet=!1,this._animationFrameHandle=null,o.forEach(s=>{s?.element&&E(s.element,M.IMAGE_RENDERED,s)})},this.useCPURendering||this.ensureContextPool()}ensureContextPool(){if(!this.contextPool){const{rendering:e}=L(),{webGlContextCount:t}=e;this.contextPool=new Ue(t,this.id)}return this.contextPool}enableVTKjsDrivenViewport(e){const o=this._getViewportsAsArray().filter(a=>W(a.type)===!1).map(a=>a.canvas),s=S(e.element);G(s),o.push(s);const i={...e,canvas:s};this.addVtkjsDrivenViewport(i)}addVtkjsDrivenViewport(e){const t=this.ensureContextPool(),{element:n,canvas:o,viewportId:s,type:i,defaultOptions:a}=e;n.tabIndex=-1,$(n);let r=0;if(i===q.STACK){const u=t.getAllContexts();r=this._viewports.size%u.length}t.assignViewportToContext(s,r),t.updateViewportSize(s,o.width,o.height);const d=t.getContextByIndex(r),{context:g,container:m}=d,p=t.getMaxSizeForContext(r);m.width=p.width,m.height=p.height,g.resize(),g.addRenderer({viewport:[0,0,1,1],id:s,background:a.background?a.background:[0,0,0]});const x={id:s,element:n,renderingEngineId:this.id,type:i,canvas:o,sx:0,sy:0,sWidth:o.width,sHeight:o.height,defaultOptions:a||{}},f=Z(e);if(!f)throw new Error(`Viewport Type ${i} is not supported`);const h=new f(x);h.requestedType=e.requestedType??i,this._viewports.set(s,h);const c={element:n,viewportId:s,renderingEngineId:this.id};h.suppressEvents||E(y,M.ELEMENT_ENABLED,c)}setVtkjsDrivenViewports(e){if(e.length){const t=e.map(n=>S(n.element));t.forEach(n=>G(n));for(let n=0;n<e.length;n++){const o=e[n],s=t[n],i={...o,canvas:s};this.addVtkjsDrivenViewport(i)}}}_getDisplayedSize(e){const t=window.devicePixelRatio||1,n=F(e)?e.element:S(e.element);return{displayedWidth:Math.round(n.clientWidth*t),displayedHeight:Math.round(n.clientHeight*t)}}_resizeVTKViewports(e,t=!0,n=!0){const o=[];for(const s of e){const i=S(s.element),{displayedWidth:a,displayedHeight:r}=this._getDisplayedSize(s);if(a===0||r===0)continue;const d=i.width,g=i.height;a===d&&r===g||o.push(s)}if(o.length!==0){for(const s of o){const{displayedWidth:i,displayedHeight:a}=this._getDisplayedSize(s),r=Math.max(v,i),d=Math.max(v,a);s.sWidth=r,s.sHeight=d}this._animationFrameSet||(e.length&&this._resize(e),e.forEach(s=>{if(s.resize?.(),F(s))return;const i=s.getCamera(),a=s.getRotation?.()??0,{flipHorizontal:r}=i,d=s;d.resetViewStateForResize?d.resetViewStateForResize():d.resetCameraForResize?.();const g=s.getDisplayArea();t&&(g?(r&&s.setCamera({flipHorizontal:r}),a&&s.setViewPresentation({rotation:a})):s.setCamera(i))}),n&&this.render())}}renderViewportUsingCustomOrVtkPipeline(e){if(k(e))return e.customRenderViewportToCanvas();if(!this.contextPool)throw new Error("GPU not available, and using a viewport with no custom render pipeline.");const t=this.contextPool.getContextIndexForViewport(e.id),n=this.contextPool.getContextByIndex(t),{context:o,container:s}=n;return this._renderViewportWithContext(e,o,s)}_renderViewportWithContext(e,t,n){if(e.canvas.clientWidth===0||e.canvas.clientHeight===0)return;if(e.sWidth<v||e.sHeight<v){console.warn("Viewport is too small",e.sWidth,e.sHeight);return}if(k(e))return e.customRenderViewportToCanvas();if(!this.contextPool)throw new Error("GPU not available, and using a viewport with no custom render pipeline.");t.getRenderer(e.id)||t.addRenderer({viewport:[0,0,1,1],id:e.id,background:e.defaultOptions?.background||[0,0,0]});const o=t.getRenderWindow(),s=o.getViews()[0],i=s.getRenderPasses(),a=this.getViewportRenderPasses(e.id);a&&s.setRenderPasses(a),this._resizeOffScreenCanvasForViewport(e,n,t);const r=t.getRenderer(e.id),d=this.contextPool.getContextIndexForViewport(e.id),g=this.contextPool.getMaxSizeForContext(d),m=e.sWidth,p=e.sHeight,x=Math.min(1,m/g.width),f=Math.min(1,p/g.height);r.setViewport(0,0,x,f);const h=t.getRenderers();h.forEach(({renderer:w,id:V})=>{const _=V.split("::")[0];w.setDraw(_===e.id)});const c=this.getWidgetRenderers();c.forEach((w,V)=>{V.setDraw(w===e.id)}),o.render(),h.forEach(({renderer:w})=>w.setDraw(!1)),c.forEach((w,V)=>{V.setDraw(!1)}),i&&s.setRenderPasses(i);const I=t.getOpenGLRenderWindow().get3DContext().canvas;return this._copyToOnscreenCanvas(e,I)}_renderViewportFromVtkCanvasToOnscreenCanvas(e,t){return this._copyToOnscreenCanvas(e,t)}_resizeOffScreenCanvasForViewport(e,t,n){const o=this.contextPool.getContextIndexForViewport(e.id);if(o===void 0||!this.contextPool.updateViewportSize(e.id,e.sWidth,e.sHeight))return;const i=this.contextPool.getMaxSizeForContext(o);t.width===i.width&&t.height===i.height||(t.width=i.width,t.height=i.height,n.resize())}_copyToOnscreenCanvas(e,t){const{element:n,canvas:o,id:s,renderingEngineId:i,suppressEvents:a}=e,r=e.sWidth,d=e.sHeight;G(o,{width:r,height:d});const g=o.getContext("2d"),m=this.contextPool.getContextIndexForViewport(s),x=this.contextPool.getMaxSizeForContext(m).height-d;return g.drawImage(t,0,x,r,d,0,0,r,d),{element:n,suppressEvents:a,viewportId:s,renderingEngineId:i,viewportStatus:e.viewportStatus}}_resize(e){const t=new Set;for(const n of e){n.sx=0,n.sy=0;const o=this.contextPool.getContextIndexForViewport(n.id);this.contextPool.updateViewportSize(n.id,n.sWidth,n.sHeight)&&t.add(o);const i=this.contextPool.getContextByIndex(o),{context:a}=i,r=a.getRenderer(n.id),d=this.contextPool.getMaxSizeForContext(o),g=Math.min(1,n.sWidth/d.width),m=Math.min(1,n.sHeight/d.height);r.setViewport(0,0,g,m)}t.forEach(n=>{const o=this.contextPool.getContextByIndex(n);if(o){const{context:s,container:i}=o,a=this.contextPool.getMaxSizeForContext(n);i.width=a.width,i.height=a.height,s.resize()}})}getWidgetRenderers(){const e=this._getViewportsAsArray(),t=new Map;return e.forEach(n=>{(n.getWidgets?n.getWidgets():[]).forEach(s=>{const i=s.getRenderer?s.getRenderer():null;i&&t.set(i,n.id)})}),t}getViewportRenderPasses(e){const t=this.getViewport(e);return t?.getRenderPasses?t.getRenderPasses():null}getRenderer(e){const t=this.contextPool?.getContextIndexForViewport(e);if(t===void 0||!this.contextPool)return;const n=this.contextPool.getContextByIndex(t);if(!n)return;const{context:o}=n;return o.getRenderer(e)}disableElement(e){const t=this.getViewport(e);if(t&&(super.disableElement(e),!W(t.type)&&this.contextPool)){const n=this.contextPool.getContextIndexForViewport(e);if(n!==void 0){const o=this.contextPool.getContextByIndex(n);if(o){const{context:s}=o;s.removeRenderer(e)}}this.contextPool.removeViewport(e)}}destroy(){super.destroy(),this.contextPool&&this.contextPool.destroy()}getOffscreenMultiRenderWindow(e){if(!this.contextPool)throw new Error("Offscreen multi render window is not available.");const t=this.contextPool.getContextIndexForViewport(e);if(t===void 0)throw new Error(`Offscreen multi render window is not available for viewport ${e}.`);const n=this.contextPool.getContextByIndex(t);if(!n)throw new Error(`Offscreen multi render window is not available for viewport ${e}.`);return n.context}}class dt{constructor(e){const n=L()?.rendering?.renderingEngineMode;switch(n){case O.Tiled:this._implementation=new He(e);break;case O.ContextPool:this._implementation=new A(e);break;default:console.warn(`RenderingEngine: Unknown rendering engine mode "${n}". Defaulting to Next rendering engine.`),this._implementation=new A(e);break}}get id(){return this._implementation.id}disableViewport(e){return this._implementation.disableElement(e)}enableElement(e){return this._implementation.enableElement(e)}disableElement(e){return this._implementation.disableElement(e)}setViewports(e){return this._implementation.setViewports(e)}resize(e=!0,t=!0){return this._implementation.resize(e,t)}getViewport(e){return this._implementation.getViewport(e)}getViewports(){return this._implementation.getViewports()}getRenderer(e){return this._implementation.getRenderer(e)}fillCanvasWithBackgroundColor(e,t){return this._implementation.fillCanvasWithBackgroundColor(e,t)}render(){return this._implementation.render()}renderViewports(e){return this._implementation.renderViewports(e)}renderViewport(e){return this._implementation.renderViewport(e)}destroy(){return this._implementation.destroy()}getOffscreenMultiRenderWindow(e){return this._implementation.getOffscreenMultiRenderWindow(e)}}const $e={adapter:K,getSnapshot:J},qe={adapter:Q,getSnapshot:Y},Ze={adapter:de,getSnapshot:re,getZoom:ae,getScale:ie,getPan:oe,resolveICamera:se,derivePresentation:ne,applyToRenderer:te,createImageSliceBasis:ee,createVolumeSliceBasis:X},Je={adapter:le,getSnapshot:ce},Ke={adapter:me,getSnapshot:ge},ct="5.8.2";class Ye extends he{constructor(e,t){super(e,t),this._dimensionGroupNumber=1,this._loadedDimensionGroups=new Set,this._getImageIdRequests=(s,i)=>this.getImageIdsRequests(s,i),this.getImageLoadRequests=s=>{const i=this.getImageIdsToLoad();return this._getImageIdRequests(i,s)};const{imageIdGroups:n,splittingTag:o}=e;this._splittingTag=o,this._imageIdGroups=n,this.numDimensionGroups=this._imageIdGroups.length}_getImageIdsToLoad(){const e=this._imageIdGroups,t=this._dimensionGroupNumber-1,n=[...e[t]];let o=t-1,s=t+1;for(;o>=0||s<e.length;)o>=0&&n.push(...e[o--]),s<e.length&&n.push(...e[s++]);return n}getImageIdsToLoad(){return this._getImageIdsToLoad()}get dimensionGroupNumber(){return this._dimensionGroupNumber}set dimensionGroupNumber(e){this._dimensionGroupNumber!==e&&(this._dimensionGroupNumber=e,this.voxelManager.setDimensionGroupNumber(e),this.invalidateVolume(!0),E(y,M.DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED,{volumeId:this.volumeId,dimensionGroupNumber:e,numDimensionGroups:this.numDimensionGroups,imageIdGroupIndex:e-1,numImageIdGroups:this.numDimensionGroups,splittingTag:this.splittingTag}))}scroll(e){const t=this._dimensionGroupNumber+e;t<1?this.dimensionGroupNumber=this.numDimensionGroups:t>this.numDimensionGroups?this.dimensionGroupNumber=1:this.dimensionGroupNumber=t}getCurrentDimensionGroupImageIds(){return this._imageIdGroups[this._dimensionGroupNumber-1]}flatImageIdIndexToDimensionGroupNumber(e){return Math.floor(e/this._imageIdGroups[0].length)+1}flatImageIdIndexToImageIdIndex(e){return e%this._imageIdGroups[0].length}get splittingTag(){return this._splittingTag}isDimensionGroupLoaded(e){return this._loadedDimensionGroups.has(e)}markDimensionGroupAsLoaded(e){this._loadedDimensionGroups.add(e),E(y,M.DYNAMIC_VOLUME_DIMENSION_GROUP_LOADED,{volumeId:this.volumeId,dimensionGroupNumber:e})}checkDimensionGroupCompletion(e){const t=this.flatImageIdIndexToDimensionGroupNumber(e);this._imageIdGroups[t-1].every(s=>{const i=this.getImageIdIndex(s);return this.cachedFrames[i]===ue.FULL_RESOLUTION})&&!this.isDimensionGroupLoaded(t)&&this.markDimensionGroupAsLoaded(t)}}function Qe(l,e,t){return e.reduce((n,o)=>o.apply(n,t),l)}const Xe={name:"InPlaneDecimationModifier",apply(l,e){const[t=1,n=t]=e.options.ijkDecimation??[],o=Math.max(1,Math.floor(t)),s=Math.max(1,Math.floor(n));if(o===1&&s===1)return l;const[i,a]=l.dimensions,r=Math.max(1,Math.floor(i/o)),d=Math.max(1,Math.floor(a/s)),g=[r,d,l.dimensions[2]],m=[l.spacing[0]*o,l.spacing[1]*s,l.spacing[2]],p={...l.metadata,Columns:r,Rows:d,PixelSpacing:[m[1],m[0]]};return{...l,dimensions:g,spacing:m,metadata:p}}};function lt(l,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a streaming image volume ");const[t=1,n=t,o=1]=e.ijkDecimation??[],s=Math.max(1,Math.floor(t)),i=n>1?Math.max(1,Math.floor(n)):s,a=Math.max(1,Math.floor(o)),r=s>1||i>1,d={ijkDecimation:[s,i,a]},g=[Xe];function m(c,u){return u===1?c:`${c}#decimation=${u}`}const p=Math.floor(e.imageIds.length/a),x=a>1&&e.imageIds.length<=p+1;if(a>1&&!x){const c=pe(e.imageIds,a),u=Array.isArray(c)&&c.length&&typeof c[0]=="number"?c.map(P=>e.imageIds[P]):c;e.imageIds=u}s>1&&(e.imageIds=e.imageIds.map(c=>m(c,s)));async function f(){const c=N(e.imageIds,l),u={volumeId:l,imageIds:e.imageIds,options:d},P=Qe(c,g,u),{dimensions:I,spacing:R,origin:w,direction:V,metadata:_,imageIds:b,dataType:B,numberOfComponents:z}=P,C=new xe({volumeId:l,metadata:_,dimensions:I,spacing:R,origin:w,direction:V,imageIds:b,dataType:B,numberOfComponents:z},{imageIds:b,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}});if(r){const D=C.imageData;D&&(D.setDimensions(C.dimensions),D.setSpacing(C.spacing),D.modified());const T=j.createImageVolumeVoxelManager({dimensions:C.dimensions,imageIds:C.imageIds,numberOfComponents:z});C.voxelManager=T,D&&D.set({voxelManager:T})}return C}const h=f();return{promise:h,decache:()=>{h.then(c=>{c.destroy(),c=null})},cancel:()=>{h.then(c=>{c.cancelLoading()})}}}function gt(l,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a 4D streaming image volume");const{imageIds:t}=e,{splittingTag:n,imageIdGroups:o}=we(t),s=Math.floor(o.length/2),i=N(o[s],l),{metadata:a,dimensions:r,spacing:d,direction:g,sizeInBytes:m,origin:p,numberOfComponents:x,dataType:f}=i,h=g.slice(6,9),c=o.map(R=>fe(R,h).sortedImageIds),u=c.flat(),P=j.createScalarDynamicVolumeVoxelManager({dimensions:r,imageIdGroups:c,dimensionGroupNumber:1,numberOfComponents:x});let I=new Ye({volumeId:l,metadata:a,dimensions:r,spacing:d,origin:p,direction:g,sizeInBytes:m,imageIds:u,imageIdGroups:c,splittingTag:n,voxelManager:P,numberOfComponents:x,dataType:f},{imageIds:u,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}});return{promise:Promise.resolve(I),decache:()=>{I.destroy(),I=null},cancel:()=>{I.cancelLoading()}}}const mt={GenericViewport:je,DefaultRenderPathResolver:Ne,defaultRenderPathResolver:Le,ECGGenericViewport:Ae,createDefaultECGRenderPaths:Oe,createECGRenderPathResolver:ke,DefaultECGDataProvider:Fe,ecgProjection:$e,VideoGenericViewport:We,createDefaultVideoRenderPaths:Te,createVideoRenderPathResolver:ze,DefaultVideoDataProvider:be,videoProjection:qe,PlanarViewport:ye,createDefaultPlanarRenderPaths:Ge,createPlanarRenderPathResolver:_e,DefaultPlanarDataProvider:Me,planarProjection:Ze,VolumeViewport3D:Ee,createDefaultVolume3DRenderPaths:ve,createVolume3DRenderPathResolver:Se,DefaultVolume3DDataProvider:Re,volume3DProjection:Je,WSIGenericViewport:De,createDefaultWSIRenderPaths:Pe,createWSIRenderPathResolver:Ce,DefaultWSIDataProvider:Ve,wsiProjection:Ke},ht=Ie;export{xt as ActorRenderMode,U as BaseRenderingEngine,wt as BaseVolumeViewport,ft as CONSTANTS,A as ContextPoolRenderingEngine,Fe as DefaultECGDataProvider,Me as DefaultPlanarDataProvider,Ne as DefaultRenderPathResolver,be as DefaultVideoDataProvider,Re as DefaultVolume3DDataProvider,Ve as DefaultWSIDataProvider,Ae as ECGGenericViewport,It as ECGViewport,Vt as EPSILON,M as EVENTS,Ct as Enums,je as GenericViewport,Ee as GenericVolumeViewport3D,Pt as ImageVolume,ht as LegacyVolumeViewport3D,ye as PlanarViewport,Dt as ProgressiveRetrieveImages,Rt as RenderBackends,dt as RenderingEngine,St as Settings,vt as StackViewport,Ye as StreamingDynamicImageVolume,xe as StreamingImageVolume,Et as Surface,He as TiledRenderingEngine,We as VideoGenericViewport,Mt as VideoViewport,_t as Viewport,Gt as ViewportProjectionService,yt as VolumeViewport,Ie as VolumeViewport3D,De as WSIGenericViewport,bt as WSIViewport,rt as addImageSlicesToViewports,Wn as addVolumesToViewports,zt as cache,Tt as canRenderFloatTextures,Wt as convertColorArrayToRgbString,Ft as convertMapperToNotSharedMapper,kt as cornerstoneMeshLoader,gt as cornerstoneStreamingDynamicImageVolumeLoader,Ot as cornerstoneStreamingImageVolumeLoader,At as createCanvas,Oe as createDefaultECGRenderPaths,Ge as createDefaultPlanarRenderPaths,Te as createDefaultVideoRenderPaths,ve as createDefaultVolume3DRenderPaths,Pe as createDefaultWSIRenderPaths,ke as createECGRenderPathResolver,_e as createPlanarRenderPathResolver,ze as createVideoRenderPathResolver,Lt as createViewportElement,Se as createVolume3DRenderPathResolver,Nt as createVolumeActor,jt as createVolumeMapper,Ce as createWSIRenderPathResolver,lt as decimatedVolumeLoader,Le as defaultRenderPathResolver,Bt as detectRenderingCapabilities,$e as ecgProjection,y as eventTarget,Ht as geometryLoader,L as getConfiguration,Ut as getEffectiveRenderBackend,Rn as getEnabledElement,Sn as getEnabledElementByIds,vn as getEnabledElementByViewportId,En as getEnabledElements,S as getOrCreateCanvas,$t as getProjectionScaleMatrix,qt as getRenderBackend,Zt as getRenderingCapabilities,Jt as getRenderingEngine,Kt as getRenderingEngines,Yt as getShouldUseCPURendering,Qt as getUseGenericViewport,Xt as getWebWorkerManager,en as imageLoadPoolManager,tn as imageLoader,nn as imageRetrievalPoolManager,sn as init,on as isCornerstoneInitialized,an as isRegisteredRenderBackend,rn as isRegisteredViewportType,dn as metaData,cn as peerImport,Ze as planarProjection,ln as registerImageLoader,gn as registerRenderBackend,mn as registerViewportType,mt as renderingEngineExportsV2,hn as requestPoolManager,un as resetInitialization,pn as resetUseCPURendering,xn as setCanvasCreator,wn as setConfiguration,fn as setPreferSizeOverAccuracy,In as setRenderBackend,Vn as setUseCPURendering,Mn as setVolumesForViewports,E as triggerEvent,G as updateCanvasSizeAndAspectRatio,_n as utilities,ct as version,qe as videoProjection,Gn as viewportHasCanvasWorldTransform,yn as viewportHasFrameOfReferenceUID,bn as viewportHasPan,zn as viewportHasZoom,Cn as viewportProjection,Je as volume3DProjection,Pn as volumeLoader,Ke as wsiProjection};
1
+ import{v as H,B as U,t as E,E as M,g as L,a as W,b as S,u as G,s as $,V as q,c as Z,e as y,i as F,d as k,f as v,R as O,h as J,j as K,k as Y,l as Q,m as X,n as ee,o as te,p as ne,r as se,q as oe,w as ie,x as ae,y as re,z as de,A as ce,C as le,D as ge,F as me,G as he,I as ue,H as pe,J as N,S as xe,K as j,L as we,M as fe,N as Ie,O as Ve,P as Ce,Q as Pe,W as De,T as Re,U as Se,X as ve,Y as Ee,Z as Me,_ as _e,$ as Ge,a0 as ye,a1 as be,a2 as ze,a3 as Te,a4 as We,a5 as Fe,a6 as ke,a7 as Oe,a8 as Ae,a9 as Le,aa as Ne,ab as je}from"./Settings-DScSRN4w.js";import{ac as xt,ad as wt,ae as ft,af as It,ag as Vt,ah as Ct,ai as Pt,aj as Dt,ak as Rt,al as St,am as vt,an as Et,ao as Mt,ap as _t,aq as Gt,ar as yt,as as bt,at as zt,au as Tt,av as Wt,aw as Ft,ax as kt,ay as Ot,az as At,aA as Lt,aB as Nt,aC as jt,aD as Bt,aE as Ht,aF as Ut,aG as $t,aH as qt,aI as Zt,aJ as Jt,aK as Kt,aL as Yt,aM as Qt,aN as Xt,aO as en,aP as tn,aQ as nn,aR as sn,aS as on,aT as an,aU as rn,aV as dn,aW as cn,aX as ln,aY as gn,aZ as mn,aO as hn,a_ as un,a$ as pn,b0 as xn,b1 as wn,b2 as fn,b3 as In,b4 as Vn,b5 as Cn,b6 as Pn}from"./Settings-DScSRN4w.js";import{a as Be,T as He}from"./index-Cp_HszKm.js";import{g as Rn,b as Sn,c as vn,d as En,s as Mn,u as _n,v as Gn,e as yn,f as bn,h as zn}from"./index-Cp_HszKm.js";import"./cornerstoneEngine-CZtg0zW5.js";import"./Texture-C5SfDh5g.js";import{a as Wn}from"./addVolumesToViewports-BVAFib39.js";import"./dcmjs.es-DfWkgqfk.js";import"./index-ZX_UE_97.js";import"./_commonjsHelpers-CE1G-McA.js";function rt(l,e,t){for(const n of t){const o=l.getViewport(n);if(!o)throw new Error(`Viewport with Id ${n} does not exist`);if(!o.addImages){console.warn(`Viewport with Id ${n} does not have addImages. Cannot add image segmentation to this viewport.`);return}}t.forEach(n=>{l.getViewport(n).addImages(e)})}class Ue{constructor(e,t=""){this.contexts=[],this.offScreenCanvasContainers=[],this.viewportToContext=new Map,this.viewportSizes=new Map,this.contextMaxSizes=new Map;for(let n=0;n<e;n++){const o=H.newInstance(),s=document.createElement("div");o.setContainer(s),Be(o,t,n),this.contexts.push(o),this.offScreenCanvasContainers.push(s)}}getContextByIndex(e){return e>=0&&e<this.contexts.length?{context:this.contexts[e],container:this.offScreenCanvasContainers[e]}:null}assignViewportToContext(e,t){this.viewportToContext.set(e,t)}getContextIndexForViewport(e){return this.viewportToContext.get(e)}getAllContexts(){return this.contexts}getContextCount(){return this.contexts.length}updateViewportSize(e,t,n){const o=this.viewportToContext.get(e);if(o===void 0)return!1;this.viewportSizes.set(e,{width:t,height:n});const s=this.contextMaxSizes.get(o),i=this.calculateMaxSizeForContext(o);return this.contextMaxSizes.set(o,i),!s||s.width!==i.width||s.height!==i.height}getMaxSizeForContext(e){return this.contextMaxSizes.get(e)}calculateMaxSizeForContext(e){let t=0,n=0;return this.viewportToContext.forEach((o,s)=>{if(o===e){const i=this.viewportSizes.get(s);i&&(t=Math.max(t,i.width),n=Math.max(n,i.height))}}),{width:t,height:n}}removeViewport(e){const t=this.viewportToContext.get(e);if(this.viewportToContext.delete(e),this.viewportSizes.delete(e),t!==void 0){const n=this.calculateMaxSizeForContext(t);this.contextMaxSizes.set(t,n)}}destroy(){this.contexts.forEach(e=>{e.delete()}),this.contexts=[],this.offScreenCanvasContainers=[],this.viewportToContext.clear(),this.viewportSizes.clear(),this.contextMaxSizes.clear()}}class A extends U{constructor(e){super(e),this._renderFlaggedViewports=()=>{this._throwIfDestroyed();const n=this._getViewportsAsArray().filter(s=>this._needsRender.has(s.id));if(n.length===0){this._animationFrameSet=!1,this._animationFrameHandle=null;return}const o=n.map(s=>{const i=this.renderViewportUsingCustomOrVtkPipeline(s);return s.setRendered(),this._needsRender.delete(s.id),i});this._animationFrameSet=!1,this._animationFrameHandle=null,o.forEach(s=>{s?.element&&E(s.element,M.IMAGE_RENDERED,s)})},this.useCPURendering||this.ensureContextPool()}ensureContextPool(){if(!this.contextPool){const{rendering:e}=L(),{webGlContextCount:t}=e;this.contextPool=new Ue(t,this.id)}return this.contextPool}enableVTKjsDrivenViewport(e){const o=this._getViewportsAsArray().filter(a=>W(a.type)===!1).map(a=>a.canvas),s=S(e.element);G(s),o.push(s);const i={...e,canvas:s};this.addVtkjsDrivenViewport(i)}addVtkjsDrivenViewport(e){const t=this.ensureContextPool(),{element:n,canvas:o,viewportId:s,type:i,defaultOptions:a}=e;n.tabIndex=-1,$(n);let r=0;if(i===q.STACK){const u=t.getAllContexts();r=this._viewports.size%u.length}t.assignViewportToContext(s,r),t.updateViewportSize(s,o.width,o.height);const d=t.getContextByIndex(r),{context:g,container:m}=d,p=t.getMaxSizeForContext(r);m.width=p.width,m.height=p.height,g.resize(),g.addRenderer({viewport:[0,0,1,1],id:s,background:a.background?a.background:[0,0,0]});const x={id:s,element:n,renderingEngineId:this.id,type:i,canvas:o,sx:0,sy:0,sWidth:o.width,sHeight:o.height,defaultOptions:a||{}},f=Z(e);if(!f)throw new Error(`Viewport Type ${i} is not supported`);const h=new f(x);h.requestedType=e.requestedType??i,this._viewports.set(s,h);const c={element:n,viewportId:s,renderingEngineId:this.id};h.suppressEvents||E(y,M.ELEMENT_ENABLED,c)}setVtkjsDrivenViewports(e){if(e.length){const t=e.map(n=>S(n.element));t.forEach(n=>G(n));for(let n=0;n<e.length;n++){const o=e[n],s=t[n],i={...o,canvas:s};this.addVtkjsDrivenViewport(i)}}}_getDisplayedSize(e){const t=window.devicePixelRatio||1,n=F(e)?e.element:S(e.element);return{displayedWidth:Math.round(n.clientWidth*t),displayedHeight:Math.round(n.clientHeight*t)}}_resizeVTKViewports(e,t=!0,n=!0){const o=[];for(const s of e){const i=S(s.element),{displayedWidth:a,displayedHeight:r}=this._getDisplayedSize(s);if(a===0||r===0)continue;const d=i.width,g=i.height;a===d&&r===g||o.push(s)}if(o.length!==0){for(const s of o){const{displayedWidth:i,displayedHeight:a}=this._getDisplayedSize(s),r=Math.max(v,i),d=Math.max(v,a);s.sWidth=r,s.sHeight=d}this._animationFrameSet||(e.length&&this._resize(e),e.forEach(s=>{if(s.resize?.(),F(s))return;const i=s.getCamera(),a=s.getRotation?.()??0,{flipHorizontal:r}=i,d=s;d.resetViewStateForResize?d.resetViewStateForResize():d.resetCameraForResize?.();const g=s.getDisplayArea();t&&(g?(r&&s.setCamera({flipHorizontal:r}),a&&s.setViewPresentation({rotation:a})):s.setCamera(i))}),n&&this.render())}}renderViewportUsingCustomOrVtkPipeline(e){if(k(e))return e.customRenderViewportToCanvas();if(!this.contextPool)throw new Error("GPU not available, and using a viewport with no custom render pipeline.");const t=this.contextPool.getContextIndexForViewport(e.id),n=this.contextPool.getContextByIndex(t),{context:o,container:s}=n;return this._renderViewportWithContext(e,o,s)}_renderViewportWithContext(e,t,n){if(e.canvas.clientWidth===0||e.canvas.clientHeight===0)return;if(e.sWidth<v||e.sHeight<v){console.warn("Viewport is too small",e.sWidth,e.sHeight);return}if(k(e))return e.customRenderViewportToCanvas();if(!this.contextPool)throw new Error("GPU not available, and using a viewport with no custom render pipeline.");t.getRenderer(e.id)||t.addRenderer({viewport:[0,0,1,1],id:e.id,background:e.defaultOptions?.background||[0,0,0]});const o=t.getRenderWindow(),s=o.getViews()[0],i=s.getRenderPasses(),a=this.getViewportRenderPasses(e.id);a&&s.setRenderPasses(a),this._resizeOffScreenCanvasForViewport(e,n,t);const r=t.getRenderer(e.id),d=this.contextPool.getContextIndexForViewport(e.id),g=this.contextPool.getMaxSizeForContext(d),m=e.sWidth,p=e.sHeight,x=Math.min(1,m/g.width),f=Math.min(1,p/g.height);r.setViewport(0,0,x,f);const h=t.getRenderers();h.forEach(({renderer:w,id:V})=>{const _=V.split("::")[0];w.setDraw(_===e.id)});const c=this.getWidgetRenderers();c.forEach((w,V)=>{V.setDraw(w===e.id)}),o.render(),h.forEach(({renderer:w})=>w.setDraw(!1)),c.forEach((w,V)=>{V.setDraw(!1)}),i&&s.setRenderPasses(i);const I=t.getOpenGLRenderWindow().get3DContext().canvas;return this._copyToOnscreenCanvas(e,I)}_renderViewportFromVtkCanvasToOnscreenCanvas(e,t){return this._copyToOnscreenCanvas(e,t)}_resizeOffScreenCanvasForViewport(e,t,n){const o=this.contextPool.getContextIndexForViewport(e.id);if(o===void 0||!this.contextPool.updateViewportSize(e.id,e.sWidth,e.sHeight))return;const i=this.contextPool.getMaxSizeForContext(o);t.width===i.width&&t.height===i.height||(t.width=i.width,t.height=i.height,n.resize())}_copyToOnscreenCanvas(e,t){const{element:n,canvas:o,id:s,renderingEngineId:i,suppressEvents:a}=e,r=e.sWidth,d=e.sHeight;G(o,{width:r,height:d});const g=o.getContext("2d"),m=this.contextPool.getContextIndexForViewport(s),x=this.contextPool.getMaxSizeForContext(m).height-d;return g.drawImage(t,0,x,r,d,0,0,r,d),{element:n,suppressEvents:a,viewportId:s,renderingEngineId:i,viewportStatus:e.viewportStatus}}_resize(e){const t=new Set;for(const n of e){n.sx=0,n.sy=0;const o=this.contextPool.getContextIndexForViewport(n.id);this.contextPool.updateViewportSize(n.id,n.sWidth,n.sHeight)&&t.add(o);const i=this.contextPool.getContextByIndex(o),{context:a}=i,r=a.getRenderer(n.id),d=this.contextPool.getMaxSizeForContext(o),g=Math.min(1,n.sWidth/d.width),m=Math.min(1,n.sHeight/d.height);r.setViewport(0,0,g,m)}t.forEach(n=>{const o=this.contextPool.getContextByIndex(n);if(o){const{context:s,container:i}=o,a=this.contextPool.getMaxSizeForContext(n);i.width=a.width,i.height=a.height,s.resize()}})}getWidgetRenderers(){const e=this._getViewportsAsArray(),t=new Map;return e.forEach(n=>{(n.getWidgets?n.getWidgets():[]).forEach(s=>{const i=s.getRenderer?s.getRenderer():null;i&&t.set(i,n.id)})}),t}getViewportRenderPasses(e){const t=this.getViewport(e);return t?.getRenderPasses?t.getRenderPasses():null}getRenderer(e){const t=this.contextPool?.getContextIndexForViewport(e);if(t===void 0||!this.contextPool)return;const n=this.contextPool.getContextByIndex(t);if(!n)return;const{context:o}=n;return o.getRenderer(e)}disableElement(e){const t=this.getViewport(e);if(t&&(super.disableElement(e),!W(t.type)&&this.contextPool)){const n=this.contextPool.getContextIndexForViewport(e);if(n!==void 0){const o=this.contextPool.getContextByIndex(n);if(o){const{context:s}=o;s.removeRenderer(e)}}this.contextPool.removeViewport(e)}}destroy(){super.destroy(),this.contextPool&&this.contextPool.destroy()}getOffscreenMultiRenderWindow(e){if(!this.contextPool)throw new Error("Offscreen multi render window is not available.");const t=this.contextPool.getContextIndexForViewport(e);if(t===void 0)throw new Error(`Offscreen multi render window is not available for viewport ${e}.`);const n=this.contextPool.getContextByIndex(t);if(!n)throw new Error(`Offscreen multi render window is not available for viewport ${e}.`);return n.context}}class dt{constructor(e){const n=L()?.rendering?.renderingEngineMode;switch(n){case O.Tiled:this._implementation=new He(e);break;case O.ContextPool:this._implementation=new A(e);break;default:console.warn(`RenderingEngine: Unknown rendering engine mode "${n}". Defaulting to Next rendering engine.`),this._implementation=new A(e);break}}get id(){return this._implementation.id}disableViewport(e){return this._implementation.disableElement(e)}enableElement(e){return this._implementation.enableElement(e)}disableElement(e){return this._implementation.disableElement(e)}setViewports(e){return this._implementation.setViewports(e)}resize(e=!0,t=!0){return this._implementation.resize(e,t)}getViewport(e){return this._implementation.getViewport(e)}getViewports(){return this._implementation.getViewports()}getRenderer(e){return this._implementation.getRenderer(e)}fillCanvasWithBackgroundColor(e,t){return this._implementation.fillCanvasWithBackgroundColor(e,t)}render(){return this._implementation.render()}renderViewports(e){return this._implementation.renderViewports(e)}renderViewport(e){return this._implementation.renderViewport(e)}destroy(){return this._implementation.destroy()}getOffscreenMultiRenderWindow(e){return this._implementation.getOffscreenMultiRenderWindow(e)}}const $e={adapter:K,getSnapshot:J},qe={adapter:Q,getSnapshot:Y},Ze={adapter:de,getSnapshot:re,getZoom:ae,getScale:ie,getPan:oe,resolveICamera:se,derivePresentation:ne,applyToRenderer:te,createImageSliceBasis:ee,createVolumeSliceBasis:X},Je={adapter:le,getSnapshot:ce},Ke={adapter:me,getSnapshot:ge},ct="5.8.2";class Ye extends he{constructor(e,t){super(e,t),this._dimensionGroupNumber=1,this._loadedDimensionGroups=new Set,this._getImageIdRequests=(s,i)=>this.getImageIdsRequests(s,i),this.getImageLoadRequests=s=>{const i=this.getImageIdsToLoad();return this._getImageIdRequests(i,s)};const{imageIdGroups:n,splittingTag:o}=e;this._splittingTag=o,this._imageIdGroups=n,this.numDimensionGroups=this._imageIdGroups.length}_getImageIdsToLoad(){const e=this._imageIdGroups,t=this._dimensionGroupNumber-1,n=[...e[t]];let o=t-1,s=t+1;for(;o>=0||s<e.length;)o>=0&&n.push(...e[o--]),s<e.length&&n.push(...e[s++]);return n}getImageIdsToLoad(){return this._getImageIdsToLoad()}get dimensionGroupNumber(){return this._dimensionGroupNumber}set dimensionGroupNumber(e){this._dimensionGroupNumber!==e&&(this._dimensionGroupNumber=e,this.voxelManager.setDimensionGroupNumber(e),this.invalidateVolume(!0),E(y,M.DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED,{volumeId:this.volumeId,dimensionGroupNumber:e,numDimensionGroups:this.numDimensionGroups,imageIdGroupIndex:e-1,numImageIdGroups:this.numDimensionGroups,splittingTag:this.splittingTag}))}scroll(e){const t=this._dimensionGroupNumber+e;t<1?this.dimensionGroupNumber=this.numDimensionGroups:t>this.numDimensionGroups?this.dimensionGroupNumber=1:this.dimensionGroupNumber=t}getCurrentDimensionGroupImageIds(){return this._imageIdGroups[this._dimensionGroupNumber-1]}flatImageIdIndexToDimensionGroupNumber(e){return Math.floor(e/this._imageIdGroups[0].length)+1}flatImageIdIndexToImageIdIndex(e){return e%this._imageIdGroups[0].length}get splittingTag(){return this._splittingTag}isDimensionGroupLoaded(e){return this._loadedDimensionGroups.has(e)}markDimensionGroupAsLoaded(e){this._loadedDimensionGroups.add(e),E(y,M.DYNAMIC_VOLUME_DIMENSION_GROUP_LOADED,{volumeId:this.volumeId,dimensionGroupNumber:e})}checkDimensionGroupCompletion(e){const t=this.flatImageIdIndexToDimensionGroupNumber(e);this._imageIdGroups[t-1].every(s=>{const i=this.getImageIdIndex(s);return this.cachedFrames[i]===ue.FULL_RESOLUTION})&&!this.isDimensionGroupLoaded(t)&&this.markDimensionGroupAsLoaded(t)}}function Qe(l,e,t){return e.reduce((n,o)=>o.apply(n,t),l)}const Xe={name:"InPlaneDecimationModifier",apply(l,e){const[t=1,n=t]=e.options.ijkDecimation??[],o=Math.max(1,Math.floor(t)),s=Math.max(1,Math.floor(n));if(o===1&&s===1)return l;const[i,a]=l.dimensions,r=Math.max(1,Math.floor(i/o)),d=Math.max(1,Math.floor(a/s)),g=[r,d,l.dimensions[2]],m=[l.spacing[0]*o,l.spacing[1]*s,l.spacing[2]],p={...l.metadata,Columns:r,Rows:d,PixelSpacing:[m[1],m[0]]};return{...l,dimensions:g,spacing:m,metadata:p}}};function lt(l,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a streaming image volume ");const[t=1,n=t,o=1]=e.ijkDecimation??[],s=Math.max(1,Math.floor(t)),i=n>1?Math.max(1,Math.floor(n)):s,a=Math.max(1,Math.floor(o)),r=s>1||i>1,d={ijkDecimation:[s,i,a]},g=[Xe];function m(c,u){return u===1?c:`${c}#decimation=${u}`}const p=Math.floor(e.imageIds.length/a),x=a>1&&e.imageIds.length<=p+1;if(a>1&&!x){const c=pe(e.imageIds,a),u=Array.isArray(c)&&c.length&&typeof c[0]=="number"?c.map(P=>e.imageIds[P]):c;e.imageIds=u}s>1&&(e.imageIds=e.imageIds.map(c=>m(c,s)));async function f(){const c=N(e.imageIds,l),u={volumeId:l,imageIds:e.imageIds,options:d},P=Qe(c,g,u),{dimensions:I,spacing:R,origin:w,direction:V,metadata:_,imageIds:b,dataType:B,numberOfComponents:z}=P,C=new xe({volumeId:l,metadata:_,dimensions:I,spacing:R,origin:w,direction:V,imageIds:b,dataType:B,numberOfComponents:z},{imageIds:b,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}});if(r){const D=C.imageData;D&&(D.setDimensions(C.dimensions),D.setSpacing(C.spacing),D.modified());const T=j.createImageVolumeVoxelManager({dimensions:C.dimensions,imageIds:C.imageIds,numberOfComponents:z});C.voxelManager=T,D&&D.set({voxelManager:T})}return C}const h=f();return{promise:h,decache:()=>{h.then(c=>{c.destroy(),c=null})},cancel:()=>{h.then(c=>{c.cancelLoading()})}}}function gt(l,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a 4D streaming image volume");const{imageIds:t}=e,{splittingTag:n,imageIdGroups:o}=we(t),s=Math.floor(o.length/2),i=N(o[s],l),{metadata:a,dimensions:r,spacing:d,direction:g,sizeInBytes:m,origin:p,numberOfComponents:x,dataType:f}=i,h=g.slice(6,9),c=o.map(R=>fe(R,h).sortedImageIds),u=c.flat(),P=j.createScalarDynamicVolumeVoxelManager({dimensions:r,imageIdGroups:c,dimensionGroupNumber:1,numberOfComponents:x});let I=new Ye({volumeId:l,metadata:a,dimensions:r,spacing:d,origin:p,direction:g,sizeInBytes:m,imageIds:u,imageIdGroups:c,splittingTag:n,voxelManager:P,numberOfComponents:x,dataType:f},{imageIds:u,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}});return{promise:Promise.resolve(I),decache:()=>{I.destroy(),I=null},cancel:()=>{I.cancelLoading()}}}const mt={GenericViewport:je,DefaultRenderPathResolver:Ne,defaultRenderPathResolver:Le,ECGGenericViewport:Ae,createDefaultECGRenderPaths:Oe,createECGRenderPathResolver:ke,DefaultECGDataProvider:Fe,ecgProjection:$e,VideoGenericViewport:We,createDefaultVideoRenderPaths:Te,createVideoRenderPathResolver:ze,DefaultVideoDataProvider:be,videoProjection:qe,PlanarViewport:ye,createDefaultPlanarRenderPaths:Ge,createPlanarRenderPathResolver:_e,DefaultPlanarDataProvider:Me,planarProjection:Ze,VolumeViewport3D:Ee,createDefaultVolume3DRenderPaths:ve,createVolume3DRenderPathResolver:Se,DefaultVolume3DDataProvider:Re,volume3DProjection:Je,WSIGenericViewport:De,createDefaultWSIRenderPaths:Pe,createWSIRenderPathResolver:Ce,DefaultWSIDataProvider:Ve,wsiProjection:Ke},ht=Ie;export{xt as ActorRenderMode,U as BaseRenderingEngine,wt as BaseVolumeViewport,ft as CONSTANTS,A as ContextPoolRenderingEngine,Fe as DefaultECGDataProvider,Me as DefaultPlanarDataProvider,Ne as DefaultRenderPathResolver,be as DefaultVideoDataProvider,Re as DefaultVolume3DDataProvider,Ve as DefaultWSIDataProvider,Ae as ECGGenericViewport,It as ECGViewport,Vt as EPSILON,M as EVENTS,Ct as Enums,je as GenericViewport,Ee as GenericVolumeViewport3D,Pt as ImageVolume,ht as LegacyVolumeViewport3D,ye as PlanarViewport,Dt as ProgressiveRetrieveImages,Rt as RenderBackends,dt as RenderingEngine,St as Settings,vt as StackViewport,Ye as StreamingDynamicImageVolume,xe as StreamingImageVolume,Et as Surface,He as TiledRenderingEngine,We as VideoGenericViewport,Mt as VideoViewport,_t as Viewport,Gt as ViewportProjectionService,yt as VolumeViewport,Ie as VolumeViewport3D,De as WSIGenericViewport,bt as WSIViewport,rt as addImageSlicesToViewports,Wn as addVolumesToViewports,zt as cache,Tt as canRenderFloatTextures,Wt as convertColorArrayToRgbString,Ft as convertMapperToNotSharedMapper,kt as cornerstoneMeshLoader,gt as cornerstoneStreamingDynamicImageVolumeLoader,Ot as cornerstoneStreamingImageVolumeLoader,At as createCanvas,Oe as createDefaultECGRenderPaths,Ge as createDefaultPlanarRenderPaths,Te as createDefaultVideoRenderPaths,ve as createDefaultVolume3DRenderPaths,Pe as createDefaultWSIRenderPaths,ke as createECGRenderPathResolver,_e as createPlanarRenderPathResolver,ze as createVideoRenderPathResolver,Lt as createViewportElement,Se as createVolume3DRenderPathResolver,Nt as createVolumeActor,jt as createVolumeMapper,Ce as createWSIRenderPathResolver,lt as decimatedVolumeLoader,Le as defaultRenderPathResolver,Bt as detectRenderingCapabilities,$e as ecgProjection,y as eventTarget,Ht as geometryLoader,L as getConfiguration,Ut as getEffectiveRenderBackend,Rn as getEnabledElement,Sn as getEnabledElementByIds,vn as getEnabledElementByViewportId,En as getEnabledElements,S as getOrCreateCanvas,$t as getProjectionScaleMatrix,qt as getRenderBackend,Zt as getRenderingCapabilities,Jt as getRenderingEngine,Kt as getRenderingEngines,Yt as getShouldUseCPURendering,Qt as getUseGenericViewport,Xt as getWebWorkerManager,en as imageLoadPoolManager,tn as imageLoader,nn as imageRetrievalPoolManager,sn as init,on as isCornerstoneInitialized,an as isRegisteredRenderBackend,rn as isRegisteredViewportType,dn as metaData,cn as peerImport,Ze as planarProjection,ln as registerImageLoader,gn as registerRenderBackend,mn as registerViewportType,mt as renderingEngineExportsV2,hn as requestPoolManager,un as resetInitialization,pn as resetUseCPURendering,xn as setCanvasCreator,wn as setConfiguration,fn as setPreferSizeOverAccuracy,In as setRenderBackend,Vn as setUseCPURendering,Mn as setVolumesForViewports,E as triggerEvent,G as updateCanvasSizeAndAspectRatio,_n as utilities,ct as version,qe as videoProjection,Gn as viewportHasCanvasWorldTransform,yn as viewportHasFrameOfReferenceUID,bn as viewportHasPan,zn as viewportHasZoom,Cn as viewportProjection,Je as volume3DProjection,Pn as volumeLoader,Ke as wsiProjection};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-D-JhIsWB.js","./_commonjsHelpers-CE1G-McA.js","./index-BSiKqAGW.js","./index-DKs-EoU5.css"])))=>i.map(i=>d[i]);
2
- import{_ as h,I as u}from"./index-BSiKqAGW.js";const c={gray:"gray",hot:"hot",jet:"jet",cool:"cool"},d={wl:"contrast",pan:"pan",length:"measurement",angle:"angle"};class v{name="niivue";host;path;nv=null;module=null;layout="mpr";tool="wl";colormap="gray";slice=0;slices=0;refused=0;disposed=!1;constructor(s,t){this.host=s,this.path=t}async open(s){const t=document.createElement("canvas");t.className="image-canvas",s.appendChild(t),this.host.readout_set("LOADING"),this.host.progress_set({label:"READING VOLUME",done:0,total:0});const e=performance.now();if(this.module=await h(()=>import("./index-D-JhIsWB.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),this.disposed)return;const i=new this.module.Niivue({isResizeCanvas:!0,logLevel:"error",dragAndDropEnabled:!1,crosshairWidth:.4,crosshairWidthUnit:"percent"});i.onLocationChange=o=>{const r=o,l=r.vox?.[2];l!==void 0&&(this.slice=l+1),this.host.readout_set(`${this.slices>0?`SLICE ${this.slice} OF ${this.slices} · `:""}${r.string??""}`)},await i.attachToCanvas(t);const n=this.path.split("/").pop()??"volume.nii.gz";try{await i.loadVolumes([{url:`${location.origin}${this.host.source.url_of(this.path)}`,name:n}])}catch(o){this.refused=1,this.host.progress_set(null),this.host.readout_set("REFUSED 1 OF 1"),this.host.note(`image: ${this.path}: ${o instanceof Error?o.message:String(o)}`);return}if(this.host.progress_set(null),this.disposed)return;this.nv=i;const a=i.volumes[0]?.dims;this.slices=a?.[3]??0,i.setSliceType(i.sliceTypeMultiplanar),this.layout="mpr",this.host.readout_set(`${this.slices} SLICES`),this.host.note(`image: ${n} drawn in ${Math.round(performance.now()-e)} ms`),this.host.regard(this.path)}async layout_set(s){return s==="slab"||this.nv===null?!1:(this.nv.setSliceType(s==="single"?this.nv.sliceTypeAxial:s==="mpr"?this.nv.sliceTypeMultiplanar:this.nv.sliceTypeRender),this.layout=s,this.host.readout_set(`${this.slices} SLICES`),!0)}slice_set(s){if(this.nv===null||this.slices===0)return!1;const t=Math.max(1,Math.min(s,this.slices)),e=this.slice>0?this.slice:Math.ceil(this.slices/2);return this.nv.moveCrosshairInVox(0,0,t-e),this.slice=t,!0}wl_set(s,t){const e=this.nv?.volumes[0];return this.nv===null||e===void 0?!1:(e.cal_min=s,e.cal_max=t,this.nv.updateGLVolume(),!0)}colormap_set(s){const t=this.nv?.volumes[0];return this.nv===null||t?.id===void 0?!1:(this.colormap=s,this.nv.setColormap(t.id,c[s]),!0)}toolsOffered_get(){return u}ghost_set(s){return!1}tool_set(s){const t=d[s];return this.nv===null||t===void 0?!1:(this.nv.setDragMode(t),this.tool=s,!0)}annotations_export(){return Promise.resolve(null)}annotations_import(){return Promise.resolve(0)}async slices_fill(){return this.nv!==null}state_get(){return{engine:"niivue",layout:this.layout,slice:this.slice,slices:this.slices,tool:this.tool,primaryTool:this.tool,refused:this.refused,annotations:0,filled:this.nv!==null,colormap:this.colormap}}dispose(){this.disposed=!0,this.nv=null}}export{v as NiivueEngine};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-Cu42vM8O.js","./_commonjsHelpers-CE1G-McA.js","./index-ZX_UE_97.js","./index-CockqLgs.css"])))=>i.map(i=>d[i]);
2
+ import{_ as h,I as u}from"./index-ZX_UE_97.js";const c={gray:"gray",hot:"hot",jet:"jet",cool:"cool"},d={wl:"contrast",pan:"pan",length:"measurement",angle:"angle"};class v{name="niivue";host;path;nv=null;module=null;layout="mpr";tool="wl";colormap="gray";slice=0;slices=0;refused=0;disposed=!1;constructor(s,t){this.host=s,this.path=t}async open(s){const t=document.createElement("canvas");t.className="image-canvas",s.appendChild(t),this.host.readout_set("LOADING"),this.host.progress_set({label:"READING VOLUME",done:0,total:0});const e=performance.now();if(this.module=await h(()=>import("./index-Cu42vM8O.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),this.disposed)return;const i=new this.module.Niivue({isResizeCanvas:!0,logLevel:"error",dragAndDropEnabled:!1,crosshairWidth:.4,crosshairWidthUnit:"percent"});i.onLocationChange=o=>{const r=o,l=r.vox?.[2];l!==void 0&&(this.slice=l+1),this.host.readout_set(`${this.slices>0?`SLICE ${this.slice} OF ${this.slices} · `:""}${r.string??""}`)},await i.attachToCanvas(t);const n=this.path.split("/").pop()??"volume.nii.gz";try{await i.loadVolumes([{url:`${location.origin}${this.host.source.url_of(this.path)}`,name:n}])}catch(o){this.refused=1,this.host.progress_set(null),this.host.readout_set("REFUSED 1 OF 1"),this.host.note(`image: ${this.path}: ${o instanceof Error?o.message:String(o)}`);return}if(this.host.progress_set(null),this.disposed)return;this.nv=i;const a=i.volumes[0]?.dims;this.slices=a?.[3]??0,i.setSliceType(i.sliceTypeMultiplanar),this.layout="mpr",this.host.readout_set(`${this.slices} SLICES`),this.host.note(`image: ${n} drawn in ${Math.round(performance.now()-e)} ms`),this.host.regard(this.path)}async layout_set(s){return s==="slab"||this.nv===null?!1:(this.nv.setSliceType(s==="single"?this.nv.sliceTypeAxial:s==="mpr"?this.nv.sliceTypeMultiplanar:this.nv.sliceTypeRender),this.layout=s,this.host.readout_set(`${this.slices} SLICES`),!0)}slice_set(s){if(this.nv===null||this.slices===0)return!1;const t=Math.max(1,Math.min(s,this.slices)),e=this.slice>0?this.slice:Math.ceil(this.slices/2);return this.nv.moveCrosshairInVox(0,0,t-e),this.slice=t,!0}wl_set(s,t){const e=this.nv?.volumes[0];return this.nv===null||e===void 0?!1:(e.cal_min=s,e.cal_max=t,this.nv.updateGLVolume(),!0)}colormap_set(s){const t=this.nv?.volumes[0];return this.nv===null||t?.id===void 0?!1:(this.colormap=s,this.nv.setColormap(t.id,c[s]),!0)}toolsOffered_get(){return u}ghost_set(s){return!1}tool_set(s){const t=d[s];return this.nv===null||t===void 0?!1:(this.nv.setDragMode(t),this.tool=s,!0)}annotations_export(){return Promise.resolve(null)}annotations_import(){return Promise.resolve(0)}async slices_fill(){return this.nv!==null}state_get(){return{engine:"niivue",layout:this.layout,slice:this.slice,slices:this.slices,tool:this.tool,primaryTool:this.tool,refused:this.refused,annotations:0,filled:this.nv!==null,colormap:this.colormap}}dispose(){this.disposed=!0,this.nv=null}}export{v as NiivueEngine};
@@ -1,4 +1,4 @@
1
- import{m as v,as as _e,R as gt,K as Pe,L as Ge,W as ke,N as Le,k as de,E as j,t as ft,i as Me,x as ce,F as vt,Z as ht,h as St,D as dt,al as Tt,c as wt,at as yt,d as Ve,au as Ct,y as ue,ak as le,av as We,j as pe}from"./cornerstoneEngine-oWB9T9Cs.js";import{ae as ze,am as De,an as ae,K as D,k as Q,al as W,D as se,U as Ne,X as Be,B as b,J as xt,E as Et,ak as Rt,$ as $e,a2 as _t,Z as Mt,b as Vt,_ as Ke,ao as Dt,ap as He,aq as Bt,ar as Te,as as mt,z as Ot,at as Ut,au as Ft,av as re,ad as Pt,R as Gt,aw as I,ah as kt,ai as Lt,C as Wt,P as zt,I as Nt,a as $t}from"./Texture-CA0OMvaZ.js";import"./index-BSiKqAGW.js";import"./_commonjsHelpers-CE1G-McA.js";function Kt(t){return t}function ye(t){if(t===null||t==="null")return null;if(t==="true")return!0;if(t==="false")return!1;if(!(t===void 0||t==="undefined"))return t[0]==="["&&t[t.length-1]==="]"?t.substring(1,t.length-1).split(",").map(e=>ye(e.trim())):t===""||Number.isNaN(Number(t))?t:Number(t)}function Ht(t=!0,e=window.location.search){const a={},s=t?ye:Kt;return new URLSearchParams(e).forEach((n,r)=>{r&&(a[r]=n?s(n):!0)}),a}var bt={toNativeType:ye,extractURLParameters:Ht},It={IS_START:0,IS_NONE:0,IS_ROTATE:1,IS_PAN:2,IS_SPIN:3,IS_DOLLY:4,IS_CAMERA_POSE:11,IS_WINDOW_LEVEL:1024,IS_SLICE:1025},Ce={States:It},{vtkErrorMacro:jt,VOID:Qt}=v;function Yt(t,e,a,s){return t.getRenderWindow().getViews()[0].worldToDisplay(e,a,s,t)}function Xt(t,e,a,s){return t.getRenderWindow().getViews()[0].displayToWorld(e,a,s,t)}var Zt={computeWorldToDisplay:Yt,computeDisplayToWorld:Xt};function Jt(t,e){e.classHierarchy.push("vtkInteractorObserver");const a={...t};function s(){for(;e.subscribedEvents.length;)e.subscribedEvents.pop().unsubscribe()}function n(){ze.handledEvents.forEach(r=>{t[`handle${r}`]&&e.subscribedEvents.push(e._interactor[`on${r}`](o=>e.processEvents?t[`handle${r}`](o):Qt,e.priority))})}t.setInteractor=r=>{r!==e._interactor&&(s(),e._interactor=r,r&&e.enabled&&n(),t.modified())},t.setEnabled=r=>{r!==e.enabled&&(s(),r&&(e._interactor?n():jt(`
1
+ import{m as v,as as _e,R as gt,K as Pe,L as Ge,W as ke,N as Le,k as de,E as j,t as ft,i as Me,x as ce,F as vt,Z as ht,h as St,D as dt,al as Tt,c as wt,at as yt,d as Ve,au as Ct,y as ue,ak as le,av as We,j as pe}from"./cornerstoneEngine-CZtg0zW5.js";import{ae as ze,am as De,an as ae,K as D,k as Q,al as W,D as se,U as Ne,X as Be,B as b,J as xt,E as Et,ak as Rt,$ as $e,a2 as _t,Z as Mt,b as Vt,_ as Ke,ao as Dt,ap as He,aq as Bt,ar as Te,as as mt,z as Ot,at as Ut,au as Ft,av as re,ad as Pt,R as Gt,aw as I,ah as kt,ai as Lt,C as Wt,P as zt,I as Nt,a as $t}from"./Texture-C5SfDh5g.js";import"./index-ZX_UE_97.js";import"./_commonjsHelpers-CE1G-McA.js";function Kt(t){return t}function ye(t){if(t===null||t==="null")return null;if(t==="true")return!0;if(t==="false")return!1;if(!(t===void 0||t==="undefined"))return t[0]==="["&&t[t.length-1]==="]"?t.substring(1,t.length-1).split(",").map(e=>ye(e.trim())):t===""||Number.isNaN(Number(t))?t:Number(t)}function Ht(t=!0,e=window.location.search){const a={},s=t?ye:Kt;return new URLSearchParams(e).forEach((n,r)=>{r&&(a[r]=n?s(n):!0)}),a}var bt={toNativeType:ye,extractURLParameters:Ht},It={IS_START:0,IS_NONE:0,IS_ROTATE:1,IS_PAN:2,IS_SPIN:3,IS_DOLLY:4,IS_CAMERA_POSE:11,IS_WINDOW_LEVEL:1024,IS_SLICE:1025},Ce={States:It},{vtkErrorMacro:jt,VOID:Qt}=v;function Yt(t,e,a,s){return t.getRenderWindow().getViews()[0].worldToDisplay(e,a,s,t)}function Xt(t,e,a,s){return t.getRenderWindow().getViews()[0].displayToWorld(e,a,s,t)}var Zt={computeWorldToDisplay:Yt,computeDisplayToWorld:Xt};function Jt(t,e){e.classHierarchy.push("vtkInteractorObserver");const a={...t};function s(){for(;e.subscribedEvents.length;)e.subscribedEvents.pop().unsubscribe()}function n(){ze.handledEvents.forEach(r=>{t[`handle${r}`]&&e.subscribedEvents.push(e._interactor[`on${r}`](o=>e.processEvents?t[`handle${r}`](o):Qt,e.priority))})}t.setInteractor=r=>{r!==e._interactor&&(s(),e._interactor=r,r&&e.enabled&&n(),t.modified())},t.setEnabled=r=>{r!==e.enabled&&(s(),r&&(e._interactor?n():jt(`
2
2
  The interactor must be set before subscribing to events
3
3
  `)),e.enabled=r,t.modified())},t.computeDisplayToWorld=(r,o,i,u)=>r?e._interactor.getView().displayToWorld(o,i,u,r):null,t.computeWorldToDisplay=(r,o,i,u)=>r?e._interactor.getView().worldToDisplay(o,i,u,r):null,t.setPriority=r=>{a.setPriority(r)&&e._interactor&&(s(),n())}}var qt={enabled:!0,priority:0,processEvents:!0,subscribedEvents:[]};function be(t,e,a={}){Object.assign(e,qt,a),v.obj(t,e),v.event(t,e,"InteractionEvent"),v.event(t,e,"StartInteractionEvent"),v.event(t,e,"EndInteractionEvent"),v.get(t,e,["_interactor","enabled"]),v.setGet(t,e,["priority","processEvents"]),v.moveToProtected(t,e,["interactor"]),Jt(t,e)}var At=v.newInstance(be,"vtkInteractorObserver"),en={newInstance:At,extend:be,...Zt},{States:L}=Ce,ge={Rotate:L.IS_ROTATE,Pan:L.IS_PAN,Spin:L.IS_SPIN,Dolly:L.IS_DOLLY,CameraPose:L.IS_CAMERA_POSE,WindowLevel:L.IS_WINDOW_LEVEL,Slice:L.IS_SLICE};function tn(t,e){e.classHierarchy.push("vtkInteractorStyle"),Object.keys(ge).forEach(a=>{v.event(t,e,`Start${a}Event`),t[`start${a}`]=()=>{e.state===L.IS_NONE&&(e.state=ge[a],e._interactor.requestAnimation(t),t.invokeStartInteractionEvent({type:"StartInteractionEvent"}),t[`invokeStart${a}Event`]({type:`Start${a}Event`}))},v.event(t,e,`End${a}Event`),t[`end${a}`]=()=>{e.state===ge[a]&&(e.state=L.IS_NONE,e._interactor.cancelAnimation(t),t.invokeEndInteractionEvent({type:"EndInteractionEvent"}),t[`invokeEnd${a}Event`]({type:`End${a}Event`}),e._interactor.render())}}),e.getRenderer=a=>e.focusedRenderer||a.pokedRenderer,t.handleKeyPress=a=>{const s=e._interactor;let n=null;switch(a.key){case"r":case"R":e.getRenderer(a).resetCamera(),s.render();break;case"w":case"W":n=e.getRenderer(a).getActors(),n.forEach(r=>{const o=r.getProperty();o.setRepresentationToWireframe&&o.setRepresentationToWireframe()}),s.render();break;case"s":case"S":n=e.getRenderer(a).getActors(),n.forEach(r=>{const o=r.getProperty();o.setRepresentationToSurface&&o.setRepresentationToSurface()}),s.render();break;case"v":case"V":n=e.getRenderer(a).getActors(),n.forEach(r=>{const o=r.getProperty();o.setRepresentationToPoints&&o.setRepresentationToPoints()}),s.render();break}}}var nn={state:L.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function Ie(t,e,a={}){Object.assign(e,nn,a),en.extend(t,e,a),v.setGet(t,e,["focusedRenderer"]),tn(t,e)}var an=v.newInstance(Ie,"vtkInteractorStyle"),xe={newInstance:an,extend:Ie,...Ce},{States:G}=Ce;function rn(t,e){e.classHierarchy.push("vtkInteractorStyleTrackballCamera"),t.handleMouseMove=a=>{const s=a.position,n=e.getRenderer(a);switch(e.state){case G.IS_ROTATE:t.handleMouseRotate(n,s),t.invokeInteractionEvent({type:"InteractionEvent"});break;case G.IS_PAN:t.handleMousePan(n,s),t.invokeInteractionEvent({type:"InteractionEvent"});break;case G.IS_DOLLY:e.wheelDolly||(t.handleMouseDolly(n,s),t.invokeInteractionEvent({type:"InteractionEvent"}));break;case G.IS_SPIN:t.handleMouseSpin(n,s),t.invokeInteractionEvent({type:"InteractionEvent"});break}e.previousPosition=s},t.handleButton3D=a=>{if(a&&a.pressed&&a.device===De.RightController&&(a.input===ae.Trigger||a.input===ae.TrackPad)){t.startCameraPose();return}a&&!a.pressed&&a.device===De.RightController&&(a.input===ae.Trigger||a.input===ae.TrackPad)&&e.state===G.IS_CAMERA_POSE&&t.endCameraPose()},t.handleMove3D=a=>{e.state===G.IS_CAMERA_POSE&&t.updateCameraPose(a)},t.updateCameraPose=a=>{const s=e.getRenderer(a).getActiveCamera(),n=s.getPhysicalTranslation(),r=.5*.05*s.getPhysicalScale(),o=s.physicalOrientationToWorldDirection([a.orientation.x,a.orientation.y,a.orientation.z,a.orientation.w]);s.setPhysicalTranslation(n[0]+o[0]*r,n[1]+o[1]*r,n[2]+o[2]*r)},t.handleLeftButtonPress=a=>{e.previousPosition=a.position,a.shiftKey?a.controlKey||a.altKey?t.startDolly():t.startPan():a.controlKey||a.altKey?t.startSpin():t.startRotate()},t.handleLeftButtonRelease=()=>{switch(e.state){case G.IS_DOLLY:t.endDolly();break;case G.IS_PAN:t.endPan();break;case G.IS_SPIN:t.endSpin();break;case G.IS_ROTATE:t.endRotate();break}},t.handleStartMouseWheel=()=>{e.wheelDolly=!0,t.startDolly()},t.handleEndMouseWheel=()=>{t.endDolly(),e.wheelDolly=!1},t.handleStartPinch=a=>{e.previousScale=a.scale,t.startDolly()},t.handleEndPinch=()=>{t.endDolly()},t.handleStartRotate=a=>{e.previousRotation=a.rotation,t.startRotate()},t.handleEndRotate=()=>{t.endRotate()},t.handleStartPan=a=>{e.previousTranslation=a.translation,t.startPan()},t.handleEndPan=()=>{t.endPan()},t.handlePinch=a=>{t.dollyByFactor(e.getRenderer(a),a.scale/e.previousScale),e.previousScale=a.scale},t.handlePan=a=>{const s=e.getRenderer(a).getActiveCamera();let n=s.getFocalPoint();n=t.computeWorldToDisplay(e.getRenderer(a),n[0],n[1],n[2]);const r=n[2],o=a.translation,i=e.previousTranslation,u=t.computeDisplayToWorld(e.getRenderer(a),n[0]+o[0]-i[0],n[1]+o[1]-i[1],r),p=t.computeDisplayToWorld(e.getRenderer(a),n[0],n[1],r),c=[];c[0]=p[0]-u[0],c[1]=p[1]-u[1],c[2]=p[2]-u[2],n=s.getFocalPoint();const l=s.getPosition();s.setFocalPoint(c[0]+n[0],c[1]+n[1],c[2]+n[2]),s.setPosition(c[0]+l[0],c[1]+l[1],c[2]+l[2]),e._interactor.getLightFollowCamera()&&e.getRenderer(a).updateLightsGeometryToFollowCamera(),s.orthogonalizeViewUp(),e.previousTranslation=a.translation},t.handleRotate=a=>{const s=e.getRenderer(a).getActiveCamera();s.roll(a.rotation-e.previousRotation),s.orthogonalizeViewUp(),e.previousRotation=a.rotation},t.handleMouseRotate=(a,s)=>{if(!e.previousPosition)return;const n=e._interactor,r=s.x-e.previousPosition.x,o=s.y-e.previousPosition.y,i=n.getView().getViewportSize(a);let u=-.1,p=-.1;i[0]&&i[1]&&(u=-20/i[1],p=-20/i[0]);const c=r*p*e.motionFactor,l=o*u*e.motionFactor,g=a.getActiveCamera();!Number.isNaN(c)&&!Number.isNaN(l)&&(g.azimuth(c),g.elevation(l),g.orthogonalizeViewUp()),e.autoAdjustCameraClippingRange&&a.resetCameraClippingRange(),n.getLightFollowCamera()&&a.updateLightsGeometryToFollowCamera()},t.handleMouseSpin=(a,s)=>{if(!e.previousPosition)return;const n=e._interactor,r=a.getActiveCamera(),o=n.getView().getViewportCenter(a),i=_e(Math.atan2(e.previousPosition.y-o[1],e.previousPosition.x-o[0])),u=_e(Math.atan2(s.y-o[1],s.x-o[0]))-i;Number.isNaN(u)||(r.roll(u),r.orthogonalizeViewUp())},t.handleMousePan=(a,s)=>{if(!e.previousPosition)return;const n=a.getActiveCamera();let r=n.getFocalPoint();r=t.computeWorldToDisplay(a,r[0],r[1],r[2]);const o=r[2],i=t.computeDisplayToWorld(a,s.x,s.y,o),u=t.computeDisplayToWorld(a,e.previousPosition.x,e.previousPosition.y,o),p=[];p[0]=u[0]-i[0],p[1]=u[1]-i[1],p[2]=u[2]-i[2],r=n.getFocalPoint();const c=n.getPosition();n.setFocalPoint(p[0]+r[0],p[1]+r[1],p[2]+r[2]),n.setPosition(p[0]+c[0],p[1]+c[1],p[2]+c[2]),e._interactor.getLightFollowCamera()&&a.updateLightsGeometryToFollowCamera()},t.handleMouseDolly=(a,s)=>{if(!e.previousPosition)return;const n=s.y-e.previousPosition.y,r=e._interactor.getView().getViewportCenter(a),o=e.motionFactor*n/r[1];t.dollyByFactor(a,1.1**o)},t.handleMouseWheel=a=>{const s=1-a.spinY/e.zoomFactor;t.dollyByFactor(e.getRenderer(a),s)},t.dollyByFactor=(a,s)=>{if(Number.isNaN(s))return;const n=a.getActiveCamera();n.getParallelProjection()?n.setParallelScale(n.getParallelScale()/s):(n.dolly(s),e.autoAdjustCameraClippingRange&&a.resetCameraClippingRange()),e._interactor.getLightFollowCamera()&&a.updateLightsGeometryToFollowCamera()}}var sn={motionFactor:10,zoomFactor:10,wheelDolly:!1};function je(t,e,a={}){Object.assign(e,sn,a),xe.extend(t,e,a),v.setGet(t,e,["motionFactor","zoomFactor"]),rn(t,e)}var on=v.newInstance(je,"vtkInteractorStyleTrackballCamera"),cn={newInstance:on,extend:je},{vtkErrorMacro:un}=gt,fe=["setBindGroup","setIndexBuffer","setVertexBuffer","draw","drawIndexed"];function ln(t,e){e.classHierarchy.push("vtkWebGPURenderEncoder"),t.begin=a=>{e.drawCallbacks=[],e.handle=a.beginRenderPass(e.description),e.label&&e.handle.pushDebugGroup(e.label)},t.end=()=>{for(let a=0;a<e.drawCallbacks.length;a++){const s=e.drawCallbacks[a],n=s.pipeline;t.setPipeline(n);for(let r=0;r<s.callbacks.length;r++)s.callbacks[r](t)}e.label&&e.handle.popDebugGroup(),e.handle.end(),e.boundPipeline=null},t.setPipeline=a=>{if(e.boundPipeline===a)return;e.handle.setPipeline(a.getHandle());const s=a.getPipelineDescription(),n=s.fragment?.targets;if(e.colorTextureViews.length!==n.length)console.log(`mismatched attachment counts on pipeline ${n.length} while encoder has ${e.colorTextureViews.length}`),console.trace();else for(let r=0;r<e.colorTextureViews.length;r++){const o=e.colorTextureViews[r].getTexture()?.getFormat();o&&o!==n[r].format&&(console.log(`mismatched attachments for attachment ${r} on pipeline ${n[r].format} while encoder has ${o}`),console.trace())}if(!!e.depthTextureView!="depthStencil"in s)console.log("mismatched depth attachments"),console.trace();else if(e.depthTextureView){const r=e.depthTextureView.getTexture()?.getFormat();r&&r!==s.depthStencil.format&&(console.log(`mismatched depth attachments on pipeline ${s.depthStencil.format} while encoder has ${r}`),console.trace())}e.boundPipeline=a},t.replaceShaderCode=a=>{e.replaceShaderCodeFunction(a)},t.setColorTextureView=(a,s)=>{e.colorTextureViews[a]!==s&&(e.colorTextureViews[a]=s)},t.activateBindGroup=a=>{const s=e.boundPipeline.getDevice(),n=e.boundPipeline.getBindGroupLayoutIndex(a.getLabel());if(n<0){un(`vtkWebGPURenderEncoder: could not find bind group layout ${a.getLabel()}`);return}e.handle.setBindGroup(n,a.getBindGroup(s));const r=s.getBindGroupLayoutDescription(a.getBindGroupLayout(s)),o=s.getBindGroupLayoutDescription(e.boundPipeline.getBindGroupLayout(n));r!==o&&(console.log(`renderEncoder ${e.pipelineHash} mismatched bind group layouts bind group has
4
4
  ${r}
package/dist/index.html CHANGED
@@ -12,8 +12,8 @@
12
12
  href="https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap"
13
13
  rel="stylesheet"
14
14
  />
15
- <script type="module" crossorigin src="./assets/index-BSiKqAGW.js"></script>
16
- <link rel="stylesheet" crossorigin href="./assets/index-DKs-EoU5.css">
15
+ <script type="module" crossorigin src="./assets/index-ZX_UE_97.js"></script>
16
+ <link rel="stylesheet" crossorigin href="./assets/index-CockqLgs.css">
17
17
  </head>
18
18
  <body>
19
19
  <!-- ARGUS's own four sounds, synthesised rather than borrowed
@@ -307,6 +307,9 @@
307
307
  <button class="strategy-pill universe-projection" title="projection: sculpted 3D or flat schematic">3D</button>
308
308
  <button class="strategy-pill universe-view" title="every feed its own molecule, or the shapes folded to one molecule each">FEEDS</button>
309
309
  <button class="strategy-pill universe-scale" title="what sizes a sphere: its jobs (log scale) or nothing, every sphere alike">JOBS</button>
310
+ <button class="strategy-pill universe-density" title="a stage as one sphere with its count (SHAPE), or every job as its own point (CENSUS)">SHAPE</button>
311
+ <button class="strategy-pill universe-draw" title="every sphere a point of light (STARS), or lit and solid (SPHERES); a feed you enter is always solid">STARS</button>
312
+ <button class="strategy-pill universe-gravity" title="mass-weighted centring: what gathers the clusters (a knob for play; universe physics … by word)">GRAVITY ON</button>
310
313
  <button class="strategy-pill universe-refresh" title="ask the session for the space again">REFRESH</button>
311
314
  <button class="strategy-pill universe-open" title="this feed in a RUNS pane of its own">OPEN FEED</button>
312
315
  <button class="strategy-pill universe-back" title="climb out to the whole space (Esc)">BACK</button>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fnndsc/argus",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "description": "ARGUS: the LCARS web surface for mise — a browser console over a calypso session",
5
5
  "type": "module",
6
6
  "scripts": {