@gisatcz/deckgl-geolib 1.12.0-dev.13 → 1.12.0-dev.14

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,5 +1,5 @@
1
- "use strict";var A=require("@deck.gl/core"),e=require("@deck.gl/geo-layers"),t=require("@deck.gl/layers"),i=require("@deck.gl/extensions"),r=require("chroma-js"),a=require("@loaders.gl/schema"),n=require("@loaders.gl/loader-utils"),s=require("@deck.gl/mesh-layers");function o(A,e,t,i){return new(t||(t=Promise))((function(r,a){function n(A){try{o(i.next(A))}catch(A){a(A)}}function s(A){try{o(i.throw(A))}catch(A){a(A)}}function o(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(n,s)}o((i=i.apply(A,e||[])).next())}))}function g(A){return(e,...t)=>h(A,e,t)}function l(A,e){return g(C(A,e).get)}"function"==typeof SuppressedError&&SuppressedError;const{apply:h,construct:I,defineProperty:B,get:c,getOwnPropertyDescriptor:C,getPrototypeOf:f,has:E,ownKeys:Q,set:d,setPrototypeOf:u}=Reflect,{iterator:w,species:p,toStringTag:m,for:y}=Symbol,D=Object,{create:k,defineProperty:b,freeze:_,is:S}=D,x=Array.prototype[w],F=g(x),G=ArrayBuffer;l(G.prototype,"byteLength");const U="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null;U&&l(U.prototype,"byteLength");const R=f(Uint8Array);R.from;const M=R.prototype;M[w],g(M.keys),g(M.values),g(M.entries),g(M.set),g(M.reverse),g(M.fill),g(M.copyWithin),g(M.sort),g(M.slice),g(M.subarray),l(M,"buffer"),l(M,"byteOffset"),l(M,"length"),l(M,m);const L=Uint8Array,v=Uint16Array,N=Uint32Array,T=Float32Array,q=f([][w]()),O=g(q.next),J=g(function*(){}().next),H=f(q),Y=g(DataView.prototype.getUint16),z=WeakMap,P=z.prototype,K=g(P.get),V=g(P.set),Z=new z,X=k(null,{next:{value:function(){const A=K(Z,this);return O(A)}},[w]:{value:function(){return this}}});const W=new z,j=k(H,{next:{value:function(){const A=K(W,this);return J(A)},writable:!0,configurable:!0}});for(const A of Q(q))"next"!==A&&b(j,A,C(q,A));const $=new G(4),AA=new T($),eA=new N($),tA=new v(512),iA=new L(512);for(let A=0;A<256;++A){const e=A-127;e<-24?(tA[A]=0,tA[256|A]=32768,iA[A]=24,iA[256|A]=24):e<-14?(tA[A]=1024>>-e-14,tA[256|A]=1024>>-e-14|32768,iA[A]=-e-1,iA[256|A]=-e-1):e<=15?(tA[A]=e+15<<10,tA[256|A]=e+15<<10|32768,iA[A]=13,iA[256|A]=13):e<128?(tA[A]=31744,tA[256|A]=64512,iA[A]=24,iA[256|A]=24):(tA[A]=31744,tA[256|A]=64512,iA[A]=13,iA[256|A]=13)}const rA=new N(2048);for(let A=1;A<1024;++A){let e=A<<13,t=0;for(;!(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,rA[A]=e|t}for(let A=1024;A<2048;++A)rA[A]=939524096+(A-1024<<13);const aA=new N(64);for(let A=1;A<31;++A)aA[A]=A<<23;aA[31]=1199570944,aA[32]=2147483648;for(let A=33;A<63;++A)aA[A]=2147483648+(A-32<<23);aA[63]=3347054592;const nA=new v(64);for(let A=1;A<64;++A)32!==A&&(nA[A]=1024);function sA(A,e,...t){return function(A){const e=A>>10;return eA[0]=rA[nA[e]+(1023&A)]+aA[e],AA[0]}(Y(A,e,...function(A){if(A[w]===x&&q.next===O)return A;const e=k(X);return V(Z,e,F(A)),e}(t)))}function oA(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var gA={exports:{}};function lA(A,e,t){const i=t&&t.debug||!1;i&&console.log("[xml-utils] getting "+e+" in "+A);const r="object"==typeof A?A.outer:A,a=r.slice(0,r.indexOf(">")+1),n=['"',"'"];for(let A=0;A<n.length;A++){const t=n[A],r=e+"\\="+t+"([^"+t+"]*)"+t;i&&console.log("[xml-utils] pattern:",r);const s=new RegExp(r).exec(a);if(i&&console.log("[xml-utils] match:",s),s)return s[1]}}gA.exports=lA,gA.exports.default=lA;var hA=oA(gA.exports),IA={exports:{}},BA={exports:{}},cA={exports:{}};function CA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index:-1}cA.exports=CA,cA.exports.default=CA;var fA=cA.exports,EA={exports:{}};function QA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index+i[0].length-1:-1}EA.exports=QA,EA.exports.default=QA;var dA=EA.exports,uA={exports:{}};function wA(A,e){const t=new RegExp(e,"g"),i=A.match(t);return i?i.length:0}uA.exports=wA,uA.exports.default=wA;var pA=uA.exports;const mA=fA,yA=dA,DA=pA;function kA(A,e,t){const i=t&&t.debug||!1,r=!(t&&!1===typeof t.nested),a=t&&t.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",e," and ",t);const n=mA(A,`<${e}[ \n>/]`,a);if(i&&console.log("[xml-utils] start:",n),-1===n)return;const s=A.slice(n+e.length);let o=yA(s,"^[^<]*[ /]>",0);const g=-1!==o&&"/"===s[o-1];if(i&&console.log("[xml-utils] selfClosing:",g),!1===g)if(r){let A=0,t=1,i=0;for(;-1!==(o=yA(s,"[ /]"+e+">",A));){const r=s.substring(A,o+1);if(t+=DA(r,"<"+e+"[ \n\t>]"),i+=DA(r,"</"+e+">"),i>=t)break;A=o}}else o=yA(s,"[ /]"+e+">",0);const l=n+e.length+o+1;if(i&&console.log("[xml-utils] end:",l),-1===l)return;const h=A.slice(n,l);let I;return I=g?null:h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:I,outer:h,start:n,end:l}}BA.exports=kA,BA.exports.default=kA;const bA=BA.exports;function _A(A,e,t){const i=[],r=t&&t.debug||!1,a=!t||"boolean"!=typeof t.nested||t.nested;let n,s=t&&t.startIndex||0;for(;n=bA(A,e,{debug:r,startIndex:s});)s=a?n.start+1+e.length:n.end,i.push(n);return r&&console.log("findTagsByName found",i.length,"tags"),i}IA.exports=_A,IA.exports.default=_A;var SA=oA(IA.exports);const xA={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},FA={};for(const A in xA)xA.hasOwnProperty(A)&&(FA[xA[A]]=parseInt(A,10));const GA=[FA.BitsPerSample,FA.ExtraSamples,FA.SampleFormat,FA.StripByteCounts,FA.StripOffsets,FA.StripRowCounts,FA.TileByteCounts,FA.TileOffsets,FA.SubIFDs],UA={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},RA={};for(const A in UA)UA.hasOwnProperty(A)&&(RA[UA[A]]=parseInt(A,10));const MA=0,LA=1,vA=2,NA=3,TA=5,qA=6,OA=8,JA=0,HA=1,YA=0,zA=1,PA=2,KA={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};const VA=new Map;function ZA(A,e){Array.isArray(A)||(A=[A]),A.forEach((A=>VA.set(A,e)))}function XA(A,e,t,i=1){return new(Object.getPrototypeOf(A).constructor)(e*t*i)}function WA(A,e,t){return(1-t)*A+t*e}function jA(A,e,t,i,r,a="nearest"){switch(a.toLowerCase()){case"nearest":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=XA(A,i,r);for(let o=0;o<r;++o){const r=Math.min(Math.round(n*o),t-1);for(let t=0;t<i;++t){const n=Math.min(Math.round(a*t),e-1),g=A[r*e+n];s[o*i+t]=g}}return s}))}(A,e,t,i,r);case"bilinear":case"linear":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=XA(A,i,r);for(let o=0;o<r;++o){const r=n*o,g=Math.floor(r),l=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const n=a*t,h=n%1,I=Math.floor(n),B=Math.min(Math.ceil(n),e-1),c=A[g*e+I],C=A[g*e+B],f=A[l*e+I],E=A[l*e+B],Q=WA(WA(c,C,h),WA(f,E,h),r%1);s[o*i+t]=Q}}return s}))}(A,e,t,i,r);default:throw new Error(`Unsupported resampling method: '${a}'`)}}function $A(A,e,t,i,r,a,n="nearest"){switch(n.toLowerCase()){case"nearest":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=XA(A,i,r,a);for(let g=0;g<r;++g){const r=Math.min(Math.round(s*g),t-1);for(let t=0;t<i;++t){const s=Math.min(Math.round(n*t),e-1);for(let n=0;n<a;++n){const l=A[r*e*a+s*a+n];o[g*i*a+t*a+n]=l}}}return o}(A,e,t,i,r,a);case"bilinear":case"linear":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=XA(A,i,r,a);for(let g=0;g<r;++g){const r=s*g,l=Math.floor(r),h=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const s=n*t,I=s%1,B=Math.floor(s),c=Math.min(Math.ceil(s),e-1);for(let n=0;n<a;++n){const s=A[l*e*a+B*a+n],C=A[l*e*a+c*a+n],f=A[h*e*a+B*a+n],E=A[h*e*a+c*a+n],Q=WA(WA(s,C,I),WA(f,E,I),r%1);o[g*i*a+t*a+n]=Q}}}return o}(A,e,t,i,r,a);default:throw new Error(`Unsupported resampling method: '${n}'`)}}function Ae(A,e,t){let i=0;for(let r=e;r<t;++r)i+=A[r];return i}function ee(A,e,t){switch(A){case 1:if(e<=8)return new Uint8Array(t);if(e<=16)return new Uint16Array(t);if(e<=32)return new Uint32Array(t);break;case 2:if(8===e)return new Int8Array(t);if(16===e)return new Int16Array(t);if(32===e)return new Int32Array(t);break;case 3:switch(e){case 16:case 32:return new Float32Array(t);case 64:return new Float64Array(t)}}throw Error("Unsupported data format/bitsPerSample")}ZA([void 0,1],(()=>Promise.resolve().then((function(){return ot})).then((A=>A.default)))),ZA(5,(()=>Promise.resolve().then((function(){return ht})).then((A=>A.default)))),ZA(6,(()=>{throw new Error("old style JPEG compression is not supported.")})),ZA(7,(()=>Promise.resolve().then((function(){return Dt})).then((A=>A.default)))),ZA([8,32946],(()=>Promise.resolve().then((function(){return va})).then((A=>A.default)))),ZA(32773,(()=>Promise.resolve().then((function(){return Ta})).then((A=>A.default)))),ZA(34887,(()=>Promise.resolve().then((function(){return Va})).then((async A=>(await A.zstd.init(),A))).then((A=>A.default)))),ZA(50001,(()=>Promise.resolve().then((function(){return Za})).then((A=>A.default))));var te=class{constructor(A,e,t,i,r,a){this.fileDirectory=A,this.geoKeys=e,this.dataView=t,this.littleEndian=i,this.tiles=r?{}:null,this.isTiled=!A.StripOffsets;const n=A.PlanarConfiguration;if(this.planarConfiguration=void 0===n?1:n,1!==this.planarConfiguration&&2!==this.planarConfiguration)throw new Error("Invalid planar configuration.");this.source=a}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return void 0!==this.fileDirectory.SamplesPerPixel?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:void 0!==this.fileDirectory.RowsPerStrip?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(A){return this.isTiled||(A+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-A*this.getTileHeight()}getBytesPerPixel(){let A=0;for(let e=0;e<this.fileDirectory.BitsPerSample.length;++e)A+=this.getSampleByteSize(e);return A}getSampleByteSize(A){if(A>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[A]/8)}getReaderForSample(A){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1,t=this.fileDirectory.BitsPerSample[A];switch(e){case 1:if(t<=8)return DataView.prototype.getUint8;if(t<=16)return DataView.prototype.getUint16;if(t<=32)return DataView.prototype.getUint32;break;case 2:if(t<=8)return DataView.prototype.getInt8;if(t<=16)return DataView.prototype.getInt16;if(t<=32)return DataView.prototype.getInt32;break;case 3:switch(t){case 16:return function(A,e){return sA(this,A,e)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1}getBitsPerSample(A=0){return this.fileDirectory.BitsPerSample[A]}getArrayForSample(A,e){return ee(this.getSampleFormat(A),this.getBitsPerSample(A),e)}async getTileOrStrip(A,e,t,i,r){const a=Math.ceil(this.getWidth()/this.getTileWidth()),n=Math.ceil(this.getHeight()/this.getTileHeight());let s;const{tiles:o}=this;let g,l;1===this.planarConfiguration?s=e*a+A:2===this.planarConfiguration&&(s=t*a*n+e*a+A),this.isTiled?(g=this.fileDirectory.TileOffsets[s],l=this.fileDirectory.TileByteCounts[s]):(g=this.fileDirectory.StripOffsets[s],l=this.fileDirectory.StripByteCounts[s]);const h=(await this.source.fetch([{offset:g,length:l}],r))[0];let I;return null!==o&&o[s]?I=o[s]:(I=(async()=>{let A=await i.decode(this.fileDirectory,h);const t=this.getSampleFormat(),r=this.getBitsPerSample();return function(A,e){return(1!==A&&2!==A||!(e<=32)||e%8!=0)&&(3!==A||16!==e&&32!==e&&64!==e)}(t,r)&&(A=function(A,e,t,i,r,a,n){const s=new DataView(A),o=2===t?1:i,g=ee(e,r,2===t?n*a:n*a*i),l=parseInt("1".repeat(r),2);if(1===e){let A;A=1===t?i*r:r;let e=a*A;7&e&&(e=e+7&-8);for(let A=0;A<n;++A){const t=A*e;for(let e=0;e<a;++e){const i=t+e*o*r;for(let t=0;t<o;++t){const n=i+t*r,h=(A*a+e)*o+t,I=Math.floor(n/8),B=n%8;if(B+r<=8)g[h]=s.getUint8(I)>>8-r-B&l;else if(B+r<=16)g[h]=s.getUint16(I)>>16-r-B&l;else if(B+r<=24){const A=s.getUint16(I)<<8|s.getUint8(I+2);g[h]=A>>24-r-B&l}else g[h]=s.getUint32(I)>>32-r-B&l}}}}return g.buffer}(A,t,this.planarConfiguration,this.getSamplesPerPixel(),r,this.getTileWidth(),this.getBlockHeight(e))),A})(),null!==o&&(o[s]=I)),{x:A,y:e,sample:t,data:await I}}async _readRaster(A,e,t,i,r,a,n,s,o){const g=this.getTileWidth(),l=this.getTileHeight(),h=this.getWidth(),I=this.getHeight(),B=Math.max(Math.floor(A[0]/g),0),c=Math.min(Math.ceil(A[2]/g),Math.ceil(h/g)),C=Math.max(Math.floor(A[1]/l),0),f=Math.min(Math.ceil(A[3]/l),Math.ceil(I/l)),E=A[2]-A[0];let Q=this.getBytesPerPixel();const d=[],u=[];for(let A=0;A<e.length;++A)1===this.planarConfiguration?d.push(Ae(this.fileDirectory.BitsPerSample,0,e[A])/8):d.push(0),u.push(this.getReaderForSample(e[A]));const w=[],{littleEndian:p}=this;for(let a=C;a<f;++a)for(let n=B;n<c;++n){let s;1===this.planarConfiguration&&(s=this.getTileOrStrip(n,a,0,r,o));for(let B=0;B<e.length;++B){const c=B,C=e[B];2===this.planarConfiguration&&(Q=this.getSampleByteSize(C),s=this.getTileOrStrip(n,a,C,r,o));const f=s.then((r=>{const a=r.data,n=new DataView(a),s=this.getBlockHeight(r.y),o=r.y*l,B=r.x*g,C=o+s,f=(r.x+1)*g,w=u[c],m=Math.min(s,s-(C-A[3]),I-o),y=Math.min(g,g-(f-A[2]),h-B);for(let r=Math.max(0,A[1]-o);r<m;++r)for(let a=Math.max(0,A[0]-B);a<y;++a){const s=(r*g+a)*Q,l=w.call(n,s+d[c],p);let h;i?(h=(r+o-A[1])*E*e.length+(a+B-A[0])*e.length+c,t[h]=l):(h=(r+o-A[1])*E+a+B-A[0],t[c][h]=l)}}));w.push(f)}}if(await Promise.all(w),a&&A[2]-A[0]!==a||n&&A[3]-A[1]!==n){let r;return r=i?$A(t,A[2]-A[0],A[3]-A[1],a,n,e.length,s):jA(t,A[2]-A[0],A[3]-A[1],a,n,s),r.width=a,r.height=n,r}return t.width=a||A[2]-A[0],t.height=n||A[3]-A[1],t}async readRasters({window:A,samples:e=[],interleave:t,pool:i=null,width:r,height:a,resampleMethod:n,fillValue:s,signal:o}={}){const g=A||[0,0,this.getWidth(),this.getHeight()];if(g[0]>g[2]||g[1]>g[3])throw new Error("Invalid subsets");const l=(g[2]-g[0])*(g[3]-g[1]),h=this.getSamplesPerPixel();if(e&&e.length){for(let A=0;A<e.length;++A)if(e[A]>=h)return Promise.reject(new RangeError(`Invalid sample index '${e[A]}'.`))}else for(let A=0;A<h;++A)e.push(A);let I;if(t){I=ee(this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,Math.max.apply(null,this.fileDirectory.BitsPerSample),l*e.length),s&&I.fill(s)}else{I=[];for(let A=0;A<e.length;++A){const t=this.getArrayForSample(e[A],l);Array.isArray(s)&&A<s.length?t.fill(s[A]):s&&!Array.isArray(s)&&t.fill(s),I.push(t)}}const B=i||await async function(A){const e=VA.get(A.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${A.Compression}`);return new(await e())(A)}(this.fileDirectory);return await this._readRaster(g,e,I,t,B,r,a,n,o)}async readRGB({window:A,interleave:e=!0,pool:t=null,width:i,height:r,resampleMethod:a,enableAlpha:n=!1,signal:s}={}){const o=A||[0,0,this.getWidth(),this.getHeight()];if(o[0]>o[2]||o[1]>o[3])throw new Error("Invalid subsets");const g=this.fileDirectory.PhotometricInterpretation;if(g===vA){let o=[0,1,2];if(this.fileDirectory.ExtraSamples!==JA&&n){o=[];for(let A=0;A<this.fileDirectory.BitsPerSample.length;A+=1)o.push(A)}return this.readRasters({window:A,interleave:e,samples:o,pool:t,width:i,height:r,resampleMethod:a,signal:s})}let l;switch(g){case MA:case LA:case NA:l=[0];break;case TA:l=[0,1,2,3];break;case qA:case OA:l=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const h={window:o,interleave:!0,samples:l,pool:t,width:i,height:r,resampleMethod:a,signal:s},{fileDirectory:I}=this,B=await this.readRasters(h),c=2**this.fileDirectory.BitsPerSample[0];let C;switch(g){case MA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=256-A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case LA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case NA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3),a=e.length/3,n=e.length/3*2;for(let t=0,i=0;t<A.length;++t,i+=3){const s=A[t];r[i]=e[s]/65536*256,r[i+1]=e[s+a]/65536*256,r[i+2]=e[s+n]/65536*256}return r}(B,I.ColorMap);break;case TA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=4,t+=3){const r=A[e],a=A[e+1],n=A[e+2],s=A[e+3];i[t]=(255-r)/256*255*((255-s)/256),i[t+1]=(255-a)/256*255*((255-s)/256),i[t+2]=(255-n)/256*255*((255-s)/256)}return i}(B);break;case qA:C=function(A){const{width:e,height:t}=A,i=new Uint8ClampedArray(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){const r=A[e],a=A[e+1],n=A[e+2];i[t]=r+1.402*(n-128),i[t+1]=r-.34414*(a-128)-.71414*(n-128),i[t+2]=r+1.772*(a-128)}return i}(B);break;case OA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){let r,a,n,s=(A[e+0]+16)/116,o=(A[e+1]<<24>>24)/500+s,g=s-(A[e+2]<<24>>24)/200;o=.95047*(o*o*o>.008856?o*o*o:(o-16/116)/7.787),s=1*(s*s*s>.008856?s*s*s:(s-16/116)/7.787),g=1.08883*(g*g*g>.008856?g*g*g:(g-16/116)/7.787),r=3.2406*o+-1.5372*s+-.4986*g,a=-.9689*o+1.8758*s+.0415*g,n=.0557*o+-.204*s+1.057*g,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,i[t]=255*Math.max(0,Math.min(1,r)),i[t+1]=255*Math.max(0,Math.min(1,a)),i[t+2]=255*Math.max(0,Math.min(1,n))}return i}(B);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){const A=new Uint8Array(C.length/3),e=new Uint8Array(C.length/3),t=new Uint8Array(C.length/3);for(let i=0,r=0;i<C.length;i+=3,++r)A[r]=C[i],e[r]=C[i+1],t[r]=C[i+2];C=[A,e,t]}return C.width=B.width,C.height=B.height,C}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const A=[];for(let e=0;e<this.fileDirectory.ModelTiepoint.length;e+=6)A.push({i:this.fileDirectory.ModelTiepoint[e],j:this.fileDirectory.ModelTiepoint[e+1],k:this.fileDirectory.ModelTiepoint[e+2],x:this.fileDirectory.ModelTiepoint[e+3],y:this.fileDirectory.ModelTiepoint[e+4],z:this.fileDirectory.ModelTiepoint[e+5]});return A}getGDALMetadata(A=null){const e={};if(!this.fileDirectory.GDAL_METADATA)return null;const t=this.fileDirectory.GDAL_METADATA;let i=SA(t,"Item");i=null===A?i.filter((A=>void 0===hA(A,"sample"))):i.filter((e=>Number(hA(e,"sample"))===A));for(let A=0;A<i.length;++A){const t=i[A];e[hA(t,"name")]=t.inner}return e}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const A=this.fileDirectory.GDAL_NODATA;return Number(A.substring(0,A.length-1))}getOrigin(){const A=this.fileDirectory.ModelTiepoint,e=this.fileDirectory.ModelTransformation;if(A&&6===A.length)return[A[3],A[4],A[5]];if(e)return[e[3],e[7],e[11]];throw new Error("The image does not have an affine transformation.")}getResolution(A=null){const e=this.fileDirectory.ModelPixelScale,t=this.fileDirectory.ModelTransformation;if(e)return[e[0],-e[1],e[2]];if(t)return 0===t[1]&&0===t[4]?[t[0],-t[5],t[10]]:[Math.sqrt(t[0]*t[0]+t[4]*t[4]),-Math.sqrt(t[1]*t[1]+t[5]*t[5]),t[10]];if(A){const[e,t,i]=A.getResolution();return[e*A.getWidth()/this.getWidth(),t*A.getHeight()/this.getHeight(),i*A.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return 1===this.geoKeys.GTRasterTypeGeoKey}getBoundingBox(A=!1){const e=this.getHeight(),t=this.getWidth();if(this.fileDirectory.ModelTransformation&&!A){const[A,i,r,a,n,s,o,g]=this.fileDirectory.ModelTransformation,l=[[0,0],[0,e],[t,0],[t,e]].map((([e,t])=>[a+A*e+i*t,g+n*e+s*t])),h=l.map((A=>A[0])),I=l.map((A=>A[1]));return[Math.min(...h),Math.min(...I),Math.max(...h),Math.max(...I)]}{const A=this.getOrigin(),i=this.getResolution(),r=A[0],a=A[1],n=r+i[0]*t,s=a+i[1]*e;return[Math.min(r,n),Math.min(a,s),Math.max(r,n),Math.max(a,s)]}}};class ie{constructor(A){this._dataView=new DataView(A)}get buffer(){return this._dataView.buffer}getUint64(A,e){const t=this.getUint32(A,e),i=this.getUint32(A+4,e);let r;if(e){if(r=t+2**32*i,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*t+i,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}getInt64(A,e){let t=0;const i=(128&this._dataView.getUint8(A+(e?7:0)))>0;let r=!0;for(let a=0;a<8;a++){let n=this._dataView.getUint8(A+(e?a:7-a));i&&(r?0!==n&&(n=255&~(n-1),r=!1):n=255&~n),t+=n*256**a}return i&&(t=-t),t}getUint8(A,e){return this._dataView.getUint8(A,e)}getInt8(A,e){return this._dataView.getInt8(A,e)}getUint16(A,e){return this._dataView.getUint16(A,e)}getInt16(A,e){return this._dataView.getInt16(A,e)}getUint32(A,e){return this._dataView.getUint32(A,e)}getInt32(A,e){return this._dataView.getInt32(A,e)}getFloat16(A,e){return sA(this._dataView,A,e)}getFloat32(A,e){return this._dataView.getFloat32(A,e)}getFloat64(A,e){return this._dataView.getFloat64(A,e)}}class re{constructor(A,e,t,i){this._dataView=new DataView(A),this._sliceOffset=e,this._littleEndian=t,this._bigTiff=i}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(A,e){return this.sliceOffset<=A&&this.sliceTop>=A+e}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset,this._littleEndian)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset,this._littleEndian)}readUint16(A){return this._dataView.getUint16(A-this._sliceOffset,this._littleEndian)}readInt16(A){return this._dataView.getInt16(A-this._sliceOffset,this._littleEndian)}readUint32(A){return this._dataView.getUint32(A-this._sliceOffset,this._littleEndian)}readInt32(A){return this._dataView.getInt32(A-this._sliceOffset,this._littleEndian)}readFloat32(A){return this._dataView.getFloat32(A-this._sliceOffset,this._littleEndian)}readFloat64(A){return this._dataView.getFloat64(A-this._sliceOffset,this._littleEndian)}readUint64(A){const e=this.readUint32(A),t=this.readUint32(A+4);let i;if(this._littleEndian){if(i=e+2**32*t,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*e+t,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}readInt64(A){let e=0;const t=(128&this._dataView.getUint8(A+(this._littleEndian?7:0)))>0;let i=!0;for(let r=0;r<8;r++){let a=this._dataView.getUint8(A+(this._littleEndian?r:7-r));t&&(i?0!==a&&(a=255&~(a-1),i=!1):a=255&~a),e+=a*256**r}return t&&(e=-e),e}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const ae="\r\n\r\n";function ne(A){if(void 0!==Object.fromEntries)return Object.fromEntries(A);const e={};for(const[t,i]of A)e[t.toLowerCase()]=i;return e}function se(A){return ne(A.split("\r\n").map((A=>{const e=A.split(":").map((A=>A.trim()));return e[0]=e[0].toLowerCase(),e})))}function oe(A){let e,t,i;return A&&([,e,t,i]=A.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),i=parseInt(i,10)),{start:e,end:t,total:i}}class ge{async fetch(A,e=void 0){return Promise.all(A.map((A=>this.fetchSlice(A,e))))}async fetchSlice(A){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class le extends Map{constructor(A={}){if(super(),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=A.maxSize,this.maxAge=A.maxAge||Number.POSITIVE_INFINITY,this.onEviction=A.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(A){if("function"==typeof this.onEviction)for(const[e,t]of A)this.onEviction(e,t.value)}_deleteIfExpired(A,e){return"number"==typeof e.expiry&&e.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(A,e.value),this.delete(A))}_getOrDeleteIfExpired(A,e){if(!1===this._deleteIfExpired(A,e))return e.value}_getItemValue(A,e){return e.expiry?this._getOrDeleteIfExpired(A,e):e.value}_peek(A,e){const t=e.get(A);return this._getItemValue(A,t)}_set(A,e){this.cache.set(A,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,e){this.oldCache.delete(A),this._set(A,e)}*_entriesAscending(){for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield A)}}for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield A)}}get(A){if(this.cache.has(A)){const e=this.cache.get(A);return this._getItemValue(A,e)}if(this.oldCache.has(A)){const e=this.oldCache.get(A);if(!1===this._deleteIfExpired(A,e))return this._moveToRecent(A,e),e.value}}set(A,e,{maxAge:t=this.maxAge}={}){const i="number"==typeof t&&t!==Number.POSITIVE_INFINITY?Date.now()+t:void 0;return this.cache.has(A)?this.cache.set(A,{value:e,expiry:i}):this._set(A,{value:e,expiry:i}),this}has(A){return this.cache.has(A)?!this._deleteIfExpired(A,this.cache.get(A)):!!this.oldCache.has(A)&&!this._deleteIfExpired(A,this.oldCache.get(A))}peek(A){return this.cache.has(A)?this._peek(A,this.cache):this.oldCache.has(A)?this._peek(A,this.oldCache):void 0}delete(A){const e=this.cache.delete(A);return e&&this._size--,this.oldCache.delete(A)||e}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const e=[...this._entriesAscending()],t=e.length-A;t<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(t>0&&this._emitEvictions(e.slice(0,t)),this.oldCache=new Map(e.slice(t)),this.cache=new Map,this._size=0),this.maxSize=A}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[Symbol.iterator](){for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}}}*entriesDescending(){let A=[...this.cache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}A=[...this.oldCache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;if(!this.cache.has(i)){!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}}}*entriesAscending(){for(const[A,e]of this._entriesAscending())yield[A,e.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const e of this.oldCache.keys())this.cache.has(e)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,e=this){for(const[t,i]of this.entriesAscending())A.call(e,i,t,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class he extends Error{constructor(A){super(A),Error.captureStackTrace&&Error.captureStackTrace(this,he),this.name="AbortError"}}class Ie extends Error{constructor(A,e){super(e),this.errors=A,this.message=e,this.name="AggregateError"}}const Be=Ie;class ce{constructor(A,e,t=null){this.offset=A,this.length=e,this.data=t}get top(){return this.offset+this.length}}class Ce{constructor(A,e,t){this.offset=A,this.length=e,this.blockIds=t}}class fe extends ge{constructor(A,{blockSize:e=65536,cacheSize:t=100}={}){super(),this.source=A,this.blockSize=e,this.blockCache=new le({maxSize:t,onEviction:(A,e)=>{this.evictedBlocks.set(A,e)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(A,e){const t=[],i=[],r=[];this.evictedBlocks.clear();for(const{offset:e,length:a}of A){let A=e+a;const{fileSize:n}=this;null!==n&&(A=Math.min(A,n));for(let a=Math.floor(e/this.blockSize)*this.blockSize;a<A;a+=this.blockSize){const A=Math.floor(a/this.blockSize);this.blockCache.has(A)||this.blockRequests.has(A)||(this.blockIdsToFetch.add(A),i.push(A)),this.blockRequests.has(A)&&t.push(this.blockRequests.get(A)),r.push(A)}}await async function(A){return new Promise((e=>setTimeout(e,A)))}(),this.fetchBlocks(e);const a=[];for(const A of i)this.blockRequests.has(A)&&a.push(this.blockRequests.get(A));await Promise.allSettled(t),await Promise.allSettled(a);const n=[],s=r.filter((A=>this.abortedBlockIds.has(A)||!this.blockCache.has(A)));if(s.forEach((A=>this.blockIdsToFetch.add(A))),s.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(const A of s){const e=this.blockRequests.get(A);if(!e)throw new Error(`Block ${A} is not in the block requests`);n.push(e)}await Promise.allSettled(n)}if(e&&e.aborted)throw new he("Request was aborted");const o=r.map((A=>this.blockCache.get(A)||this.evictedBlocks.get(A))),g=o.filter((A=>!A));if(g.length)throw new Be(g,"Request failed");const l=new Map(function(A,e){const t=Array.isArray(A)?A:Array.from(A),i=Array.isArray(e)?e:Array.from(e);return t.map(((A,e)=>[A,i[e]]))}(r,o));return this.readSliceData(A,l)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const e=this.groupBlocks(this.blockIdsToFetch),t=this.source.fetch(e,A);for(let i=0;i<e.length;++i){const r=e[i];for(const e of r.blockIds)this.blockRequests.set(e,(async()=>{try{const A=(await t)[i],r=e*this.blockSize,a=r-A.offset,n=Math.min(a+this.blockSize,A.data.byteLength),s=A.data.slice(a,n),o=new ce(r,s.byteLength,s,e);this.blockCache.set(e,o),this.abortedBlockIds.delete(e)}catch(t){if("AbortError"!==t.name)throw t;t.signal=A,this.blockCache.delete(e),this.abortedBlockIds.add(e)}finally{this.blockRequests.delete(e)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const e=Array.from(A).sort(((A,e)=>A-e));if(0===e.length)return[];let t=[],i=null;const r=[];for(const A of e)null===i||i+1===A?(t.push(A),i=A):(r.push(new Ce(t[0]*this.blockSize,t.length*this.blockSize,t)),t=[A],i=A);return r.push(new Ce(t[0]*this.blockSize,t.length*this.blockSize,t)),r}readSliceData(A,e){return A.map((A=>{let t=A.offset+A.length;null!==this.fileSize&&(t=Math.min(this.fileSize,t));const i=Math.floor(A.offset/this.blockSize),r=Math.floor(t/this.blockSize),a=new ArrayBuffer(A.length),n=new Uint8Array(a);for(let a=i;a<=r;++a){const i=e.get(a),r=i.offset-A.offset;let s,o=0,g=0;r<0?o=-r:r>0&&(g=r),s=i.top-t<0?i.length-o:t-i.offset-o;const l=new Uint8Array(i.data,o,s);n.set(l,g)}return a}))}}class Ee{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(A){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class Qe{constructor(A){this.url=A}async request({headers:A,signal:e}={}){throw new Error("request is not implemented")}}class de extends Ee{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class ue extends Qe{constructor(A,e){super(A),this.credentials=e}async request({headers:A,signal:e}={}){const t=await fetch(this.url,{headers:A,credentials:this.credentials,signal:e});return new de(t)}}class we extends Ee{constructor(A,e){super(),this.xhr=A,this.data=e}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)}async getData(){return this.data}}class pe extends Qe{constructRequest(A,e){return new Promise(((t,i)=>{const r=new XMLHttpRequest;r.open("GET",this.url),r.responseType="arraybuffer";for(const[e,t]of Object.entries(A))r.setRequestHeader(e,t);r.onload=()=>{const A=r.response;t(new we(r,A))},r.onerror=i,r.onabort=()=>i(new he("Request aborted")),r.send(),e&&(e.aborted&&r.abort(),e.addEventListener("abort",(()=>r.abort())))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}var me={};class ye extends Ee{constructor(A,e){super(),this.response=A,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(A){return this.response.headers[A]}async getData(){return await this.dataPromise}}class De extends Qe{constructor(A){super(A),this.parsedUrl=me.parse(this.url),this.httpApi=(this.parsedUrl.protocol,me)}constructRequest(A,e){return new Promise(((t,i)=>{const r=this.httpApi.get({...this.parsedUrl,headers:A},(A=>{const e=new Promise((e=>{const t=[];A.on("data",(A=>{t.push(A)})),A.on("end",(()=>{const A=Buffer.concat(t).buffer;e(A)})),A.on("error",i)}));t(new ye(A,e))}));r.on("error",i),e&&(e.aborted&&r.destroy(new he("Request aborted")),e.addEventListener("abort",(()=>r.destroy(new he("Request aborted")))))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}class ke extends ge{constructor(A,e,t,i){super(),this.client=A,this.headers=e,this.maxRanges=t,this.allowFullFile=i,this._fileSize=null}async fetch(A,e){return this.maxRanges>=A.length?this.fetchSlices(A,e):(this.maxRanges>0&&A.length,Promise.all(A.map((A=>this.fetchSlice(A,e)))))}async fetchSlices(A,e){const t=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map((({offset:A,length:e})=>`${A}-${A+e}`)).join(",")}`},signal:e});if(t.ok){if(206===t.status){const{type:i,params:r}=function(A){const[e,...t]=A.split(";").map((A=>A.trim()));return{type:e,params:ne(t.map((A=>A.split("="))))}}(t.getHeader("content-type"));if("multipart/byteranges"===i){const A=function(A,e){let t=null;const i=new TextDecoder("ascii"),r=[],a=`--${e}`,n=`${a}--`;for(let e=0;e<10;++e)i.decode(new Uint8Array(A,e,a.length))===a&&(t=e);if(null===t)throw new Error("Could not find initial boundary");for(;t<A.byteLength;){const e=i.decode(new Uint8Array(A,t,Math.min(a.length+1024,A.byteLength-t)));if(0===e.length||e.startsWith(n))break;if(!e.startsWith(a))throw new Error("Part does not start with boundary");const s=e.substr(a.length+2);if(0===s.length)break;const o=s.indexOf(ae),g=se(s.substr(0,o)),{start:l,end:h,total:I}=oe(g["content-range"]),B=t+a.length+o+4,c=parseInt(h,10)+1-parseInt(l,10);r.push({headers:g,data:A.slice(B,B+c),offset:l,length:c,fileSize:I}),t=B+c+4}return r}(await t.getData(),r.boundary);return this._fileSize=A[0].fileSize||null,A}const a=await t.getData(),{start:n,end:s,total:o}=oe(t.getHeader("content-range"));this._fileSize=o||null;const g=[{data:a,offset:n,length:s-n}];if(A.length>1){const t=await Promise.all(A.slice(1).map((A=>this.fetchSlice(A,e))));return g.concat(t)}return g}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await t.getData();return this._fileSize=A.byteLength,[{data:A,offset:0,length:A.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(A,e){const{offset:t,length:i}=A,r=await this.client.request({headers:{...this.headers,Range:`bytes=${t}-${t+i}`},signal:e});if(r.ok){if(206===r.status){const A=await r.getData(),{total:e}=oe(r.getHeader("content-range"));return this._fileSize=e||null,{data:A,offset:t,length:i}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await r.getData();return this._fileSize=A.byteLength,{data:A,offset:0,length:A.byteLength}}}throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function be(A,{blockSize:e,cacheSize:t}){return null===e?A:new fe(A,{blockSize:e,cacheSize:t})}function _e(A,{forceXHR:e=!1,...t}={}){return"function"!=typeof fetch||e?"undefined"!=typeof XMLHttpRequest?function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new pe(A);return be(new ke(a,e,t,i),r)}(A,t):function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new De(A);return be(new ke(a,e,t,i),r)}(A,t):function(A,{headers:e={},credentials:t,maxRanges:i=0,allowFullFile:r=!1,...a}={}){const n=new ue(A,t);return be(new ke(n,e,i,r),a)}(A,t)}class Se extends ge{constructor(A){super(),this.arrayBuffer=A}fetchSlice(A,e){if(e&&e.aborted)throw new he("Request aborted");return this.arrayBuffer.slice(A.offset,A.offset+A.length)}}function xe(A,e){let t=A.length-e,i=0;do{for(let t=e;t>0;t--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function Fe(A,e,t){let i=0,r=A.length;const a=r/t;for(;r>e;){for(let t=e;t>0;--t)A[i+e]+=A[i],++i;r-=e}const n=A.slice();for(let e=0;e<a;++e)for(let i=0;i<t;++i)A[t*e+i]=n[(t-i-1)*a+e]}class Ge{async decode(A,e){const t=await this.decodeBlock(e),i=A.Predictor||1;if(1!==i){const e=!A.StripOffsets;return function(A,e,t,i,r,a){if(!e||1===e)return A;for(let A=0;A<r.length;++A){if(r[A]%8!=0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(r[A]!==r[0])throw new Error("When decoding with predictor, all samples must have the same size.")}const n=r[0]/8,s=2===a?1:r.length;for(let a=0;a<i&&!(a*s*t*n>=A.byteLength);++a){let i;if(2===e){switch(r[0]){case 8:i=new Uint8Array(A,a*s*t*n,s*t*n);break;case 16:i=new Uint16Array(A,a*s*t*n,s*t*n/2);break;case 32:i=new Uint32Array(A,a*s*t*n,s*t*n/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}xe(i,s)}else 3===e&&(i=new Uint8Array(A,a*s*t*n,s*t*n),Fe(i,s,n))}return A}(t,i,e?A.TileWidth:A.ImageWidth,e?A.TileLength:A.RowsPerStrip||A.ImageLength,A.BitsPerSample,A.PlanarConfiguration)}return t}}function Ue(A){switch(A){case RA.BYTE:case RA.ASCII:case RA.SBYTE:case RA.UNDEFINED:return 1;case RA.SHORT:case RA.SSHORT:return 2;case RA.LONG:case RA.SLONG:case RA.FLOAT:case RA.IFD:return 4;case RA.RATIONAL:case RA.SRATIONAL:case RA.DOUBLE:case RA.LONG8:case RA.SLONG8:case RA.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${A}`)}}function Re(A,e,t,i){let r=null,a=null;const n=Ue(e);switch(e){case RA.BYTE:case RA.ASCII:case RA.UNDEFINED:r=new Uint8Array(t),a=A.readUint8;break;case RA.SBYTE:r=new Int8Array(t),a=A.readInt8;break;case RA.SHORT:r=new Uint16Array(t),a=A.readUint16;break;case RA.SSHORT:r=new Int16Array(t),a=A.readInt16;break;case RA.LONG:case RA.IFD:r=new Uint32Array(t),a=A.readUint32;break;case RA.SLONG:r=new Int32Array(t),a=A.readInt32;break;case RA.LONG8:case RA.IFD8:r=new Array(t),a=A.readUint64;break;case RA.SLONG8:r=new Array(t),a=A.readInt64;break;case RA.RATIONAL:r=new Uint32Array(2*t),a=A.readUint32;break;case RA.SRATIONAL:r=new Int32Array(2*t),a=A.readInt32;break;case RA.FLOAT:r=new Float32Array(t),a=A.readFloat32;break;case RA.DOUBLE:r=new Float64Array(t),a=A.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e!==RA.RATIONAL&&e!==RA.SRATIONAL)for(let e=0;e<t;++e)r[e]=a.call(A,i+e*n);else for(let e=0;e<t;e+=2)r[e]=a.call(A,i+e*n),r[e+1]=a.call(A,i+(e*n+4));return e===RA.ASCII?new TextDecoder("utf-8").decode(r):r}class Me{constructor(A,e,t){this.fileDirectory=A,this.geoKeyDirectory=e,this.nextIFDByteOffset=t}}class Le extends Error{constructor(A){super(`No image at index ${A}`),this.index=A}}class ve{async readRasters(A={}){const{window:e,width:t,height:i}=A;let{resX:r,resY:a,bbox:n}=A;const s=await this.getImage();let o=s;const g=await this.getImageCount(),l=s.getBoundingBox();if(e&&n)throw new Error('Both "bbox" and "window" passed.');if(t||i){if(e){const[A,t]=s.getOrigin(),[i,r]=s.getResolution();n=[A+e[0]*i,t+e[1]*r,A+e[2]*i,t+e[3]*r]}const A=n||l;if(t){if(r)throw new Error("Both width and resX passed");r=(A[2]-A[0])/t}if(i){if(a)throw new Error("Both width and resY passed");a=(A[3]-A[1])/i}}if(r||a){const A=[];for(let e=0;e<g;++e){const t=await this.getImage(e),{SubfileType:i,NewSubfileType:r}=t.fileDirectory;(0===e||2===i||1&r)&&A.push(t)}A.sort(((A,e)=>A.getWidth()-e.getWidth()));for(let e=0;e<A.length;++e){const t=A[e],i=(l[2]-l[0])/t.getWidth(),n=(l[3]-l[1])/t.getHeight();if(o=t,r&&r>i||a&&a>n)break}}let h=e;if(n){const[A,e]=s.getOrigin(),[t,i]=o.getResolution(s);h=[Math.round((n[0]-A)/t),Math.round((n[1]-e)/i),Math.round((n[2]-A)/t),Math.round((n[3]-e)/i)],h=[Math.min(h[0],h[2]),Math.min(h[1],h[3]),Math.max(h[0],h[2]),Math.max(h[1],h[3])]}return o.readRasters({...A,window:h})}}class Ne extends ve{constructor(A,e,t,i,r={}){super(),this.source=A,this.littleEndian=e,this.bigTiff=t,this.firstIFDOffset=i,this.cache=r.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,e){const t=this.bigTiff?4048:1024;return new re((await this.source.fetch([{offset:A,length:void 0!==e?e:t}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const e=this.bigTiff?20:12,t=this.bigTiff?8:2;let i=await this.getSlice(A);const r=this.bigTiff?i.readUint64(A):i.readUint16(A),a=r*e+(this.bigTiff?16:6);i.covers(A,a)||(i=await this.getSlice(A,a));const n={};let s=A+(this.bigTiff?8:2);for(let A=0;A<r;s+=e,++A){const A=i.readUint16(s),e=i.readUint16(s+2),t=this.bigTiff?i.readUint64(s+4):i.readUint32(s+4);let r,a;const o=Ue(e),g=s+(this.bigTiff?12:8);if(o*t<=(this.bigTiff?8:4))r=Re(i,e,t,g);else{const A=i.readOffset(g),a=Ue(e)*t;if(i.covers(A,a))r=Re(i,e,t,A);else{r=Re(await this.getSlice(A,a),e,t,A)}}a=1===t&&-1===GA.indexOf(A)&&e!==RA.RATIONAL&&e!==RA.SRATIONAL?r[0]:r,n[xA[A]]=a}const o=function(A){const e=A.GeoKeyDirectory;if(!e)return null;const t={};for(let i=4;i<=4*e[3];i+=4){const r=KA[e[i]],a=e[i+1]?xA[e[i+1]]:null,n=e[i+2],s=e[i+3];let o=null;if(a){if(o=A[a],null==o)throw new Error(`Could not get value of geoKey '${r}'.`);"string"==typeof o?o=o.substring(s,s+n-1):o.subarray&&(o=o.subarray(s,s+n),1===n&&(o=o[0]))}else o=s;t[r]=o}return t}(n),g=i.readOffset(A+t+e*r);return new Me(n,o,g)}async requestIFD(A){if(this.ifdRequests[A])return this.ifdRequests[A];if(0===A)return this.ifdRequests[A]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[A];if(!this.ifdRequests[A-1])try{this.ifdRequests[A-1]=this.requestIFD(A-1)}catch(e){if(e instanceof Le)throw new Le(A);throw e}return this.ifdRequests[A]=(async()=>{const e=await this.ifdRequests[A-1];if(0===e.nextIFDByteOffset)throw new Le(A);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){const e=await this.requestIFD(A);return new te(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,e=!0;for(;e;)try{await this.requestIFD(A),++A}catch(A){if(!(A instanceof Le))throw A;e=!1}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e="GDAL_STRUCTURAL_METADATA_SIZE=";let t=await this.getSlice(A,130);if(e===Re(t,RA.ASCII,30,A)){const e=Re(t,RA.ASCII,130,A).split("\n")[0],i=Number(e.split("=")[1].split(" ")[0])+e.length;i>130&&(t=await this.getSlice(A,i));const r=Re(t,RA.ASCII,i,A);this.ghostValues={},r.split("\n").filter((A=>A.length>0)).map((A=>A.split("="))).forEach((([A,e])=>{this.ghostValues[A]=e}))}return this.ghostValues}static async fromSource(A,e,t){const i=(await A.fetch([{offset:0,length:1024}],t))[0],r=new ie(i),a=r.getUint16(0,0);let n;if(18761===a)n=!0;else{if(19789!==a)throw new TypeError("Invalid byte order value.");n=!1}const s=r.getUint16(2,n);let o;if(42===s)o=!1;else{if(43!==s)throw new TypeError("Invalid magic number.");o=!0;if(8!==r.getUint16(4,n))throw new Error("Unsupported offset byte-size.")}const g=o?r.getUint64(8,n):r.getUint32(4,n);return new Ne(A,n,o,g,e)}close(){return"function"==typeof this.source.close&&this.source.close()}}async function Te(A,e){return Ne.fromSource(function(A){return new Se(A)}(A),e)}const qe=Math.PI,Oe=qe/4,Je=180/qe;class He{constructor(A=257){this.gridSize=A;const e=A-1;if(e&e-1)throw new Error(`Expected grid size to be 2^n+1, got ${A}.`);this.numTriangles=e*e*2-2,this.numParentTriangles=this.numTriangles-e*e,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(4*this.numTriangles);for(let A=0;A<this.numTriangles;A++){let t=A+2,i=0,r=0,a=0,n=0,s=0,o=0;for(1&t?a=n=s=e:i=r=o=e;(t>>=1)>1;){const A=i+a>>1,e=r+n>>1;1&t?(a=i,n=r,i=s,r=o):(i=a,r=n,a=s,n=o),s=A,o=e}const g=4*A;this.coords[g+0]=i,this.coords[g+1]=r,this.coords[g+2]=a,this.coords[g+3]=n}}createTile(A){return new Ye(A,this)}}class Ye{constructor(A,e){const t=e.gridSize;if(A.length!==t*t)throw new Error(`Expected terrain data of length ${t*t} (${t} x ${t}), got ${A.length}.`);this.terrain=A,this.martini=e,this.errors=new Float32Array(A.length),this.update()}update(){const{numTriangles:A,numParentTriangles:e,coords:t,gridSize:i}=this.martini,{terrain:r,errors:a}=this;for(let n=A-1;n>=0;n--){const A=4*n,s=t[A+0],o=t[A+1],g=t[A+2],l=t[A+3],h=s+g>>1,I=o+l>>1,B=h+I-o,c=I+s-h,C=(r[o*i+s]+r[l*i+g])/2,f=I*i+h,E=Math.abs(C-r[f]);if(a[f]=Math.max(a[f],E),n<e){const A=(o+c>>1)*i+(s+B>>1),e=(l+c>>1)*i+(g+B>>1);a[f]=Math.max(a[f],a[A],a[e])}}}getMesh(A=0){const{gridSize:e,indices:t}=this.martini,{errors:i}=this;let r=0,a=0;const n=e-1;function s(n,o,g,l,h,I){const B=n+g>>1,c=o+l>>1;Math.abs(n-h)+Math.abs(o-I)>1&&i[c*e+B]>A?(s(h,I,n,o,B,c),s(g,l,h,I,B,c)):(t[o*e+n]=t[o*e+n]||++r,t[l*e+g]=t[l*e+g]||++r,t[I*e+h]=t[I*e+h]||++r,a++)}t.fill(0),s(0,0,n,n,n,0),s(n,n,0,0,0,n);const o=new Uint16Array(2*r),g=new Uint32Array(3*a);let l=0;function h(r,a,n,s,I,B){const c=r+n>>1,C=a+s>>1;if(Math.abs(r-I)+Math.abs(a-B)>1&&i[C*e+c]>A)h(I,B,r,a,c,C),h(n,s,I,B,c,C);else{const A=t[a*e+r]-1,i=t[s*e+n]-1,h=t[B*e+I]-1;o[2*A]=r,o[2*A+1]=a,o[2*i]=n,o[2*i+1]=s,o[2*h]=I,o[2*h+1]=B,g[l++]=A,g[l++]=i,g[l++]=h}}return h(0,0,n,n,n,0),h(n,n,0,0,0,n),{vertices:o,triangles:g}}}function ze(A,e,t,i){const r=i?function(A,e){A.westIndices.sort(((A,t)=>e[3*A+1]-e[3*t+1])),A.eastIndices.sort(((A,t)=>e[3*t+1]-e[3*A+1])),A.southIndices.sort(((A,t)=>e[3*t]-e[3*A])),A.northIndices.sort(((A,t)=>e[3*A]-e[3*t]));const t=[];for(const e in A){const i=A[e];for(let A=0;A<i.length-1;A++)t.push([i[A],i[A+1]])}return t}(i,A.POSITION.value):function(A){var e,t;const i=[];for(let e=0;e<A.length;e+=3)i.push([A[e],A[e+1]]),i.push([A[e+1],A[e+2]]),i.push([A[e+2],A[e]]);i.sort(((A,e)=>Math.min(...A)-Math.min(...e)||Math.max(...A)-Math.max(...e)));const r=[];let a=0;for(;a<i.length;)i[a][0]===(null===(e=i[a+1])||void 0===e?void 0:e[1])&&i[a][1]===(null===(t=i[a+1])||void 0===t?void 0:t[0])?a+=2:(r.push(i[a]),a++);return r}(e),a=new A.POSITION.value.constructor(6*r.length),s=new A.TEXCOORD_0.value.constructor(4*r.length),o=new e.constructor(6*r.length);for(let e=0;e<r.length;e++){Pe({edge:r[e],edgeIndex:e,attributes:A,skirtHeight:t,newPosition:a,newTexcoord0:s,newTriangles:o})}A.POSITION.value=n.concatenateTypedArrays(A.POSITION.value,a),A.TEXCOORD_0.value=n.concatenateTypedArrays(A.TEXCOORD_0.value,s);return{attributes:A,triangles:e instanceof Array?e.concat(o):n.concatenateTypedArrays(e,o)}}function Pe({edge:A,edgeIndex:e,attributes:t,skirtHeight:i,newPosition:r,newTexcoord0:a,newTriangles:n}){const s=t.POSITION.value.length,o=2*e,g=2*e+1;r.set(t.POSITION.value.subarray(3*A[0],3*A[0]+3),3*o),r[3*o+2]=r[3*o+2]-i,r.set(t.POSITION.value.subarray(3*A[1],3*A[1]+3),3*g),r[3*g+2]=r[3*g+2]-i,a.set(t.TEXCOORD_0.value.subarray(2*A[0],2*A[0]+2),2*o),a.set(t.TEXCOORD_0.value.subarray(2*A[1],2*A[1]+2),2*g);const l=2*e*3;n[l]=A[0],n[l+1]=s/3+g,n[l+2]=A[1],n[l+3]=s/3+g,n[l+4]=A[0],n[l+5]=s/3+o}const Ke={type:"image",format:"uint8",useHeatMap:!0,useColorsBasedOnValues:!1,useAutoRange:!1,useDataForOpacity:!1,useSingleColor:!1,useColorClasses:!1,blurredTexture:!0,clipLow:null,clipHigh:null,multiplier:1,color:[255,0,255,255],colorScale:r.brewer.YlOrRd,colorScaleValueRange:[0,255],colorsBasedOnValues:null,colorClasses:null,alpha:100,useChannel:null,useChannelIndex:null,noDataValue:void 0,numOfChannels:void 0,nullColor:[0,0,0,0],unidentifiedColor:[0,0,0,0],clippedColor:[0,0,0,0],terrainColor:[133,133,133,255],terrainSkirtHeight:100,terrainMinValue:0,planarConfig:void 0};class Ve{constructor(){this.scale=(A,e,t,i,r)=>(A-e)*(r-i)/(t-e)+i}setUrl(A){return o(this,void 0,void 0,(function*(){const e=yield fetch(A),t=yield e.arrayBuffer(),i=yield Te(t),r=yield i.getImage(0);this.data=r}))}getMap(A,e,t){return o(this,void 0,void 0,(function*(){const i=Object.assign(Object.assign({},Ke),e);switch(i.type){case"image":return this.getBitmap(A,i);case"terrain":return this.getHeightmap(A,i,t);default:return null}}))}getHeightmap(A,e,t){return o(this,void 0,void 0,(function*(){var i;let r,n,s=[];"string"==typeof A?(yield this.setUrl(A),s=yield this.data.readRasters(),r=this.data.getWidth(),n=this.data.getHeight()):(s=A.rasters,r=A.width,n=A.height);const o=Object.assign({},e);let g=s[0];null!==(i=o.useChannelIndex)&&void 0!==i||(o.useChannelIndex=null==o.useChannel?null:o.useChannel-1),null!=e.useChannelIndex&&s[o.useChannelIndex]&&(g=s[o.useChannelIndex]);const l=new Float32Array((r+1)*(n+1)),h=g.length/(r*n);let I=null===e.useChannelIndex?0:e.useChannelIndex;for(let A=0,t=0;t<n;t++)for(let i=0;i<r;i++,A++){const i=e.noDataValue&&g[I]===e.noDataValue?e.terrainMinValue:g[I]*e.multiplier;l[A+t]=i,I+=h}for(let A=(r+1)*r,e=0;e<r;e++,A++)l[A]=l[A-r-1];for(let A=n,e=0;e<n+1;e++,A+=n+1)l[A]=l[A-1];const{terrainSkirtHeight:B}=e;let c;c=Ze(t,r,l);const{vertices:C}=c;let{triangles:f}=c,E=function(A,e,t,i,r){const a=t+1,n=A.length/2,s=new Float32Array(3*n),o=new Float32Array(2*n),[g,l,h,I]=r||[0,0,t,i],B=(h-g)/t,c=(I-l)/i;for(let r=0;r<n;r++){const n=A[2*r],l=A[2*r+1],h=l*a+n;s[3*r+0]=n*B+g,s[3*r+1]=-l*c+I,s[3*r+2]=e[h],o[2*r+0]=n/t,o[2*r+1]=l/i}return{POSITION:{value:s,size:3},TEXCOORD_0:{value:o,size:2}}}(C,l,r,n,A.bounds);const Q=a.getMeshBoundingBox(E);if(B){const{attributes:A,triangles:e}=ze(E,f,B);E=A,f=e}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:Q},mode:4,indices:{value:Uint32Array.from(f),size:1},attributes:E}}))}getBitmap(A,e){return o(this,void 0,void 0,(function*(){var t;const i=Object.assign({},e);let r,a,n,s=[];"string"==typeof A?(yield this.setUrl(A),s=yield this.data.readRasters(),r=s.length,a=this.data.getWidth(),n=this.data.getHeight()):(s=A.rasters,r=s.length,a=A.width,n=A.height);const o=document.createElement("canvas");o.width=a,o.height=n;const g=o.getContext("2d"),l=g.createImageData(a,n);let h,I,B,c;const C=a*n*4;if(i.unidentifiedColor=this.getColorFromChromaType(i.unidentifiedColor),i.nullColor=this.getColorFromChromaType(i.nullColor),i.clippedColor=this.getColorFromChromaType(i.clippedColor),i.color=this.getColorFromChromaType(i.color),null!==(t=i.useChannelIndex)&&void 0!==t||(i.useChannelIndex=null===e.useChannel?null:e.useChannel-1),null==i.useChannelIndex){if(1===r){if(s[0].length/(a*n)==1){const A=s[0];i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C).forEach(((A,e)=>{l.data[e]=A}))}if(s[0].length/(a*n)==3){let A=0;for(let e=0;e<C;e+=4){const t=[s[0][A],s[0][A+1],s[0][A+2]],r=this.hasPixelsNoData(t,i.noDataValue)?i.nullColor:[...t,Math.floor(2.55*i.alpha)];[l.data[e],l.data[e+1],l.data[e+2],l.data[e+3]]=r,A+=3}}s[0].length/(a*n)==4&&s[0].forEach(((A,e)=>{l.data[e]=A}))}if(3===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}if(4===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}}else if(i.useChannelIndex<i.numOfChannels&&i.useChannelIndex>=0){let A=s[0];s[i.useChannelIndex]&&(A=s[i.useChannelIndex]),i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C,i.numOfChannels).forEach(((A,e)=>{l.data[e]=A}))}else{console.log(`Defined channel(${e.useChannel}) or channel index(${e.useChannelIndex}) does not exist, choose a different channel or set the useChannel property to null if you want to visualize RGB(A) imagery`);this.getDefaultColor(C,i.nullColor).forEach(((A,e)=>{l.data[e]=A}))}g.putImageData(l,0,0);return o.toDataURL("image/png")}))}getMinMax(A,e){let t=e.maxValue?e.maxValue:Number.MIN_VALUE,i=e.minValue?e.minValue:Number.MAX_VALUE;for(let r=0;r<A.length;r+=1)void 0!==e.noDataValue&&A[r]===e.noDataValue||(A[r]>t&&(t=A[r]),A[r]<i&&(i=A[r]));return[i,t]}getColorValue(A,e,t,i=1){const a=r.scale(e.colorScale).domain(e.colorScaleValueRange);let n=null===e.useChannelIndex?0:e.useChannelIndex;const s=new Array(t),o=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([A])=>A)):void 0,g=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([,A])=>[...r(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,l=e.useColorClasses?e.colorClasses.map((([A])=>[...r(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,h=e.useColorClasses?e.colorClasses.map((([,A])=>A)):void 0,I=e.useColorClasses?e.colorClasses.map((([,,A],t)=>void 0!==A?A:t===e.colorClasses.length-1?[!0,!0]:[!0,!1])):void 0;for(let r=0;r<t;r+=4){let t=e.nullColor;if(!Number.isNaN(A[n])&&(void 0===e.noDataValue||A[n]!==e.noDataValue))if(null!=e.clipLow&&A[n]<=e.clipLow||null!=e.clipHigh&&A[n]>=e.clipHigh)t=e.clippedColor;else{if(e.useHeatMap&&(t=[...a(A[n]).rgb(),Math.floor(2.55*e.alpha)]),e.useColorsBasedOnValues){const i=o.indexOf(A[n]);t=i>-1?g[i]:e.unidentifiedColor}if(e.useColorClasses){const i=this.findClassIndex(A[n],h,I);t=i>-1?l[i]:e.unidentifiedColor}e.useSingleColor&&(t=e.color),e.useDataForOpacity&&(t[3]=this.scale(A[n],e.colorScaleValueRange[0],e.colorScaleValueRange.slice(-1)[0],0,255))}[s[r],s[r+1],s[r+2],s[r+3]]=t,n+=i}return s}findClassIndex(A,e,t){for(let i=0;i<e.length;i+=1){const[r,a]=e[i],[n,s]=t[i];if((n?A>=r:A>r)&&(s?A<=a:A<a))return i}return-1}getDefaultColor(A,e){const t=new Array(A);for(let i=0;i<A;i+=4)[t[i],t[i+1],t[i+2],t[i+3]]=e;return t}getColorFromChromaType(A){return Array.isArray(A)&&4===A.length?A:[...r(A).rgb(),255]}hasPixelsNoData(A,e){return void 0!==e&&A.every((A=>A===e))}}function Ze(A,e,t){const i=new He(e+1).createTile(t),{vertices:r,triangles:a}=i.getMesh(A);return{vertices:r,triangles:a}}const Xe=2*Math.PI*6378137,We=Xe/2,je=[-20037508.342789244,20037508.342789244],$e={blurredTexture:!0};class At{constructor(A){this.cogZoomLookup=[0],this.cogResolutionLookup=[0],this.cogOrigin=[0,0],this.zoomRange=[0,0],this.loaded=!1,this.geo=new Ve,this.options=Object.assign(Object.assign({},$e),A)}initializeCog(A){return o(this,void 0,void 0,(function*(){var e,t,i,r;this.cog=yield async function(A,e={},t){return Ne.fromSource(_e(A,e),t)}(A);const a=yield this.cog.getImage();this.cogOrigin=a.getOrigin(),null!==(e=(i=this.options).noDataValue)&&void 0!==e||(i.noDataValue=this.getNoDataValue(a)),null!==(t=(r=this.options).format)&&void 0!==t||(r.format=this.getDataTypeFromTags(a)),this.options.numOfChannels=this.getNumberOfChannels(a),this.options.planarConfig=this.getPlanarConfiguration(a),[this.cogZoomLookup,this.cogResolutionLookup]=yield this.buildCogZoomResolutionLookup(this.cog),this.tileSize=a.getTileWidth(),this.zoomRange=this.calculateZoomRange(a,yield this.cog.getImageCount()),this.bounds=this.calculateBoundsAsLatLon(a)}))}getZoomRange(){return this.zoomRange}calculateZoomRange(A,e){const t=this.getZoomLevelFromResolution(A.getTileWidth(),A.getResolution()[0]);return[t-(e-1),t]}calculateBoundsAsLatLon(A){const e=A.getBoundingBox(),t=Math.min(e[0],e[2]),i=Math.max(e[0],e[2]),r=Math.min(e[1],e[3]),a=Math.max(e[1],e[3]),n=this.getLatLon([t,r]),s=this.getLatLon([i,a]);return[n[0],n[1],s[0],s[1]]}getZoomLevelFromResolution(A,e){return Math.round(Math.log2(Xe/(e*A)))}getBoundsAsLatLon(){return this.bounds}getLatLon(A){const e=We+A[0],t=-(We+(A[1]-Xe)),i=function(A){const[e,t]=A,i=e/512*(2*qe)-qe,r=2*(Math.atan(Math.exp(t/512*(2*qe)-qe))-Oe);return[i*Je,r*Je]}([e*(512/Xe),t*(512/Xe)]);return[i[0],-i[1]]}buildCogZoomResolutionLookup(A){return o(this,void 0,void 0,(function*(){const e=yield A.getImageCount(),t=yield A.getImage(0),i=t.getResolution()[0],r=t.getWidth(),a=[],n=[];for(let t=0;t<e;t++){const e=i*(r/(yield A.getImage(t)).getWidth()),s=Math.round(Math.log2(156543.03125/e));a[t]=s,n[t]=e}return[a,n]}))}getImageIndexForZoomLevel(A){const e=this.cogZoomLookup[this.cogZoomLookup.length-1];if(A>this.cogZoomLookup[0])return 0;if(A<e)return this.cogZoomLookup.length-1;const t=this.cogZoomLookup.indexOf(A);return-1===t&&console.log("getImageIndexForZoomLevel: error in retrieving image by zoom index"),t}getTileFromImage(A,e,t){return o(this,void 0,void 0,(function*(){const i=this.getImageIndexForZoomLevel(t),r=yield this.cog.getImage(i),a=r.getTileWidth(),n=r.getTileHeight();if(!a||!n)throw new Error("The image is not tiled.");const s=this.cogOrigin[0]-je[0],o=je[1]-this.cogOrigin[1],g=Xe/a/Math.pow(2,t);this.cogResolutionLookup[i];const l=Math.floor(s/g),h=Math.floor(o/g),I=r.getHeight(),B=r.getWidth(),c=[A*a,e*n,(A+1)*a,(e+1)*n],C=[l,h,l+B,h+I],f=this.getIntersectionBBox(c,C,l,h,a),[E,Q,d,u,w]=f;if(u>0||w>0||E<a||Q<n){const A=this.createTileBuffer(this.options.format,a);A.fill(this.options.noDataValue);const e=yield r.readRasters({window:d}),t=Array(e.length*e[0].length);t.fill(this.options.noDataValue);for(let i=0;i<e.length;i++){for(let t=0;t<Q;t++)for(let r=0;r<E;r++){const s=w+t,o=u+r;s<a&&o<n?A[s*a+o]=e[i][t*e.width+r]:console.log("error in assigning data to tile buffer")}A.forEach(((A,e)=>{t[e*this.options.numOfChannels+i]=A}))}return[t]}return[yield r.readRasters({window:d,interleave:!0})]}))}getTile(A,e,t,i,r){return o(this,void 0,void 0,(function*(){const a=yield this.getTileFromImage(A,e,t);return this.geo.getMap({rasters:[a[0]],width:this.tileSize,height:this.tileSize,bounds:i},this.options,r)}))}getDataTypeFromTags(A){const e=A.getFileDirectory(),t=e.SampleFormat,i=e.BitsPerSample,r=t&&"number"==typeof t.length&&t.length>0?t[0]:t;let a;return a=1===r?"UInt":2===r?"Int":3===r?"Float":"Unknown",`${a}${i&&"number"==typeof i.length&&i.length>0?i[0]:i}`}getNoDataValue(A){const e=A.getGDALNoData();if(null==e)return void console.warn("No noData value defined — raster might be rendered incorrectly.");const t=String(e).replace(/\0/g,"").trim();if(""===t)return void console.warn("noData value is an empty string after cleanup.");const i=Number(t);return"nan"===t.toLowerCase()?NaN:Number.isNaN(i)?void console.warn(`Failed to parse numeric noData value: '${t}'`):i}getNumberOfChannels(A){return A.getSamplesPerPixel()}getIntersectionBBox(A,e,t=0,i=0,r=256){const a=Math.max(A[0],e[0]),n=Math.max(A[1],e[1]),s=Math.min(A[2],e[2]),o=Math.min(A[3],e[3]),g=Math.max(0,s-a),l=Math.max(0,o-n);let h=null,I=0,B=0;return g>0&&l>0&&(h=[a-t,n-i,s-t,o-i],I=a-A[0],B=n-A[1]),[g,l,h,I,B]}getPlanarConfiguration(A){const e=A.fileDirectory.PlanarConfiguration;if(1!==e&&2!==e)throw new Error("Invalid planar configuration.");return e}createTileBuffer(A,e){const t=e*e;switch(A){case"UInt8":return new Uint8Array(t);case"Int8":return new Int8Array(t);case"UInt16":return new Uint16Array(t);case"Int16":return new Int16Array(t);case"UInt32":return new Uint32Array(t);case"Int32":return new Int32Array(t);case"Float32":return new Float32Array(t);case"Float64":return new Float64Array(t);default:throw new Error(`Unsupported data type: ${A}`)}}}const et={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},tt=Object.assign(Object.assign({},e.TileLayer.defaultProps),{bounds:{type:"array",value:null,optional:!0,compare:!0},rasterData:et,blurredTexture:!0,opacity:1,clampToTerrain:!1,workerUrl:""});class it extends A.CompositeLayer{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return o(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({bitmapCogTiles:new At(this.props.cogBitmapOptions),initialized:!1}),yield this.init()}))}init(){return o(this,void 0,void 0,(function*(){yield this.state.bitmapCogTiles.initializeCog(this.props.rasterData);const A=this.state.bitmapCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:e,oldProps:t}){var i,r,a;const n=e.rasterData!==t.rasterData;if(n){const{rasterData:A}=e,t=A&&(Array.isArray(A)||A.includes("{x}")&&A.includes("{y}")||this.props.isTiled);this.setState({isTiled:t})}n||(e.bounds,t.bounds);this.state.isTiled,(null===(i=null==e?void 0:e.cogBitmapOptions)||void 0===i?void 0:i.useChannel)&&(null===(r=e.cogBitmapOptions)||void 0===r?void 0:r.useChannel)!==(null===(a=t.cogBitmapOptions)||void 0===a?void 0:a.useChannel)&&(this.state.bitmapCogTiles.options.useChannel=e.cogBitmapOptions.useChannel),e.workerUrl&&A.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}getTiledBitmapData(A){return o(this,void 0,void 0,(function*(){return yield this.state.bitmapCogTiles.getTile(A.index.x,A.index.y,A.index.z)}))}renderSubLayers(A){const e=this.getSubLayerClass("image",t.BitmapLayer),{blurredTexture:r}=this.state.bitmapCogTiles.options,{opacity:a,clampToTerrain:n}=this.props,{data:s}=A;if(!s)return null;const{bbox:{west:o,south:g,east:l,north:h}}=A.tile;return new e(Object.assign(Object.assign({},A),{tileSize:this.state.bitmapCogTiles.tileSize}),Object.assign({data:null,image:s,_instanced:!1,bounds:[o,g,l,h],opacity:a,textureParameters:{minFilter:r?"linear":"nearest",magFilter:r?"linear":"nearest"},extensions:n?[new i._TerrainExtension]:[]},(null==n?void 0:n.terrainDrawMode)?{terrainDrawMode:n.terrainDrawMode}:{}))}renderLayers(){const{rasterData:A,blurredTexture:t,opacity:i,clampToTerrain:r,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h,cogBitmapOptions:I}=this.props;if(this.state.isTiled&&this.state.initialized){const{tileSize:A}=this.state.bitmapCogTiles;return new e.TileLayer(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledBitmapData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:[r,I.useChannel]},extent:this.state.bitmapCogTiles.getBoundsAsLatLon(),tileSize:A,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h})}return null}}it.defaultProps=tt,it.layerName="CogBitmapLayer";const rt={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},at=[1],nt=Object.assign(Object.assign({},e.TileLayer.defaultProps),{elevationData:rt,texture:Object.assign(Object.assign({},rt),{optional:!0}),meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0});class st extends A.CompositeLayer{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return o(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({terrainCogTiles:new At(this.props.terrainOptions),initialized:!1}),yield this.init(this.terrainUrl)}))}init(A){return o(this,void 0,void 0,(function*(){yield this.state.terrainCogTiles.initializeCog(this.props.elevationData);const A=this.state.terrainCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:e,oldProps:t}){const i=e.elevationData!==t.elevationData;if(i){const{elevationData:A}=e,t=A&&(Array.isArray(A)||A.includes("{x}")&&A.includes("{y}"))||this.props.isTiled;this.setState({isTiled:t})}i||e.meshMaxError!==t.meshMaxError||e.elevationDecoder!==t.elevationDecoder||(e.bounds,t.bounds);this.state.isTiled,e.workerUrl&&A.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:A,bounds:e,elevationDecoder:t,meshMaxError:i,signal:r}){if(!A)return null;let a=this.getLoadOptions();a=Object.assign(Object.assign({},a),{_workerType:"test",terrain:Object.assign(Object.assign({skirtHeight:this.state.isTiled?2*i:0},null==a?void 0:a.terrain),{bounds:e,meshMaxError:i,elevationDecoder:t})});const{fetch:n}=this.props;return n(A,{propName:"elevationData",layer:this,loadOptions:a,signal:r,loaders:[]})}getTiledTerrainData(A){return o(this,void 0,void 0,(function*(){this.props;const{viewport:e}=this.context;let t=[0,0],i=[0,0];if(e.isGeospatial){const r=A.bbox;t=e.projectFlat([r.west,r.south]),i=e.projectFlat([r.east,r.north])}else{const e=A.bbox;t=[e.left,e.bottom],i=[e.right,e.top]}const r=[t[0],t[1],i[0],i[1]],a=yield this.state.terrainCogTiles.getTile(A.index.x,A.index.y,A.index.z,r,this.props.meshMaxError);return Promise.all([a])}))}renderSubLayers(e){const t=this.getSubLayerClass("mesh",s.SimpleMeshLayer),{color:i,wireframe:r,material:a}=this.props,{data:n}=e;if(!n)return null;const[o]=n;return new t(Object.assign(Object.assign({},e),{tileSize:256}),{data:at,mesh:o,_instanced:!1,coordinateSystem:A.COORDINATE_SYSTEM.CARTESIAN,getPosition:A=>[0,0,0],getColor:i,wireframe:r,material:a})}onViewportLoad(A){if(!A)return;const{zRange:e}=this.state,t=A.map((A=>A.content)).filter((A=>A&&A[0])).map((A=>{var e,t;const i=null===(t=null===(e=A[0])||void 0===e?void 0:e.header)||void 0===t?void 0:t.boundingBox;return null==i?void 0:i.map((A=>A[2]))}));if(0===t.length)return;const i=Math.min(...t.map((A=>A[0]))),r=Math.max(...t.map((A=>A[1])));(!e||i<e[0]||r>e[1])&&this.setState({zRange:[Number.isFinite(i)?i:0,Number.isFinite(r)?r:0]})}renderLayers(){const{color:A,material:t,elevationData:i,texture:r,wireframe:a,meshMaxError:n,elevationDecoder:s,tileSize:o,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f}=this.props;if(this.state.isTiled&&this.state.initialized)return new e.TileLayer(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:(E=i,Array.isArray(E)?E.join(";"):E||""),meshMaxError:n,elevationDecoder:s}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:o,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f});var E}}st.defaultProps=nt,st.layerName="TerrainLayer";var ot=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return A}}});function gt(A,e){for(let t=e.length-1;t>=0;t--)A.push(e[t]);return A}function lt(A){const e=new Uint16Array(4093),t=new Uint8Array(4093);for(let A=0;A<=257;A++)e[A]=4096,t[A]=A;let i=258,r=9,a=0;function n(){i=258,r=9}function s(A){const e=function(A,e,t){const i=e%8,r=Math.floor(e/8),a=8-i,n=e+t-8*(r+1);let s=8*(r+2)-(e+t);const o=8*(r+2)-e;if(s=Math.max(0,s),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;let g=A[r]&2**(8-i)-1;g<<=t-a;let l=g;if(r+1<A.length){let e=A[r+1]>>>s;e<<=Math.max(0,t-o),l+=e}if(n>8&&r+2<A.length){const i=8*(r+3)-(e+t);l+=A[r+2]>>>i}return l}(A,a,r);return a+=r,e}function o(A,r){return t[i]=r,e[i]=A,i++,i-1}function g(A){const i=[];for(let r=A;4096!==r;r=e[r])i.push(t[r]);return i}const l=[];n();const h=new Uint8Array(A);let I,B=s(h);for(;257!==B;){if(256===B){for(n(),B=s(h);256===B;)B=s(h);if(257===B)break;if(B>256)throw new Error(`corrupted code at scanline ${B}`);gt(l,g(B)),I=B}else if(B<i){const A=g(B);gt(l,A),o(I,A[A.length-1]),I=B}else{const A=g(I);if(!A)throw new Error(`Bogus entry. Not in dictionary, ${I} / ${i}, position: ${a}`);gt(l,A),l.push(A[A.length-1]),o(I,A[A.length-1]),I=B}i+1>=2**r&&(12===r?I=void 0:r++),B=s(h)}return new Uint8Array(l)}var ht=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return lt(A).buffer}}});const It=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),Bt=4017,ct=799,Ct=3406,ft=2276,Et=1567,Qt=3784,dt=5793,ut=2896;function wt(A,e){let t=0;const i=[];let r=16;for(;r>0&&!A[r-1];)--r;i.push({children:[],index:0});let a,n=i[0];for(let s=0;s<r;s++){for(let r=0;r<A[s];r++){for(n=i.pop(),n.children[n.index]=e[t];n.index>0;)n=i.pop();for(n.index++,i.push(n);i.length<=s;)i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a;t++}s+1<r&&(i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a)}return i[0].children}function pt(A,e,t,i,r,a,n,s,o){const{mcusPerLine:g,progressive:l}=t,h=e;let I=e,B=0,c=0;function C(){if(c>0)return c--,B>>c&1;if(B=A[I++],255===B){const e=A[I++];if(e)throw new Error(`unexpected marker: ${(B<<8|e).toString(16)}`)}return c=7,B>>>7}function f(A){let e,t=A;for(;null!==(e=C());){if(t=t[e],"number"==typeof t)return t;if("object"!=typeof t)throw new Error("invalid huffman sequence")}return null}function E(A){let e=A,t=0;for(;e>0;){const A=C();if(null===A)return;t=t<<1|A,--e}return t}function Q(A){const e=E(A);return e>=1<<A-1?e:e+(-1<<A)+1}let d=0;let u,w=0;function p(A,e,t,i,r){const a=t%g,n=(t/g|0)*A.v+i,s=a*A.h+r;e(A,A.blocks[n][s])}function m(A,e,t){const i=t/A.blocksPerLine|0,r=t%A.blocksPerLine;e(A,A.blocks[i][r])}const y=i.length;let D,k,b,_,S,x;x=l?0===a?0===s?function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:Q(t)<<o;A.pred+=i,e[0]=A.pred}:function(A,e){e[0]|=C()<<o}:0===s?function(A,e){if(d>0)return void d--;let t=a;const i=n;for(;t<=i;){const i=f(A.huffmanTableAC),r=15&i,a=i>>4;if(0===r){if(a<15){d=E(a)+(1<<a)-1;break}t+=16}else t+=a,e[It[t]]=Q(r)*(1<<o),t++}}:function(A,e){let t=a;const i=n;let r=0;for(;t<=i;){const i=It[t],a=e[i]<0?-1:1;switch(w){case 0:{const e=f(A.huffmanTableAC),t=15&e;if(r=e>>4,0===t)r<15?(d=E(r)+(1<<r),w=4):(r=16,w=1);else{if(1!==t)throw new Error("invalid ACn encoding");u=Q(t),w=r?2:3}continue}case 1:case 2:e[i]?e[i]+=(C()<<o)*a:(r--,0===r&&(w=2===w?3:0));break;case 3:e[i]?e[i]+=(C()<<o)*a:(e[i]=u<<o,w=0);break;case 4:e[i]&&(e[i]+=(C()<<o)*a)}t++}4===w&&(d--,0===d&&(w=0))}:function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:Q(t);A.pred+=i,e[0]=A.pred;let r=1;for(;r<64;){const t=f(A.huffmanTableAC),i=15&t,a=t>>4;if(0===i){if(a<15)break;r+=16}else r+=a,e[It[r]]=Q(i),r++}};let F,G,U=0;G=1===y?i[0].blocksPerLine*i[0].blocksPerColumn:g*t.mcusPerColumn;const R=r||G;for(;U<G;){for(k=0;k<y;k++)i[k].pred=0;if(d=0,1===y)for(D=i[0],S=0;S<R;S++)m(D,x,U),U++;else for(S=0;S<R;S++){for(k=0;k<y;k++){D=i[k];const{h:A,v:e}=D;for(b=0;b<e;b++)for(_=0;_<A;_++)p(D,x,U,b,_)}if(U++,U===G)break}if(c=0,F=A[I]<<8|A[I+1],F<65280)throw new Error("marker was not found");if(!(F>=65488&&F<=65495))break;I+=2}return I-h}function mt(A,e){const t=[],{blocksPerLine:i,blocksPerColumn:r}=e,a=i<<3,n=new Int32Array(64),s=new Uint8Array(64);function o(A,t,i){const r=e.quantizationTable;let a,n,s,o,g,l,h,I,B;const c=i;let C;for(C=0;C<64;C++)c[C]=A[C]*r[C];for(C=0;C<8;++C){const A=8*C;0!==c[1+A]||0!==c[2+A]||0!==c[3+A]||0!==c[4+A]||0!==c[5+A]||0!==c[6+A]||0!==c[7+A]?(a=dt*c[0+A]+128>>8,n=dt*c[4+A]+128>>8,s=c[2+A],o=c[6+A],g=ut*(c[1+A]-c[7+A])+128>>8,I=ut*(c[1+A]+c[7+A])+128>>8,l=c[3+A]<<4,h=c[5+A]<<4,B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*Qt+o*Et+128>>8,s=s*Et-o*Qt+128>>8,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*ft+I*Ct+2048>>12,g=g*Ct-I*ft+2048>>12,I=B,B=l*ct+h*Bt+2048>>12,l=l*Bt-h*ct+2048>>12,h=B,c[0+A]=a+I,c[7+A]=a-I,c[1+A]=n+h,c[6+A]=n-h,c[2+A]=s+l,c[5+A]=s-l,c[3+A]=o+g,c[4+A]=o-g):(B=dt*c[0+A]+512>>10,c[0+A]=B,c[1+A]=B,c[2+A]=B,c[3+A]=B,c[4+A]=B,c[5+A]=B,c[6+A]=B,c[7+A]=B)}for(C=0;C<8;++C){const A=C;0!==c[8+A]||0!==c[16+A]||0!==c[24+A]||0!==c[32+A]||0!==c[40+A]||0!==c[48+A]||0!==c[56+A]?(a=dt*c[0+A]+2048>>12,n=dt*c[32+A]+2048>>12,s=c[16+A],o=c[48+A],g=ut*(c[8+A]-c[56+A])+2048>>12,I=ut*(c[8+A]+c[56+A])+2048>>12,l=c[24+A],h=c[40+A],B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*Qt+o*Et+2048>>12,s=s*Et-o*Qt+2048>>12,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*ft+I*Ct+2048>>12,g=g*Ct-I*ft+2048>>12,I=B,B=l*ct+h*Bt+2048>>12,l=l*Bt-h*ct+2048>>12,h=B,c[0+A]=a+I,c[56+A]=a-I,c[8+A]=n+h,c[48+A]=n-h,c[16+A]=s+l,c[40+A]=s-l,c[24+A]=o+g,c[32+A]=o-g):(B=dt*i[C+0]+8192>>14,c[0+A]=B,c[8+A]=B,c[16+A]=B,c[24+A]=B,c[32+A]=B,c[40+A]=B,c[48+A]=B,c[56+A]=B)}for(C=0;C<64;++C){const A=128+(c[C]+8>>4);t[C]=A<0?0:A>255?255:A}}for(let A=0;A<r;A++){const r=A<<3;for(let A=0;A<8;A++)t.push(new Uint8Array(a));for(let a=0;a<i;a++){o(e.blocks[A][a],s,n);let i=0;const g=a<<3;for(let A=0;A<8;A++){const e=t[r+A];for(let A=0;A<8;A++)e[g+A]=s[i++]}}}return t}class yt{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(A){let e=0;function t(){const t=A[e]<<8|A[e+1];return e+=2,t}function i(){const i=t(),r=A.subarray(e,e+i-2);return e+=r.length,r}function r(A){let e,t,i=0,r=0;for(t in A.components)A.components.hasOwnProperty(t)&&(e=A.components[t],i<e.h&&(i=e.h),r<e.v&&(r=e.v));const a=Math.ceil(A.samplesPerLine/8/i),n=Math.ceil(A.scanLines/8/r);for(t in A.components)if(A.components.hasOwnProperty(t)){e=A.components[t];const s=Math.ceil(Math.ceil(A.samplesPerLine/8)*e.h/i),o=Math.ceil(Math.ceil(A.scanLines/8)*e.v/r),g=a*e.h,l=n*e.v,h=[];for(let A=0;A<l;A++){const A=[];for(let e=0;e<g;e++)A.push(new Int32Array(64));h.push(A)}e.blocksPerLine=s,e.blocksPerColumn=o,e.blocks=h}A.maxH=i,A.maxV=r,A.mcusPerLine=a,A.mcusPerColumn=n}let a=t();if(65496!==a)throw new Error("SOI not found");for(a=t();65497!==a;){switch(a){case 65280:break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:{const A=i();65504===a&&74===A[0]&&70===A[1]&&73===A[2]&&70===A[3]&&0===A[4]&&(this.jfif={version:{major:A[5],minor:A[6]},densityUnits:A[7],xDensity:A[8]<<8|A[9],yDensity:A[10]<<8|A[11],thumbWidth:A[12],thumbHeight:A[13],thumbData:A.subarray(14,14+3*A[12]*A[13])}),65518===a&&65===A[0]&&100===A[1]&&111===A[2]&&98===A[3]&&101===A[4]&&0===A[5]&&(this.adobe={version:A[6],flags0:A[7]<<8|A[8],flags1:A[9]<<8|A[10],transformCode:A[11]});break}case 65499:{const i=t()+e-2;for(;e<i;){const i=A[e++],r=new Int32Array(64);if(i>>4){if(i>>4!=1)throw new Error("DQT: invalid table spec");for(let A=0;A<64;A++){r[It[A]]=t()}}else for(let t=0;t<64;t++){r[It[t]]=A[e++]}this.quantizationTables[15&i]=r}break}case 65472:case 65473:case 65474:{t();const i={extended:65473===a,progressive:65474===a,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},n=A[e++];let s;for(let t=0;t<n;t++){s=A[e];const t=A[e+1]>>4,r=15&A[e+1],a=A[e+2];i.componentsOrder.push(s),i.components[s]={h:t,v:r,quantizationIdx:a},e+=3}r(i),this.frames.push(i);break}case 65476:{const i=t();for(let t=2;t<i;){const i=A[e++],r=new Uint8Array(16);let a=0;for(let t=0;t<16;t++,e++)r[t]=A[e],a+=r[t];const n=new Uint8Array(a);for(let t=0;t<a;t++,e++)n[t]=A[e];t+=17+a,i>>4?this.huffmanTablesAC[15&i]=wt(r,n):this.huffmanTablesDC[15&i]=wt(r,n)}break}case 65501:t(),this.resetInterval=t();break;case 65498:{t();const i=A[e++],r=[],a=this.frames[0];for(let t=0;t<i;t++){const t=a.components[A[e++]],i=A[e++];t.huffmanTableDC=this.huffmanTablesDC[i>>4],t.huffmanTableAC=this.huffmanTablesAC[15&i],r.push(t)}const n=A[e++],s=A[e++],o=A[e++],g=pt(A,e,a,r,this.resetInterval,n,s,o>>4,15&o);e+=g;break}case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${a.toString(16)}`)}a=t()}}getResult(){const{frames:A}=this;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let A=0;A<this.frames.length;A++){const e=this.frames[A].components;for(const A of Object.keys(e))e[A].quantizationTable=this.quantizationTables[e[A].quantizationIdx],delete e[A].quantizationIdx}const e=A[0],{components:t,componentsOrder:i}=e,r=[],a=e.samplesPerLine,n=e.scanLines;for(let A=0;A<i.length;A++){const a=t[i[A]];r.push({lines:mt(0,a),scaleX:a.h/e.maxH,scaleY:a.v/e.maxV})}const s=new Uint8Array(a*n*r.length);let o=0;for(let A=0;A<n;++A)for(let e=0;e<a;++e)for(let t=0;t<r.length;++t){const i=r[t];s[o]=i.lines[0|A*i.scaleY][0|e*i.scaleX],++o}return s}}var Dt=Object.freeze({__proto__:null,default:class extends Ge{constructor(A){super(),this.reader=new yt,A.JPEGTables&&this.reader.parse(A.JPEGTables)}decodeBlock(A){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(A)),this.reader.getResult().buffer}}});
2
- /*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function kt(A){let e=A.length;for(;--e>=0;)A[e]=0}const bt=256,_t=286,St=30,xt=15,Ft=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]),Gt=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]),Ut=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Rt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Mt=new Array(576);kt(Mt);const Lt=new Array(60);kt(Lt);const vt=new Array(512);kt(vt);const Nt=new Array(256);kt(Nt);const Tt=new Array(29);kt(Tt);const qt=new Array(St);function Ot(A,e,t,i,r){this.static_tree=A,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=r,this.has_stree=A&&A.length}let Jt,Ht,Yt;function zt(A,e){this.dyn_tree=A,this.max_code=0,this.stat_desc=e}kt(qt);const Pt=A=>A<256?vt[A]:vt[256+(A>>>7)],Kt=(A,e)=>{A.pending_buf[A.pending++]=255&e,A.pending_buf[A.pending++]=e>>>8&255},Vt=(A,e,t)=>{A.bi_valid>16-t?(A.bi_buf|=e<<A.bi_valid&65535,Kt(A,A.bi_buf),A.bi_buf=e>>16-A.bi_valid,A.bi_valid+=t-16):(A.bi_buf|=e<<A.bi_valid&65535,A.bi_valid+=t)},Zt=(A,e,t)=>{Vt(A,t[2*e],t[2*e+1])},Xt=(A,e)=>{let t=0;do{t|=1&A,A>>>=1,t<<=1}while(--e>0);return t>>>1},Wt=(A,e,t)=>{const i=new Array(16);let r,a,n=0;for(r=1;r<=xt;r++)n=n+t[r-1]<<1,i[r]=n;for(a=0;a<=e;a++){let e=A[2*a+1];0!==e&&(A[2*a]=Xt(i[e]++,e))}},jt=A=>{let e;for(e=0;e<_t;e++)A.dyn_ltree[2*e]=0;for(e=0;e<St;e++)A.dyn_dtree[2*e]=0;for(e=0;e<19;e++)A.bl_tree[2*e]=0;A.dyn_ltree[512]=1,A.opt_len=A.static_len=0,A.sym_next=A.matches=0},$t=A=>{A.bi_valid>8?Kt(A,A.bi_buf):A.bi_valid>0&&(A.pending_buf[A.pending++]=A.bi_buf),A.bi_buf=0,A.bi_valid=0},Ai=(A,e,t,i)=>{const r=2*e,a=2*t;return A[r]<A[a]||A[r]===A[a]&&i[e]<=i[t]},ei=(A,e,t)=>{const i=A.heap[t];let r=t<<1;for(;r<=A.heap_len&&(r<A.heap_len&&Ai(e,A.heap[r+1],A.heap[r],A.depth)&&r++,!Ai(e,i,A.heap[r],A.depth));)A.heap[t]=A.heap[r],t=r,r<<=1;A.heap[t]=i},ti=(A,e,t)=>{let i,r,a,n,s=0;if(0!==A.sym_next)do{i=255&A.pending_buf[A.sym_buf+s++],i+=(255&A.pending_buf[A.sym_buf+s++])<<8,r=A.pending_buf[A.sym_buf+s++],0===i?Zt(A,r,e):(a=Nt[r],Zt(A,a+bt+1,e),n=Ft[a],0!==n&&(r-=Tt[a],Vt(A,r,n)),i--,a=Pt(i),Zt(A,a,t),n=Gt[a],0!==n&&(i-=qt[a],Vt(A,i,n)))}while(s<A.sym_next);Zt(A,256,e)},ii=(A,e)=>{const t=e.dyn_tree,i=e.stat_desc.static_tree,r=e.stat_desc.has_stree,a=e.stat_desc.elems;let n,s,o,g=-1;for(A.heap_len=0,A.heap_max=573,n=0;n<a;n++)0!==t[2*n]?(A.heap[++A.heap_len]=g=n,A.depth[n]=0):t[2*n+1]=0;for(;A.heap_len<2;)o=A.heap[++A.heap_len]=g<2?++g:0,t[2*o]=1,A.depth[o]=0,A.opt_len--,r&&(A.static_len-=i[2*o+1]);for(e.max_code=g,n=A.heap_len>>1;n>=1;n--)ei(A,t,n);o=a;do{n=A.heap[1],A.heap[1]=A.heap[A.heap_len--],ei(A,t,1),s=A.heap[1],A.heap[--A.heap_max]=n,A.heap[--A.heap_max]=s,t[2*o]=t[2*n]+t[2*s],A.depth[o]=(A.depth[n]>=A.depth[s]?A.depth[n]:A.depth[s])+1,t[2*n+1]=t[2*s+1]=o,A.heap[1]=o++,ei(A,t,1)}while(A.heap_len>=2);A.heap[--A.heap_max]=A.heap[1],((A,e)=>{const t=e.dyn_tree,i=e.max_code,r=e.stat_desc.static_tree,a=e.stat_desc.has_stree,n=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,o=e.stat_desc.max_length;let g,l,h,I,B,c,C=0;for(I=0;I<=xt;I++)A.bl_count[I]=0;for(t[2*A.heap[A.heap_max]+1]=0,g=A.heap_max+1;g<573;g++)l=A.heap[g],I=t[2*t[2*l+1]+1]+1,I>o&&(I=o,C++),t[2*l+1]=I,l>i||(A.bl_count[I]++,B=0,l>=s&&(B=n[l-s]),c=t[2*l],A.opt_len+=c*(I+B),a&&(A.static_len+=c*(r[2*l+1]+B)));if(0!==C){do{for(I=o-1;0===A.bl_count[I];)I--;A.bl_count[I]--,A.bl_count[I+1]+=2,A.bl_count[o]--,C-=2}while(C>0);for(I=o;0!==I;I--)for(l=A.bl_count[I];0!==l;)h=A.heap[--g],h>i||(t[2*h+1]!==I&&(A.opt_len+=(I-t[2*h+1])*t[2*h],t[2*h+1]=I),l--)}})(A,e),Wt(t,g,A.bl_count)},ri=(A,e,t)=>{let i,r,a=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),e[2*(t+1)+1]=65535,i=0;i<=t;i++)r=n,n=e[2*(i+1)+1],++s<o&&r===n||(s<g?A.bl_tree[2*r]+=s:0!==r?(r!==a&&A.bl_tree[2*r]++,A.bl_tree[32]++):s<=10?A.bl_tree[34]++:A.bl_tree[36]++,s=0,a=r,0===n?(o=138,g=3):r===n?(o=6,g=3):(o=7,g=4))},ai=(A,e,t)=>{let i,r,a=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),i=0;i<=t;i++)if(r=n,n=e[2*(i+1)+1],!(++s<o&&r===n)){if(s<g)do{Zt(A,r,A.bl_tree)}while(0!=--s);else 0!==r?(r!==a&&(Zt(A,r,A.bl_tree),s--),Zt(A,16,A.bl_tree),Vt(A,s-3,2)):s<=10?(Zt(A,17,A.bl_tree),Vt(A,s-3,3)):(Zt(A,18,A.bl_tree),Vt(A,s-11,7));s=0,a=r,0===n?(o=138,g=3):r===n?(o=6,g=3):(o=7,g=4)}};let ni=!1;const si=(A,e,t,i)=>{Vt(A,0+(i?1:0),3),$t(A),Kt(A,t),Kt(A,~t),t&&A.pending_buf.set(A.window.subarray(e,e+t),A.pending),A.pending+=t};var oi=(A,e,t,i)=>{let r,a,n=0;A.level>0?(2===A.strm.data_type&&(A.strm.data_type=(A=>{let e,t=4093624447;for(e=0;e<=31;e++,t>>>=1)if(1&t&&0!==A.dyn_ltree[2*e])return 0;if(0!==A.dyn_ltree[18]||0!==A.dyn_ltree[20]||0!==A.dyn_ltree[26])return 1;for(e=32;e<bt;e++)if(0!==A.dyn_ltree[2*e])return 1;return 0})(A)),ii(A,A.l_desc),ii(A,A.d_desc),n=(A=>{let e;for(ri(A,A.dyn_ltree,A.l_desc.max_code),ri(A,A.dyn_dtree,A.d_desc.max_code),ii(A,A.bl_desc),e=18;e>=3&&0===A.bl_tree[2*Rt[e]+1];e--);return A.opt_len+=3*(e+1)+5+5+4,e})(A),r=A.opt_len+3+7>>>3,a=A.static_len+3+7>>>3,a<=r&&(r=a)):r=a=t+5,t+4<=r&&-1!==e?si(A,e,t,i):4===A.strategy||a===r?(Vt(A,2+(i?1:0),3),ti(A,Mt,Lt)):(Vt(A,4+(i?1:0),3),((A,e,t,i)=>{let r;for(Vt(A,e-257,5),Vt(A,t-1,5),Vt(A,i-4,4),r=0;r<i;r++)Vt(A,A.bl_tree[2*Rt[r]+1],3);ai(A,A.dyn_ltree,e-1),ai(A,A.dyn_dtree,t-1)})(A,A.l_desc.max_code+1,A.d_desc.max_code+1,n+1),ti(A,A.dyn_ltree,A.dyn_dtree)),jt(A),i&&$t(A)},gi={_tr_init:A=>{ni||((()=>{let A,e,t,i,r;const a=new Array(16);for(t=0,i=0;i<28;i++)for(Tt[i]=t,A=0;A<1<<Ft[i];A++)Nt[t++]=i;for(Nt[t-1]=i,r=0,i=0;i<16;i++)for(qt[i]=r,A=0;A<1<<Gt[i];A++)vt[r++]=i;for(r>>=7;i<St;i++)for(qt[i]=r<<7,A=0;A<1<<Gt[i]-7;A++)vt[256+r++]=i;for(e=0;e<=xt;e++)a[e]=0;for(A=0;A<=143;)Mt[2*A+1]=8,A++,a[8]++;for(;A<=255;)Mt[2*A+1]=9,A++,a[9]++;for(;A<=279;)Mt[2*A+1]=7,A++,a[7]++;for(;A<=287;)Mt[2*A+1]=8,A++,a[8]++;for(Wt(Mt,287,a),A=0;A<St;A++)Lt[2*A+1]=5,Lt[2*A]=Xt(A,5);Jt=new Ot(Mt,Ft,257,_t,xt),Ht=new Ot(Lt,Gt,0,St,xt),Yt=new Ot(new Array(0),Ut,0,19,7)})(),ni=!0),A.l_desc=new zt(A.dyn_ltree,Jt),A.d_desc=new zt(A.dyn_dtree,Ht),A.bl_desc=new zt(A.bl_tree,Yt),A.bi_buf=0,A.bi_valid=0,jt(A)},_tr_stored_block:si,_tr_flush_block:oi,_tr_tally:(A,e,t)=>(A.pending_buf[A.sym_buf+A.sym_next++]=e,A.pending_buf[A.sym_buf+A.sym_next++]=e>>8,A.pending_buf[A.sym_buf+A.sym_next++]=t,0===e?A.dyn_ltree[2*t]++:(A.matches++,e--,A.dyn_ltree[2*(Nt[t]+bt+1)]++,A.dyn_dtree[2*Pt(e)]++),A.sym_next===A.sym_end),_tr_align:A=>{Vt(A,2,3),Zt(A,256,Mt),(A=>{16===A.bi_valid?(Kt(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)})(A)}};var li=(A,e,t,i)=>{let r=65535&A,a=A>>>16&65535,n=0;for(;0!==t;){n=t>2e3?2e3:t,t-=n;do{r=r+e[i++]|0,a=a+r|0}while(--n);r%=65521,a%=65521}return r|a<<16};const hi=new Uint32Array((()=>{let A,e=[];for(var t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e})());var Ii=(A,e,t,i)=>{const r=hi,a=i+t;A^=-1;for(let t=i;t<a;t++)A=A>>>8^r[255&(A^e[t])];return~A},Bi={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"},ci={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:Ci,_tr_stored_block:fi,_tr_flush_block:Ei,_tr_tally:Qi,_tr_align:di}=gi,{Z_NO_FLUSH:ui,Z_PARTIAL_FLUSH:wi,Z_FULL_FLUSH:pi,Z_FINISH:mi,Z_BLOCK:yi,Z_OK:Di,Z_STREAM_END:ki,Z_STREAM_ERROR:bi,Z_DATA_ERROR:_i,Z_BUF_ERROR:Si,Z_DEFAULT_COMPRESSION:xi,Z_FILTERED:Fi,Z_HUFFMAN_ONLY:Gi,Z_RLE:Ui,Z_FIXED:Ri,Z_DEFAULT_STRATEGY:Mi,Z_UNKNOWN:Li,Z_DEFLATED:vi}=ci,Ni=258,Ti=262,qi=42,Oi=113,Ji=666,Hi=(A,e)=>(A.msg=Bi[e],e),Yi=A=>2*A-(A>4?9:0),zi=A=>{let e=A.length;for(;--e>=0;)A[e]=0},Pi=A=>{let e,t,i,r=A.w_size;e=A.hash_size,i=e;do{t=A.head[--i],A.head[i]=t>=r?t-r:0}while(--e);e=r,i=e;do{t=A.prev[--i],A.prev[i]=t>=r?t-r:0}while(--e)};let Ki=(A,e,t)=>(e<<A.hash_shift^t)&A.hash_mask;const Vi=A=>{const e=A.state;let t=e.pending;t>A.avail_out&&(t=A.avail_out),0!==t&&(A.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),A.next_out),A.next_out+=t,e.pending_out+=t,A.total_out+=t,A.avail_out-=t,e.pending-=t,0===e.pending&&(e.pending_out=0))},Zi=(A,e)=>{Ei(A,A.block_start>=0?A.block_start:-1,A.strstart-A.block_start,e),A.block_start=A.strstart,Vi(A.strm)},Xi=(A,e)=>{A.pending_buf[A.pending++]=e},Wi=(A,e)=>{A.pending_buf[A.pending++]=e>>>8&255,A.pending_buf[A.pending++]=255&e},ji=(A,e,t,i)=>{let r=A.avail_in;return r>i&&(r=i),0===r?0:(A.avail_in-=r,e.set(A.input.subarray(A.next_in,A.next_in+r),t),1===A.state.wrap?A.adler=li(A.adler,e,r,t):2===A.state.wrap&&(A.adler=Ii(A.adler,e,r,t)),A.next_in+=r,A.total_in+=r,r)},$i=(A,e)=>{let t,i,r=A.max_chain_length,a=A.strstart,n=A.prev_length,s=A.nice_match;const o=A.strstart>A.w_size-Ti?A.strstart-(A.w_size-Ti):0,g=A.window,l=A.w_mask,h=A.prev,I=A.strstart+Ni;let B=g[a+n-1],c=g[a+n];A.prev_length>=A.good_match&&(r>>=2),s>A.lookahead&&(s=A.lookahead);do{if(t=e,g[t+n]===c&&g[t+n-1]===B&&g[t]===g[a]&&g[++t]===g[a+1]){a+=2,t++;do{}while(g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&a<I);if(i=Ni-(I-a),a=I-Ni,i>n){if(A.match_start=e,n=i,i>=s)break;B=g[a+n-1],c=g[a+n]}}}while((e=h[e&l])>o&&0!=--r);return n<=A.lookahead?n:A.lookahead},Ar=A=>{const e=A.w_size;let t,i,r;do{if(i=A.window_size-A.lookahead-A.strstart,A.strstart>=e+(e-Ti)&&(A.window.set(A.window.subarray(e,e+e-i),0),A.match_start-=e,A.strstart-=e,A.block_start-=e,A.insert>A.strstart&&(A.insert=A.strstart),Pi(A),i+=e),0===A.strm.avail_in)break;if(t=ji(A.strm,A.window,A.strstart+A.lookahead,i),A.lookahead+=t,A.lookahead+A.insert>=3)for(r=A.strstart-A.insert,A.ins_h=A.window[r],A.ins_h=Ki(A,A.ins_h,A.window[r+1]);A.insert&&(A.ins_h=Ki(A,A.ins_h,A.window[r+3-1]),A.prev[r&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=r,r++,A.insert--,!(A.lookahead+A.insert<3)););}while(A.lookahead<Ti&&0!==A.strm.avail_in)},er=(A,e)=>{let t,i,r,a=A.pending_buf_size-5>A.w_size?A.w_size:A.pending_buf_size-5,n=0,s=A.strm.avail_in;do{if(t=65535,r=A.bi_valid+42>>3,A.strm.avail_out<r)break;if(r=A.strm.avail_out-r,i=A.strstart-A.block_start,t>i+A.strm.avail_in&&(t=i+A.strm.avail_in),t>r&&(t=r),t<a&&(0===t&&e!==mi||e===ui||t!==i+A.strm.avail_in))break;n=e===mi&&t===i+A.strm.avail_in?1:0,fi(A,0,0,n),A.pending_buf[A.pending-4]=t,A.pending_buf[A.pending-3]=t>>8,A.pending_buf[A.pending-2]=~t,A.pending_buf[A.pending-1]=~t>>8,Vi(A.strm),i&&(i>t&&(i=t),A.strm.output.set(A.window.subarray(A.block_start,A.block_start+i),A.strm.next_out),A.strm.next_out+=i,A.strm.avail_out-=i,A.strm.total_out+=i,A.block_start+=i,t-=i),t&&(ji(A.strm,A.strm.output,A.strm.next_out,t),A.strm.next_out+=t,A.strm.avail_out-=t,A.strm.total_out+=t)}while(0===n);return s-=A.strm.avail_in,s&&(s>=A.w_size?(A.matches=2,A.window.set(A.strm.input.subarray(A.strm.next_in-A.w_size,A.strm.next_in),0),A.strstart=A.w_size,A.insert=A.strstart):(A.window_size-A.strstart<=s&&(A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,A.insert>A.strstart&&(A.insert=A.strstart)),A.window.set(A.strm.input.subarray(A.strm.next_in-s,A.strm.next_in),A.strstart),A.strstart+=s,A.insert+=s>A.w_size-A.insert?A.w_size-A.insert:s),A.block_start=A.strstart),A.high_water<A.strstart&&(A.high_water=A.strstart),n?4:e!==ui&&e!==mi&&0===A.strm.avail_in&&A.strstart===A.block_start?2:(r=A.window_size-A.strstart,A.strm.avail_in>r&&A.block_start>=A.w_size&&(A.block_start-=A.w_size,A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,r+=A.w_size,A.insert>A.strstart&&(A.insert=A.strstart)),r>A.strm.avail_in&&(r=A.strm.avail_in),r&&(ji(A.strm,A.window,A.strstart,r),A.strstart+=r,A.insert+=r>A.w_size-A.insert?A.w_size-A.insert:r),A.high_water<A.strstart&&(A.high_water=A.strstart),r=A.bi_valid+42>>3,r=A.pending_buf_size-r>65535?65535:A.pending_buf_size-r,a=r>A.w_size?A.w_size:r,i=A.strstart-A.block_start,(i>=a||(i||e===mi)&&e!==ui&&0===A.strm.avail_in&&i<=r)&&(t=i>r?r:i,n=e===mi&&0===A.strm.avail_in&&t===i?1:0,fi(A,A.block_start,t,n),A.block_start+=t,Vi(A.strm)),n?3:1)},tr=(A,e)=>{let t,i;for(;;){if(A.lookahead<Ti){if(Ar(A),A.lookahead<Ti&&e===ui)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),0!==t&&A.strstart-t<=A.w_size-Ti&&(A.match_length=$i(A,t)),A.match_length>=3)if(i=Qi(A,A.strstart-A.match_start,A.match_length-3),A.lookahead-=A.match_length,A.match_length<=A.max_lazy_match&&A.lookahead>=3){A.match_length--;do{A.strstart++,A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart}while(0!=--A.match_length);A.strstart++}else A.strstart+=A.match_length,A.match_length=0,A.ins_h=A.window[A.strstart],A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+1]);else i=Qi(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++;if(i&&(Zi(A,!1),0===A.strm.avail_out))return 1}return A.insert=A.strstart<2?A.strstart:2,e===mi?(Zi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Zi(A,!1),0===A.strm.avail_out)?1:2},ir=(A,e)=>{let t,i,r;for(;;){if(A.lookahead<Ti){if(Ar(A),A.lookahead<Ti&&e===ui)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),A.prev_length=A.match_length,A.prev_match=A.match_start,A.match_length=2,0!==t&&A.prev_length<A.max_lazy_match&&A.strstart-t<=A.w_size-Ti&&(A.match_length=$i(A,t),A.match_length<=5&&(A.strategy===Fi||3===A.match_length&&A.strstart-A.match_start>4096)&&(A.match_length=2)),A.prev_length>=3&&A.match_length<=A.prev_length){r=A.strstart+A.lookahead-3,i=Qi(A,A.strstart-1-A.prev_match,A.prev_length-3),A.lookahead-=A.prev_length-1,A.prev_length-=2;do{++A.strstart<=r&&(A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart)}while(0!=--A.prev_length);if(A.match_available=0,A.match_length=2,A.strstart++,i&&(Zi(A,!1),0===A.strm.avail_out))return 1}else if(A.match_available){if(i=Qi(A,0,A.window[A.strstart-1]),i&&Zi(A,!1),A.strstart++,A.lookahead--,0===A.strm.avail_out)return 1}else A.match_available=1,A.strstart++,A.lookahead--}return A.match_available&&(i=Qi(A,0,A.window[A.strstart-1]),A.match_available=0),A.insert=A.strstart<2?A.strstart:2,e===mi?(Zi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Zi(A,!1),0===A.strm.avail_out)?1:2};function rr(A,e,t,i,r){this.good_length=A,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=r}const ar=[new rr(0,0,0,0,er),new rr(4,4,8,4,tr),new rr(4,5,16,8,tr),new rr(4,6,32,32,tr),new rr(4,4,16,16,ir),new rr(8,16,32,32,ir),new rr(8,16,128,128,ir),new rr(8,32,128,256,ir),new rr(32,128,258,1024,ir),new rr(32,258,258,4096,ir)];function nr(){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=vi,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(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),zi(this.dyn_ltree),zi(this.dyn_dtree),zi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),zi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),zi(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 sr=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.status!==qi&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==Oi&&e.status!==Ji?1:0},or=A=>{if(sr(A))return Hi(A,bi);A.total_in=A.total_out=0,A.data_type=Li;const e=A.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?qi:Oi,A.adler=2===e.wrap?0:1,e.last_flush=-2,Ci(e),Di},gr=A=>{const e=or(A);var t;return e===Di&&((t=A.state).window_size=2*t.w_size,zi(t.head),t.max_lazy_match=ar[t.level].max_lazy,t.good_match=ar[t.level].good_length,t.nice_match=ar[t.level].nice_length,t.max_chain_length=ar[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),e},lr=(A,e,t,i,r,a)=>{if(!A)return bi;let n=1;if(e===xi&&(e=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),r<1||r>9||t!==vi||i<8||i>15||e<0||e>9||a<0||a>Ri||8===i&&1!==n)return Hi(A,bi);8===i&&(i=9);const s=new nr;return A.state=s,s.strm=A,s.status=qi,s.wrap=n,s.gzhead=null,s.w_bits=i,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=r+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+3-1)/3),s.window=new Uint8Array(2*s.w_size),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<r+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=3*(s.lit_bufsize-1),s.level=e,s.strategy=a,s.method=t,gr(A)};var hr={deflateInit:(A,e)=>lr(A,e,vi,15,8,Mi),deflateInit2:lr,deflateReset:gr,deflateResetKeep:or,deflateSetHeader:(A,e)=>sr(A)||2!==A.state.wrap?bi:(A.state.gzhead=e,Di),deflate:(A,e)=>{if(sr(A)||e>yi||e<0)return A?Hi(A,bi):bi;const t=A.state;if(!A.output||0!==A.avail_in&&!A.input||t.status===Ji&&e!==mi)return Hi(A,0===A.avail_out?Si:bi);const i=t.last_flush;if(t.last_flush=e,0!==t.pending){if(Vi(A),0===A.avail_out)return t.last_flush=-1,Di}else if(0===A.avail_in&&Yi(e)<=Yi(i)&&e!==mi)return Hi(A,Si);if(t.status===Ji&&0!==A.avail_in)return Hi(A,Si);if(t.status===qi&&0===t.wrap&&(t.status=Oi),t.status===qi){let e=vi+(t.w_bits-8<<4)<<8,i=-1;if(i=t.strategy>=Gi||t.level<2?0:t.level<6?1:6===t.level?2:3,e|=i<<6,0!==t.strstart&&(e|=32),e+=31-e%31,Wi(t,e),0!==t.strstart&&(Wi(t,A.adler>>>16),Wi(t,65535&A.adler)),A.adler=1,t.status=Oi,Vi(A),0!==t.pending)return t.last_flush=-1,Di}if(57===t.status)if(A.adler=0,Xi(t,31),Xi(t,139),Xi(t,8),t.gzhead)Xi(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)),Xi(t,255&t.gzhead.time),Xi(t,t.gzhead.time>>8&255),Xi(t,t.gzhead.time>>16&255),Xi(t,t.gzhead.time>>24&255),Xi(t,9===t.level?2:t.strategy>=Gi||t.level<2?4:0),Xi(t,255&t.gzhead.os),t.gzhead.extra&&t.gzhead.extra.length&&(Xi(t,255&t.gzhead.extra.length),Xi(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(A.adler=Ii(A.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=69;else if(Xi(t,0),Xi(t,0),Xi(t,0),Xi(t,0),Xi(t,0),Xi(t,9===t.level?2:t.strategy>=Gi||t.level<2?4:0),Xi(t,3),t.status=Oi,Vi(A),0!==t.pending)return t.last_flush=-1,Di;if(69===t.status){if(t.gzhead.extra){let e=t.pending,i=(65535&t.gzhead.extra.length)-t.gzindex;for(;t.pending+i>t.pending_buf_size;){let r=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+r),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>e&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex+=r,Vi(A),0!==t.pending)return t.last_flush=-1,Di;e=0,i-=r}let r=new Uint8Array(t.gzhead.extra);t.pending_buf.set(r.subarray(t.gzindex,t.gzindex+i),t.pending),t.pending+=i,t.gzhead.hcrc&&t.pending>e&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex=0}t.status=73}if(73===t.status){if(t.gzhead.name){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-i,i)),Vi(A),0!==t.pending)return t.last_flush=-1,Di;i=0}e=t.gzindex<t.gzhead.name.length?255&t.gzhead.name.charCodeAt(t.gzindex++):0,Xi(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=91}if(91===t.status){if(t.gzhead.comment){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-i,i)),Vi(A),0!==t.pending)return t.last_flush=-1,Di;i=0}e=t.gzindex<t.gzhead.comment.length?255&t.gzhead.comment.charCodeAt(t.gzindex++):0,Xi(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-i,i))}t.status=103}if(103===t.status){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Vi(A),0!==t.pending))return t.last_flush=-1,Di;Xi(t,255&A.adler),Xi(t,A.adler>>8&255),A.adler=0}if(t.status=Oi,Vi(A),0!==t.pending)return t.last_flush=-1,Di}if(0!==A.avail_in||0!==t.lookahead||e!==ui&&t.status!==Ji){let i=0===t.level?er(t,e):t.strategy===Gi?((A,e)=>{let t;for(;;){if(0===A.lookahead&&(Ar(A),0===A.lookahead)){if(e===ui)return 1;break}if(A.match_length=0,t=Qi(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++,t&&(Zi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===mi?(Zi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Zi(A,!1),0===A.strm.avail_out)?1:2})(t,e):t.strategy===Ui?((A,e)=>{let t,i,r,a;const n=A.window;for(;;){if(A.lookahead<=Ni){if(Ar(A),A.lookahead<=Ni&&e===ui)return 1;if(0===A.lookahead)break}if(A.match_length=0,A.lookahead>=3&&A.strstart>0&&(r=A.strstart-1,i=n[r],i===n[++r]&&i===n[++r]&&i===n[++r])){a=A.strstart+Ni;do{}while(i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&r<a);A.match_length=Ni-(a-r),A.match_length>A.lookahead&&(A.match_length=A.lookahead)}if(A.match_length>=3?(t=Qi(A,1,A.match_length-3),A.lookahead-=A.match_length,A.strstart+=A.match_length,A.match_length=0):(t=Qi(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++),t&&(Zi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===mi?(Zi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Zi(A,!1),0===A.strm.avail_out)?1:2})(t,e):ar[t.level].func(t,e);if(3!==i&&4!==i||(t.status=Ji),1===i||3===i)return 0===A.avail_out&&(t.last_flush=-1),Di;if(2===i&&(e===wi?di(t):e!==yi&&(fi(t,0,0,!1),e===pi&&(zi(t.head),0===t.lookahead&&(t.strstart=0,t.block_start=0,t.insert=0))),Vi(A),0===A.avail_out))return t.last_flush=-1,Di}return e!==mi?Di:t.wrap<=0?ki:(2===t.wrap?(Xi(t,255&A.adler),Xi(t,A.adler>>8&255),Xi(t,A.adler>>16&255),Xi(t,A.adler>>24&255),Xi(t,255&A.total_in),Xi(t,A.total_in>>8&255),Xi(t,A.total_in>>16&255),Xi(t,A.total_in>>24&255)):(Wi(t,A.adler>>>16),Wi(t,65535&A.adler)),Vi(A),t.wrap>0&&(t.wrap=-t.wrap),0!==t.pending?Di:ki)},deflateEnd:A=>{if(sr(A))return bi;const e=A.state.status;return A.state=null,e===Oi?Hi(A,_i):Di},deflateSetDictionary:(A,e)=>{let t=e.length;if(sr(A))return bi;const i=A.state,r=i.wrap;if(2===r||1===r&&i.status!==qi||i.lookahead)return bi;if(1===r&&(A.adler=li(A.adler,e,t,0)),i.wrap=0,t>=i.w_size){0===r&&(zi(i.head),i.strstart=0,i.block_start=0,i.insert=0);let A=new Uint8Array(i.w_size);A.set(e.subarray(t-i.w_size,t),0),e=A,t=i.w_size}const a=A.avail_in,n=A.next_in,s=A.input;for(A.avail_in=t,A.next_in=0,A.input=e,Ar(i);i.lookahead>=3;){let A=i.strstart,e=i.lookahead-2;do{i.ins_h=Ki(i,i.ins_h,i.window[A+3-1]),i.prev[A&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=A,A++}while(--e);i.strstart=A,i.lookahead=2,Ar(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,A.next_in=n,A.input=s,A.avail_in=a,i.wrap=r,Di},deflateInfo:"pako deflate (from Nodeca project)"};const Ir=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var Br=function(A){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const t=e.shift();if(t){if("object"!=typeof t)throw new TypeError(t+"must be non-object");for(const e in t)Ir(t,e)&&(A[e]=t[e])}}return A},cr=A=>{let e=0;for(let t=0,i=A.length;t<i;t++)e+=A[t].length;const t=new Uint8Array(e);for(let e=0,i=0,r=A.length;e<r;e++){let r=A[e];t.set(r,i),i+=r.length}return t};let Cr=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(A){Cr=!1}const fr=new Uint8Array(256);for(let A=0;A<256;A++)fr[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;fr[254]=fr[254]=1;var Er=A=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);let e,t,i,r,a,n=A.length,s=0;for(r=0;r<n;r++)t=A.charCodeAt(r),55296==(64512&t)&&r+1<n&&(i=A.charCodeAt(r+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),r++)),s+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(s),a=0,r=0;a<s;r++)t=A.charCodeAt(r),55296==(64512&t)&&r+1<n&&(i=A.charCodeAt(r+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),r++)),t<128?e[a++]=t:t<2048?(e[a++]=192|t>>>6,e[a++]=128|63&t):t<65536?(e[a++]=224|t>>>12,e[a++]=128|t>>>6&63,e[a++]=128|63&t):(e[a++]=240|t>>>18,e[a++]=128|t>>>12&63,e[a++]=128|t>>>6&63,e[a++]=128|63&t);return e},Qr=(A,e)=>{const t=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));let i,r;const a=new Array(2*t);for(r=0,i=0;i<t;){let e=A[i++];if(e<128){a[r++]=e;continue}let n=fr[e];if(n>4)a[r++]=65533,i+=n-1;else{for(e&=2===n?31:3===n?15:7;n>1&&i<t;)e=e<<6|63&A[i++],n--;n>1?a[r++]=65533:e<65536?a[r++]=e:(e-=65536,a[r++]=55296|e>>10&1023,a[r++]=56320|1023&e)}}return((A,e)=>{if(e<65534&&A.subarray&&Cr)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(A[i]);return t})(a,r)},dr=(A,e)=>{(e=e||A.length)>A.length&&(e=A.length);let t=e-1;for(;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+fr[A[t]]>e?t:e};var ur=function(){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};const wr=Object.prototype.toString,{Z_NO_FLUSH:pr,Z_SYNC_FLUSH:mr,Z_FULL_FLUSH:yr,Z_FINISH:Dr,Z_OK:kr,Z_STREAM_END:br,Z_DEFAULT_COMPRESSION:_r,Z_DEFAULT_STRATEGY:Sr,Z_DEFLATED:xr}=ci;function Fr(A){this.options=Br({level:_r,method:xr,chunkSize:16384,windowBits:15,memLevel:8,strategy:Sr},A||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ur,this.strm.avail_out=0;let t=hr.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==kr)throw new Error(Bi[t]);if(e.header&&hr.deflateSetHeader(this.strm,e.header),e.dictionary){let A;if(A="string"==typeof e.dictionary?Er(e.dictionary):"[object ArrayBuffer]"===wr.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,t=hr.deflateSetDictionary(this.strm,A),t!==kr)throw new Error(Bi[t]);this._dict_set=!0}}Fr.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize;let r,a;if(this.ended)return!1;for(a=e===~~e?e:!0===e?Dr:pr,"string"==typeof A?t.input=Er(A):"[object ArrayBuffer]"===wr.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;)if(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(a===mr||a===yr)&&t.avail_out<=6)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else{if(r=hr.deflate(t,a),r===br)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),r=hr.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===kr;if(0!==t.avail_out){if(a>0&&t.next_out>0)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else if(0===t.avail_in)break}else this.onData(t.output)}return!0},Fr.prototype.onData=function(A){this.chunks.push(A)},Fr.prototype.onEnd=function(A){A===kr&&(this.result=cr(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};const Gr=16209;var Ur=function(A,e){let t,i,r,a,n,s,o,g,l,h,I,B,c,C,f,E,Q,d,u,w,p,m,y,D;const k=A.state;t=A.next_in,y=A.input,i=t+(A.avail_in-5),r=A.next_out,D=A.output,a=r-(e-A.avail_out),n=r+(A.avail_out-257),s=k.dmax,o=k.wsize,g=k.whave,l=k.wnext,h=k.window,I=k.hold,B=k.bits,c=k.lencode,C=k.distcode,f=(1<<k.lenbits)-1,E=(1<<k.distbits)-1;A:do{B<15&&(I+=y[t++]<<B,B+=8,I+=y[t++]<<B,B+=8),Q=c[I&f];e:for(;;){if(d=Q>>>24,I>>>=d,B-=d,d=Q>>>16&255,0===d)D[r++]=65535&Q;else{if(!(16&d)){if(64&d){if(32&d){k.mode=16191;break A}A.msg="invalid literal/length code",k.mode=Gr;break A}Q=c[(65535&Q)+(I&(1<<d)-1)];continue e}for(u=65535&Q,d&=15,d&&(B<d&&(I+=y[t++]<<B,B+=8),u+=I&(1<<d)-1,I>>>=d,B-=d),B<15&&(I+=y[t++]<<B,B+=8,I+=y[t++]<<B,B+=8),Q=C[I&E];;){if(d=Q>>>24,I>>>=d,B-=d,d=Q>>>16&255,16&d){if(w=65535&Q,d&=15,B<d&&(I+=y[t++]<<B,B+=8,B<d&&(I+=y[t++]<<B,B+=8)),w+=I&(1<<d)-1,w>s){A.msg="invalid distance too far back",k.mode=Gr;break A}if(I>>>=d,B-=d,d=r-a,w>d){if(d=w-d,d>g&&k.sane){A.msg="invalid distance too far back",k.mode=Gr;break A}if(p=0,m=h,0===l){if(p+=o-d,d<u){u-=d;do{D[r++]=h[p++]}while(--d);p=r-w,m=D}}else if(l<d){if(p+=o+l-d,d-=l,d<u){u-=d;do{D[r++]=h[p++]}while(--d);if(p=0,l<u){d=l,u-=d;do{D[r++]=h[p++]}while(--d);p=r-w,m=D}}}else if(p+=l-d,d<u){u-=d;do{D[r++]=h[p++]}while(--d);p=r-w,m=D}for(;u>2;)D[r++]=m[p++],D[r++]=m[p++],D[r++]=m[p++],u-=3;u&&(D[r++]=m[p++],u>1&&(D[r++]=m[p++]))}else{p=r-w;do{D[r++]=D[p++],D[r++]=D[p++],D[r++]=D[p++],u-=3}while(u>2);u&&(D[r++]=D[p++],u>1&&(D[r++]=D[p++]))}break}if(64&d){A.msg="invalid distance code",k.mode=Gr;break A}Q=C[(65535&Q)+(I&(1<<d)-1)]}}break}}while(t<i&&r<n);u=B>>3,t-=u,B-=u<<3,I&=(1<<B)-1,A.next_in=t,A.next_out=r,A.avail_in=t<i?i-t+5:5-(t-i),A.avail_out=r<n?n-r+257:257-(r-n),k.hold=I,k.bits=B};const Rr=15,Mr=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]),Lr=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]),vr=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]),Nr=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]);var Tr=(A,e,t,i,r,a,n,s)=>{const o=s.bits;let g,l,h,I,B,c,C=0,f=0,E=0,Q=0,d=0,u=0,w=0,p=0,m=0,y=0,D=null;const k=new Uint16Array(16),b=new Uint16Array(16);let _,S,x,F=null;for(C=0;C<=Rr;C++)k[C]=0;for(f=0;f<i;f++)k[e[t+f]]++;for(d=o,Q=Rr;Q>=1&&0===k[Q];Q--);if(d>Q&&(d=Q),0===Q)return r[a++]=20971520,r[a++]=20971520,s.bits=1,0;for(E=1;E<Q&&0===k[E];E++);for(d<E&&(d=E),p=1,C=1;C<=Rr;C++)if(p<<=1,p-=k[C],p<0)return-1;if(p>0&&(0===A||1!==Q))return-1;for(b[1]=0,C=1;C<Rr;C++)b[C+1]=b[C]+k[C];for(f=0;f<i;f++)0!==e[t+f]&&(n[b[e[t+f]]++]=f);if(0===A?(D=F=n,c=20):1===A?(D=Mr,F=Lr,c=257):(D=vr,F=Nr,c=0),y=0,f=0,C=E,B=a,u=d,w=0,h=-1,m=1<<d,I=m-1,1===A&&m>852||2===A&&m>592)return 1;for(;;){_=C-w,n[f]+1<c?(S=0,x=n[f]):n[f]>=c?(S=F[n[f]-c],x=D[n[f]-c]):(S=96,x=0),g=1<<C-w,l=1<<u,E=l;do{l-=g,r[B+(y>>w)+l]=_<<24|S<<16|x}while(0!==l);for(g=1<<C-1;y&g;)g>>=1;if(0!==g?(y&=g-1,y+=g):y=0,f++,0==--k[C]){if(C===Q)break;C=e[t+n[f]]}if(C>d&&(y&I)!==h){for(0===w&&(w=d),B+=E,u=C-w,p=1<<u;u+w<Q&&(p-=k[u+w],!(p<=0));)u++,p<<=1;if(m+=1<<u,1===A&&m>852||2===A&&m>592)return 1;h=y&I,r[h]=d<<24|u<<16|B-a}}return 0!==y&&(r[B+y]=C-w<<24|64<<16),s.bits=d,0};const{Z_FINISH:qr,Z_BLOCK:Or,Z_TREES:Jr,Z_OK:Hr,Z_STREAM_END:Yr,Z_NEED_DICT:zr,Z_STREAM_ERROR:Pr,Z_DATA_ERROR:Kr,Z_MEM_ERROR:Vr,Z_BUF_ERROR:Zr,Z_DEFLATED:Xr}=ci,Wr=16180,jr=16190,$r=16191,Aa=16192,ea=16194,ta=16199,ia=16200,ra=16206,aa=16209,na=A=>(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24);function sa(){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 oa=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.mode<Wr||e.mode>16211?1:0},ga=A=>{if(oa(A))return Pr;const e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=Wr,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,Hr},la=A=>{if(oa(A))return Pr;const e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,ga(A)},ha=(A,e)=>{let t;if(oa(A))return Pr;const i=A.state;return e<0?(t=0,e=-e):(t=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Pr:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,la(A))},Ia=(A,e)=>{if(!A)return Pr;const t=new sa;A.state=t,t.strm=A,t.window=null,t.mode=Wr;const i=ha(A,e);return i!==Hr&&(A.state=null),i};let Ba,ca,Ca=!0;const fa=A=>{if(Ca){Ba=new Int32Array(512),ca=new Int32Array(32);let e=0;for(;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(Tr(1,A.lens,0,288,Ba,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;Tr(2,A.lens,0,32,ca,0,A.work,{bits:5}),Ca=!1}A.lencode=Ba,A.lenbits=9,A.distcode=ca,A.distbits=5},Ea=(A,e,t,i)=>{let r;const a=A.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),i>=a.wsize?(a.window.set(e.subarray(t-a.wsize,t),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>i&&(r=i),a.window.set(e.subarray(t-i,t-i+r),a.wnext),(i-=r)?(a.window.set(e.subarray(t-i,t),0),a.wnext=i,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0};var Qa={inflateReset:la,inflateReset2:ha,inflateResetKeep:ga,inflateInit:A=>Ia(A,15),inflateInit2:Ia,inflate:(A,e)=>{let t,i,r,a,n,s,o,g,l,h,I,B,c,C,f,E,Q,d,u,w,p,m,y=0;const D=new Uint8Array(4);let k,b;const _=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(oa(A)||!A.output||!A.input&&0!==A.avail_in)return Pr;t=A.state,t.mode===$r&&(t.mode=Aa),n=A.next_out,r=A.output,o=A.avail_out,a=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,h=s,I=o,m=Hr;A:for(;;)switch(t.mode){case Wr:if(0===t.wrap){t.mode=Aa;break}for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(2&t.wrap&&35615===g){0===t.wbits&&(t.wbits=15),t.check=0,D[0]=255&g,D[1]=g>>>8&255,t.check=Ii(t.check,D,2,0),g=0,l=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&g)<<8)+(g>>8))%31){A.msg="incorrect header check",t.mode=aa;break}if((15&g)!==Xr){A.msg="unknown compression method",t.mode=aa;break}if(g>>>=4,l-=4,p=8+(15&g),0===t.wbits&&(t.wbits=p),p>15||p>t.wbits){A.msg="invalid window size",t.mode=aa;break}t.dmax=1<<t.wbits,t.flags=0,A.adler=t.check=1,t.mode=512&g?16189:$r,g=0,l=0;break;case 16181:for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(t.flags=g,(255&t.flags)!==Xr){A.msg="unknown compression method",t.mode=aa;break}if(57344&t.flags){A.msg="unknown header flags set",t.mode=aa;break}t.head&&(t.head.text=g>>8&1),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=Ii(t.check,D,2,0)),g=0,l=0,t.mode=16182;case 16182:for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.head&&(t.head.time=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,t.check=Ii(t.check,D,4,0)),g=0,l=0,t.mode=16183;case 16183:for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.head&&(t.head.xflags=255&g,t.head.os=g>>8),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=Ii(t.check,D,2,0)),g=0,l=0,t.mode=16184;case 16184:if(1024&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.length=g,t.head&&(t.head.extra_len=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=Ii(t.check,D,2,0)),g=0,l=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&t.flags&&(B=t.length,B>s&&(B=s),B&&(t.head&&(p=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(a,a+B),p)),512&t.flags&&4&t.wrap&&(t.check=Ii(t.check,i,B,a)),s-=B,a+=B,t.length-=B),t.length))break A;t.length=0,t.mode=16186;case 16186:if(2048&t.flags){if(0===s)break A;B=0;do{p=i[a+B++],t.head&&p&&t.length<65536&&(t.head.name+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=Ii(t.check,i,B,a)),s-=B,a+=B,p)break A}else t.head&&(t.head.name=null);t.length=0,t.mode=16187;case 16187:if(4096&t.flags){if(0===s)break A;B=0;do{p=i[a+B++],t.head&&p&&t.length<65536&&(t.head.comment+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=Ii(t.check,i,B,a)),s-=B,a+=B,p)break A}else t.head&&(t.head.comment=null);t.mode=16188;case 16188:if(512&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(4&t.wrap&&g!==(65535&t.check)){A.msg="header crc mismatch",t.mode=aa;break}g=0,l=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=$r;break;case 16189:for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}A.adler=t.check=na(g),g=0,l=0,t.mode=jr;case jr:if(0===t.havedict)return A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,zr;A.adler=t.check=1,t.mode=$r;case $r:if(e===Or||e===Jr)break A;case Aa:if(t.last){g>>>=7&l,l-=7&l,t.mode=ra;break}for(;l<3;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}switch(t.last=1&g,g>>>=1,l-=1,3&g){case 0:t.mode=16193;break;case 1:if(fa(t),t.mode=ta,e===Jr){g>>>=2,l-=2;break A}break;case 2:t.mode=16196;break;case 3:A.msg="invalid block type",t.mode=aa}g>>>=2,l-=2;break;case 16193:for(g>>>=7&l,l-=7&l;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if((65535&g)!=(g>>>16^65535)){A.msg="invalid stored block lengths",t.mode=aa;break}if(t.length=65535&g,g=0,l=0,t.mode=ea,e===Jr)break A;case ea:t.mode=16195;case 16195:if(B=t.length,B){if(B>s&&(B=s),B>o&&(B=o),0===B)break A;r.set(i.subarray(a,a+B),n),s-=B,a+=B,o-=B,n+=B,t.length-=B;break}t.mode=$r;break;case 16196:for(;l<14;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(t.nlen=257+(31&g),g>>>=5,l-=5,t.ndist=1+(31&g),g>>>=5,l-=5,t.ncode=4+(15&g),g>>>=4,l-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=aa;break}t.have=0,t.mode=16197;case 16197:for(;t.have<t.ncode;){for(;l<3;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.lens[_[t.have++]]=7&g,g>>>=3,l-=3}for(;t.have<19;)t.lens[_[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},m=Tr(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid code lengths set",t.mode=aa;break}t.have=0,t.mode=16198;case 16198:for(;t.have<t.nlen+t.ndist;){for(;y=t.lencode[g&(1<<t.lenbits)-1],f=y>>>24,E=y>>>16&255,Q=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(Q<16)g>>>=f,l-=f,t.lens[t.have++]=Q;else{if(16===Q){for(b=f+2;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(g>>>=f,l-=f,0===t.have){A.msg="invalid bit length repeat",t.mode=aa;break}p=t.lens[t.have-1],B=3+(3&g),g>>>=2,l-=2}else if(17===Q){for(b=f+3;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=f,l-=f,p=0,B=3+(7&g),g>>>=3,l-=3}else{for(b=f+7;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=f,l-=f,p=0,B=11+(127&g),g>>>=7,l-=7}if(t.have+B>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=aa;break}for(;B--;)t.lens[t.have++]=p}}if(t.mode===aa)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=aa;break}if(t.lenbits=9,k={bits:t.lenbits},m=Tr(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid literal/lengths set",t.mode=aa;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},m=Tr(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,m){A.msg="invalid distances set",t.mode=aa;break}if(t.mode=ta,e===Jr)break A;case ta:t.mode=ia;case ia:if(s>=6&&o>=258){A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,Ur(A,I),n=A.next_out,r=A.output,o=A.avail_out,a=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,t.mode===$r&&(t.back=-1);break}for(t.back=0;y=t.lencode[g&(1<<t.lenbits)-1],f=y>>>24,E=y>>>16&255,Q=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(E&&!(240&E)){for(d=f,u=E,w=Q;y=t.lencode[w+((g&(1<<d+u)-1)>>d)],f=y>>>24,E=y>>>16&255,Q=65535&y,!(d+f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=d,l-=d,t.back+=d}if(g>>>=f,l-=f,t.back+=f,t.length=Q,0===E){t.mode=16205;break}if(32&E){t.back=-1,t.mode=$r;break}if(64&E){A.msg="invalid literal/length code",t.mode=aa;break}t.extra=15&E,t.mode=16201;case 16201:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.length+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;y=t.distcode[g&(1<<t.distbits)-1],f=y>>>24,E=y>>>16&255,Q=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(!(240&E)){for(d=f,u=E,w=Q;y=t.distcode[w+((g&(1<<d+u)-1)>>d)],f=y>>>24,E=y>>>16&255,Q=65535&y,!(d+f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=d,l-=d,t.back+=d}if(g>>>=f,l-=f,t.back+=f,64&E){A.msg="invalid distance code",t.mode=aa;break}t.offset=Q,t.extra=15&E,t.mode=16203;case 16203:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.offset+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=aa;break}t.mode=16204;case 16204:if(0===o)break A;if(B=I-o,t.offset>B){if(B=t.offset-B,B>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=aa;break}B>t.wnext?(B-=t.wnext,c=t.wsize-B):c=t.wnext-B,B>t.length&&(B=t.length),C=t.window}else C=r,c=n-t.offset,B=t.length;B>o&&(B=o),o-=B,t.length-=B;do{r[n++]=C[c++]}while(--B);0===t.length&&(t.mode=ia);break;case 16205:if(0===o)break A;r[n++]=t.length,o--,t.mode=ia;break;case ra:if(t.wrap){for(;l<32;){if(0===s)break A;s--,g|=i[a++]<<l,l+=8}if(I-=o,A.total_out+=I,t.total+=I,4&t.wrap&&I&&(A.adler=t.check=t.flags?Ii(t.check,r,I,n-I):li(t.check,r,I,n-I)),I=o,4&t.wrap&&(t.flags?g:na(g))!==t.check){A.msg="incorrect data check",t.mode=aa;break}g=0,l=0}t.mode=16207;case 16207:if(t.wrap&&t.flags){for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(4&t.wrap&&g!==(4294967295&t.total)){A.msg="incorrect length check",t.mode=aa;break}g=0,l=0}t.mode=16208;case 16208:m=Yr;break A;case aa:m=Kr;break A;case 16210:return Vr;default:return Pr}return A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,(t.wsize||I!==A.avail_out&&t.mode<aa&&(t.mode<ra||e!==qr))&&Ea(A,A.output,A.next_out,I-A.avail_out),h-=A.avail_in,I-=A.avail_out,A.total_in+=h,A.total_out+=I,t.total+=I,4&t.wrap&&I&&(A.adler=t.check=t.flags?Ii(t.check,r,I,A.next_out-I):li(t.check,r,I,A.next_out-I)),A.data_type=t.bits+(t.last?64:0)+(t.mode===$r?128:0)+(t.mode===ta||t.mode===ea?256:0),(0===h&&0===I||e===qr)&&m===Hr&&(m=Zr),m},inflateEnd:A=>{if(oa(A))return Pr;let e=A.state;return e.window&&(e.window=null),A.state=null,Hr},inflateGetHeader:(A,e)=>{if(oa(A))return Pr;const t=A.state;return 2&t.wrap?(t.head=e,e.done=!1,Hr):Pr},inflateSetDictionary:(A,e)=>{const t=e.length;let i,r,a;return oa(A)?Pr:(i=A.state,0!==i.wrap&&i.mode!==jr?Pr:i.mode===jr&&(r=1,r=li(r,e,t,0),r!==i.check)?Kr:(a=Ea(A,e,t,t),a?(i.mode=16210,Vr):(i.havedict=1,Hr)))},inflateInfo:"pako inflate (from Nodeca project)"};var da=function(){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};const ua=Object.prototype.toString,{Z_NO_FLUSH:wa,Z_FINISH:pa,Z_OK:ma,Z_STREAM_END:ya,Z_NEED_DICT:Da,Z_STREAM_ERROR:ka,Z_DATA_ERROR:ba,Z_MEM_ERROR:_a}=ci;function Sa(A){this.options=Br({chunkSize:65536,windowBits:15,to:""},A||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(15&e.windowBits||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ur,this.strm.avail_out=0;let t=Qa.inflateInit2(this.strm,e.windowBits);if(t!==ma)throw new Error(Bi[t]);if(this.header=new da,Qa.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Er(e.dictionary):"[object ArrayBuffer]"===ua.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Qa.inflateSetDictionary(this.strm,e.dictionary),t!==ma)))throw new Error(Bi[t])}function xa(A,e){const t=new Sa(e);if(t.push(A),t.err)throw t.msg||Bi[t.err];return t.result}Sa.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let a,n,s;if(this.ended)return!1;for(n=e===~~e?e:!0===e?pa:wa,"[object ArrayBuffer]"===ua.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;){for(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),a=Qa.inflate(t,n),a===Da&&r&&(a=Qa.inflateSetDictionary(t,r),a===ma?a=Qa.inflate(t,n):a===ba&&(a=Da));t.avail_in>0&&a===ya&&t.state.wrap>0&&0!==A[t.next_in];)Qa.inflateReset(t),a=Qa.inflate(t,n);switch(a){case ka:case ba:case Da:case _a:return this.onEnd(a),this.ended=!0,!1}if(s=t.avail_out,t.next_out&&(0===t.avail_out||a===ya))if("string"===this.options.to){let A=dr(t.output,t.next_out),e=t.next_out-A,r=Qr(t.output,A);t.next_out=e,t.avail_out=i-e,e&&t.output.set(t.output.subarray(A,A+e),0),this.onData(r)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(a!==ma||0!==s){if(a===ya)return a=Qa.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===t.avail_in)break}}return!0},Sa.prototype.onData=function(A){this.chunks.push(A)},Sa.prototype.onEnd=function(A){A===ma&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=cr(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var Fa={Inflate:Sa,inflate:xa,inflateRaw:function(A,e){return(e=e||{}).raw=!0,xa(A,e)},ungzip:xa,constants:ci};const{Inflate:Ga,inflate:Ua,inflateRaw:Ra,ungzip:Ma}=Fa;var La=Ua;var va=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return La(new Uint8Array(A)).buffer}}});var Na,Ta=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){const e=new DataView(A),t=[];for(let i=0;i<A.byteLength;++i){let A=e.getInt8(i);if(A<0){const r=e.getUint8(i+1);A=-A;for(let e=0;e<=A;++e)t.push(r);i+=1}else{for(let r=0;r<=A;++r)t.push(e.getUint8(i+r+1));i+=A+1}}return new Uint8Array(t).buffer}}}),qa={exports:{}};Na=qa,
1
+ "use strict";var A=require("@deck.gl/core"),e=require("@deck.gl/geo-layers"),t=require("@deck.gl/layers"),i=require("@deck.gl/extensions"),r=require("chroma-js"),a=require("@loaders.gl/schema"),n=require("@loaders.gl/loader-utils"),s=require("@deck.gl/mesh-layers");function o(A,e,t,i){return new(t||(t=Promise))((function(r,a){function n(A){try{o(i.next(A))}catch(A){a(A)}}function s(A){try{o(i.throw(A))}catch(A){a(A)}}function o(A){var e;A.done?r(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(n,s)}o((i=i.apply(A,e||[])).next())}))}function g(A){return(e,...t)=>h(A,e,t)}function l(A,e){return g(C(A,e).get)}"function"==typeof SuppressedError&&SuppressedError;const{apply:h,construct:I,defineProperty:B,get:c,getOwnPropertyDescriptor:C,getPrototypeOf:f,has:E,ownKeys:d,set:Q,setPrototypeOf:u}=Reflect,{iterator:w,species:p,toStringTag:m,for:y}=Symbol,D=Object,{create:k,defineProperty:b,freeze:_,is:S}=D,x=Array.prototype[w],F=g(x),G=ArrayBuffer;l(G.prototype,"byteLength");const U="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null;U&&l(U.prototype,"byteLength");const R=f(Uint8Array);R.from;const M=R.prototype;M[w],g(M.keys),g(M.values),g(M.entries),g(M.set),g(M.reverse),g(M.fill),g(M.copyWithin),g(M.sort),g(M.slice),g(M.subarray),l(M,"buffer"),l(M,"byteOffset"),l(M,"length"),l(M,m);const L=Uint8Array,v=Uint16Array,N=Uint32Array,T=Float32Array,q=f([][w]()),O=g(q.next),J=g(function*(){}().next),H=f(q),z=g(DataView.prototype.getUint16),Y=WeakMap,P=Y.prototype,K=g(P.get),V=g(P.set),Z=new Y,X=k(null,{next:{value:function(){const A=K(Z,this);return O(A)}},[w]:{value:function(){return this}}});const W=new Y,j=k(H,{next:{value:function(){const A=K(W,this);return J(A)},writable:!0,configurable:!0}});for(const A of d(q))"next"!==A&&b(j,A,C(q,A));const $=new G(4),AA=new T($),eA=new N($),tA=new v(512),iA=new L(512);for(let A=0;A<256;++A){const e=A-127;e<-24?(tA[A]=0,tA[256|A]=32768,iA[A]=24,iA[256|A]=24):e<-14?(tA[A]=1024>>-e-14,tA[256|A]=1024>>-e-14|32768,iA[A]=-e-1,iA[256|A]=-e-1):e<=15?(tA[A]=e+15<<10,tA[256|A]=e+15<<10|32768,iA[A]=13,iA[256|A]=13):e<128?(tA[A]=31744,tA[256|A]=64512,iA[A]=24,iA[256|A]=24):(tA[A]=31744,tA[256|A]=64512,iA[A]=13,iA[256|A]=13)}const rA=new N(2048);for(let A=1;A<1024;++A){let e=A<<13,t=0;for(;!(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,rA[A]=e|t}for(let A=1024;A<2048;++A)rA[A]=939524096+(A-1024<<13);const aA=new N(64);for(let A=1;A<31;++A)aA[A]=A<<23;aA[31]=1199570944,aA[32]=2147483648;for(let A=33;A<63;++A)aA[A]=2147483648+(A-32<<23);aA[63]=3347054592;const nA=new v(64);for(let A=1;A<64;++A)32!==A&&(nA[A]=1024);function sA(A,e,...t){return function(A){const e=A>>10;return eA[0]=rA[nA[e]+(1023&A)]+aA[e],AA[0]}(z(A,e,...function(A){if(A[w]===x&&q.next===O)return A;const e=k(X);return V(Z,e,F(A)),e}(t)))}function oA(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var gA={exports:{}};function lA(A,e,t){const i=t&&t.debug||!1;i&&console.log("[xml-utils] getting "+e+" in "+A);const r="object"==typeof A?A.outer:A,a=r.slice(0,r.indexOf(">")+1),n=['"',"'"];for(let A=0;A<n.length;A++){const t=n[A],r=e+"\\="+t+"([^"+t+"]*)"+t;i&&console.log("[xml-utils] pattern:",r);const s=new RegExp(r).exec(a);if(i&&console.log("[xml-utils] match:",s),s)return s[1]}}gA.exports=lA,gA.exports.default=lA;var hA=oA(gA.exports),IA={exports:{}},BA={exports:{}},cA={exports:{}};function CA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index:-1}cA.exports=CA,cA.exports.default=CA;var fA=cA.exports,EA={exports:{}};function dA(A,e,t){const i=new RegExp(e).exec(A.slice(t));return i?t+i.index+i[0].length-1:-1}EA.exports=dA,EA.exports.default=dA;var QA=EA.exports,uA={exports:{}};function wA(A,e){const t=new RegExp(e,"g"),i=A.match(t);return i?i.length:0}uA.exports=wA,uA.exports.default=wA;var pA=uA.exports;const mA=fA,yA=QA,DA=pA;function kA(A,e,t){const i=t&&t.debug||!1,r=!(t&&!1===typeof t.nested),a=t&&t.startIndex||0;i&&console.log("[xml-utils] starting findTagByName with",e," and ",t);const n=mA(A,`<${e}[ \n>/]`,a);if(i&&console.log("[xml-utils] start:",n),-1===n)return;const s=A.slice(n+e.length);let o=yA(s,"^[^<]*[ /]>",0);const g=-1!==o&&"/"===s[o-1];if(i&&console.log("[xml-utils] selfClosing:",g),!1===g)if(r){let A=0,t=1,i=0;for(;-1!==(o=yA(s,"[ /]"+e+">",A));){const r=s.substring(A,o+1);if(t+=DA(r,"<"+e+"[ \n\t>]"),i+=DA(r,"</"+e+">"),i>=t)break;A=o}}else o=yA(s,"[ /]"+e+">",0);const l=n+e.length+o+1;if(i&&console.log("[xml-utils] end:",l),-1===l)return;const h=A.slice(n,l);let I;return I=g?null:h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:I,outer:h,start:n,end:l}}BA.exports=kA,BA.exports.default=kA;const bA=BA.exports;function _A(A,e,t){const i=[],r=t&&t.debug||!1,a=!t||"boolean"!=typeof t.nested||t.nested;let n,s=t&&t.startIndex||0;for(;n=bA(A,e,{debug:r,startIndex:s});)s=a?n.start+1+e.length:n.end,i.push(n);return r&&console.log("findTagsByName found",i.length,"tags"),i}IA.exports=_A,IA.exports.default=_A;var SA=oA(IA.exports);const xA={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},FA={};for(const A in xA)xA.hasOwnProperty(A)&&(FA[xA[A]]=parseInt(A,10));const GA=[FA.BitsPerSample,FA.ExtraSamples,FA.SampleFormat,FA.StripByteCounts,FA.StripOffsets,FA.StripRowCounts,FA.TileByteCounts,FA.TileOffsets,FA.SubIFDs],UA={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},RA={};for(const A in UA)UA.hasOwnProperty(A)&&(RA[UA[A]]=parseInt(A,10));const MA=0,LA=1,vA=2,NA=3,TA=5,qA=6,OA=8,JA=0,HA=1,zA=0,YA=1,PA=2,KA={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};const VA=new Map;function ZA(A,e){Array.isArray(A)||(A=[A]),A.forEach((A=>VA.set(A,e)))}function XA(A,e,t,i=1){return new(Object.getPrototypeOf(A).constructor)(e*t*i)}function WA(A,e,t){return(1-t)*A+t*e}function jA(A,e,t,i,r,a="nearest"){switch(a.toLowerCase()){case"nearest":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=XA(A,i,r);for(let o=0;o<r;++o){const r=Math.min(Math.round(n*o),t-1);for(let t=0;t<i;++t){const n=Math.min(Math.round(a*t),e-1),g=A[r*e+n];s[o*i+t]=g}}return s}))}(A,e,t,i,r);case"bilinear":case"linear":return function(A,e,t,i,r){const a=e/i,n=t/r;return A.map((A=>{const s=XA(A,i,r);for(let o=0;o<r;++o){const r=n*o,g=Math.floor(r),l=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const n=a*t,h=n%1,I=Math.floor(n),B=Math.min(Math.ceil(n),e-1),c=A[g*e+I],C=A[g*e+B],f=A[l*e+I],E=A[l*e+B],d=WA(WA(c,C,h),WA(f,E,h),r%1);s[o*i+t]=d}}return s}))}(A,e,t,i,r);default:throw new Error(`Unsupported resampling method: '${a}'`)}}function $A(A,e,t,i,r,a,n="nearest"){switch(n.toLowerCase()){case"nearest":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=XA(A,i,r,a);for(let g=0;g<r;++g){const r=Math.min(Math.round(s*g),t-1);for(let t=0;t<i;++t){const s=Math.min(Math.round(n*t),e-1);for(let n=0;n<a;++n){const l=A[r*e*a+s*a+n];o[g*i*a+t*a+n]=l}}}return o}(A,e,t,i,r,a);case"bilinear":case"linear":return function(A,e,t,i,r,a){const n=e/i,s=t/r,o=XA(A,i,r,a);for(let g=0;g<r;++g){const r=s*g,l=Math.floor(r),h=Math.min(Math.ceil(r),t-1);for(let t=0;t<i;++t){const s=n*t,I=s%1,B=Math.floor(s),c=Math.min(Math.ceil(s),e-1);for(let n=0;n<a;++n){const s=A[l*e*a+B*a+n],C=A[l*e*a+c*a+n],f=A[h*e*a+B*a+n],E=A[h*e*a+c*a+n],d=WA(WA(s,C,I),WA(f,E,I),r%1);o[g*i*a+t*a+n]=d}}}return o}(A,e,t,i,r,a);default:throw new Error(`Unsupported resampling method: '${n}'`)}}function Ae(A,e,t){let i=0;for(let r=e;r<t;++r)i+=A[r];return i}function ee(A,e,t){switch(A){case 1:if(e<=8)return new Uint8Array(t);if(e<=16)return new Uint16Array(t);if(e<=32)return new Uint32Array(t);break;case 2:if(8===e)return new Int8Array(t);if(16===e)return new Int16Array(t);if(32===e)return new Int32Array(t);break;case 3:switch(e){case 16:case 32:return new Float32Array(t);case 64:return new Float64Array(t)}}throw Error("Unsupported data format/bitsPerSample")}ZA([void 0,1],(()=>Promise.resolve().then((function(){return ot})).then((A=>A.default)))),ZA(5,(()=>Promise.resolve().then((function(){return ht})).then((A=>A.default)))),ZA(6,(()=>{throw new Error("old style JPEG compression is not supported.")})),ZA(7,(()=>Promise.resolve().then((function(){return Dt})).then((A=>A.default)))),ZA([8,32946],(()=>Promise.resolve().then((function(){return va})).then((A=>A.default)))),ZA(32773,(()=>Promise.resolve().then((function(){return Ta})).then((A=>A.default)))),ZA(34887,(()=>Promise.resolve().then((function(){return Va})).then((async A=>(await A.zstd.init(),A))).then((A=>A.default)))),ZA(50001,(()=>Promise.resolve().then((function(){return Za})).then((A=>A.default))));var te=class{constructor(A,e,t,i,r,a){this.fileDirectory=A,this.geoKeys=e,this.dataView=t,this.littleEndian=i,this.tiles=r?{}:null,this.isTiled=!A.StripOffsets;const n=A.PlanarConfiguration;if(this.planarConfiguration=void 0===n?1:n,1!==this.planarConfiguration&&2!==this.planarConfiguration)throw new Error("Invalid planar configuration.");this.source=a}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return void 0!==this.fileDirectory.SamplesPerPixel?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:void 0!==this.fileDirectory.RowsPerStrip?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(A){return this.isTiled||(A+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-A*this.getTileHeight()}getBytesPerPixel(){let A=0;for(let e=0;e<this.fileDirectory.BitsPerSample.length;++e)A+=this.getSampleByteSize(e);return A}getSampleByteSize(A){if(A>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${A} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[A]/8)}getReaderForSample(A){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1,t=this.fileDirectory.BitsPerSample[A];switch(e){case 1:if(t<=8)return DataView.prototype.getUint8;if(t<=16)return DataView.prototype.getUint16;if(t<=32)return DataView.prototype.getUint32;break;case 2:if(t<=8)return DataView.prototype.getInt8;if(t<=16)return DataView.prototype.getInt16;if(t<=32)return DataView.prototype.getInt32;break;case 3:switch(t){case 16:return function(A,e){return sA(this,A,e)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(A=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[A]:1}getBitsPerSample(A=0){return this.fileDirectory.BitsPerSample[A]}getArrayForSample(A,e){return ee(this.getSampleFormat(A),this.getBitsPerSample(A),e)}async getTileOrStrip(A,e,t,i,r){const a=Math.ceil(this.getWidth()/this.getTileWidth()),n=Math.ceil(this.getHeight()/this.getTileHeight());let s;const{tiles:o}=this;let g,l;1===this.planarConfiguration?s=e*a+A:2===this.planarConfiguration&&(s=t*a*n+e*a+A),this.isTiled?(g=this.fileDirectory.TileOffsets[s],l=this.fileDirectory.TileByteCounts[s]):(g=this.fileDirectory.StripOffsets[s],l=this.fileDirectory.StripByteCounts[s]);const h=(await this.source.fetch([{offset:g,length:l}],r))[0];let I;return null!==o&&o[s]?I=o[s]:(I=(async()=>{let A=await i.decode(this.fileDirectory,h);const t=this.getSampleFormat(),r=this.getBitsPerSample();return function(A,e){return(1!==A&&2!==A||!(e<=32)||e%8!=0)&&(3!==A||16!==e&&32!==e&&64!==e)}(t,r)&&(A=function(A,e,t,i,r,a,n){const s=new DataView(A),o=2===t?1:i,g=ee(e,r,2===t?n*a:n*a*i),l=parseInt("1".repeat(r),2);if(1===e){let A;A=1===t?i*r:r;let e=a*A;7&e&&(e=e+7&-8);for(let A=0;A<n;++A){const t=A*e;for(let e=0;e<a;++e){const i=t+e*o*r;for(let t=0;t<o;++t){const n=i+t*r,h=(A*a+e)*o+t,I=Math.floor(n/8),B=n%8;if(B+r<=8)g[h]=s.getUint8(I)>>8-r-B&l;else if(B+r<=16)g[h]=s.getUint16(I)>>16-r-B&l;else if(B+r<=24){const A=s.getUint16(I)<<8|s.getUint8(I+2);g[h]=A>>24-r-B&l}else g[h]=s.getUint32(I)>>32-r-B&l}}}}return g.buffer}(A,t,this.planarConfiguration,this.getSamplesPerPixel(),r,this.getTileWidth(),this.getBlockHeight(e))),A})(),null!==o&&(o[s]=I)),{x:A,y:e,sample:t,data:await I}}async _readRaster(A,e,t,i,r,a,n,s,o){const g=this.getTileWidth(),l=this.getTileHeight(),h=this.getWidth(),I=this.getHeight(),B=Math.max(Math.floor(A[0]/g),0),c=Math.min(Math.ceil(A[2]/g),Math.ceil(h/g)),C=Math.max(Math.floor(A[1]/l),0),f=Math.min(Math.ceil(A[3]/l),Math.ceil(I/l)),E=A[2]-A[0];let d=this.getBytesPerPixel();const Q=[],u=[];for(let A=0;A<e.length;++A)1===this.planarConfiguration?Q.push(Ae(this.fileDirectory.BitsPerSample,0,e[A])/8):Q.push(0),u.push(this.getReaderForSample(e[A]));const w=[],{littleEndian:p}=this;for(let a=C;a<f;++a)for(let n=B;n<c;++n){let s;1===this.planarConfiguration&&(s=this.getTileOrStrip(n,a,0,r,o));for(let B=0;B<e.length;++B){const c=B,C=e[B];2===this.planarConfiguration&&(d=this.getSampleByteSize(C),s=this.getTileOrStrip(n,a,C,r,o));const f=s.then((r=>{const a=r.data,n=new DataView(a),s=this.getBlockHeight(r.y),o=r.y*l,B=r.x*g,C=o+s,f=(r.x+1)*g,w=u[c],m=Math.min(s,s-(C-A[3]),I-o),y=Math.min(g,g-(f-A[2]),h-B);for(let r=Math.max(0,A[1]-o);r<m;++r)for(let a=Math.max(0,A[0]-B);a<y;++a){const s=(r*g+a)*d,l=w.call(n,s+Q[c],p);let h;i?(h=(r+o-A[1])*E*e.length+(a+B-A[0])*e.length+c,t[h]=l):(h=(r+o-A[1])*E+a+B-A[0],t[c][h]=l)}}));w.push(f)}}if(await Promise.all(w),a&&A[2]-A[0]!==a||n&&A[3]-A[1]!==n){let r;return r=i?$A(t,A[2]-A[0],A[3]-A[1],a,n,e.length,s):jA(t,A[2]-A[0],A[3]-A[1],a,n,s),r.width=a,r.height=n,r}return t.width=a||A[2]-A[0],t.height=n||A[3]-A[1],t}async readRasters({window:A,samples:e=[],interleave:t,pool:i=null,width:r,height:a,resampleMethod:n,fillValue:s,signal:o}={}){const g=A||[0,0,this.getWidth(),this.getHeight()];if(g[0]>g[2]||g[1]>g[3])throw new Error("Invalid subsets");const l=(g[2]-g[0])*(g[3]-g[1]),h=this.getSamplesPerPixel();if(e&&e.length){for(let A=0;A<e.length;++A)if(e[A]>=h)return Promise.reject(new RangeError(`Invalid sample index '${e[A]}'.`))}else for(let A=0;A<h;++A)e.push(A);let I;if(t){I=ee(this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,Math.max.apply(null,this.fileDirectory.BitsPerSample),l*e.length),s&&I.fill(s)}else{I=[];for(let A=0;A<e.length;++A){const t=this.getArrayForSample(e[A],l);Array.isArray(s)&&A<s.length?t.fill(s[A]):s&&!Array.isArray(s)&&t.fill(s),I.push(t)}}const B=i||await async function(A){const e=VA.get(A.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${A.Compression}`);return new(await e())(A)}(this.fileDirectory);return await this._readRaster(g,e,I,t,B,r,a,n,o)}async readRGB({window:A,interleave:e=!0,pool:t=null,width:i,height:r,resampleMethod:a,enableAlpha:n=!1,signal:s}={}){const o=A||[0,0,this.getWidth(),this.getHeight()];if(o[0]>o[2]||o[1]>o[3])throw new Error("Invalid subsets");const g=this.fileDirectory.PhotometricInterpretation;if(g===vA){let o=[0,1,2];if(this.fileDirectory.ExtraSamples!==JA&&n){o=[];for(let A=0;A<this.fileDirectory.BitsPerSample.length;A+=1)o.push(A)}return this.readRasters({window:A,interleave:e,samples:o,pool:t,width:i,height:r,resampleMethod:a,signal:s})}let l;switch(g){case MA:case LA:case NA:l=[0];break;case TA:l=[0,1,2,3];break;case qA:case OA:l=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const h={window:o,interleave:!0,samples:l,pool:t,width:i,height:r,resampleMethod:a,signal:s},{fileDirectory:I}=this,B=await this.readRasters(h),c=2**this.fileDirectory.BitsPerSample[0];let C;switch(g){case MA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=256-A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case LA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3);let a;for(let t=0,i=0;t<A.length;++t,i+=3)a=A[t]/e*256,r[i]=a,r[i+1]=a,r[i+2]=a;return r}(B,c);break;case NA:C=function(A,e){const{width:t,height:i}=A,r=new Uint8Array(t*i*3),a=e.length/3,n=e.length/3*2;for(let t=0,i=0;t<A.length;++t,i+=3){const s=A[t];r[i]=e[s]/65536*256,r[i+1]=e[s+a]/65536*256,r[i+2]=e[s+n]/65536*256}return r}(B,I.ColorMap);break;case TA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=4,t+=3){const r=A[e],a=A[e+1],n=A[e+2],s=A[e+3];i[t]=(255-r)/256*255*((255-s)/256),i[t+1]=(255-a)/256*255*((255-s)/256),i[t+2]=(255-n)/256*255*((255-s)/256)}return i}(B);break;case qA:C=function(A){const{width:e,height:t}=A,i=new Uint8ClampedArray(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){const r=A[e],a=A[e+1],n=A[e+2];i[t]=r+1.402*(n-128),i[t+1]=r-.34414*(a-128)-.71414*(n-128),i[t+2]=r+1.772*(a-128)}return i}(B);break;case OA:C=function(A){const{width:e,height:t}=A,i=new Uint8Array(e*t*3);for(let e=0,t=0;e<A.length;e+=3,t+=3){let r,a,n,s=(A[e+0]+16)/116,o=(A[e+1]<<24>>24)/500+s,g=s-(A[e+2]<<24>>24)/200;o=.95047*(o*o*o>.008856?o*o*o:(o-16/116)/7.787),s=1*(s*s*s>.008856?s*s*s:(s-16/116)/7.787),g=1.08883*(g*g*g>.008856?g*g*g:(g-16/116)/7.787),r=3.2406*o+-1.5372*s+-.4986*g,a=-.9689*o+1.8758*s+.0415*g,n=.0557*o+-.204*s+1.057*g,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,i[t]=255*Math.max(0,Math.min(1,r)),i[t+1]=255*Math.max(0,Math.min(1,a)),i[t+2]=255*Math.max(0,Math.min(1,n))}return i}(B);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){const A=new Uint8Array(C.length/3),e=new Uint8Array(C.length/3),t=new Uint8Array(C.length/3);for(let i=0,r=0;i<C.length;i+=3,++r)A[r]=C[i],e[r]=C[i+1],t[r]=C[i+2];C=[A,e,t]}return C.width=B.width,C.height=B.height,C}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const A=[];for(let e=0;e<this.fileDirectory.ModelTiepoint.length;e+=6)A.push({i:this.fileDirectory.ModelTiepoint[e],j:this.fileDirectory.ModelTiepoint[e+1],k:this.fileDirectory.ModelTiepoint[e+2],x:this.fileDirectory.ModelTiepoint[e+3],y:this.fileDirectory.ModelTiepoint[e+4],z:this.fileDirectory.ModelTiepoint[e+5]});return A}getGDALMetadata(A=null){const e={};if(!this.fileDirectory.GDAL_METADATA)return null;const t=this.fileDirectory.GDAL_METADATA;let i=SA(t,"Item");i=null===A?i.filter((A=>void 0===hA(A,"sample"))):i.filter((e=>Number(hA(e,"sample"))===A));for(let A=0;A<i.length;++A){const t=i[A];e[hA(t,"name")]=t.inner}return e}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const A=this.fileDirectory.GDAL_NODATA;return Number(A.substring(0,A.length-1))}getOrigin(){const A=this.fileDirectory.ModelTiepoint,e=this.fileDirectory.ModelTransformation;if(A&&6===A.length)return[A[3],A[4],A[5]];if(e)return[e[3],e[7],e[11]];throw new Error("The image does not have an affine transformation.")}getResolution(A=null){const e=this.fileDirectory.ModelPixelScale,t=this.fileDirectory.ModelTransformation;if(e)return[e[0],-e[1],e[2]];if(t)return 0===t[1]&&0===t[4]?[t[0],-t[5],t[10]]:[Math.sqrt(t[0]*t[0]+t[4]*t[4]),-Math.sqrt(t[1]*t[1]+t[5]*t[5]),t[10]];if(A){const[e,t,i]=A.getResolution();return[e*A.getWidth()/this.getWidth(),t*A.getHeight()/this.getHeight(),i*A.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return 1===this.geoKeys.GTRasterTypeGeoKey}getBoundingBox(A=!1){const e=this.getHeight(),t=this.getWidth();if(this.fileDirectory.ModelTransformation&&!A){const[A,i,r,a,n,s,o,g]=this.fileDirectory.ModelTransformation,l=[[0,0],[0,e],[t,0],[t,e]].map((([e,t])=>[a+A*e+i*t,g+n*e+s*t])),h=l.map((A=>A[0])),I=l.map((A=>A[1]));return[Math.min(...h),Math.min(...I),Math.max(...h),Math.max(...I)]}{const A=this.getOrigin(),i=this.getResolution(),r=A[0],a=A[1],n=r+i[0]*t,s=a+i[1]*e;return[Math.min(r,n),Math.min(a,s),Math.max(r,n),Math.max(a,s)]}}};class ie{constructor(A){this._dataView=new DataView(A)}get buffer(){return this._dataView.buffer}getUint64(A,e){const t=this.getUint32(A,e),i=this.getUint32(A+4,e);let r;if(e){if(r=t+2**32*i,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*t+i,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}getInt64(A,e){let t=0;const i=(128&this._dataView.getUint8(A+(e?7:0)))>0;let r=!0;for(let a=0;a<8;a++){let n=this._dataView.getUint8(A+(e?a:7-a));i&&(r?0!==n&&(n=255&~(n-1),r=!1):n=255&~n),t+=n*256**a}return i&&(t=-t),t}getUint8(A,e){return this._dataView.getUint8(A,e)}getInt8(A,e){return this._dataView.getInt8(A,e)}getUint16(A,e){return this._dataView.getUint16(A,e)}getInt16(A,e){return this._dataView.getInt16(A,e)}getUint32(A,e){return this._dataView.getUint32(A,e)}getInt32(A,e){return this._dataView.getInt32(A,e)}getFloat16(A,e){return sA(this._dataView,A,e)}getFloat32(A,e){return this._dataView.getFloat32(A,e)}getFloat64(A,e){return this._dataView.getFloat64(A,e)}}class re{constructor(A,e,t,i){this._dataView=new DataView(A),this._sliceOffset=e,this._littleEndian=t,this._bigTiff=i}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(A,e){return this.sliceOffset<=A&&this.sliceTop>=A+e}readUint8(A){return this._dataView.getUint8(A-this._sliceOffset,this._littleEndian)}readInt8(A){return this._dataView.getInt8(A-this._sliceOffset,this._littleEndian)}readUint16(A){return this._dataView.getUint16(A-this._sliceOffset,this._littleEndian)}readInt16(A){return this._dataView.getInt16(A-this._sliceOffset,this._littleEndian)}readUint32(A){return this._dataView.getUint32(A-this._sliceOffset,this._littleEndian)}readInt32(A){return this._dataView.getInt32(A-this._sliceOffset,this._littleEndian)}readFloat32(A){return this._dataView.getFloat32(A-this._sliceOffset,this._littleEndian)}readFloat64(A){return this._dataView.getFloat64(A-this._sliceOffset,this._littleEndian)}readUint64(A){const e=this.readUint32(A),t=this.readUint32(A+4);let i;if(this._littleEndian){if(i=e+2**32*t,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*e+t,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}readInt64(A){let e=0;const t=(128&this._dataView.getUint8(A+(this._littleEndian?7:0)))>0;let i=!0;for(let r=0;r<8;r++){let a=this._dataView.getUint8(A+(this._littleEndian?r:7-r));t&&(i?0!==a&&(a=255&~(a-1),i=!1):a=255&~a),e+=a*256**r}return t&&(e=-e),e}readOffset(A){return this._bigTiff?this.readUint64(A):this.readUint32(A)}}const ae="\r\n\r\n";function ne(A){if(void 0!==Object.fromEntries)return Object.fromEntries(A);const e={};for(const[t,i]of A)e[t.toLowerCase()]=i;return e}function se(A){return ne(A.split("\r\n").map((A=>{const e=A.split(":").map((A=>A.trim()));return e[0]=e[0].toLowerCase(),e})))}function oe(A){let e,t,i;return A&&([,e,t,i]=A.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),i=parseInt(i,10)),{start:e,end:t,total:i}}class ge{async fetch(A,e=void 0){return Promise.all(A.map((A=>this.fetchSlice(A,e))))}async fetchSlice(A){throw new Error(`fetching of slice ${A} not possible, not implemented`)}get fileSize(){return null}async close(){}}class le extends Map{constructor(A={}){if(super(),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=A.maxSize,this.maxAge=A.maxAge||Number.POSITIVE_INFINITY,this.onEviction=A.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(A){if("function"==typeof this.onEviction)for(const[e,t]of A)this.onEviction(e,t.value)}_deleteIfExpired(A,e){return"number"==typeof e.expiry&&e.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(A,e.value),this.delete(A))}_getOrDeleteIfExpired(A,e){if(!1===this._deleteIfExpired(A,e))return e.value}_getItemValue(A,e){return e.expiry?this._getOrDeleteIfExpired(A,e):e.value}_peek(A,e){const t=e.get(A);return this._getItemValue(A,t)}_set(A,e){this.cache.set(A,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(A,e){this.oldCache.delete(A),this._set(A,e)}*_entriesAscending(){for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield A)}}for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield A)}}get(A){if(this.cache.has(A)){const e=this.cache.get(A);return this._getItemValue(A,e)}if(this.oldCache.has(A)){const e=this.oldCache.get(A);if(!1===this._deleteIfExpired(A,e))return this._moveToRecent(A,e),e.value}}set(A,e,{maxAge:t=this.maxAge}={}){const i="number"==typeof t&&t!==Number.POSITIVE_INFINITY?Date.now()+t:void 0;return this.cache.has(A)?this.cache.set(A,{value:e,expiry:i}):this._set(A,{value:e,expiry:i}),this}has(A){return this.cache.has(A)?!this._deleteIfExpired(A,this.cache.get(A)):!!this.oldCache.has(A)&&!this._deleteIfExpired(A,this.oldCache.get(A))}peek(A){return this.cache.has(A)?this._peek(A,this.cache):this.oldCache.has(A)?this._peek(A,this.oldCache):void 0}delete(A){const e=this.cache.delete(A);return e&&this._size--,this.oldCache.delete(A)||e}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const e=[...this._entriesAscending()],t=e.length-A;t<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(t>0&&this._emitEvictions(e.slice(0,t)),this.oldCache=new Map(e.slice(t)),this.cache=new Map,this._size=0),this.maxSize=A}*keys(){for(const[A]of this)yield A}*values(){for(const[,A]of this)yield A}*[Symbol.iterator](){for(const A of this.cache){const[e,t]=A;!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}for(const A of this.oldCache){const[e,t]=A;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,t)&&(yield[e,t.value])}}}*entriesDescending(){let A=[...this.cache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}A=[...this.oldCache];for(let e=A.length-1;e>=0;--e){const t=A[e],[i,r]=t;if(!this.cache.has(i)){!1===this._deleteIfExpired(i,r)&&(yield[i,r.value])}}}*entriesAscending(){for(const[A,e]of this._entriesAscending())yield[A,e.value]}get size(){if(!this._size)return this.oldCache.size;let A=0;for(const e of this.oldCache.keys())this.cache.has(e)||A++;return Math.min(this._size+A,this.maxSize)}entries(){return this.entriesAscending()}forEach(A,e=this){for(const[t,i]of this.entriesAscending())A.call(e,i,t,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class he extends Error{constructor(A){super(A),Error.captureStackTrace&&Error.captureStackTrace(this,he),this.name="AbortError"}}class Ie extends Error{constructor(A,e){super(e),this.errors=A,this.message=e,this.name="AggregateError"}}const Be=Ie;class ce{constructor(A,e,t=null){this.offset=A,this.length=e,this.data=t}get top(){return this.offset+this.length}}class Ce{constructor(A,e,t){this.offset=A,this.length=e,this.blockIds=t}}class fe extends ge{constructor(A,{blockSize:e=65536,cacheSize:t=100}={}){super(),this.source=A,this.blockSize=e,this.blockCache=new le({maxSize:t,onEviction:(A,e)=>{this.evictedBlocks.set(A,e)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(A,e){const t=[],i=[],r=[];this.evictedBlocks.clear();for(const{offset:e,length:a}of A){let A=e+a;const{fileSize:n}=this;null!==n&&(A=Math.min(A,n));for(let a=Math.floor(e/this.blockSize)*this.blockSize;a<A;a+=this.blockSize){const A=Math.floor(a/this.blockSize);this.blockCache.has(A)||this.blockRequests.has(A)||(this.blockIdsToFetch.add(A),i.push(A)),this.blockRequests.has(A)&&t.push(this.blockRequests.get(A)),r.push(A)}}await async function(A){return new Promise((e=>setTimeout(e,A)))}(),this.fetchBlocks(e);const a=[];for(const A of i)this.blockRequests.has(A)&&a.push(this.blockRequests.get(A));await Promise.allSettled(t),await Promise.allSettled(a);const n=[],s=r.filter((A=>this.abortedBlockIds.has(A)||!this.blockCache.has(A)));if(s.forEach((A=>this.blockIdsToFetch.add(A))),s.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(const A of s){const e=this.blockRequests.get(A);if(!e)throw new Error(`Block ${A} is not in the block requests`);n.push(e)}await Promise.allSettled(n)}if(e&&e.aborted)throw new he("Request was aborted");const o=r.map((A=>this.blockCache.get(A)||this.evictedBlocks.get(A))),g=o.filter((A=>!A));if(g.length)throw new Be(g,"Request failed");const l=new Map(function(A,e){const t=Array.isArray(A)?A:Array.from(A),i=Array.isArray(e)?e:Array.from(e);return t.map(((A,e)=>[A,i[e]]))}(r,o));return this.readSliceData(A,l)}fetchBlocks(A){if(this.blockIdsToFetch.size>0){const e=this.groupBlocks(this.blockIdsToFetch),t=this.source.fetch(e,A);for(let i=0;i<e.length;++i){const r=e[i];for(const e of r.blockIds)this.blockRequests.set(e,(async()=>{try{const A=(await t)[i],r=e*this.blockSize,a=r-A.offset,n=Math.min(a+this.blockSize,A.data.byteLength),s=A.data.slice(a,n),o=new ce(r,s.byteLength,s,e);this.blockCache.set(e,o),this.abortedBlockIds.delete(e)}catch(t){if("AbortError"!==t.name)throw t;t.signal=A,this.blockCache.delete(e),this.abortedBlockIds.add(e)}finally{this.blockRequests.delete(e)}})())}this.blockIdsToFetch.clear()}}groupBlocks(A){const e=Array.from(A).sort(((A,e)=>A-e));if(0===e.length)return[];let t=[],i=null;const r=[];for(const A of e)null===i||i+1===A?(t.push(A),i=A):(r.push(new Ce(t[0]*this.blockSize,t.length*this.blockSize,t)),t=[A],i=A);return r.push(new Ce(t[0]*this.blockSize,t.length*this.blockSize,t)),r}readSliceData(A,e){return A.map((A=>{let t=A.offset+A.length;null!==this.fileSize&&(t=Math.min(this.fileSize,t));const i=Math.floor(A.offset/this.blockSize),r=Math.floor(t/this.blockSize),a=new ArrayBuffer(A.length),n=new Uint8Array(a);for(let a=i;a<=r;++a){const i=e.get(a),r=i.offset-A.offset;let s,o=0,g=0;r<0?o=-r:r>0&&(g=r),s=i.top-t<0?i.length-o:t-i.offset-o;const l=new Uint8Array(i.data,o,s);n.set(l,g)}return a}))}}class Ee{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(A){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class de{constructor(A){this.url=A}async request({headers:A,signal:e}={}){throw new Error("request is not implemented")}}class Qe extends Ee{constructor(A){super(),this.response=A}get status(){return this.response.status}getHeader(A){return this.response.headers.get(A)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class ue extends de{constructor(A,e){super(A),this.credentials=e}async request({headers:A,signal:e}={}){const t=await fetch(this.url,{headers:A,credentials:this.credentials,signal:e});return new Qe(t)}}class we extends Ee{constructor(A,e){super(),this.xhr=A,this.data=e}get status(){return this.xhr.status}getHeader(A){return this.xhr.getResponseHeader(A)}async getData(){return this.data}}class pe extends de{constructRequest(A,e){return new Promise(((t,i)=>{const r=new XMLHttpRequest;r.open("GET",this.url),r.responseType="arraybuffer";for(const[e,t]of Object.entries(A))r.setRequestHeader(e,t);r.onload=()=>{const A=r.response;t(new we(r,A))},r.onerror=i,r.onabort=()=>i(new he("Request aborted")),r.send(),e&&(e.aborted&&r.abort(),e.addEventListener("abort",(()=>r.abort())))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}var me={};class ye extends Ee{constructor(A,e){super(),this.response=A,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(A){return this.response.headers[A]}async getData(){return await this.dataPromise}}class De extends de{constructor(A){super(A),this.parsedUrl=me.parse(this.url),this.httpApi=(this.parsedUrl.protocol,me)}constructRequest(A,e){return new Promise(((t,i)=>{const r=this.httpApi.get({...this.parsedUrl,headers:A},(A=>{const e=new Promise((e=>{const t=[];A.on("data",(A=>{t.push(A)})),A.on("end",(()=>{const A=Buffer.concat(t).buffer;e(A)})),A.on("error",i)}));t(new ye(A,e))}));r.on("error",i),e&&(e.aborted&&r.destroy(new he("Request aborted")),e.addEventListener("abort",(()=>r.destroy(new he("Request aborted")))))}))}async request({headers:A,signal:e}={}){return await this.constructRequest(A,e)}}class ke extends ge{constructor(A,e,t,i){super(),this.client=A,this.headers=e,this.maxRanges=t,this.allowFullFile=i,this._fileSize=null}async fetch(A,e){return this.maxRanges>=A.length?this.fetchSlices(A,e):(this.maxRanges>0&&A.length,Promise.all(A.map((A=>this.fetchSlice(A,e)))))}async fetchSlices(A,e){const t=await this.client.request({headers:{...this.headers,Range:`bytes=${A.map((({offset:A,length:e})=>`${A}-${A+e}`)).join(",")}`},signal:e});if(t.ok){if(206===t.status){const{type:i,params:r}=function(A){const[e,...t]=A.split(";").map((A=>A.trim()));return{type:e,params:ne(t.map((A=>A.split("="))))}}(t.getHeader("content-type"));if("multipart/byteranges"===i){const A=function(A,e){let t=null;const i=new TextDecoder("ascii"),r=[],a=`--${e}`,n=`${a}--`;for(let e=0;e<10;++e)i.decode(new Uint8Array(A,e,a.length))===a&&(t=e);if(null===t)throw new Error("Could not find initial boundary");for(;t<A.byteLength;){const e=i.decode(new Uint8Array(A,t,Math.min(a.length+1024,A.byteLength-t)));if(0===e.length||e.startsWith(n))break;if(!e.startsWith(a))throw new Error("Part does not start with boundary");const s=e.substr(a.length+2);if(0===s.length)break;const o=s.indexOf(ae),g=se(s.substr(0,o)),{start:l,end:h,total:I}=oe(g["content-range"]),B=t+a.length+o+4,c=parseInt(h,10)+1-parseInt(l,10);r.push({headers:g,data:A.slice(B,B+c),offset:l,length:c,fileSize:I}),t=B+c+4}return r}(await t.getData(),r.boundary);return this._fileSize=A[0].fileSize||null,A}const a=await t.getData(),{start:n,end:s,total:o}=oe(t.getHeader("content-range"));this._fileSize=o||null;const g=[{data:a,offset:n,length:s-n}];if(A.length>1){const t=await Promise.all(A.slice(1).map((A=>this.fetchSlice(A,e))));return g.concat(t)}return g}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await t.getData();return this._fileSize=A.byteLength,[{data:A,offset:0,length:A.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(A,e){const{offset:t,length:i}=A,r=await this.client.request({headers:{...this.headers,Range:`bytes=${t}-${t+i}`},signal:e});if(r.ok){if(206===r.status){const A=await r.getData(),{total:e}=oe(r.getHeader("content-range"));return this._fileSize=e||null,{data:A,offset:t,length:i}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const A=await r.getData();return this._fileSize=A.byteLength,{data:A,offset:0,length:A.byteLength}}}throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function be(A,{blockSize:e,cacheSize:t}){return null===e?A:new fe(A,{blockSize:e,cacheSize:t})}function _e(A,{forceXHR:e=!1,...t}={}){return"function"!=typeof fetch||e?"undefined"!=typeof XMLHttpRequest?function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new pe(A);return be(new ke(a,e,t,i),r)}(A,t):function(A,{headers:e={},maxRanges:t=0,allowFullFile:i=!1,...r}={}){const a=new De(A);return be(new ke(a,e,t,i),r)}(A,t):function(A,{headers:e={},credentials:t,maxRanges:i=0,allowFullFile:r=!1,...a}={}){const n=new ue(A,t);return be(new ke(n,e,i,r),a)}(A,t)}class Se extends ge{constructor(A){super(),this.arrayBuffer=A}fetchSlice(A,e){if(e&&e.aborted)throw new he("Request aborted");return this.arrayBuffer.slice(A.offset,A.offset+A.length)}}function xe(A,e){let t=A.length-e,i=0;do{for(let t=e;t>0;t--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function Fe(A,e,t){let i=0,r=A.length;const a=r/t;for(;r>e;){for(let t=e;t>0;--t)A[i+e]+=A[i],++i;r-=e}const n=A.slice();for(let e=0;e<a;++e)for(let i=0;i<t;++i)A[t*e+i]=n[(t-i-1)*a+e]}class Ge{async decode(A,e){const t=await this.decodeBlock(e),i=A.Predictor||1;if(1!==i){const e=!A.StripOffsets;return function(A,e,t,i,r,a){if(!e||1===e)return A;for(let A=0;A<r.length;++A){if(r[A]%8!=0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(r[A]!==r[0])throw new Error("When decoding with predictor, all samples must have the same size.")}const n=r[0]/8,s=2===a?1:r.length;for(let a=0;a<i&&!(a*s*t*n>=A.byteLength);++a){let i;if(2===e){switch(r[0]){case 8:i=new Uint8Array(A,a*s*t*n,s*t*n);break;case 16:i=new Uint16Array(A,a*s*t*n,s*t*n/2);break;case 32:i=new Uint32Array(A,a*s*t*n,s*t*n/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}xe(i,s)}else 3===e&&(i=new Uint8Array(A,a*s*t*n,s*t*n),Fe(i,s,n))}return A}(t,i,e?A.TileWidth:A.ImageWidth,e?A.TileLength:A.RowsPerStrip||A.ImageLength,A.BitsPerSample,A.PlanarConfiguration)}return t}}function Ue(A){switch(A){case RA.BYTE:case RA.ASCII:case RA.SBYTE:case RA.UNDEFINED:return 1;case RA.SHORT:case RA.SSHORT:return 2;case RA.LONG:case RA.SLONG:case RA.FLOAT:case RA.IFD:return 4;case RA.RATIONAL:case RA.SRATIONAL:case RA.DOUBLE:case RA.LONG8:case RA.SLONG8:case RA.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${A}`)}}function Re(A,e,t,i){let r=null,a=null;const n=Ue(e);switch(e){case RA.BYTE:case RA.ASCII:case RA.UNDEFINED:r=new Uint8Array(t),a=A.readUint8;break;case RA.SBYTE:r=new Int8Array(t),a=A.readInt8;break;case RA.SHORT:r=new Uint16Array(t),a=A.readUint16;break;case RA.SSHORT:r=new Int16Array(t),a=A.readInt16;break;case RA.LONG:case RA.IFD:r=new Uint32Array(t),a=A.readUint32;break;case RA.SLONG:r=new Int32Array(t),a=A.readInt32;break;case RA.LONG8:case RA.IFD8:r=new Array(t),a=A.readUint64;break;case RA.SLONG8:r=new Array(t),a=A.readInt64;break;case RA.RATIONAL:r=new Uint32Array(2*t),a=A.readUint32;break;case RA.SRATIONAL:r=new Int32Array(2*t),a=A.readInt32;break;case RA.FLOAT:r=new Float32Array(t),a=A.readFloat32;break;case RA.DOUBLE:r=new Float64Array(t),a=A.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e!==RA.RATIONAL&&e!==RA.SRATIONAL)for(let e=0;e<t;++e)r[e]=a.call(A,i+e*n);else for(let e=0;e<t;e+=2)r[e]=a.call(A,i+e*n),r[e+1]=a.call(A,i+(e*n+4));return e===RA.ASCII?new TextDecoder("utf-8").decode(r):r}class Me{constructor(A,e,t){this.fileDirectory=A,this.geoKeyDirectory=e,this.nextIFDByteOffset=t}}class Le extends Error{constructor(A){super(`No image at index ${A}`),this.index=A}}class ve{async readRasters(A={}){const{window:e,width:t,height:i}=A;let{resX:r,resY:a,bbox:n}=A;const s=await this.getImage();let o=s;const g=await this.getImageCount(),l=s.getBoundingBox();if(e&&n)throw new Error('Both "bbox" and "window" passed.');if(t||i){if(e){const[A,t]=s.getOrigin(),[i,r]=s.getResolution();n=[A+e[0]*i,t+e[1]*r,A+e[2]*i,t+e[3]*r]}const A=n||l;if(t){if(r)throw new Error("Both width and resX passed");r=(A[2]-A[0])/t}if(i){if(a)throw new Error("Both width and resY passed");a=(A[3]-A[1])/i}}if(r||a){const A=[];for(let e=0;e<g;++e){const t=await this.getImage(e),{SubfileType:i,NewSubfileType:r}=t.fileDirectory;(0===e||2===i||1&r)&&A.push(t)}A.sort(((A,e)=>A.getWidth()-e.getWidth()));for(let e=0;e<A.length;++e){const t=A[e],i=(l[2]-l[0])/t.getWidth(),n=(l[3]-l[1])/t.getHeight();if(o=t,r&&r>i||a&&a>n)break}}let h=e;if(n){const[A,e]=s.getOrigin(),[t,i]=o.getResolution(s);h=[Math.round((n[0]-A)/t),Math.round((n[1]-e)/i),Math.round((n[2]-A)/t),Math.round((n[3]-e)/i)],h=[Math.min(h[0],h[2]),Math.min(h[1],h[3]),Math.max(h[0],h[2]),Math.max(h[1],h[3])]}return o.readRasters({...A,window:h})}}class Ne extends ve{constructor(A,e,t,i,r={}){super(),this.source=A,this.littleEndian=e,this.bigTiff=t,this.firstIFDOffset=i,this.cache=r.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(A,e){const t=this.bigTiff?4048:1024;return new re((await this.source.fetch([{offset:A,length:void 0!==e?e:t}]))[0],A,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(A){const e=this.bigTiff?20:12,t=this.bigTiff?8:2;let i=await this.getSlice(A);const r=this.bigTiff?i.readUint64(A):i.readUint16(A),a=r*e+(this.bigTiff?16:6);i.covers(A,a)||(i=await this.getSlice(A,a));const n={};let s=A+(this.bigTiff?8:2);for(let A=0;A<r;s+=e,++A){const A=i.readUint16(s),e=i.readUint16(s+2),t=this.bigTiff?i.readUint64(s+4):i.readUint32(s+4);let r,a;const o=Ue(e),g=s+(this.bigTiff?12:8);if(o*t<=(this.bigTiff?8:4))r=Re(i,e,t,g);else{const A=i.readOffset(g),a=Ue(e)*t;if(i.covers(A,a))r=Re(i,e,t,A);else{r=Re(await this.getSlice(A,a),e,t,A)}}a=1===t&&-1===GA.indexOf(A)&&e!==RA.RATIONAL&&e!==RA.SRATIONAL?r[0]:r,n[xA[A]]=a}const o=function(A){const e=A.GeoKeyDirectory;if(!e)return null;const t={};for(let i=4;i<=4*e[3];i+=4){const r=KA[e[i]],a=e[i+1]?xA[e[i+1]]:null,n=e[i+2],s=e[i+3];let o=null;if(a){if(o=A[a],null==o)throw new Error(`Could not get value of geoKey '${r}'.`);"string"==typeof o?o=o.substring(s,s+n-1):o.subarray&&(o=o.subarray(s,s+n),1===n&&(o=o[0]))}else o=s;t[r]=o}return t}(n),g=i.readOffset(A+t+e*r);return new Me(n,o,g)}async requestIFD(A){if(this.ifdRequests[A])return this.ifdRequests[A];if(0===A)return this.ifdRequests[A]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[A];if(!this.ifdRequests[A-1])try{this.ifdRequests[A-1]=this.requestIFD(A-1)}catch(e){if(e instanceof Le)throw new Le(A);throw e}return this.ifdRequests[A]=(async()=>{const e=await this.ifdRequests[A-1];if(0===e.nextIFDByteOffset)throw new Le(A);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[A]}async getImage(A=0){const e=await this.requestIFD(A);return new te(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let A=0,e=!0;for(;e;)try{await this.requestIFD(A),++A}catch(A){if(!(A instanceof Le))throw A;e=!1}return A}async getGhostValues(){const A=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e="GDAL_STRUCTURAL_METADATA_SIZE=";let t=await this.getSlice(A,130);if(e===Re(t,RA.ASCII,30,A)){const e=Re(t,RA.ASCII,130,A).split("\n")[0],i=Number(e.split("=")[1].split(" ")[0])+e.length;i>130&&(t=await this.getSlice(A,i));const r=Re(t,RA.ASCII,i,A);this.ghostValues={},r.split("\n").filter((A=>A.length>0)).map((A=>A.split("="))).forEach((([A,e])=>{this.ghostValues[A]=e}))}return this.ghostValues}static async fromSource(A,e,t){const i=(await A.fetch([{offset:0,length:1024}],t))[0],r=new ie(i),a=r.getUint16(0,0);let n;if(18761===a)n=!0;else{if(19789!==a)throw new TypeError("Invalid byte order value.");n=!1}const s=r.getUint16(2,n);let o;if(42===s)o=!1;else{if(43!==s)throw new TypeError("Invalid magic number.");o=!0;if(8!==r.getUint16(4,n))throw new Error("Unsupported offset byte-size.")}const g=o?r.getUint64(8,n):r.getUint32(4,n);return new Ne(A,n,o,g,e)}close(){return"function"==typeof this.source.close&&this.source.close()}}async function Te(A,e){return Ne.fromSource(function(A){return new Se(A)}(A),e)}const qe=Math.PI,Oe=qe/4,Je=180/qe;class He{constructor(A=257){this.gridSize=A;const e=A-1;if(e&e-1)throw new Error(`Expected grid size to be 2^n+1, got ${A}.`);this.numTriangles=e*e*2-2,this.numParentTriangles=this.numTriangles-e*e,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(4*this.numTriangles);for(let A=0;A<this.numTriangles;A++){let t=A+2,i=0,r=0,a=0,n=0,s=0,o=0;for(1&t?a=n=s=e:i=r=o=e;(t>>=1)>1;){const A=i+a>>1,e=r+n>>1;1&t?(a=i,n=r,i=s,r=o):(i=a,r=n,a=s,n=o),s=A,o=e}const g=4*A;this.coords[g+0]=i,this.coords[g+1]=r,this.coords[g+2]=a,this.coords[g+3]=n}}createTile(A){return new ze(A,this)}}class ze{constructor(A,e){const t=e.gridSize;if(A.length!==t*t)throw new Error(`Expected terrain data of length ${t*t} (${t} x ${t}), got ${A.length}.`);this.terrain=A,this.martini=e,this.errors=new Float32Array(A.length),this.update()}update(){const{numTriangles:A,numParentTriangles:e,coords:t,gridSize:i}=this.martini,{terrain:r,errors:a}=this;for(let n=A-1;n>=0;n--){const A=4*n,s=t[A+0],o=t[A+1],g=t[A+2],l=t[A+3],h=s+g>>1,I=o+l>>1,B=h+I-o,c=I+s-h,C=(r[o*i+s]+r[l*i+g])/2,f=I*i+h,E=Math.abs(C-r[f]);if(a[f]=Math.max(a[f],E),n<e){const A=(o+c>>1)*i+(s+B>>1),e=(l+c>>1)*i+(g+B>>1);a[f]=Math.max(a[f],a[A],a[e])}}}getMesh(A=0){const{gridSize:e,indices:t}=this.martini,{errors:i}=this;let r=0,a=0;const n=e-1;function s(n,o,g,l,h,I){const B=n+g>>1,c=o+l>>1;Math.abs(n-h)+Math.abs(o-I)>1&&i[c*e+B]>A?(s(h,I,n,o,B,c),s(g,l,h,I,B,c)):(t[o*e+n]=t[o*e+n]||++r,t[l*e+g]=t[l*e+g]||++r,t[I*e+h]=t[I*e+h]||++r,a++)}t.fill(0),s(0,0,n,n,n,0),s(n,n,0,0,0,n);const o=new Uint16Array(2*r),g=new Uint32Array(3*a);let l=0;function h(r,a,n,s,I,B){const c=r+n>>1,C=a+s>>1;if(Math.abs(r-I)+Math.abs(a-B)>1&&i[C*e+c]>A)h(I,B,r,a,c,C),h(n,s,I,B,c,C);else{const A=t[a*e+r]-1,i=t[s*e+n]-1,h=t[B*e+I]-1;o[2*A]=r,o[2*A+1]=a,o[2*i]=n,o[2*i+1]=s,o[2*h]=I,o[2*h+1]=B,g[l++]=A,g[l++]=i,g[l++]=h}}return h(0,0,n,n,n,0),h(n,n,0,0,0,n),{vertices:o,triangles:g}}}function Ye(A,e,t,i){const r=i?function(A,e){A.westIndices.sort(((A,t)=>e[3*A+1]-e[3*t+1])),A.eastIndices.sort(((A,t)=>e[3*t+1]-e[3*A+1])),A.southIndices.sort(((A,t)=>e[3*t]-e[3*A])),A.northIndices.sort(((A,t)=>e[3*A]-e[3*t]));const t=[];for(const e in A){const i=A[e];for(let A=0;A<i.length-1;A++)t.push([i[A],i[A+1]])}return t}(i,A.POSITION.value):function(A){var e,t;const i=[];for(let e=0;e<A.length;e+=3)i.push([A[e],A[e+1]]),i.push([A[e+1],A[e+2]]),i.push([A[e+2],A[e]]);i.sort(((A,e)=>Math.min(...A)-Math.min(...e)||Math.max(...A)-Math.max(...e)));const r=[];let a=0;for(;a<i.length;)i[a][0]===(null===(e=i[a+1])||void 0===e?void 0:e[1])&&i[a][1]===(null===(t=i[a+1])||void 0===t?void 0:t[0])?a+=2:(r.push(i[a]),a++);return r}(e),a=new A.POSITION.value.constructor(6*r.length),s=new A.TEXCOORD_0.value.constructor(4*r.length),o=new e.constructor(6*r.length);for(let e=0;e<r.length;e++){Pe({edge:r[e],edgeIndex:e,attributes:A,skirtHeight:t,newPosition:a,newTexcoord0:s,newTriangles:o})}A.POSITION.value=n.concatenateTypedArrays(A.POSITION.value,a),A.TEXCOORD_0.value=n.concatenateTypedArrays(A.TEXCOORD_0.value,s);return{attributes:A,triangles:e instanceof Array?e.concat(o):n.concatenateTypedArrays(e,o)}}function Pe({edge:A,edgeIndex:e,attributes:t,skirtHeight:i,newPosition:r,newTexcoord0:a,newTriangles:n}){const s=t.POSITION.value.length,o=2*e,g=2*e+1;r.set(t.POSITION.value.subarray(3*A[0],3*A[0]+3),3*o),r[3*o+2]=r[3*o+2]-i,r.set(t.POSITION.value.subarray(3*A[1],3*A[1]+3),3*g),r[3*g+2]=r[3*g+2]-i,a.set(t.TEXCOORD_0.value.subarray(2*A[0],2*A[0]+2),2*o),a.set(t.TEXCOORD_0.value.subarray(2*A[1],2*A[1]+2),2*g);const l=2*e*3;n[l]=A[0],n[l+1]=s/3+g,n[l+2]=A[1],n[l+3]=s/3+g,n[l+4]=A[0],n[l+5]=s/3+o}const Ke={type:"image",format:"uint8",useHeatMap:!0,useColorsBasedOnValues:!1,useAutoRange:!1,useDataForOpacity:!1,useSingleColor:!1,useColorClasses:!1,blurredTexture:!0,clipLow:null,clipHigh:null,multiplier:1,color:[255,0,255,255],colorScale:r.brewer.YlOrRd,colorScaleValueRange:[0,255],colorsBasedOnValues:null,colorClasses:null,alpha:100,useChannel:null,useChannelIndex:null,noDataValue:void 0,numOfChannels:void 0,nullColor:[0,0,0,0],unidentifiedColor:[0,0,0,0],clippedColor:[0,0,0,0],terrainColor:[133,133,133,255],terrainSkirtHeight:100,terrainMinValue:0,planarConfig:void 0};class Ve{constructor(){this.scale=(A,e,t,i,r)=>(A-e)*(r-i)/(t-e)+i}setUrl(A){return o(this,void 0,void 0,(function*(){const e=yield fetch(A),t=yield e.arrayBuffer(),i=yield Te(t),r=yield i.getImage(0);this.data=r}))}getMap(A,e,t){return o(this,void 0,void 0,(function*(){const i=Object.assign(Object.assign({},Ke),e);switch(i.type){case"image":return this.getBitmap(A,i);case"terrain":return this.getHeightmap(A,i,t);default:return null}}))}getHeightmap(A,e,t){return o(this,void 0,void 0,(function*(){var i;let r,n,s=[];"string"==typeof A?(yield this.setUrl(A),s=yield this.data.readRasters(),r=this.data.getWidth(),n=this.data.getHeight()):(s=A.rasters,r=A.width,n=A.height);const o=Object.assign({},e);let g=s[0];null!==(i=o.useChannelIndex)&&void 0!==i||(o.useChannelIndex=null==o.useChannel?null:o.useChannel-1),null!=e.useChannelIndex&&s[o.useChannelIndex]&&(g=s[o.useChannelIndex]);const l=new Float32Array((r+1)*(n+1)),h=g.length/(r*n);let I=null===e.useChannelIndex?0:e.useChannelIndex;for(let A=0,t=0;t<n;t++)for(let i=0;i<r;i++,A++){const i=e.noDataValue&&g[I]===e.noDataValue?e.terrainMinValue:g[I]*e.multiplier;l[A+t]=i,I+=h}for(let A=(r+1)*r,e=0;e<r;e++,A++)l[A]=l[A-r-1];for(let A=n,e=0;e<n+1;e++,A+=n+1)l[A]=l[A-1];const{terrainSkirtHeight:B}=e;let c;c=Ze(t,r,l);const{vertices:C}=c;let{triangles:f}=c,E=function(A,e,t,i,r){const a=t+1,n=A.length/2,s=new Float32Array(3*n),o=new Float32Array(2*n),[g,l,h,I]=r||[0,0,t,i],B=(h-g)/t,c=(I-l)/i;for(let r=0;r<n;r++){const n=A[2*r],l=A[2*r+1],h=l*a+n;s[3*r+0]=n*B+g,s[3*r+1]=-l*c+I,s[3*r+2]=e[h],o[2*r+0]=n/t,o[2*r+1]=l/i}return{POSITION:{value:s,size:3},TEXCOORD_0:{value:o,size:2}}}(C,l,r,n,A.bounds);const d=a.getMeshBoundingBox(E);if(B){const{attributes:A,triangles:e}=Ye(E,f,B);E=A,f=e}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:d},mode:4,indices:{value:Uint32Array.from(f),size:1},attributes:E}}))}getBitmap(A,e){return o(this,void 0,void 0,(function*(){var t;const i=Object.assign({},e);let r,a,n,s=[];"string"==typeof A?(yield this.setUrl(A),s=yield this.data.readRasters(),r=s.length,a=this.data.getWidth(),n=this.data.getHeight()):(s=A.rasters,r=s.length,a=A.width,n=A.height);const o=document.createElement("canvas");o.width=a,o.height=n;const g=o.getContext("2d"),l=g.createImageData(a,n);let h,I,B,c;const C=a*n*4;if(i.unidentifiedColor=this.getColorFromChromaType(i.unidentifiedColor),i.nullColor=this.getColorFromChromaType(i.nullColor),i.clippedColor=this.getColorFromChromaType(i.clippedColor),i.color=this.getColorFromChromaType(i.color),null!==(t=i.useChannelIndex)&&void 0!==t||(i.useChannelIndex=null===e.useChannel?null:e.useChannel-1),null==i.useChannelIndex){if(1===r){if(s[0].length/(a*n)==1){const A=s[0];i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C).forEach(((A,e)=>{l.data[e]=A}))}if(s[0].length/(a*n)==3){let A=0;for(let e=0;e<C;e+=4){const t=[s[0][A],s[0][A+1],s[0][A+2]],r=this.hasPixelsNoData(t,i.noDataValue)?i.nullColor:[...t,Math.floor(2.55*i.alpha)];[l.data[e],l.data[e+1],l.data[e+2],l.data[e+3]]=r,A+=3}}s[0].length/(a*n)==4&&s[0].forEach(((A,e)=>{l.data[e]=A}))}if(3===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}if(4===r){let A=0;for(let e=0;e<C;e+=4)h=s[0][A],I=s[1][A],B=s[2][A],c=Math.floor(2.55*i.alpha),l.data[e]=h,l.data[e+1]=I,l.data[e+2]=B,l.data[e+3]=c,A+=1}}else if(i.useChannelIndex<i.numOfChannels&&i.useChannelIndex>=0){let A=s[0];s[i.useChannelIndex]&&(A=s[i.useChannelIndex]),i.useAutoRange&&(i.colorScaleValueRange=this.getMinMax(A,i));this.getColorValue(A,i,C,i.numOfChannels).forEach(((A,e)=>{l.data[e]=A}))}else{console.log(`Defined channel(${e.useChannel}) or channel index(${e.useChannelIndex}) does not exist, choose a different channel or set the useChannel property to null if you want to visualize RGB(A) imagery`);this.getDefaultColor(C,i.nullColor).forEach(((A,e)=>{l.data[e]=A}))}g.putImageData(l,0,0);return o.toDataURL("image/png")}))}getMinMax(A,e){let t=e.maxValue?e.maxValue:Number.MIN_VALUE,i=e.minValue?e.minValue:Number.MAX_VALUE;for(let r=0;r<A.length;r+=1)void 0!==e.noDataValue&&A[r]===e.noDataValue||(A[r]>t&&(t=A[r]),A[r]<i&&(i=A[r]));return[i,t]}getColorValue(A,e,t,i=1){const a=r.scale(e.colorScale).domain(e.colorScaleValueRange);let n=null===e.useChannelIndex?0:e.useChannelIndex;const s=new Array(t),o=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([A])=>A)):void 0,g=e.colorsBasedOnValues?e.colorsBasedOnValues.map((([,A])=>[...r(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,l=e.useColorClasses?e.colorClasses.map((([A])=>[...r(A).rgb(),Math.floor(2.55*e.alpha)])):void 0,h=e.useColorClasses?e.colorClasses.map((([,A])=>A)):void 0,I=e.useColorClasses?e.colorClasses.map((([,,A],t)=>void 0!==A?A:t===e.colorClasses.length-1?[!0,!0]:[!0,!1])):void 0;for(let r=0;r<t;r+=4){let t=e.nullColor;if(!Number.isNaN(A[n])&&(void 0===e.noDataValue||A[n]!==e.noDataValue))if(null!=e.clipLow&&A[n]<=e.clipLow||null!=e.clipHigh&&A[n]>=e.clipHigh)t=e.clippedColor;else{if(e.useHeatMap&&(t=[...a(A[n]).rgb(),Math.floor(2.55*e.alpha)]),e.useColorsBasedOnValues){const i=o.indexOf(A[n]);t=i>-1?g[i]:e.unidentifiedColor}if(e.useColorClasses){const i=this.findClassIndex(A[n],h,I);t=i>-1?l[i]:e.unidentifiedColor}e.useSingleColor&&(t=e.color),e.useDataForOpacity&&(t[3]=this.scale(A[n],e.colorScaleValueRange[0],e.colorScaleValueRange.slice(-1)[0],0,255))}[s[r],s[r+1],s[r+2],s[r+3]]=t,n+=i}return s}findClassIndex(A,e,t){for(let i=0;i<e.length;i+=1){const[r,a]=e[i],[n,s]=t[i];if((n?A>=r:A>r)&&(s?A<=a:A<a))return i}return-1}getDefaultColor(A,e){const t=new Array(A);for(let i=0;i<A;i+=4)[t[i],t[i+1],t[i+2],t[i+3]]=e;return t}getColorFromChromaType(A){return Array.isArray(A)&&4===A.length?A:[...r(A).rgb(),255]}hasPixelsNoData(A,e){return void 0!==e&&A.every((A=>A===e))}}function Ze(A,e,t){const i=new He(e+1).createTile(t),{vertices:r,triangles:a}=i.getMesh(A);return{vertices:r,triangles:a}}const Xe=2*Math.PI*6378137,We=Xe/2,je=[-20037508.342789244,20037508.342789244],$e={blurredTexture:!0};class At{constructor(A){this.cogZoomLookup=[0],this.cogResolutionLookup=[0],this.cogOrigin=[0,0],this.zoomRange=[0,0],this.loaded=!1,this.geo=new Ve,this.options=Object.assign(Object.assign({},$e),A)}initializeCog(A){return o(this,void 0,void 0,(function*(){var e,t,i,r;this.cog=yield async function(A,e={},t){return Ne.fromSource(_e(A,e),t)}(A);const a=yield this.cog.getImage();this.cogOrigin=a.getOrigin(),null!==(e=(i=this.options).noDataValue)&&void 0!==e||(i.noDataValue=this.getNoDataValue(a)),null!==(t=(r=this.options).format)&&void 0!==t||(r.format=this.getDataTypeFromTags(a)),this.options.numOfChannels=this.getNumberOfChannels(a),this.options.planarConfig=this.getPlanarConfiguration(a),[this.cogZoomLookup,this.cogResolutionLookup]=yield this.buildCogZoomResolutionLookup(this.cog),this.tileSize=a.getTileWidth(),this.zoomRange=this.calculateZoomRange(a,yield this.cog.getImageCount()),this.bounds=this.calculateBoundsAsLatLon(a)}))}getZoomRange(){return this.zoomRange}calculateZoomRange(A,e){const t=this.getZoomLevelFromResolution(A.getTileWidth(),A.getResolution()[0]);return[t-(e-1),t]}calculateBoundsAsLatLon(A){const e=A.getBoundingBox(),t=Math.min(e[0],e[2]),i=Math.max(e[0],e[2]),r=Math.min(e[1],e[3]),a=Math.max(e[1],e[3]),n=this.getLatLon([t,r]),s=this.getLatLon([i,a]);return[n[0],n[1],s[0],s[1]]}getZoomLevelFromResolution(A,e){return Math.round(Math.log2(Xe/(e*A)))}getBoundsAsLatLon(){return this.bounds}getLatLon(A){const e=We+A[0],t=-(We+(A[1]-Xe)),i=function(A){const[e,t]=A,i=e/512*(2*qe)-qe,r=2*(Math.atan(Math.exp(t/512*(2*qe)-qe))-Oe);return[i*Je,r*Je]}([e*(512/Xe),t*(512/Xe)]);return[i[0],-i[1]]}buildCogZoomResolutionLookup(A){return o(this,void 0,void 0,(function*(){const e=yield A.getImageCount(),t=yield A.getImage(0),i=t.getResolution()[0],r=t.getWidth(),a=[],n=[];for(let t=0;t<e;t++){const e=i*(r/(yield A.getImage(t)).getWidth()),s=Math.round(Math.log2(156543.03125/e));a[t]=s,n[t]=e}return[a,n]}))}getImageIndexForZoomLevel(A){const e=this.cogZoomLookup[this.cogZoomLookup.length-1];if(A>this.cogZoomLookup[0])return 0;if(A<e)return this.cogZoomLookup.length-1;const t=this.cogZoomLookup.indexOf(A);return-1===t&&console.log("getImageIndexForZoomLevel: error in retrieving image by zoom index"),t}getTileFromImage(A,e,t){return o(this,void 0,void 0,(function*(){const i=this.getImageIndexForZoomLevel(t),r=yield this.cog.getImage(i),a=r.getTileWidth(),n=r.getTileHeight();if(!a||!n)throw new Error('GeoTIFF Error: The provided image is not tiled. Please use "rio cogeo create --web-optimized" to fix this.');const s=this.cogResolutionLookup[i],o=r.getHeight(),g=r.getWidth(),[l,h]=this.cogOrigin,I=this.tileSize,B=je[0],c=je[1],C=Xe/I/Math.pow(2,t),f=(B+A*I*C-l)/s,E=(h-(c-e*I*C))/s,d=Math.round(f),Q=Math.round(E),u=d+I,w=Q+I,p=Math.max(0,d),m=Math.max(0,Q),y=Math.min(g,u),D=Math.min(o,w),k=y-p,b=D-m;if(k<=0||b<=0)return[this.createEmptyTile()];const _=p-d,S=m-Q,x=[p,m,y,D];if(_>0||S>0||k<a||b<n){const A=this.createTileBuffer(this.options.format,a);A.fill(this.options.noDataValue);const e=yield r.readRasters({window:x}),t=Array(e.length*e[0].length);t.fill(this.options.noDataValue);for(let i=0;i<e.length;i+=1){for(let t=0;t<b;t+=1){const r=S+t,s=r*I,o=t*e.width;for(let t=0;t<k;t+=1){const g=_+t;r<a&&g<n?A[s+g]=e[i][o+t]:console.log("error in assigning data to tile buffer")}}A.forEach(((A,e)=>{t[e*this.options.numOfChannels+i]=A}))}return[t]}return[yield r.readRasters({window:x,interleave:!0})]}))}createEmptyTile(){const A=this.options.numOfChannels||1,e=this.tileSize*this.tileSize*A,t=new Float32Array(e);return void 0!==this.options.noDataValue&&t.fill(this.options.noDataValue),t}getTile(A,e,t,i,r){return o(this,void 0,void 0,(function*(){const a=yield this.getTileFromImage(A,e,t);return this.geo.getMap({rasters:[a[0]],width:this.tileSize,height:this.tileSize,bounds:i},this.options,r)}))}getDataTypeFromTags(A){const e=A.getFileDirectory(),t=e.SampleFormat,i=e.BitsPerSample,r=t&&"number"==typeof t.length&&t.length>0?t[0]:t;let a;return a=1===r?"UInt":2===r?"Int":3===r?"Float":"Unknown",`${a}${i&&"number"==typeof i.length&&i.length>0?i[0]:i}`}getNoDataValue(A){const e=A.getGDALNoData();if(null==e)return void console.warn("No noData value defined — raster might be rendered incorrectly.");const t=String(e).replace(/\0/g,"").trim();if(""===t)return void console.warn("noData value is an empty string after cleanup.");const i=Number(t);return"nan"===t.toLowerCase()?NaN:Number.isNaN(i)?void console.warn(`Failed to parse numeric noData value: '${t}'`):i}getNumberOfChannels(A){return A.getSamplesPerPixel()}getPlanarConfiguration(A){const e=A.fileDirectory.PlanarConfiguration;if(1!==e&&2!==e)throw new Error("Invalid planar configuration.");return e}createTileBuffer(A,e){const t=e*e;switch(A){case"UInt8":return new Uint8Array(t);case"Int8":return new Int8Array(t);case"UInt16":return new Uint16Array(t);case"Int16":return new Int16Array(t);case"UInt32":return new Uint32Array(t);case"Int32":return new Int32Array(t);case"Float32":return new Float32Array(t);case"Float64":return new Float64Array(t);default:throw new Error(`Unsupported data type: ${A}`)}}}const et={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},tt=Object.assign(Object.assign({},e.TileLayer.defaultProps),{bounds:{type:"array",value:null,optional:!0,compare:!0},rasterData:et,blurredTexture:!0,opacity:1,clampToTerrain:!1,workerUrl:""});class it extends A.CompositeLayer{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return o(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({bitmapCogTiles:new At(this.props.cogBitmapOptions),initialized:!1}),yield this.init()}))}init(){return o(this,void 0,void 0,(function*(){yield this.state.bitmapCogTiles.initializeCog(this.props.rasterData);const A=this.state.bitmapCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:e,oldProps:t}){var i,r,a;const n=e.rasterData!==t.rasterData;if(n){const{rasterData:A}=e,t=A&&(Array.isArray(A)||A.includes("{x}")&&A.includes("{y}")||this.props.isTiled);this.setState({isTiled:t})}n||(e.bounds,t.bounds);this.state.isTiled,(null===(i=null==e?void 0:e.cogBitmapOptions)||void 0===i?void 0:i.useChannel)&&(null===(r=e.cogBitmapOptions)||void 0===r?void 0:r.useChannel)!==(null===(a=t.cogBitmapOptions)||void 0===a?void 0:a.useChannel)&&(this.state.bitmapCogTiles.options.useChannel=e.cogBitmapOptions.useChannel),e.workerUrl&&A.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}getTiledBitmapData(A){return o(this,void 0,void 0,(function*(){return yield this.state.bitmapCogTiles.getTile(A.index.x,A.index.y,A.index.z)}))}renderSubLayers(A){const e=this.getSubLayerClass("image",t.BitmapLayer),{blurredTexture:r}=this.state.bitmapCogTiles.options,{opacity:a,clampToTerrain:n}=this.props,{data:s}=A;if(!s)return null;const{bbox:{west:o,south:g,east:l,north:h}}=A.tile;return new e(Object.assign(Object.assign({},A),{tileSize:this.state.bitmapCogTiles.tileSize}),Object.assign({data:null,image:s,_instanced:!1,bounds:[o,g,l,h],opacity:a,textureParameters:{minFilter:r?"linear":"nearest",magFilter:r?"linear":"nearest"},extensions:n?[new i._TerrainExtension]:[]},(null==n?void 0:n.terrainDrawMode)?{terrainDrawMode:n.terrainDrawMode}:{}))}renderLayers(){const{rasterData:A,blurredTexture:t,opacity:i,clampToTerrain:r,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h,cogBitmapOptions:I}=this.props;if(this.state.isTiled&&this.state.initialized){const{tileSize:A}=this.state.bitmapCogTiles;return new e.TileLayer(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledBitmapData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:[r,I.useChannel]},extent:this.state.bitmapCogTiles.getBoundsAsLatLon(),tileSize:A,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,maxRequests:a,onTileLoad:n,onTileUnload:s,onTileError:o,maxCacheSize:g,maxCacheByteSize:l,refinementStrategy:h})}return null}}it.defaultProps=tt,it.layerName="CogBitmapLayer";const rt={type:"object",value:null,validate:(A,e)=>e.optional&&null===A||"string"==typeof A||Array.isArray(A)&&A.every((A=>"string"==typeof A)),equal:(A,e)=>{if(A===e)return!0;if(!Array.isArray(A)||!Array.isArray(e))return!1;const t=A.length;if(t!==e.length)return!1;for(let i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}},at=[1],nt=Object.assign(Object.assign({},e.TileLayer.defaultProps),{elevationData:rt,texture:Object.assign(Object.assign({},rt),{optional:!0}),meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0});class st extends A.CompositeLayer{initializeState(A){const e=Object.create(null,{initializeState:{get:()=>super.initializeState}});return o(this,void 0,void 0,(function*(){e.initializeState.call(this,A),this.setState({terrainCogTiles:new At(this.props.terrainOptions),initialized:!1}),yield this.init(this.terrainUrl)}))}init(A){return o(this,void 0,void 0,(function*(){yield this.state.terrainCogTiles.initializeCog(this.props.elevationData);const A=this.state.terrainCogTiles.getZoomRange(),[e,t]=A;this.setState({initialized:!0,minZoom:e,maxZoom:t})}))}updateState({props:e,oldProps:t}){const i=e.elevationData!==t.elevationData;if(i){const{elevationData:A}=e,t=A&&(Array.isArray(A)||A.includes("{x}")&&A.includes("{y}"))||this.props.isTiled;this.setState({isTiled:t})}i||e.meshMaxError!==t.meshMaxError||e.elevationDecoder!==t.elevationDecoder||(e.bounds,t.bounds);this.state.isTiled,e.workerUrl&&A.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:A,bounds:e,elevationDecoder:t,meshMaxError:i,signal:r}){if(!A)return null;let a=this.getLoadOptions();a=Object.assign(Object.assign({},a),{_workerType:"test",terrain:Object.assign(Object.assign({skirtHeight:this.state.isTiled?2*i:0},null==a?void 0:a.terrain),{bounds:e,meshMaxError:i,elevationDecoder:t})});const{fetch:n}=this.props;return n(A,{propName:"elevationData",layer:this,loadOptions:a,signal:r,loaders:[]})}getTiledTerrainData(A){return o(this,void 0,void 0,(function*(){this.props;const{viewport:e}=this.context;let t=[0,0],i=[0,0];if(e.isGeospatial){const r=A.bbox;t=e.projectFlat([r.west,r.south]),i=e.projectFlat([r.east,r.north])}else{const e=A.bbox;t=[e.left,e.bottom],i=[e.right,e.top]}const r=[t[0],t[1],i[0],i[1]],a=yield this.state.terrainCogTiles.getTile(A.index.x,A.index.y,A.index.z,r,this.props.meshMaxError);return Promise.all([a])}))}renderSubLayers(e){const t=this.getSubLayerClass("mesh",s.SimpleMeshLayer),{color:i,wireframe:r,material:a}=this.props,{data:n}=e;if(!n)return null;const[o]=n;return new t(Object.assign(Object.assign({},e),{tileSize:256}),{data:at,mesh:o,_instanced:!1,coordinateSystem:A.COORDINATE_SYSTEM.CARTESIAN,getPosition:A=>[0,0,0],getColor:i,wireframe:r,material:a})}onViewportLoad(A){if(!A)return;const{zRange:e}=this.state,t=A.map((A=>A.content)).filter((A=>A&&A[0])).map((A=>{var e,t;const i=null===(t=null===(e=A[0])||void 0===e?void 0:e.header)||void 0===t?void 0:t.boundingBox;return null==i?void 0:i.map((A=>A[2]))}));if(0===t.length)return;const i=Math.min(...t.map((A=>A[0]))),r=Math.max(...t.map((A=>A[1])));(!e||i<e[0]||r>e[1])&&this.setState({zRange:[Number.isFinite(i)?i:0,Number.isFinite(r)?r:0]})}renderLayers(){const{color:A,material:t,elevationData:i,texture:r,wireframe:a,meshMaxError:n,elevationDecoder:s,tileSize:o,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f}=this.props;if(this.state.isTiled&&this.state.initialized)return new e.TileLayer(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:(E=i,Array.isArray(E)?E.join(";"):E||""),meshMaxError:n,elevationDecoder:s}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:o,minZoom:this.state.minZoom,maxZoom:this.state.maxZoom,extent:g,maxRequests:l,onTileLoad:h,onTileUnload:I,onTileError:B,maxCacheSize:c,maxCacheByteSize:C,refinementStrategy:f});var E}}st.defaultProps=nt,st.layerName="TerrainLayer";var ot=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return A}}});function gt(A,e){for(let t=e.length-1;t>=0;t--)A.push(e[t]);return A}function lt(A){const e=new Uint16Array(4093),t=new Uint8Array(4093);for(let A=0;A<=257;A++)e[A]=4096,t[A]=A;let i=258,r=9,a=0;function n(){i=258,r=9}function s(A){const e=function(A,e,t){const i=e%8,r=Math.floor(e/8),a=8-i,n=e+t-8*(r+1);let s=8*(r+2)-(e+t);const o=8*(r+2)-e;if(s=Math.max(0,s),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;let g=A[r]&2**(8-i)-1;g<<=t-a;let l=g;if(r+1<A.length){let e=A[r+1]>>>s;e<<=Math.max(0,t-o),l+=e}if(n>8&&r+2<A.length){const i=8*(r+3)-(e+t);l+=A[r+2]>>>i}return l}(A,a,r);return a+=r,e}function o(A,r){return t[i]=r,e[i]=A,i++,i-1}function g(A){const i=[];for(let r=A;4096!==r;r=e[r])i.push(t[r]);return i}const l=[];n();const h=new Uint8Array(A);let I,B=s(h);for(;257!==B;){if(256===B){for(n(),B=s(h);256===B;)B=s(h);if(257===B)break;if(B>256)throw new Error(`corrupted code at scanline ${B}`);gt(l,g(B)),I=B}else if(B<i){const A=g(B);gt(l,A),o(I,A[A.length-1]),I=B}else{const A=g(I);if(!A)throw new Error(`Bogus entry. Not in dictionary, ${I} / ${i}, position: ${a}`);gt(l,A),l.push(A[A.length-1]),o(I,A[A.length-1]),I=B}i+1>=2**r&&(12===r?I=void 0:r++),B=s(h)}return new Uint8Array(l)}var ht=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return lt(A).buffer}}});const It=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),Bt=4017,ct=799,Ct=3406,ft=2276,Et=1567,dt=3784,Qt=5793,ut=2896;function wt(A,e){let t=0;const i=[];let r=16;for(;r>0&&!A[r-1];)--r;i.push({children:[],index:0});let a,n=i[0];for(let s=0;s<r;s++){for(let r=0;r<A[s];r++){for(n=i.pop(),n.children[n.index]=e[t];n.index>0;)n=i.pop();for(n.index++,i.push(n);i.length<=s;)i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a;t++}s+1<r&&(i.push(a={children:[],index:0}),n.children[n.index]=a.children,n=a)}return i[0].children}function pt(A,e,t,i,r,a,n,s,o){const{mcusPerLine:g,progressive:l}=t,h=e;let I=e,B=0,c=0;function C(){if(c>0)return c--,B>>c&1;if(B=A[I++],255===B){const e=A[I++];if(e)throw new Error(`unexpected marker: ${(B<<8|e).toString(16)}`)}return c=7,B>>>7}function f(A){let e,t=A;for(;null!==(e=C());){if(t=t[e],"number"==typeof t)return t;if("object"!=typeof t)throw new Error("invalid huffman sequence")}return null}function E(A){let e=A,t=0;for(;e>0;){const A=C();if(null===A)return;t=t<<1|A,--e}return t}function d(A){const e=E(A);return e>=1<<A-1?e:e+(-1<<A)+1}let Q=0;let u,w=0;function p(A,e,t,i,r){const a=t%g,n=(t/g|0)*A.v+i,s=a*A.h+r;e(A,A.blocks[n][s])}function m(A,e,t){const i=t/A.blocksPerLine|0,r=t%A.blocksPerLine;e(A,A.blocks[i][r])}const y=i.length;let D,k,b,_,S,x;x=l?0===a?0===s?function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:d(t)<<o;A.pred+=i,e[0]=A.pred}:function(A,e){e[0]|=C()<<o}:0===s?function(A,e){if(Q>0)return void Q--;let t=a;const i=n;for(;t<=i;){const i=f(A.huffmanTableAC),r=15&i,a=i>>4;if(0===r){if(a<15){Q=E(a)+(1<<a)-1;break}t+=16}else t+=a,e[It[t]]=d(r)*(1<<o),t++}}:function(A,e){let t=a;const i=n;let r=0;for(;t<=i;){const i=It[t],a=e[i]<0?-1:1;switch(w){case 0:{const e=f(A.huffmanTableAC),t=15&e;if(r=e>>4,0===t)r<15?(Q=E(r)+(1<<r),w=4):(r=16,w=1);else{if(1!==t)throw new Error("invalid ACn encoding");u=d(t),w=r?2:3}continue}case 1:case 2:e[i]?e[i]+=(C()<<o)*a:(r--,0===r&&(w=2===w?3:0));break;case 3:e[i]?e[i]+=(C()<<o)*a:(e[i]=u<<o,w=0);break;case 4:e[i]&&(e[i]+=(C()<<o)*a)}t++}4===w&&(Q--,0===Q&&(w=0))}:function(A,e){const t=f(A.huffmanTableDC),i=0===t?0:d(t);A.pred+=i,e[0]=A.pred;let r=1;for(;r<64;){const t=f(A.huffmanTableAC),i=15&t,a=t>>4;if(0===i){if(a<15)break;r+=16}else r+=a,e[It[r]]=d(i),r++}};let F,G,U=0;G=1===y?i[0].blocksPerLine*i[0].blocksPerColumn:g*t.mcusPerColumn;const R=r||G;for(;U<G;){for(k=0;k<y;k++)i[k].pred=0;if(Q=0,1===y)for(D=i[0],S=0;S<R;S++)m(D,x,U),U++;else for(S=0;S<R;S++){for(k=0;k<y;k++){D=i[k];const{h:A,v:e}=D;for(b=0;b<e;b++)for(_=0;_<A;_++)p(D,x,U,b,_)}if(U++,U===G)break}if(c=0,F=A[I]<<8|A[I+1],F<65280)throw new Error("marker was not found");if(!(F>=65488&&F<=65495))break;I+=2}return I-h}function mt(A,e){const t=[],{blocksPerLine:i,blocksPerColumn:r}=e,a=i<<3,n=new Int32Array(64),s=new Uint8Array(64);function o(A,t,i){const r=e.quantizationTable;let a,n,s,o,g,l,h,I,B;const c=i;let C;for(C=0;C<64;C++)c[C]=A[C]*r[C];for(C=0;C<8;++C){const A=8*C;0!==c[1+A]||0!==c[2+A]||0!==c[3+A]||0!==c[4+A]||0!==c[5+A]||0!==c[6+A]||0!==c[7+A]?(a=Qt*c[0+A]+128>>8,n=Qt*c[4+A]+128>>8,s=c[2+A],o=c[6+A],g=ut*(c[1+A]-c[7+A])+128>>8,I=ut*(c[1+A]+c[7+A])+128>>8,l=c[3+A]<<4,h=c[5+A]<<4,B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*dt+o*Et+128>>8,s=s*Et-o*dt+128>>8,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*ft+I*Ct+2048>>12,g=g*Ct-I*ft+2048>>12,I=B,B=l*ct+h*Bt+2048>>12,l=l*Bt-h*ct+2048>>12,h=B,c[0+A]=a+I,c[7+A]=a-I,c[1+A]=n+h,c[6+A]=n-h,c[2+A]=s+l,c[5+A]=s-l,c[3+A]=o+g,c[4+A]=o-g):(B=Qt*c[0+A]+512>>10,c[0+A]=B,c[1+A]=B,c[2+A]=B,c[3+A]=B,c[4+A]=B,c[5+A]=B,c[6+A]=B,c[7+A]=B)}for(C=0;C<8;++C){const A=C;0!==c[8+A]||0!==c[16+A]||0!==c[24+A]||0!==c[32+A]||0!==c[40+A]||0!==c[48+A]||0!==c[56+A]?(a=Qt*c[0+A]+2048>>12,n=Qt*c[32+A]+2048>>12,s=c[16+A],o=c[48+A],g=ut*(c[8+A]-c[56+A])+2048>>12,I=ut*(c[8+A]+c[56+A])+2048>>12,l=c[24+A],h=c[40+A],B=a-n+1>>1,a=a+n+1>>1,n=B,B=s*dt+o*Et+2048>>12,s=s*Et-o*dt+2048>>12,o=B,B=g-h+1>>1,g=g+h+1>>1,h=B,B=I+l+1>>1,l=I-l+1>>1,I=B,B=a-o+1>>1,a=a+o+1>>1,o=B,B=n-s+1>>1,n=n+s+1>>1,s=B,B=g*ft+I*Ct+2048>>12,g=g*Ct-I*ft+2048>>12,I=B,B=l*ct+h*Bt+2048>>12,l=l*Bt-h*ct+2048>>12,h=B,c[0+A]=a+I,c[56+A]=a-I,c[8+A]=n+h,c[48+A]=n-h,c[16+A]=s+l,c[40+A]=s-l,c[24+A]=o+g,c[32+A]=o-g):(B=Qt*i[C+0]+8192>>14,c[0+A]=B,c[8+A]=B,c[16+A]=B,c[24+A]=B,c[32+A]=B,c[40+A]=B,c[48+A]=B,c[56+A]=B)}for(C=0;C<64;++C){const A=128+(c[C]+8>>4);t[C]=A<0?0:A>255?255:A}}for(let A=0;A<r;A++){const r=A<<3;for(let A=0;A<8;A++)t.push(new Uint8Array(a));for(let a=0;a<i;a++){o(e.blocks[A][a],s,n);let i=0;const g=a<<3;for(let A=0;A<8;A++){const e=t[r+A];for(let A=0;A<8;A++)e[g+A]=s[i++]}}}return t}class yt{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(A){let e=0;function t(){const t=A[e]<<8|A[e+1];return e+=2,t}function i(){const i=t(),r=A.subarray(e,e+i-2);return e+=r.length,r}function r(A){let e,t,i=0,r=0;for(t in A.components)A.components.hasOwnProperty(t)&&(e=A.components[t],i<e.h&&(i=e.h),r<e.v&&(r=e.v));const a=Math.ceil(A.samplesPerLine/8/i),n=Math.ceil(A.scanLines/8/r);for(t in A.components)if(A.components.hasOwnProperty(t)){e=A.components[t];const s=Math.ceil(Math.ceil(A.samplesPerLine/8)*e.h/i),o=Math.ceil(Math.ceil(A.scanLines/8)*e.v/r),g=a*e.h,l=n*e.v,h=[];for(let A=0;A<l;A++){const A=[];for(let e=0;e<g;e++)A.push(new Int32Array(64));h.push(A)}e.blocksPerLine=s,e.blocksPerColumn=o,e.blocks=h}A.maxH=i,A.maxV=r,A.mcusPerLine=a,A.mcusPerColumn=n}let a=t();if(65496!==a)throw new Error("SOI not found");for(a=t();65497!==a;){switch(a){case 65280:break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:{const A=i();65504===a&&74===A[0]&&70===A[1]&&73===A[2]&&70===A[3]&&0===A[4]&&(this.jfif={version:{major:A[5],minor:A[6]},densityUnits:A[7],xDensity:A[8]<<8|A[9],yDensity:A[10]<<8|A[11],thumbWidth:A[12],thumbHeight:A[13],thumbData:A.subarray(14,14+3*A[12]*A[13])}),65518===a&&65===A[0]&&100===A[1]&&111===A[2]&&98===A[3]&&101===A[4]&&0===A[5]&&(this.adobe={version:A[6],flags0:A[7]<<8|A[8],flags1:A[9]<<8|A[10],transformCode:A[11]});break}case 65499:{const i=t()+e-2;for(;e<i;){const i=A[e++],r=new Int32Array(64);if(i>>4){if(i>>4!=1)throw new Error("DQT: invalid table spec");for(let A=0;A<64;A++){r[It[A]]=t()}}else for(let t=0;t<64;t++){r[It[t]]=A[e++]}this.quantizationTables[15&i]=r}break}case 65472:case 65473:case 65474:{t();const i={extended:65473===a,progressive:65474===a,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},n=A[e++];let s;for(let t=0;t<n;t++){s=A[e];const t=A[e+1]>>4,r=15&A[e+1],a=A[e+2];i.componentsOrder.push(s),i.components[s]={h:t,v:r,quantizationIdx:a},e+=3}r(i),this.frames.push(i);break}case 65476:{const i=t();for(let t=2;t<i;){const i=A[e++],r=new Uint8Array(16);let a=0;for(let t=0;t<16;t++,e++)r[t]=A[e],a+=r[t];const n=new Uint8Array(a);for(let t=0;t<a;t++,e++)n[t]=A[e];t+=17+a,i>>4?this.huffmanTablesAC[15&i]=wt(r,n):this.huffmanTablesDC[15&i]=wt(r,n)}break}case 65501:t(),this.resetInterval=t();break;case 65498:{t();const i=A[e++],r=[],a=this.frames[0];for(let t=0;t<i;t++){const t=a.components[A[e++]],i=A[e++];t.huffmanTableDC=this.huffmanTablesDC[i>>4],t.huffmanTableAC=this.huffmanTablesAC[15&i],r.push(t)}const n=A[e++],s=A[e++],o=A[e++],g=pt(A,e,a,r,this.resetInterval,n,s,o>>4,15&o);e+=g;break}case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${a.toString(16)}`)}a=t()}}getResult(){const{frames:A}=this;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let A=0;A<this.frames.length;A++){const e=this.frames[A].components;for(const A of Object.keys(e))e[A].quantizationTable=this.quantizationTables[e[A].quantizationIdx],delete e[A].quantizationIdx}const e=A[0],{components:t,componentsOrder:i}=e,r=[],a=e.samplesPerLine,n=e.scanLines;for(let A=0;A<i.length;A++){const a=t[i[A]];r.push({lines:mt(0,a),scaleX:a.h/e.maxH,scaleY:a.v/e.maxV})}const s=new Uint8Array(a*n*r.length);let o=0;for(let A=0;A<n;++A)for(let e=0;e<a;++e)for(let t=0;t<r.length;++t){const i=r[t];s[o]=i.lines[0|A*i.scaleY][0|e*i.scaleX],++o}return s}}var Dt=Object.freeze({__proto__:null,default:class extends Ge{constructor(A){super(),this.reader=new yt,A.JPEGTables&&this.reader.parse(A.JPEGTables)}decodeBlock(A){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(A)),this.reader.getResult().buffer}}});
2
+ /*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function kt(A){let e=A.length;for(;--e>=0;)A[e]=0}const bt=256,_t=286,St=30,xt=15,Ft=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]),Gt=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]),Ut=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Rt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Mt=new Array(576);kt(Mt);const Lt=new Array(60);kt(Lt);const vt=new Array(512);kt(vt);const Nt=new Array(256);kt(Nt);const Tt=new Array(29);kt(Tt);const qt=new Array(St);function Ot(A,e,t,i,r){this.static_tree=A,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=r,this.has_stree=A&&A.length}let Jt,Ht,zt;function Yt(A,e){this.dyn_tree=A,this.max_code=0,this.stat_desc=e}kt(qt);const Pt=A=>A<256?vt[A]:vt[256+(A>>>7)],Kt=(A,e)=>{A.pending_buf[A.pending++]=255&e,A.pending_buf[A.pending++]=e>>>8&255},Vt=(A,e,t)=>{A.bi_valid>16-t?(A.bi_buf|=e<<A.bi_valid&65535,Kt(A,A.bi_buf),A.bi_buf=e>>16-A.bi_valid,A.bi_valid+=t-16):(A.bi_buf|=e<<A.bi_valid&65535,A.bi_valid+=t)},Zt=(A,e,t)=>{Vt(A,t[2*e],t[2*e+1])},Xt=(A,e)=>{let t=0;do{t|=1&A,A>>>=1,t<<=1}while(--e>0);return t>>>1},Wt=(A,e,t)=>{const i=new Array(16);let r,a,n=0;for(r=1;r<=xt;r++)n=n+t[r-1]<<1,i[r]=n;for(a=0;a<=e;a++){let e=A[2*a+1];0!==e&&(A[2*a]=Xt(i[e]++,e))}},jt=A=>{let e;for(e=0;e<_t;e++)A.dyn_ltree[2*e]=0;for(e=0;e<St;e++)A.dyn_dtree[2*e]=0;for(e=0;e<19;e++)A.bl_tree[2*e]=0;A.dyn_ltree[512]=1,A.opt_len=A.static_len=0,A.sym_next=A.matches=0},$t=A=>{A.bi_valid>8?Kt(A,A.bi_buf):A.bi_valid>0&&(A.pending_buf[A.pending++]=A.bi_buf),A.bi_buf=0,A.bi_valid=0},Ai=(A,e,t,i)=>{const r=2*e,a=2*t;return A[r]<A[a]||A[r]===A[a]&&i[e]<=i[t]},ei=(A,e,t)=>{const i=A.heap[t];let r=t<<1;for(;r<=A.heap_len&&(r<A.heap_len&&Ai(e,A.heap[r+1],A.heap[r],A.depth)&&r++,!Ai(e,i,A.heap[r],A.depth));)A.heap[t]=A.heap[r],t=r,r<<=1;A.heap[t]=i},ti=(A,e,t)=>{let i,r,a,n,s=0;if(0!==A.sym_next)do{i=255&A.pending_buf[A.sym_buf+s++],i+=(255&A.pending_buf[A.sym_buf+s++])<<8,r=A.pending_buf[A.sym_buf+s++],0===i?Zt(A,r,e):(a=Nt[r],Zt(A,a+bt+1,e),n=Ft[a],0!==n&&(r-=Tt[a],Vt(A,r,n)),i--,a=Pt(i),Zt(A,a,t),n=Gt[a],0!==n&&(i-=qt[a],Vt(A,i,n)))}while(s<A.sym_next);Zt(A,256,e)},ii=(A,e)=>{const t=e.dyn_tree,i=e.stat_desc.static_tree,r=e.stat_desc.has_stree,a=e.stat_desc.elems;let n,s,o,g=-1;for(A.heap_len=0,A.heap_max=573,n=0;n<a;n++)0!==t[2*n]?(A.heap[++A.heap_len]=g=n,A.depth[n]=0):t[2*n+1]=0;for(;A.heap_len<2;)o=A.heap[++A.heap_len]=g<2?++g:0,t[2*o]=1,A.depth[o]=0,A.opt_len--,r&&(A.static_len-=i[2*o+1]);for(e.max_code=g,n=A.heap_len>>1;n>=1;n--)ei(A,t,n);o=a;do{n=A.heap[1],A.heap[1]=A.heap[A.heap_len--],ei(A,t,1),s=A.heap[1],A.heap[--A.heap_max]=n,A.heap[--A.heap_max]=s,t[2*o]=t[2*n]+t[2*s],A.depth[o]=(A.depth[n]>=A.depth[s]?A.depth[n]:A.depth[s])+1,t[2*n+1]=t[2*s+1]=o,A.heap[1]=o++,ei(A,t,1)}while(A.heap_len>=2);A.heap[--A.heap_max]=A.heap[1],((A,e)=>{const t=e.dyn_tree,i=e.max_code,r=e.stat_desc.static_tree,a=e.stat_desc.has_stree,n=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,o=e.stat_desc.max_length;let g,l,h,I,B,c,C=0;for(I=0;I<=xt;I++)A.bl_count[I]=0;for(t[2*A.heap[A.heap_max]+1]=0,g=A.heap_max+1;g<573;g++)l=A.heap[g],I=t[2*t[2*l+1]+1]+1,I>o&&(I=o,C++),t[2*l+1]=I,l>i||(A.bl_count[I]++,B=0,l>=s&&(B=n[l-s]),c=t[2*l],A.opt_len+=c*(I+B),a&&(A.static_len+=c*(r[2*l+1]+B)));if(0!==C){do{for(I=o-1;0===A.bl_count[I];)I--;A.bl_count[I]--,A.bl_count[I+1]+=2,A.bl_count[o]--,C-=2}while(C>0);for(I=o;0!==I;I--)for(l=A.bl_count[I];0!==l;)h=A.heap[--g],h>i||(t[2*h+1]!==I&&(A.opt_len+=(I-t[2*h+1])*t[2*h],t[2*h+1]=I),l--)}})(A,e),Wt(t,g,A.bl_count)},ri=(A,e,t)=>{let i,r,a=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),e[2*(t+1)+1]=65535,i=0;i<=t;i++)r=n,n=e[2*(i+1)+1],++s<o&&r===n||(s<g?A.bl_tree[2*r]+=s:0!==r?(r!==a&&A.bl_tree[2*r]++,A.bl_tree[32]++):s<=10?A.bl_tree[34]++:A.bl_tree[36]++,s=0,a=r,0===n?(o=138,g=3):r===n?(o=6,g=3):(o=7,g=4))},ai=(A,e,t)=>{let i,r,a=-1,n=e[1],s=0,o=7,g=4;for(0===n&&(o=138,g=3),i=0;i<=t;i++)if(r=n,n=e[2*(i+1)+1],!(++s<o&&r===n)){if(s<g)do{Zt(A,r,A.bl_tree)}while(0!=--s);else 0!==r?(r!==a&&(Zt(A,r,A.bl_tree),s--),Zt(A,16,A.bl_tree),Vt(A,s-3,2)):s<=10?(Zt(A,17,A.bl_tree),Vt(A,s-3,3)):(Zt(A,18,A.bl_tree),Vt(A,s-11,7));s=0,a=r,0===n?(o=138,g=3):r===n?(o=6,g=3):(o=7,g=4)}};let ni=!1;const si=(A,e,t,i)=>{Vt(A,0+(i?1:0),3),$t(A),Kt(A,t),Kt(A,~t),t&&A.pending_buf.set(A.window.subarray(e,e+t),A.pending),A.pending+=t};var oi=(A,e,t,i)=>{let r,a,n=0;A.level>0?(2===A.strm.data_type&&(A.strm.data_type=(A=>{let e,t=4093624447;for(e=0;e<=31;e++,t>>>=1)if(1&t&&0!==A.dyn_ltree[2*e])return 0;if(0!==A.dyn_ltree[18]||0!==A.dyn_ltree[20]||0!==A.dyn_ltree[26])return 1;for(e=32;e<bt;e++)if(0!==A.dyn_ltree[2*e])return 1;return 0})(A)),ii(A,A.l_desc),ii(A,A.d_desc),n=(A=>{let e;for(ri(A,A.dyn_ltree,A.l_desc.max_code),ri(A,A.dyn_dtree,A.d_desc.max_code),ii(A,A.bl_desc),e=18;e>=3&&0===A.bl_tree[2*Rt[e]+1];e--);return A.opt_len+=3*(e+1)+5+5+4,e})(A),r=A.opt_len+3+7>>>3,a=A.static_len+3+7>>>3,a<=r&&(r=a)):r=a=t+5,t+4<=r&&-1!==e?si(A,e,t,i):4===A.strategy||a===r?(Vt(A,2+(i?1:0),3),ti(A,Mt,Lt)):(Vt(A,4+(i?1:0),3),((A,e,t,i)=>{let r;for(Vt(A,e-257,5),Vt(A,t-1,5),Vt(A,i-4,4),r=0;r<i;r++)Vt(A,A.bl_tree[2*Rt[r]+1],3);ai(A,A.dyn_ltree,e-1),ai(A,A.dyn_dtree,t-1)})(A,A.l_desc.max_code+1,A.d_desc.max_code+1,n+1),ti(A,A.dyn_ltree,A.dyn_dtree)),jt(A),i&&$t(A)},gi={_tr_init:A=>{ni||((()=>{let A,e,t,i,r;const a=new Array(16);for(t=0,i=0;i<28;i++)for(Tt[i]=t,A=0;A<1<<Ft[i];A++)Nt[t++]=i;for(Nt[t-1]=i,r=0,i=0;i<16;i++)for(qt[i]=r,A=0;A<1<<Gt[i];A++)vt[r++]=i;for(r>>=7;i<St;i++)for(qt[i]=r<<7,A=0;A<1<<Gt[i]-7;A++)vt[256+r++]=i;for(e=0;e<=xt;e++)a[e]=0;for(A=0;A<=143;)Mt[2*A+1]=8,A++,a[8]++;for(;A<=255;)Mt[2*A+1]=9,A++,a[9]++;for(;A<=279;)Mt[2*A+1]=7,A++,a[7]++;for(;A<=287;)Mt[2*A+1]=8,A++,a[8]++;for(Wt(Mt,287,a),A=0;A<St;A++)Lt[2*A+1]=5,Lt[2*A]=Xt(A,5);Jt=new Ot(Mt,Ft,257,_t,xt),Ht=new Ot(Lt,Gt,0,St,xt),zt=new Ot(new Array(0),Ut,0,19,7)})(),ni=!0),A.l_desc=new Yt(A.dyn_ltree,Jt),A.d_desc=new Yt(A.dyn_dtree,Ht),A.bl_desc=new Yt(A.bl_tree,zt),A.bi_buf=0,A.bi_valid=0,jt(A)},_tr_stored_block:si,_tr_flush_block:oi,_tr_tally:(A,e,t)=>(A.pending_buf[A.sym_buf+A.sym_next++]=e,A.pending_buf[A.sym_buf+A.sym_next++]=e>>8,A.pending_buf[A.sym_buf+A.sym_next++]=t,0===e?A.dyn_ltree[2*t]++:(A.matches++,e--,A.dyn_ltree[2*(Nt[t]+bt+1)]++,A.dyn_dtree[2*Pt(e)]++),A.sym_next===A.sym_end),_tr_align:A=>{Vt(A,2,3),Zt(A,256,Mt),(A=>{16===A.bi_valid?(Kt(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)})(A)}};var li=(A,e,t,i)=>{let r=65535&A,a=A>>>16&65535,n=0;for(;0!==t;){n=t>2e3?2e3:t,t-=n;do{r=r+e[i++]|0,a=a+r|0}while(--n);r%=65521,a%=65521}return r|a<<16};const hi=new Uint32Array((()=>{let A,e=[];for(var t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e})());var Ii=(A,e,t,i)=>{const r=hi,a=i+t;A^=-1;for(let t=i;t<a;t++)A=A>>>8^r[255&(A^e[t])];return~A},Bi={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"},ci={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:Ci,_tr_stored_block:fi,_tr_flush_block:Ei,_tr_tally:di,_tr_align:Qi}=gi,{Z_NO_FLUSH:ui,Z_PARTIAL_FLUSH:wi,Z_FULL_FLUSH:pi,Z_FINISH:mi,Z_BLOCK:yi,Z_OK:Di,Z_STREAM_END:ki,Z_STREAM_ERROR:bi,Z_DATA_ERROR:_i,Z_BUF_ERROR:Si,Z_DEFAULT_COMPRESSION:xi,Z_FILTERED:Fi,Z_HUFFMAN_ONLY:Gi,Z_RLE:Ui,Z_FIXED:Ri,Z_DEFAULT_STRATEGY:Mi,Z_UNKNOWN:Li,Z_DEFLATED:vi}=ci,Ni=258,Ti=262,qi=42,Oi=113,Ji=666,Hi=(A,e)=>(A.msg=Bi[e],e),zi=A=>2*A-(A>4?9:0),Yi=A=>{let e=A.length;for(;--e>=0;)A[e]=0},Pi=A=>{let e,t,i,r=A.w_size;e=A.hash_size,i=e;do{t=A.head[--i],A.head[i]=t>=r?t-r:0}while(--e);e=r,i=e;do{t=A.prev[--i],A.prev[i]=t>=r?t-r:0}while(--e)};let Ki=(A,e,t)=>(e<<A.hash_shift^t)&A.hash_mask;const Vi=A=>{const e=A.state;let t=e.pending;t>A.avail_out&&(t=A.avail_out),0!==t&&(A.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),A.next_out),A.next_out+=t,e.pending_out+=t,A.total_out+=t,A.avail_out-=t,e.pending-=t,0===e.pending&&(e.pending_out=0))},Zi=(A,e)=>{Ei(A,A.block_start>=0?A.block_start:-1,A.strstart-A.block_start,e),A.block_start=A.strstart,Vi(A.strm)},Xi=(A,e)=>{A.pending_buf[A.pending++]=e},Wi=(A,e)=>{A.pending_buf[A.pending++]=e>>>8&255,A.pending_buf[A.pending++]=255&e},ji=(A,e,t,i)=>{let r=A.avail_in;return r>i&&(r=i),0===r?0:(A.avail_in-=r,e.set(A.input.subarray(A.next_in,A.next_in+r),t),1===A.state.wrap?A.adler=li(A.adler,e,r,t):2===A.state.wrap&&(A.adler=Ii(A.adler,e,r,t)),A.next_in+=r,A.total_in+=r,r)},$i=(A,e)=>{let t,i,r=A.max_chain_length,a=A.strstart,n=A.prev_length,s=A.nice_match;const o=A.strstart>A.w_size-Ti?A.strstart-(A.w_size-Ti):0,g=A.window,l=A.w_mask,h=A.prev,I=A.strstart+Ni;let B=g[a+n-1],c=g[a+n];A.prev_length>=A.good_match&&(r>>=2),s>A.lookahead&&(s=A.lookahead);do{if(t=e,g[t+n]===c&&g[t+n-1]===B&&g[t]===g[a]&&g[++t]===g[a+1]){a+=2,t++;do{}while(g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&g[++a]===g[++t]&&a<I);if(i=Ni-(I-a),a=I-Ni,i>n){if(A.match_start=e,n=i,i>=s)break;B=g[a+n-1],c=g[a+n]}}}while((e=h[e&l])>o&&0!=--r);return n<=A.lookahead?n:A.lookahead},Ar=A=>{const e=A.w_size;let t,i,r;do{if(i=A.window_size-A.lookahead-A.strstart,A.strstart>=e+(e-Ti)&&(A.window.set(A.window.subarray(e,e+e-i),0),A.match_start-=e,A.strstart-=e,A.block_start-=e,A.insert>A.strstart&&(A.insert=A.strstart),Pi(A),i+=e),0===A.strm.avail_in)break;if(t=ji(A.strm,A.window,A.strstart+A.lookahead,i),A.lookahead+=t,A.lookahead+A.insert>=3)for(r=A.strstart-A.insert,A.ins_h=A.window[r],A.ins_h=Ki(A,A.ins_h,A.window[r+1]);A.insert&&(A.ins_h=Ki(A,A.ins_h,A.window[r+3-1]),A.prev[r&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=r,r++,A.insert--,!(A.lookahead+A.insert<3)););}while(A.lookahead<Ti&&0!==A.strm.avail_in)},er=(A,e)=>{let t,i,r,a=A.pending_buf_size-5>A.w_size?A.w_size:A.pending_buf_size-5,n=0,s=A.strm.avail_in;do{if(t=65535,r=A.bi_valid+42>>3,A.strm.avail_out<r)break;if(r=A.strm.avail_out-r,i=A.strstart-A.block_start,t>i+A.strm.avail_in&&(t=i+A.strm.avail_in),t>r&&(t=r),t<a&&(0===t&&e!==mi||e===ui||t!==i+A.strm.avail_in))break;n=e===mi&&t===i+A.strm.avail_in?1:0,fi(A,0,0,n),A.pending_buf[A.pending-4]=t,A.pending_buf[A.pending-3]=t>>8,A.pending_buf[A.pending-2]=~t,A.pending_buf[A.pending-1]=~t>>8,Vi(A.strm),i&&(i>t&&(i=t),A.strm.output.set(A.window.subarray(A.block_start,A.block_start+i),A.strm.next_out),A.strm.next_out+=i,A.strm.avail_out-=i,A.strm.total_out+=i,A.block_start+=i,t-=i),t&&(ji(A.strm,A.strm.output,A.strm.next_out,t),A.strm.next_out+=t,A.strm.avail_out-=t,A.strm.total_out+=t)}while(0===n);return s-=A.strm.avail_in,s&&(s>=A.w_size?(A.matches=2,A.window.set(A.strm.input.subarray(A.strm.next_in-A.w_size,A.strm.next_in),0),A.strstart=A.w_size,A.insert=A.strstart):(A.window_size-A.strstart<=s&&(A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,A.insert>A.strstart&&(A.insert=A.strstart)),A.window.set(A.strm.input.subarray(A.strm.next_in-s,A.strm.next_in),A.strstart),A.strstart+=s,A.insert+=s>A.w_size-A.insert?A.w_size-A.insert:s),A.block_start=A.strstart),A.high_water<A.strstart&&(A.high_water=A.strstart),n?4:e!==ui&&e!==mi&&0===A.strm.avail_in&&A.strstart===A.block_start?2:(r=A.window_size-A.strstart,A.strm.avail_in>r&&A.block_start>=A.w_size&&(A.block_start-=A.w_size,A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,r+=A.w_size,A.insert>A.strstart&&(A.insert=A.strstart)),r>A.strm.avail_in&&(r=A.strm.avail_in),r&&(ji(A.strm,A.window,A.strstart,r),A.strstart+=r,A.insert+=r>A.w_size-A.insert?A.w_size-A.insert:r),A.high_water<A.strstart&&(A.high_water=A.strstart),r=A.bi_valid+42>>3,r=A.pending_buf_size-r>65535?65535:A.pending_buf_size-r,a=r>A.w_size?A.w_size:r,i=A.strstart-A.block_start,(i>=a||(i||e===mi)&&e!==ui&&0===A.strm.avail_in&&i<=r)&&(t=i>r?r:i,n=e===mi&&0===A.strm.avail_in&&t===i?1:0,fi(A,A.block_start,t,n),A.block_start+=t,Vi(A.strm)),n?3:1)},tr=(A,e)=>{let t,i;for(;;){if(A.lookahead<Ti){if(Ar(A),A.lookahead<Ti&&e===ui)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),0!==t&&A.strstart-t<=A.w_size-Ti&&(A.match_length=$i(A,t)),A.match_length>=3)if(i=di(A,A.strstart-A.match_start,A.match_length-3),A.lookahead-=A.match_length,A.match_length<=A.max_lazy_match&&A.lookahead>=3){A.match_length--;do{A.strstart++,A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart}while(0!=--A.match_length);A.strstart++}else A.strstart+=A.match_length,A.match_length=0,A.ins_h=A.window[A.strstart],A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+1]);else i=di(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++;if(i&&(Zi(A,!1),0===A.strm.avail_out))return 1}return A.insert=A.strstart<2?A.strstart:2,e===mi?(Zi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Zi(A,!1),0===A.strm.avail_out)?1:2},ir=(A,e)=>{let t,i,r;for(;;){if(A.lookahead<Ti){if(Ar(A),A.lookahead<Ti&&e===ui)return 1;if(0===A.lookahead)break}if(t=0,A.lookahead>=3&&(A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),A.prev_length=A.match_length,A.prev_match=A.match_start,A.match_length=2,0!==t&&A.prev_length<A.max_lazy_match&&A.strstart-t<=A.w_size-Ti&&(A.match_length=$i(A,t),A.match_length<=5&&(A.strategy===Fi||3===A.match_length&&A.strstart-A.match_start>4096)&&(A.match_length=2)),A.prev_length>=3&&A.match_length<=A.prev_length){r=A.strstart+A.lookahead-3,i=di(A,A.strstart-1-A.prev_match,A.prev_length-3),A.lookahead-=A.prev_length-1,A.prev_length-=2;do{++A.strstart<=r&&(A.ins_h=Ki(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart)}while(0!=--A.prev_length);if(A.match_available=0,A.match_length=2,A.strstart++,i&&(Zi(A,!1),0===A.strm.avail_out))return 1}else if(A.match_available){if(i=di(A,0,A.window[A.strstart-1]),i&&Zi(A,!1),A.strstart++,A.lookahead--,0===A.strm.avail_out)return 1}else A.match_available=1,A.strstart++,A.lookahead--}return A.match_available&&(i=di(A,0,A.window[A.strstart-1]),A.match_available=0),A.insert=A.strstart<2?A.strstart:2,e===mi?(Zi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Zi(A,!1),0===A.strm.avail_out)?1:2};function rr(A,e,t,i,r){this.good_length=A,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=r}const ar=[new rr(0,0,0,0,er),new rr(4,4,8,4,tr),new rr(4,5,16,8,tr),new rr(4,6,32,32,tr),new rr(4,4,16,16,ir),new rr(8,16,32,32,ir),new rr(8,16,128,128,ir),new rr(8,32,128,256,ir),new rr(32,128,258,1024,ir),new rr(32,258,258,4096,ir)];function nr(){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=vi,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(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Yi(this.dyn_ltree),Yi(this.dyn_dtree),Yi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Yi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Yi(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 sr=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.status!==qi&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==Oi&&e.status!==Ji?1:0},or=A=>{if(sr(A))return Hi(A,bi);A.total_in=A.total_out=0,A.data_type=Li;const e=A.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?qi:Oi,A.adler=2===e.wrap?0:1,e.last_flush=-2,Ci(e),Di},gr=A=>{const e=or(A);var t;return e===Di&&((t=A.state).window_size=2*t.w_size,Yi(t.head),t.max_lazy_match=ar[t.level].max_lazy,t.good_match=ar[t.level].good_length,t.nice_match=ar[t.level].nice_length,t.max_chain_length=ar[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),e},lr=(A,e,t,i,r,a)=>{if(!A)return bi;let n=1;if(e===xi&&(e=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),r<1||r>9||t!==vi||i<8||i>15||e<0||e>9||a<0||a>Ri||8===i&&1!==n)return Hi(A,bi);8===i&&(i=9);const s=new nr;return A.state=s,s.strm=A,s.status=qi,s.wrap=n,s.gzhead=null,s.w_bits=i,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=r+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+3-1)/3),s.window=new Uint8Array(2*s.w_size),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<r+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=3*(s.lit_bufsize-1),s.level=e,s.strategy=a,s.method=t,gr(A)};var hr={deflateInit:(A,e)=>lr(A,e,vi,15,8,Mi),deflateInit2:lr,deflateReset:gr,deflateResetKeep:or,deflateSetHeader:(A,e)=>sr(A)||2!==A.state.wrap?bi:(A.state.gzhead=e,Di),deflate:(A,e)=>{if(sr(A)||e>yi||e<0)return A?Hi(A,bi):bi;const t=A.state;if(!A.output||0!==A.avail_in&&!A.input||t.status===Ji&&e!==mi)return Hi(A,0===A.avail_out?Si:bi);const i=t.last_flush;if(t.last_flush=e,0!==t.pending){if(Vi(A),0===A.avail_out)return t.last_flush=-1,Di}else if(0===A.avail_in&&zi(e)<=zi(i)&&e!==mi)return Hi(A,Si);if(t.status===Ji&&0!==A.avail_in)return Hi(A,Si);if(t.status===qi&&0===t.wrap&&(t.status=Oi),t.status===qi){let e=vi+(t.w_bits-8<<4)<<8,i=-1;if(i=t.strategy>=Gi||t.level<2?0:t.level<6?1:6===t.level?2:3,e|=i<<6,0!==t.strstart&&(e|=32),e+=31-e%31,Wi(t,e),0!==t.strstart&&(Wi(t,A.adler>>>16),Wi(t,65535&A.adler)),A.adler=1,t.status=Oi,Vi(A),0!==t.pending)return t.last_flush=-1,Di}if(57===t.status)if(A.adler=0,Xi(t,31),Xi(t,139),Xi(t,8),t.gzhead)Xi(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)),Xi(t,255&t.gzhead.time),Xi(t,t.gzhead.time>>8&255),Xi(t,t.gzhead.time>>16&255),Xi(t,t.gzhead.time>>24&255),Xi(t,9===t.level?2:t.strategy>=Gi||t.level<2?4:0),Xi(t,255&t.gzhead.os),t.gzhead.extra&&t.gzhead.extra.length&&(Xi(t,255&t.gzhead.extra.length),Xi(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(A.adler=Ii(A.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=69;else if(Xi(t,0),Xi(t,0),Xi(t,0),Xi(t,0),Xi(t,0),Xi(t,9===t.level?2:t.strategy>=Gi||t.level<2?4:0),Xi(t,3),t.status=Oi,Vi(A),0!==t.pending)return t.last_flush=-1,Di;if(69===t.status){if(t.gzhead.extra){let e=t.pending,i=(65535&t.gzhead.extra.length)-t.gzindex;for(;t.pending+i>t.pending_buf_size;){let r=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+r),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>e&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex+=r,Vi(A),0!==t.pending)return t.last_flush=-1,Di;e=0,i-=r}let r=new Uint8Array(t.gzhead.extra);t.pending_buf.set(r.subarray(t.gzindex,t.gzindex+i),t.pending),t.pending+=i,t.gzhead.hcrc&&t.pending>e&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex=0}t.status=73}if(73===t.status){if(t.gzhead.name){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-i,i)),Vi(A),0!==t.pending)return t.last_flush=-1,Di;i=0}e=t.gzindex<t.gzhead.name.length?255&t.gzhead.name.charCodeAt(t.gzindex++):0,Xi(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=91}if(91===t.status){if(t.gzhead.comment){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-i,i)),Vi(A),0!==t.pending)return t.last_flush=-1,Di;i=0}e=t.gzindex<t.gzhead.comment.length?255&t.gzhead.comment.charCodeAt(t.gzindex++):0,Xi(t,e)}while(0!==e);t.gzhead.hcrc&&t.pending>i&&(A.adler=Ii(A.adler,t.pending_buf,t.pending-i,i))}t.status=103}if(103===t.status){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Vi(A),0!==t.pending))return t.last_flush=-1,Di;Xi(t,255&A.adler),Xi(t,A.adler>>8&255),A.adler=0}if(t.status=Oi,Vi(A),0!==t.pending)return t.last_flush=-1,Di}if(0!==A.avail_in||0!==t.lookahead||e!==ui&&t.status!==Ji){let i=0===t.level?er(t,e):t.strategy===Gi?((A,e)=>{let t;for(;;){if(0===A.lookahead&&(Ar(A),0===A.lookahead)){if(e===ui)return 1;break}if(A.match_length=0,t=di(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++,t&&(Zi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===mi?(Zi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Zi(A,!1),0===A.strm.avail_out)?1:2})(t,e):t.strategy===Ui?((A,e)=>{let t,i,r,a;const n=A.window;for(;;){if(A.lookahead<=Ni){if(Ar(A),A.lookahead<=Ni&&e===ui)return 1;if(0===A.lookahead)break}if(A.match_length=0,A.lookahead>=3&&A.strstart>0&&(r=A.strstart-1,i=n[r],i===n[++r]&&i===n[++r]&&i===n[++r])){a=A.strstart+Ni;do{}while(i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&r<a);A.match_length=Ni-(a-r),A.match_length>A.lookahead&&(A.match_length=A.lookahead)}if(A.match_length>=3?(t=di(A,1,A.match_length-3),A.lookahead-=A.match_length,A.strstart+=A.match_length,A.match_length=0):(t=di(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++),t&&(Zi(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===mi?(Zi(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(Zi(A,!1),0===A.strm.avail_out)?1:2})(t,e):ar[t.level].func(t,e);if(3!==i&&4!==i||(t.status=Ji),1===i||3===i)return 0===A.avail_out&&(t.last_flush=-1),Di;if(2===i&&(e===wi?Qi(t):e!==yi&&(fi(t,0,0,!1),e===pi&&(Yi(t.head),0===t.lookahead&&(t.strstart=0,t.block_start=0,t.insert=0))),Vi(A),0===A.avail_out))return t.last_flush=-1,Di}return e!==mi?Di:t.wrap<=0?ki:(2===t.wrap?(Xi(t,255&A.adler),Xi(t,A.adler>>8&255),Xi(t,A.adler>>16&255),Xi(t,A.adler>>24&255),Xi(t,255&A.total_in),Xi(t,A.total_in>>8&255),Xi(t,A.total_in>>16&255),Xi(t,A.total_in>>24&255)):(Wi(t,A.adler>>>16),Wi(t,65535&A.adler)),Vi(A),t.wrap>0&&(t.wrap=-t.wrap),0!==t.pending?Di:ki)},deflateEnd:A=>{if(sr(A))return bi;const e=A.state.status;return A.state=null,e===Oi?Hi(A,_i):Di},deflateSetDictionary:(A,e)=>{let t=e.length;if(sr(A))return bi;const i=A.state,r=i.wrap;if(2===r||1===r&&i.status!==qi||i.lookahead)return bi;if(1===r&&(A.adler=li(A.adler,e,t,0)),i.wrap=0,t>=i.w_size){0===r&&(Yi(i.head),i.strstart=0,i.block_start=0,i.insert=0);let A=new Uint8Array(i.w_size);A.set(e.subarray(t-i.w_size,t),0),e=A,t=i.w_size}const a=A.avail_in,n=A.next_in,s=A.input;for(A.avail_in=t,A.next_in=0,A.input=e,Ar(i);i.lookahead>=3;){let A=i.strstart,e=i.lookahead-2;do{i.ins_h=Ki(i,i.ins_h,i.window[A+3-1]),i.prev[A&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=A,A++}while(--e);i.strstart=A,i.lookahead=2,Ar(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,A.next_in=n,A.input=s,A.avail_in=a,i.wrap=r,Di},deflateInfo:"pako deflate (from Nodeca project)"};const Ir=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var Br=function(A){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const t=e.shift();if(t){if("object"!=typeof t)throw new TypeError(t+"must be non-object");for(const e in t)Ir(t,e)&&(A[e]=t[e])}}return A},cr=A=>{let e=0;for(let t=0,i=A.length;t<i;t++)e+=A[t].length;const t=new Uint8Array(e);for(let e=0,i=0,r=A.length;e<r;e++){let r=A[e];t.set(r,i),i+=r.length}return t};let Cr=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(A){Cr=!1}const fr=new Uint8Array(256);for(let A=0;A<256;A++)fr[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;fr[254]=fr[254]=1;var Er=A=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);let e,t,i,r,a,n=A.length,s=0;for(r=0;r<n;r++)t=A.charCodeAt(r),55296==(64512&t)&&r+1<n&&(i=A.charCodeAt(r+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),r++)),s+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(s),a=0,r=0;a<s;r++)t=A.charCodeAt(r),55296==(64512&t)&&r+1<n&&(i=A.charCodeAt(r+1),56320==(64512&i)&&(t=65536+(t-55296<<10)+(i-56320),r++)),t<128?e[a++]=t:t<2048?(e[a++]=192|t>>>6,e[a++]=128|63&t):t<65536?(e[a++]=224|t>>>12,e[a++]=128|t>>>6&63,e[a++]=128|63&t):(e[a++]=240|t>>>18,e[a++]=128|t>>>12&63,e[a++]=128|t>>>6&63,e[a++]=128|63&t);return e},dr=(A,e)=>{const t=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));let i,r;const a=new Array(2*t);for(r=0,i=0;i<t;){let e=A[i++];if(e<128){a[r++]=e;continue}let n=fr[e];if(n>4)a[r++]=65533,i+=n-1;else{for(e&=2===n?31:3===n?15:7;n>1&&i<t;)e=e<<6|63&A[i++],n--;n>1?a[r++]=65533:e<65536?a[r++]=e:(e-=65536,a[r++]=55296|e>>10&1023,a[r++]=56320|1023&e)}}return((A,e)=>{if(e<65534&&A.subarray&&Cr)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(A[i]);return t})(a,r)},Qr=(A,e)=>{(e=e||A.length)>A.length&&(e=A.length);let t=e-1;for(;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+fr[A[t]]>e?t:e};var ur=function(){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};const wr=Object.prototype.toString,{Z_NO_FLUSH:pr,Z_SYNC_FLUSH:mr,Z_FULL_FLUSH:yr,Z_FINISH:Dr,Z_OK:kr,Z_STREAM_END:br,Z_DEFAULT_COMPRESSION:_r,Z_DEFAULT_STRATEGY:Sr,Z_DEFLATED:xr}=ci;function Fr(A){this.options=Br({level:_r,method:xr,chunkSize:16384,windowBits:15,memLevel:8,strategy:Sr},A||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ur,this.strm.avail_out=0;let t=hr.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==kr)throw new Error(Bi[t]);if(e.header&&hr.deflateSetHeader(this.strm,e.header),e.dictionary){let A;if(A="string"==typeof e.dictionary?Er(e.dictionary):"[object ArrayBuffer]"===wr.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,t=hr.deflateSetDictionary(this.strm,A),t!==kr)throw new Error(Bi[t]);this._dict_set=!0}}Fr.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize;let r,a;if(this.ended)return!1;for(a=e===~~e?e:!0===e?Dr:pr,"string"==typeof A?t.input=Er(A):"[object ArrayBuffer]"===wr.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;)if(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(a===mr||a===yr)&&t.avail_out<=6)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else{if(r=hr.deflate(t,a),r===br)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),r=hr.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===kr;if(0!==t.avail_out){if(a>0&&t.next_out>0)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else if(0===t.avail_in)break}else this.onData(t.output)}return!0},Fr.prototype.onData=function(A){this.chunks.push(A)},Fr.prototype.onEnd=function(A){A===kr&&(this.result=cr(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};const Gr=16209;var Ur=function(A,e){let t,i,r,a,n,s,o,g,l,h,I,B,c,C,f,E,d,Q,u,w,p,m,y,D;const k=A.state;t=A.next_in,y=A.input,i=t+(A.avail_in-5),r=A.next_out,D=A.output,a=r-(e-A.avail_out),n=r+(A.avail_out-257),s=k.dmax,o=k.wsize,g=k.whave,l=k.wnext,h=k.window,I=k.hold,B=k.bits,c=k.lencode,C=k.distcode,f=(1<<k.lenbits)-1,E=(1<<k.distbits)-1;A:do{B<15&&(I+=y[t++]<<B,B+=8,I+=y[t++]<<B,B+=8),d=c[I&f];e:for(;;){if(Q=d>>>24,I>>>=Q,B-=Q,Q=d>>>16&255,0===Q)D[r++]=65535&d;else{if(!(16&Q)){if(64&Q){if(32&Q){k.mode=16191;break A}A.msg="invalid literal/length code",k.mode=Gr;break A}d=c[(65535&d)+(I&(1<<Q)-1)];continue e}for(u=65535&d,Q&=15,Q&&(B<Q&&(I+=y[t++]<<B,B+=8),u+=I&(1<<Q)-1,I>>>=Q,B-=Q),B<15&&(I+=y[t++]<<B,B+=8,I+=y[t++]<<B,B+=8),d=C[I&E];;){if(Q=d>>>24,I>>>=Q,B-=Q,Q=d>>>16&255,16&Q){if(w=65535&d,Q&=15,B<Q&&(I+=y[t++]<<B,B+=8,B<Q&&(I+=y[t++]<<B,B+=8)),w+=I&(1<<Q)-1,w>s){A.msg="invalid distance too far back",k.mode=Gr;break A}if(I>>>=Q,B-=Q,Q=r-a,w>Q){if(Q=w-Q,Q>g&&k.sane){A.msg="invalid distance too far back",k.mode=Gr;break A}if(p=0,m=h,0===l){if(p+=o-Q,Q<u){u-=Q;do{D[r++]=h[p++]}while(--Q);p=r-w,m=D}}else if(l<Q){if(p+=o+l-Q,Q-=l,Q<u){u-=Q;do{D[r++]=h[p++]}while(--Q);if(p=0,l<u){Q=l,u-=Q;do{D[r++]=h[p++]}while(--Q);p=r-w,m=D}}}else if(p+=l-Q,Q<u){u-=Q;do{D[r++]=h[p++]}while(--Q);p=r-w,m=D}for(;u>2;)D[r++]=m[p++],D[r++]=m[p++],D[r++]=m[p++],u-=3;u&&(D[r++]=m[p++],u>1&&(D[r++]=m[p++]))}else{p=r-w;do{D[r++]=D[p++],D[r++]=D[p++],D[r++]=D[p++],u-=3}while(u>2);u&&(D[r++]=D[p++],u>1&&(D[r++]=D[p++]))}break}if(64&Q){A.msg="invalid distance code",k.mode=Gr;break A}d=C[(65535&d)+(I&(1<<Q)-1)]}}break}}while(t<i&&r<n);u=B>>3,t-=u,B-=u<<3,I&=(1<<B)-1,A.next_in=t,A.next_out=r,A.avail_in=t<i?i-t+5:5-(t-i),A.avail_out=r<n?n-r+257:257-(r-n),k.hold=I,k.bits=B};const Rr=15,Mr=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]),Lr=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]),vr=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]),Nr=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]);var Tr=(A,e,t,i,r,a,n,s)=>{const o=s.bits;let g,l,h,I,B,c,C=0,f=0,E=0,d=0,Q=0,u=0,w=0,p=0,m=0,y=0,D=null;const k=new Uint16Array(16),b=new Uint16Array(16);let _,S,x,F=null;for(C=0;C<=Rr;C++)k[C]=0;for(f=0;f<i;f++)k[e[t+f]]++;for(Q=o,d=Rr;d>=1&&0===k[d];d--);if(Q>d&&(Q=d),0===d)return r[a++]=20971520,r[a++]=20971520,s.bits=1,0;for(E=1;E<d&&0===k[E];E++);for(Q<E&&(Q=E),p=1,C=1;C<=Rr;C++)if(p<<=1,p-=k[C],p<0)return-1;if(p>0&&(0===A||1!==d))return-1;for(b[1]=0,C=1;C<Rr;C++)b[C+1]=b[C]+k[C];for(f=0;f<i;f++)0!==e[t+f]&&(n[b[e[t+f]]++]=f);if(0===A?(D=F=n,c=20):1===A?(D=Mr,F=Lr,c=257):(D=vr,F=Nr,c=0),y=0,f=0,C=E,B=a,u=Q,w=0,h=-1,m=1<<Q,I=m-1,1===A&&m>852||2===A&&m>592)return 1;for(;;){_=C-w,n[f]+1<c?(S=0,x=n[f]):n[f]>=c?(S=F[n[f]-c],x=D[n[f]-c]):(S=96,x=0),g=1<<C-w,l=1<<u,E=l;do{l-=g,r[B+(y>>w)+l]=_<<24|S<<16|x}while(0!==l);for(g=1<<C-1;y&g;)g>>=1;if(0!==g?(y&=g-1,y+=g):y=0,f++,0==--k[C]){if(C===d)break;C=e[t+n[f]]}if(C>Q&&(y&I)!==h){for(0===w&&(w=Q),B+=E,u=C-w,p=1<<u;u+w<d&&(p-=k[u+w],!(p<=0));)u++,p<<=1;if(m+=1<<u,1===A&&m>852||2===A&&m>592)return 1;h=y&I,r[h]=Q<<24|u<<16|B-a}}return 0!==y&&(r[B+y]=C-w<<24|64<<16),s.bits=Q,0};const{Z_FINISH:qr,Z_BLOCK:Or,Z_TREES:Jr,Z_OK:Hr,Z_STREAM_END:zr,Z_NEED_DICT:Yr,Z_STREAM_ERROR:Pr,Z_DATA_ERROR:Kr,Z_MEM_ERROR:Vr,Z_BUF_ERROR:Zr,Z_DEFLATED:Xr}=ci,Wr=16180,jr=16190,$r=16191,Aa=16192,ea=16194,ta=16199,ia=16200,ra=16206,aa=16209,na=A=>(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24);function sa(){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 oa=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.mode<Wr||e.mode>16211?1:0},ga=A=>{if(oa(A))return Pr;const e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=Wr,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,Hr},la=A=>{if(oa(A))return Pr;const e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,ga(A)},ha=(A,e)=>{let t;if(oa(A))return Pr;const i=A.state;return e<0?(t=0,e=-e):(t=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Pr:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,la(A))},Ia=(A,e)=>{if(!A)return Pr;const t=new sa;A.state=t,t.strm=A,t.window=null,t.mode=Wr;const i=ha(A,e);return i!==Hr&&(A.state=null),i};let Ba,ca,Ca=!0;const fa=A=>{if(Ca){Ba=new Int32Array(512),ca=new Int32Array(32);let e=0;for(;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(Tr(1,A.lens,0,288,Ba,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;Tr(2,A.lens,0,32,ca,0,A.work,{bits:5}),Ca=!1}A.lencode=Ba,A.lenbits=9,A.distcode=ca,A.distbits=5},Ea=(A,e,t,i)=>{let r;const a=A.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),i>=a.wsize?(a.window.set(e.subarray(t-a.wsize,t),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>i&&(r=i),a.window.set(e.subarray(t-i,t-i+r),a.wnext),(i-=r)?(a.window.set(e.subarray(t-i,t),0),a.wnext=i,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0};var da={inflateReset:la,inflateReset2:ha,inflateResetKeep:ga,inflateInit:A=>Ia(A,15),inflateInit2:Ia,inflate:(A,e)=>{let t,i,r,a,n,s,o,g,l,h,I,B,c,C,f,E,d,Q,u,w,p,m,y=0;const D=new Uint8Array(4);let k,b;const _=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(oa(A)||!A.output||!A.input&&0!==A.avail_in)return Pr;t=A.state,t.mode===$r&&(t.mode=Aa),n=A.next_out,r=A.output,o=A.avail_out,a=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,h=s,I=o,m=Hr;A:for(;;)switch(t.mode){case Wr:if(0===t.wrap){t.mode=Aa;break}for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(2&t.wrap&&35615===g){0===t.wbits&&(t.wbits=15),t.check=0,D[0]=255&g,D[1]=g>>>8&255,t.check=Ii(t.check,D,2,0),g=0,l=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&g)<<8)+(g>>8))%31){A.msg="incorrect header check",t.mode=aa;break}if((15&g)!==Xr){A.msg="unknown compression method",t.mode=aa;break}if(g>>>=4,l-=4,p=8+(15&g),0===t.wbits&&(t.wbits=p),p>15||p>t.wbits){A.msg="invalid window size",t.mode=aa;break}t.dmax=1<<t.wbits,t.flags=0,A.adler=t.check=1,t.mode=512&g?16189:$r,g=0,l=0;break;case 16181:for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(t.flags=g,(255&t.flags)!==Xr){A.msg="unknown compression method",t.mode=aa;break}if(57344&t.flags){A.msg="unknown header flags set",t.mode=aa;break}t.head&&(t.head.text=g>>8&1),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=Ii(t.check,D,2,0)),g=0,l=0,t.mode=16182;case 16182:for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.head&&(t.head.time=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,t.check=Ii(t.check,D,4,0)),g=0,l=0,t.mode=16183;case 16183:for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.head&&(t.head.xflags=255&g,t.head.os=g>>8),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=Ii(t.check,D,2,0)),g=0,l=0,t.mode=16184;case 16184:if(1024&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.length=g,t.head&&(t.head.extra_len=g),512&t.flags&&4&t.wrap&&(D[0]=255&g,D[1]=g>>>8&255,t.check=Ii(t.check,D,2,0)),g=0,l=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&t.flags&&(B=t.length,B>s&&(B=s),B&&(t.head&&(p=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(a,a+B),p)),512&t.flags&&4&t.wrap&&(t.check=Ii(t.check,i,B,a)),s-=B,a+=B,t.length-=B),t.length))break A;t.length=0,t.mode=16186;case 16186:if(2048&t.flags){if(0===s)break A;B=0;do{p=i[a+B++],t.head&&p&&t.length<65536&&(t.head.name+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=Ii(t.check,i,B,a)),s-=B,a+=B,p)break A}else t.head&&(t.head.name=null);t.length=0,t.mode=16187;case 16187:if(4096&t.flags){if(0===s)break A;B=0;do{p=i[a+B++],t.head&&p&&t.length<65536&&(t.head.comment+=String.fromCharCode(p))}while(p&&B<s);if(512&t.flags&&4&t.wrap&&(t.check=Ii(t.check,i,B,a)),s-=B,a+=B,p)break A}else t.head&&(t.head.comment=null);t.mode=16188;case 16188:if(512&t.flags){for(;l<16;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(4&t.wrap&&g!==(65535&t.check)){A.msg="header crc mismatch",t.mode=aa;break}g=0,l=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=$r;break;case 16189:for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}A.adler=t.check=na(g),g=0,l=0,t.mode=jr;case jr:if(0===t.havedict)return A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,Yr;A.adler=t.check=1,t.mode=$r;case $r:if(e===Or||e===Jr)break A;case Aa:if(t.last){g>>>=7&l,l-=7&l,t.mode=ra;break}for(;l<3;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}switch(t.last=1&g,g>>>=1,l-=1,3&g){case 0:t.mode=16193;break;case 1:if(fa(t),t.mode=ta,e===Jr){g>>>=2,l-=2;break A}break;case 2:t.mode=16196;break;case 3:A.msg="invalid block type",t.mode=aa}g>>>=2,l-=2;break;case 16193:for(g>>>=7&l,l-=7&l;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if((65535&g)!=(g>>>16^65535)){A.msg="invalid stored block lengths",t.mode=aa;break}if(t.length=65535&g,g=0,l=0,t.mode=ea,e===Jr)break A;case ea:t.mode=16195;case 16195:if(B=t.length,B){if(B>s&&(B=s),B>o&&(B=o),0===B)break A;r.set(i.subarray(a,a+B),n),s-=B,a+=B,o-=B,n+=B,t.length-=B;break}t.mode=$r;break;case 16196:for(;l<14;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(t.nlen=257+(31&g),g>>>=5,l-=5,t.ndist=1+(31&g),g>>>=5,l-=5,t.ncode=4+(15&g),g>>>=4,l-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=aa;break}t.have=0,t.mode=16197;case 16197:for(;t.have<t.ncode;){for(;l<3;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.lens[_[t.have++]]=7&g,g>>>=3,l-=3}for(;t.have<19;)t.lens[_[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},m=Tr(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid code lengths set",t.mode=aa;break}t.have=0,t.mode=16198;case 16198:for(;t.have<t.nlen+t.ndist;){for(;y=t.lencode[g&(1<<t.lenbits)-1],f=y>>>24,E=y>>>16&255,d=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(d<16)g>>>=f,l-=f,t.lens[t.have++]=d;else{if(16===d){for(b=f+2;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(g>>>=f,l-=f,0===t.have){A.msg="invalid bit length repeat",t.mode=aa;break}p=t.lens[t.have-1],B=3+(3&g),g>>>=2,l-=2}else if(17===d){for(b=f+3;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=f,l-=f,p=0,B=3+(7&g),g>>>=3,l-=3}else{for(b=f+7;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=f,l-=f,p=0,B=11+(127&g),g>>>=7,l-=7}if(t.have+B>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=aa;break}for(;B--;)t.lens[t.have++]=p}}if(t.mode===aa)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=aa;break}if(t.lenbits=9,k={bits:t.lenbits},m=Tr(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,m){A.msg="invalid literal/lengths set",t.mode=aa;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},m=Tr(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,m){A.msg="invalid distances set",t.mode=aa;break}if(t.mode=ta,e===Jr)break A;case ta:t.mode=ia;case ia:if(s>=6&&o>=258){A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,Ur(A,I),n=A.next_out,r=A.output,o=A.avail_out,a=A.next_in,i=A.input,s=A.avail_in,g=t.hold,l=t.bits,t.mode===$r&&(t.back=-1);break}for(t.back=0;y=t.lencode[g&(1<<t.lenbits)-1],f=y>>>24,E=y>>>16&255,d=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(E&&!(240&E)){for(Q=f,u=E,w=d;y=t.lencode[w+((g&(1<<Q+u)-1)>>Q)],f=y>>>24,E=y>>>16&255,d=65535&y,!(Q+f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=Q,l-=Q,t.back+=Q}if(g>>>=f,l-=f,t.back+=f,t.length=d,0===E){t.mode=16205;break}if(32&E){t.back=-1,t.mode=$r;break}if(64&E){A.msg="invalid literal/length code",t.mode=aa;break}t.extra=15&E,t.mode=16201;case 16201:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.length+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;y=t.distcode[g&(1<<t.distbits)-1],f=y>>>24,E=y>>>16&255,d=65535&y,!(f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(!(240&E)){for(Q=f,u=E,w=d;y=t.distcode[w+((g&(1<<Q+u)-1)>>Q)],f=y>>>24,E=y>>>16&255,d=65535&y,!(Q+f<=l);){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}g>>>=Q,l-=Q,t.back+=Q}if(g>>>=f,l-=f,t.back+=f,64&E){A.msg="invalid distance code",t.mode=aa;break}t.offset=d,t.extra=15&E,t.mode=16203;case 16203:if(t.extra){for(b=t.extra;l<b;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}t.offset+=g&(1<<t.extra)-1,g>>>=t.extra,l-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=aa;break}t.mode=16204;case 16204:if(0===o)break A;if(B=I-o,t.offset>B){if(B=t.offset-B,B>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=aa;break}B>t.wnext?(B-=t.wnext,c=t.wsize-B):c=t.wnext-B,B>t.length&&(B=t.length),C=t.window}else C=r,c=n-t.offset,B=t.length;B>o&&(B=o),o-=B,t.length-=B;do{r[n++]=C[c++]}while(--B);0===t.length&&(t.mode=ia);break;case 16205:if(0===o)break A;r[n++]=t.length,o--,t.mode=ia;break;case ra:if(t.wrap){for(;l<32;){if(0===s)break A;s--,g|=i[a++]<<l,l+=8}if(I-=o,A.total_out+=I,t.total+=I,4&t.wrap&&I&&(A.adler=t.check=t.flags?Ii(t.check,r,I,n-I):li(t.check,r,I,n-I)),I=o,4&t.wrap&&(t.flags?g:na(g))!==t.check){A.msg="incorrect data check",t.mode=aa;break}g=0,l=0}t.mode=16207;case 16207:if(t.wrap&&t.flags){for(;l<32;){if(0===s)break A;s--,g+=i[a++]<<l,l+=8}if(4&t.wrap&&g!==(4294967295&t.total)){A.msg="incorrect length check",t.mode=aa;break}g=0,l=0}t.mode=16208;case 16208:m=zr;break A;case aa:m=Kr;break A;case 16210:return Vr;default:return Pr}return A.next_out=n,A.avail_out=o,A.next_in=a,A.avail_in=s,t.hold=g,t.bits=l,(t.wsize||I!==A.avail_out&&t.mode<aa&&(t.mode<ra||e!==qr))&&Ea(A,A.output,A.next_out,I-A.avail_out),h-=A.avail_in,I-=A.avail_out,A.total_in+=h,A.total_out+=I,t.total+=I,4&t.wrap&&I&&(A.adler=t.check=t.flags?Ii(t.check,r,I,A.next_out-I):li(t.check,r,I,A.next_out-I)),A.data_type=t.bits+(t.last?64:0)+(t.mode===$r?128:0)+(t.mode===ta||t.mode===ea?256:0),(0===h&&0===I||e===qr)&&m===Hr&&(m=Zr),m},inflateEnd:A=>{if(oa(A))return Pr;let e=A.state;return e.window&&(e.window=null),A.state=null,Hr},inflateGetHeader:(A,e)=>{if(oa(A))return Pr;const t=A.state;return 2&t.wrap?(t.head=e,e.done=!1,Hr):Pr},inflateSetDictionary:(A,e)=>{const t=e.length;let i,r,a;return oa(A)?Pr:(i=A.state,0!==i.wrap&&i.mode!==jr?Pr:i.mode===jr&&(r=1,r=li(r,e,t,0),r!==i.check)?Kr:(a=Ea(A,e,t,t),a?(i.mode=16210,Vr):(i.havedict=1,Hr)))},inflateInfo:"pako inflate (from Nodeca project)"};var Qa=function(){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};const ua=Object.prototype.toString,{Z_NO_FLUSH:wa,Z_FINISH:pa,Z_OK:ma,Z_STREAM_END:ya,Z_NEED_DICT:Da,Z_STREAM_ERROR:ka,Z_DATA_ERROR:ba,Z_MEM_ERROR:_a}=ci;function Sa(A){this.options=Br({chunkSize:65536,windowBits:15,to:""},A||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(15&e.windowBits||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ur,this.strm.avail_out=0;let t=da.inflateInit2(this.strm,e.windowBits);if(t!==ma)throw new Error(Bi[t]);if(this.header=new Qa,da.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Er(e.dictionary):"[object ArrayBuffer]"===ua.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=da.inflateSetDictionary(this.strm,e.dictionary),t!==ma)))throw new Error(Bi[t])}function xa(A,e){const t=new Sa(e);if(t.push(A),t.err)throw t.msg||Bi[t.err];return t.result}Sa.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let a,n,s;if(this.ended)return!1;for(n=e===~~e?e:!0===e?pa:wa,"[object ArrayBuffer]"===ua.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;){for(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),a=da.inflate(t,n),a===Da&&r&&(a=da.inflateSetDictionary(t,r),a===ma?a=da.inflate(t,n):a===ba&&(a=Da));t.avail_in>0&&a===ya&&t.state.wrap>0&&0!==A[t.next_in];)da.inflateReset(t),a=da.inflate(t,n);switch(a){case ka:case ba:case Da:case _a:return this.onEnd(a),this.ended=!0,!1}if(s=t.avail_out,t.next_out&&(0===t.avail_out||a===ya))if("string"===this.options.to){let A=Qr(t.output,t.next_out),e=t.next_out-A,r=dr(t.output,A);t.next_out=e,t.avail_out=i-e,e&&t.output.set(t.output.subarray(A,A+e),0),this.onData(r)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(a!==ma||0!==s){if(a===ya)return a=da.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===t.avail_in)break}}return!0},Sa.prototype.onData=function(A){this.chunks.push(A)},Sa.prototype.onEnd=function(A){A===ma&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=cr(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var Fa={Inflate:Sa,inflate:xa,inflateRaw:function(A,e){return(e=e||{}).raw=!0,xa(A,e)},ungzip:xa,constants:ci};const{Inflate:Ga,inflate:Ua,inflateRaw:Ra,ungzip:Ma}=Fa;var La=Ua;var va=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){return La(new Uint8Array(A)).buffer}}});var Na,Ta=Object.freeze({__proto__:null,default:class extends Ge{decodeBlock(A){const e=new DataView(A),t=[];for(let i=0;i<A.byteLength;++i){let A=e.getInt8(i);if(A<0){const r=e.getUint8(i+1);A=-A;for(let e=0;e<=A;++e)t.push(r);i+=1}else{for(let r=0;r<=A;++r)t.push(e.getUint8(i+r+1));i+=A+1}}return new Uint8Array(t).buffer}}}),qa={exports:{}};Na=qa,
3
3
  /* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */
4
- function(){var A,e,t,i,r,a,n,s,o,g,l,h,I,B,c,C,f=(A={defaultNoDataValue:-34027999387901484e22,decode:function(a,n){var s=(n=n||{}).encodedMaskData||null===n.encodedMaskData,o=r(a,n.inputOffset||0,s),g=null!==n.noDataValue?n.noDataValue:A.defaultNoDataValue,l=e(o,n.pixelType||Float32Array,n.encodedMaskData,g,n.returnMask),h={width:o.width,height:o.height,pixelData:l.resultPixels,minValue:l.minValue,maxValue:o.pixels.maxValue,noDataValue:g};return l.resultMask&&(h.maskData=l.resultMask),n.returnEncodedMask&&o.mask&&(h.encodedMaskData=o.mask.bitset?o.mask.bitset:null),n.returnFileInfo&&(h.fileInfo=t(o),n.computeUsedBitDepths&&(h.fileInfo.bitDepths=i(o))),h}},e=function(A,e,t,i,r){var n,s,o,g=0,l=A.pixels.numBlocksX,h=A.pixels.numBlocksY,I=Math.floor(A.width/l),B=Math.floor(A.height/h),c=2*A.maxZError,C=Number.MAX_VALUE;t=t||(A.mask?A.mask.bitset:null),s=new e(A.width*A.height),r&&t&&(o=new Uint8Array(A.width*A.height));for(var f,E,Q=new Float32Array(I*B),d=0;d<=h;d++){var u=d!==h?B:A.height%h;if(0!==u)for(var w=0;w<=l;w++){var p=w!==l?I:A.width%l;if(0!==p){var m,y,D,k,b=d*A.width*B+w*I,_=A.width-p,S=A.pixels.blocks[g];if(S.encoding<2?(0===S.encoding?m=S.rawData:(a(S.stuffedData,S.bitsPerPixel,S.numValidPixels,S.offset,c,Q,A.pixels.maxValue),m=Q),y=0):D=2===S.encoding?0:S.offset,t)for(E=0;E<u;E++){for(7&b&&(k=t[b>>3],k<<=7&b),f=0;f<p;f++)7&b||(k=t[b>>3]),128&k?(o&&(o[b]=1),C=C>(n=S.encoding<2?m[y++]:D)?n:C,s[b++]=n):(o&&(o[b]=0),s[b++]=i),k<<=1;b+=_}else if(S.encoding<2)for(E=0;E<u;E++){for(f=0;f<p;f++)C=C>(n=m[y++])?n:C,s[b++]=n;b+=_}else for(C=C>D?D:C,E=0;E<u;E++){for(f=0;f<p;f++)s[b++]=D;b+=_}if(1===S.encoding&&y!==S.numValidPixels)throw"Block and Mask do not match";g++}}}return{resultPixels:s,resultMask:o,minValue:C}},t=function(A){return{fileIdentifierString:A.fileIdentifierString,fileVersion:A.fileVersion,imageType:A.imageType,height:A.height,width:A.width,maxZError:A.maxZError,eofOffset:A.eofOffset,mask:A.mask?{numBlocksX:A.mask.numBlocksX,numBlocksY:A.mask.numBlocksY,numBytes:A.mask.numBytes,maxValue:A.mask.maxValue}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,numBytes:A.pixels.numBytes,maxValue:A.pixels.maxValue,noDataValue:A.noDataValue}}},i=function(A){for(var e=A.pixels.numBlocksX*A.pixels.numBlocksY,t={},i=0;i<e;i++){var r=A.pixels.blocks[i];0===r.encoding?t.float32=!0:1===r.encoding?t[r.bitsPerPixel]=!0:t[0]=!0}return Object.keys(t)},r=function(A,e,t){var i={},r=new Uint8Array(A,e,10);if(i.fileIdentifierString=String.fromCharCode.apply(null,r),"CntZImage"!==i.fileIdentifierString.trim())throw"Unexpected file identifier string: "+i.fileIdentifierString;e+=10;var a=new DataView(A,e,24);if(i.fileVersion=a.getInt32(0,!0),i.imageType=a.getInt32(4,!0),i.height=a.getUint32(8,!0),i.width=a.getUint32(12,!0),i.maxZError=a.getFloat64(16,!0),e+=24,!t)if(a=new DataView(A,e,16),i.mask={},i.mask.numBlocksY=a.getUint32(0,!0),i.mask.numBlocksX=a.getUint32(4,!0),i.mask.numBytes=a.getUint32(8,!0),i.mask.maxValue=a.getFloat32(12,!0),e+=16,i.mask.numBytes>0){var n=new Uint8Array(Math.ceil(i.width*i.height/8)),s=(a=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),o=2,g=0;do{if(s>0)for(;s--;)n[g++]=a.getUint8(o++);else{var l=a.getUint8(o++);for(s=-s;s--;)n[g++]=l}s=a.getInt16(o,!0),o+=2}while(o<i.mask.numBytes);if(-32768!==s||g<n.length)throw"Unexpected end of mask RLE encoding";i.mask.bitset=n,e+=i.mask.numBytes}else i.mask.numBytes|i.mask.numBlocksY|i.mask.maxValue||(i.mask.bitset=new Uint8Array(Math.ceil(i.width*i.height/8)));a=new DataView(A,e,16),i.pixels={},i.pixels.numBlocksY=a.getUint32(0,!0),i.pixels.numBlocksX=a.getUint32(4,!0),i.pixels.numBytes=a.getUint32(8,!0),i.pixels.maxValue=a.getFloat32(12,!0),e+=16;var h=i.pixels.numBlocksX,I=i.pixels.numBlocksY,B=h+(i.width%h>0?1:0),c=I+(i.height%I>0?1:0);i.pixels.blocks=new Array(B*c);for(var C=0,f=0;f<c;f++)for(var E=0;E<B;E++){var Q=0,d=A.byteLength-e;a=new DataView(A,e,Math.min(10,d));var u={};i.pixels.blocks[C++]=u;var w=a.getUint8(0);if(Q++,u.encoding=63&w,u.encoding>3)throw"Invalid block encoding ("+u.encoding+")";if(2!==u.encoding){if(0!==w&&2!==w){if(w>>=6,u.offsetType=w,2===w)u.offset=a.getInt8(1),Q++;else if(1===w)u.offset=a.getInt16(1,!0),Q+=2;else{if(0!==w)throw"Invalid block offset type";u.offset=a.getFloat32(1,!0),Q+=4}if(1===u.encoding)if(w=a.getUint8(Q),Q++,u.bitsPerPixel=63&w,w>>=6,u.numValidPixelsType=w,2===w)u.numValidPixels=a.getUint8(Q),Q++;else if(1===w)u.numValidPixels=a.getUint16(Q,!0),Q+=2;else{if(0!==w)throw"Invalid valid pixel count type";u.numValidPixels=a.getUint32(Q,!0),Q+=4}}var p;if(e+=Q,3!==u.encoding)if(0===u.encoding){var m=(i.pixels.numBytes-1)/4;if(m!==Math.floor(m))throw"uncompressed block has invalid length";p=new ArrayBuffer(4*m),new Uint8Array(p).set(new Uint8Array(A,e,4*m));var y=new Float32Array(p);u.rawData=y,e+=4*m}else if(1===u.encoding){var D=Math.ceil(u.numValidPixels*u.bitsPerPixel/8),k=Math.ceil(D/4);p=new ArrayBuffer(4*k),new Uint8Array(p).set(new Uint8Array(A,e,D)),u.stuffedData=new Uint32Array(p),e+=D}}else e++}return i.eofOffset=e,i},a=function(A,e,t,i,r,a,n){var s,o,g,l=(1<<e)-1,h=0,I=0,B=Math.ceil((n-i)/r),c=4*A.length-Math.ceil(e*t/8);for(A[A.length-1]<<=8*c,s=0;s<t;s++){if(0===I&&(g=A[h++],I=32),I>=e)o=g>>>I-e&l,I-=e;else{var C=e-I;o=(g&l)<<C&l,o+=(g=A[h++])>>>(I=32-C)}a[s]=o<B?i+o*r:n}return a},A),E=(n=function(A,e,t,i,r,a,n,s){var o,g,l,h,I,B=(1<<t)-1,c=0,C=0,f=4*A.length-Math.ceil(t*i/8);if(A[A.length-1]<<=8*f,r)for(o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(h=t-C)&B,g+=(l=A[c++])>>>(C=32-h)),e[o]=r[g];else for(I=Math.ceil((s-a)/n),o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(h=t-C)&B,g+=(l=A[c++])>>>(C=32-h)),e[o]=g<I?a+g*n:s},s=function(A,e,t,i,r,a){var n,s=(1<<e)-1,o=0,g=0,l=0,h=0,I=0,B=[],c=4*A.length-Math.ceil(e*t/8);A[A.length-1]<<=8*c;var C=Math.ceil((a-i)/r);for(g=0;g<t;g++)0===h&&(n=A[o++],h=32),h>=e?(I=n>>>h-e&s,h-=e):(I=(n&s)<<(l=e-h)&s,I+=(n=A[o++])>>>(h=32-l)),B[g]=I<C?i+I*r:a;return B.unshift(i),B},o=function(A,e,t,i,r,a,n,s){var o,g,l,h,I=(1<<t)-1,B=0,c=0,C=0;if(r)for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&I,c-=t,C+=t):(g=l>>>C&I,c=32-(h=t-c),g|=((l=A[B++])&(1<<h)-1)<<t-h,C=h),e[o]=r[g];else{var f=Math.ceil((s-a)/n);for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&I,c-=t,C+=t):(g=l>>>C&I,c=32-(h=t-c),g|=((l=A[B++])&(1<<h)-1)<<t-h,C=h),e[o]=g<f?a+g*n:s}return e},g=function(A,e,t,i,r,a){var n,s=(1<<e)-1,o=0,g=0,l=0,h=0,I=0,B=0,c=[],C=Math.ceil((a-i)/r);for(g=0;g<t;g++)0===h&&(n=A[o++],h=32,B=0),h>=e?(I=n>>>B&s,h-=e,B+=e):(I=n>>>B&s,h=32-(l=e-h),I|=((n=A[o++])&(1<<l)-1)<<e-l,B=l),c[g]=I<C?i+I*r:a;return c.unshift(i),c},l=function(A,e,t,i){var r,a,n,s,o=(1<<t)-1,g=0,l=0,h=4*A.length-Math.ceil(t*i/8);for(A[A.length-1]<<=8*h,r=0;r<i;r++)0===l&&(n=A[g++],l=32),l>=t?(a=n>>>l-t&o,l-=t):(a=(n&o)<<(s=t-l)&o,a+=(n=A[g++])>>>(l=32-s)),e[r]=a;return e},h=function(A,e,t,i){var r,a,n,s,o=(1<<t)-1,g=0,l=0,h=0;for(r=0;r<i;r++)0===l&&(n=A[g++],l=32,h=0),l>=t?(a=n>>>h&o,l-=t,h+=t):(a=n>>>h&o,l=32-(s=t-l),a|=((n=A[g++])&(1<<s)-1)<<t-s,h=s),e[r]=a;return e},I={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(A){for(var e=65535,t=65535,i=A.length,r=Math.floor(i/2),a=0;r;){var n=r>=359?359:r;r-=n;do{e+=A[a++]<<8,t+=e+=A[a++]}while(--n);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[a]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var a,n=new DataView(A,t,8),s=n.getInt32(0,!0);if(r.fileVersion=s,t+=4,s>=3&&(r.checksum=n.getUint32(4,!0),t+=4),n=new DataView(A,t,12),r.height=n.getUint32(0,!0),r.width=n.getUint32(4,!0),t+=8,s>=4?(r.numDims=n.getUint32(8,!0),t+=4):r.numDims=1,n=new DataView(A,t,40),r.numValidPixel=n.getUint32(0,!0),r.microBlockSize=n.getInt32(4,!0),r.blobSize=n.getInt32(8,!0),r.imageType=n.getInt32(12,!0),r.maxZError=n.getFloat64(16,!0),r.zMin=n.getFloat64(24,!0),r.zMax=n.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,s>=3&&(a=s>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-a,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),a=this.readSubArray(A,e.ptr,i,r),n=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var s,o=!0;for(s=0;s<t.numDims;s++)if(a[s]!==n[s]){o=!1;break}return t.minValues=a,t.maxValues=n,o},readSubArray:function(A,e,t,i){var r;if(t===Uint8Array)r=new Uint8Array(A,e,i);else{var a=new ArrayBuffer(i);new Uint8Array(a).set(new Uint8Array(A,e,i)),r=new t(a)}return r},readMask:function(A,e){var t,i,r=e.ptr,a=e.headerInfo,n=a.width*a.height,s=a.numValidPixel,o=new DataView(A,r,4),g={};if(g.numBytes=o.getUint32(0,!0),r+=4,(0===s||n===s)&&0!==g.numBytes)throw"invalid mask";if(0===s)t=new Uint8Array(Math.ceil(n/8)),g.bitset=t,i=new Uint8Array(n),e.pixels.resultMask=i,r+=g.numBytes;else if(g.numBytes>0){t=new Uint8Array(Math.ceil(n/8));var l=(o=new DataView(A,r,g.numBytes)).getInt16(0,!0),h=2,I=0,B=0;do{if(l>0)for(;l--;)t[I++]=o.getUint8(h++);else for(B=o.getUint8(h++),l=-l;l--;)t[I++]=B;l=o.getInt16(h,!0),h+=2}while(h<g.numBytes);if(-32768!==l||I<t.length)throw"Unexpected end of mask RLE encoding";i=new Uint8Array(n);var c=0,C=0;for(C=0;C<n;C++)7&C?(c=t[C>>3],c<<=7&C):c=t[C>>3],128&c&&(i[C]=1);e.pixels.resultMask=i,g.bitset=t,r+=g.numBytes}return e.ptr=r,e.mask=g,!0},readDataOneSweep:function(A,e,t,i){var r,a=e.ptr,n=e.headerInfo,s=n.numDims,o=n.width*n.height,g=n.imageType,l=n.numValidPixel*I.getDataTypeSize(g)*s,h=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,a,l);else{var B=new ArrayBuffer(l);new Uint8Array(B).set(new Uint8Array(A,a,l)),r=new t(B)}if(r.length===o*s)e.pixels.resultPixels=i?I.swapDimensionOrder(r,o,s,t,!0):r;else{e.pixels.resultPixels=new t(o*s);var c=0,C=0,f=0,E=0;if(s>1){if(i){for(C=0;C<o;C++)if(h[C])for(E=C,f=0;f<s;f++,E+=o)e.pixels.resultPixels[E]=r[c++]}else for(C=0;C<o;C++)if(h[C])for(E=C*s,f=0;f<s;f++)e.pixels.resultPixels[E+f]=r[c++]}else for(C=0;C<o;C++)h[C]&&(e.pixels.resultPixels[C]=r[c++])}return a+=l,e.ptr=a,!0},readHuffmanTree:function(A,e){var t=this.HUFFMAN_LUT_BITS_MAX,i=new DataView(A,e.ptr,16);if(e.ptr+=16,i.getInt32(0,!0)<2)throw"unsupported Huffman version";var r=i.getInt32(4,!0),a=i.getInt32(8,!0),n=i.getInt32(12,!0);if(a>=n)return!1;var s=new Uint32Array(n-a);I.decodeBits(A,e,s);var o,g,l,h,c=[];for(o=a;o<n;o++)c[g=o-(o<r?0:r)]={first:s[o-a],second:null};var C=A.byteLength-e.ptr,f=Math.ceil(C/4),E=new ArrayBuffer(4*f);new Uint8Array(E).set(new Uint8Array(A,e.ptr,C));var Q,d=new Uint32Array(E),u=0,w=0;for(Q=d[0],o=a;o<n;o++)(h=c[g=o-(o<r?0:r)].first)>0&&(c[g].second=Q<<u>>>32-h,32-u>=h?32===(u+=h)&&(u=0,Q=d[++w]):(u+=h-32,Q=d[++w],c[g].second|=Q>>>32-u));var p=0,m=0,y=new B;for(o=0;o<c.length;o++)void 0!==c[o]&&(p=Math.max(p,c[o].first));m=p>=t?t:p;var D,k,b,_,S,x=[];for(o=a;o<n;o++)if((h=c[g=o-(o<r?0:r)].first)>0)if(D=[h,g],h<=m)for(k=c[g].second<<m-h,b=1<<m-h,l=0;l<b;l++)x[k|l]=D;else for(k=c[g].second,S=y,_=h-1;_>=0;_--)k>>>_&1?(S.right||(S.right=new B),S=S.right):(S.left||(S.left=new B),S=S.left),0!==_||S.val||(S.val=D[1]);return{decodeLut:x,numBitsLUTQick:m,numBitsLUT:p,tree:y,stuffedData:d,srcPtr:w,bitPos:u}},readHuffman:function(A,e,t,i){var r,a,n,s,o,g,l,h,B,c=e.headerInfo.numDims,C=e.headerInfo.height,f=e.headerInfo.width,E=f*C,Q=this.readHuffmanTree(A,e),d=Q.decodeLut,u=Q.tree,w=Q.stuffedData,p=Q.srcPtr,m=Q.bitPos,y=Q.numBitsLUTQick,D=Q.numBitsLUT,k=0===e.headerInfo.imageType?128:0,b=e.pixels.resultMask,_=0;m>0&&(p++,m=0);var S,x=w[p],F=1===e.encodeMode,G=new t(E*c),U=G;if(c<2||F){for(S=0;S<c;S++)if(c>1&&(U=new t(G.buffer,E*S,E),_=0),e.headerInfo.numValidPixel===f*C)for(h=0,g=0;g<C;g++)for(l=0;l<f;l++,h++){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])a=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,F?(n+=l>0?_:g>0?U[h-f]:_,n&=255,U[h]=n,_=n):U[h]=n}else for(h=0,g=0;g<C;g++)for(l=0;l<f;l++,h++)if(b[h]){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])a=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,F?(l>0&&b[h-1]?n+=_:g>0&&b[h-f]?n+=U[h-f]:n+=_,n&=255,U[h]=n,_=n):U[h]=n}}else for(h=0,g=0;g<C;g++)for(l=0;l<f;l++)if(h=g*f+l,!b||b[h])for(S=0;S<c;S++,h+=E){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),d[o])a=d[o][1],m+=d[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,U[h]=n}e.ptr=e.ptr+4*(p+1)+(m>0?4:0),e.pixels.resultPixels=G,c>1&&!i&&(e.pixels.resultPixels=I.swapDimensionOrder(G,E,c,t))},decodeBits:function(A,e,t,i,r){var a=e.headerInfo,I=a.fileVersion,B=0,c=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,C=new DataView(A,e.ptr,c),f=C.getUint8(0);B++;var E=f>>6,Q=0===E?4:3-E,d=(32&f)>0,u=31&f,w=0;if(1===Q)w=C.getUint8(B),B++;else if(2===Q)w=C.getUint16(B,!0),B+=2;else{if(4!==Q)throw"Invalid valid pixel count type";w=C.getUint32(B,!0),B+=4}var p,m,y,D,k,b,_,S,x,F=2*a.maxZError,G=a.numDims>1?a.maxValues[r]:a.zMax;if(d){for(e.counter.lut++,S=C.getUint8(B),B++,D=Math.ceil((S-1)*u/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),y=new Uint8Array(m),e.ptr+=B,y.set(new Uint8Array(A,e.ptr,D)),_=new Uint32Array(m),e.ptr+=D,x=0;S-1>>>x;)x++;D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,b=I>=3?g(_,u,S-1,i,F,G):s(_,u,S-1,i,F,G),I>=3?o(p,t,x,w,b):n(p,t,x,w,b)}else e.counter.bitstuffer++,x=u,e.ptr+=B,x>0&&(D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,I>=3?null==i?h(p,t,x,w):o(p,t,x,w,!1,i,F,G):null==i?l(p,t,x,w):n(p,t,x,w,!1,i,F,G))},readTiles:function(A,e,t,i){var r=e.headerInfo,a=r.width,n=r.height,s=a*n,o=r.microBlockSize,g=r.imageType,l=I.getDataTypeSize(g),h=Math.ceil(a/o),B=Math.ceil(n/o);e.pixels.numBlocksY=B,e.pixels.numBlocksX=h,e.pixels.ptr=0;var c,C,f,E,Q,d,u,w,p,m,y=0,D=0,k=0,b=0,_=0,S=0,x=0,F=0,G=0,U=0,R=0,M=0,L=0,v=0,N=0,T=new t(o*o),q=n%o||o,O=a%o||o,J=r.numDims,H=e.pixels.resultMask,Y=e.pixels.resultPixels,z=r.fileVersion>=5?14:15,P=r.zMax;for(k=0;k<B;k++)for(_=k!==B-1?o:q,b=0;b<h;b++)for(U=k*a*o+b*o,R=a-(S=b!==h-1?o:O),w=0;w<J;w++){if(J>1?(m=Y,U=k*a*o+b*o,Y=new t(e.pixels.resultPixels.buffer,s*w*l,s),P=r.maxValues[w]):m=null,x=A.byteLength-e.ptr,C={},N=0,F=(c=new DataView(A,e.ptr,Math.min(10,x))).getUint8(0),N++,p=r.fileVersion>=5?4&F:0,G=F>>6&255,(F>>2&z)!=(b*o>>3&z))throw"integrity issue";if(p&&0===w)throw"integrity issue";if((Q=3&F)>3)throw e.ptr+=N,"Invalid block encoding ("+Q+")";if(2!==Q)if(0===Q){if(p)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=N,M=(M=_*S*l)<(L=A.byteLength-e.ptr)?M:L,f=new ArrayBuffer(M%l==0?M:M+l-M%l),new Uint8Array(f).set(new Uint8Array(A,e.ptr,M)),E=new t(f),v=0,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=E[v++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U++]=E[v++];U+=R}e.ptr+=v*l}else if(d=I.getDataTypeUsed(p&&g<6?4:g,G),u=I.getOnePixel(C,N,d,c),N+=I.getDataTypeSize(d),3===Q)if(e.ptr+=N,e.counter.constantoffset++,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=p?Math.min(P,m[U]+u):u),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U]=p?Math.min(P,m[U]+u):u,U++;U+=R}else if(e.ptr+=N,I.decodeBits(A,e,T,u,w),N=0,p)if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=T[N++]+m[U]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U]=T[N++]+m[U],U++;U+=R}else if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(Y[U]=T[N++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)Y[U++]=T[N++];U+=R}else{if(p)if(H)for(y=0;y<_;y++)for(D=0;D<S;D++)H[U]&&(Y[U]=m[U]),U++;else for(y=0;y<_;y++)for(D=0;D<S;D++)Y[U]=m[U],U++;e.counter.constant++,e.ptr+=N}}J>1&&!i&&(e.pixels.resultPixels=I.swapDimensionOrder(e.pixels.resultPixels,s,J,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:I.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,a=A.headerInfo.numDims,n=A.headerInfo.height*A.headerInfo.width,s=0,o=0,g=0,l=A.pixels.resultMask,h=A.pixels.resultPixels;if(l)if(a>1){if(e)for(s=0;s<a;s++)for(g=s*n,t=r[s],o=0;o<n;o++)l[o]&&(h[g+o]=t);else for(o=0;o<n;o++)if(l[o])for(g=o*a,s=0;s<a;s++)h[g+a]=r[s]}else for(o=0;o<n;o++)l[o]&&(h[o]=t);else if(a>1&&i!==t)if(e)for(s=0;s<a;s++)for(g=s*n,t=r[s],o=0;o<n;o++)h[g+o]=t;else for(o=0;o<n;o++)for(g=o*a,s=0;s<a;s++)h[g+s]=r[s];else for(o=0;o<n*a;o++)h[o]=t},getDataTypeArray:function(A){var e;switch(A){case 0:e=Int8Array;break;case 1:e=Uint8Array;break;case 2:e=Int16Array;break;case 3:e=Uint16Array;break;case 4:e=Int32Array;break;case 5:e=Uint32Array;break;case 6:default:e=Float32Array;break;case 7:e=Float64Array}return e},getPixelType:function(A){var e;switch(A){case 0:e="S8";break;case 1:e="U8";break;case 2:e="S16";break;case 3:e="U16";break;case 4:e="S32";break;case 5:e="U32";break;case 6:default:e="F32";break;case 7:e="F64"}return e},isValidPixelValue:function(A,e){if(null==e)return!1;var t;switch(A){case 0:t=e>=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var a=0,n=0,s=0,o=0,g=A;if(t>1)if(g=new i(e*t),r)for(a=0;a<e;a++)for(o=a,s=0;s<t;s++,o+=e)g[o]=A[n++];else for(a=0;a<e;a++)for(o=a,s=0;s<t;s++,o+=e)g[n++]=A[o];return g}},B=function(A,e,t){this.val=A,this.left=e,this.right=t},{decode:function(A,e){var t=(e=e||{}).noDataValue,i=0,r={};if(r.ptr=e.inputOffset||0,r.pixels={},I.readHeaderInfo(A,r)){var a=r.headerInfo,n=a.fileVersion,s=I.getDataTypeArray(a.imageType);if(n>5)throw"unsupported lerc version 2."+n;I.readMask(A,r),a.numValidPixel===a.width*a.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var o=a.width*a.height;r.pixels.resultPixels=new s(o*a.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var g,l=!e.returnPixelInterleavedDims;if(0!==a.numValidPixel)if(a.zMax===a.zMin)I.constructConstantSurface(r,l);else if(n>=4&&I.checkMinMaxRanges(A,r))I.constructConstantSurface(r,l);else{var h=new DataView(A,r.ptr,2),B=h.getUint8(0);if(r.ptr++,B)I.readDataOneSweep(A,r,s,l);else if(n>1&&a.imageType<=1&&Math.abs(a.maxZError-.5)<1e-5){var c=h.getUint8(1);if(r.ptr++,r.encodeMode=c,c>2||n<4&&c>1)throw"Invalid Huffman flag "+c;c?I.readHuffman(A,r,s,l):I.readTiles(A,r,s,l)}else I.readTiles(A,r,s,l)}r.eofOffset=r.ptr,e.inputOffset?(g=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(g)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(g=r.headerInfo.blobSize-r.ptr,Math.abs(g)>=1&&(r.eofOffset=r.headerInfo.blobSize));var C={width:a.width,height:a.height,pixelData:r.pixels.resultPixels,minValue:a.zMin,maxValue:a.zMax,validPixelCount:a.numValidPixel,dimCount:a.numDims,dimStats:{minValues:a.minValues,maxValues:a.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&I.isValidPixelValue(a.imageType,t)){var f=r.pixels.resultMask;for(i=0;i<o;i++)f[i]||(C.pixelData[i]=t);C.noDataValue=t}return r.noDataValue=t,e.returnFileInfo&&(C.fileInfo=I.formatFileInfo(r)),C}},getBandCount:function(A){for(var e=0,t=0,i={ptr:0,pixels:{}};t<A.byteLength-58;)I.readHeaderInfo(A,i),t+=i.headerInfo.blobSize,e++,i.ptr=t;return e}}),Q=(c=new ArrayBuffer(4),C=new Uint8Array(c),new Uint32Array(c)[0]=1,1===C[0]),d={decode:function(A,e){if(!Q)throw"Big endian system is not supported.";var t,i,r=(e=e||{}).inputOffset||0,a=new Uint8Array(A,r,10),n=String.fromCharCode.apply(null,a);if("CntZImage"===n.trim())t=f,i=1;else{if("Lerc2"!==n.substring(0,5))throw"Unexpected file identifier string: "+n;t=E,i=2}for(var s,o,g,l,h,I,B=0,c=A.byteLength-10,C=[],d={width:0,height:0,pixels:[],pixelType:e.pixelType,mask:null,statistics:[]},u=0;r<c;){var w=t.decode(A,{inputOffset:r,encodedMaskData:s,maskData:g,returnMask:0===B,returnEncodedMask:0===B,returnFileInfo:!0,returnPixelInterleavedDims:e.returnPixelInterleavedDims,pixelType:e.pixelType||null,noDataValue:e.noDataValue||null});r=w.fileInfo.eofOffset,g=w.maskData,0===B&&(s=w.encodedMaskData,d.width=w.width,d.height=w.height,d.dimCount=w.dimCount||1,d.pixelType=w.pixelType||w.fileInfo.pixelType,d.mask=g),i>1&&(g&&C.push(g),w.fileInfo.mask&&w.fileInfo.mask.numBytes>0&&u++),B++,d.pixels.push(w.pixelData),d.statistics.push({minValue:w.minValue,maxValue:w.maxValue,noDataValue:w.noDataValue,dimStats:w.dimStats})}if(i>1&&u>1){for(I=d.width*d.height,d.bandMasks=C,(g=new Uint8Array(I)).set(C[0]),l=1;l<C.length;l++)for(o=C[l],h=0;h<I;h++)g[h]=g[h]&o[h];d.maskData=g}return d}};Na.exports?Na.exports=d:this.Lerc=d}();var Oa=oA(qa.exports);let Ja,Ha,Ya;const za={env:{emscripten_notify_memory_growth:function(A){Ya=new Uint8Array(Ha.exports.memory.buffer)}}};const Pa="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",Ka=new class{init(){return Ja||(Ja="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+Pa).then((A=>A.arrayBuffer())).then((A=>WebAssembly.instantiate(A,za))).then(this._init):WebAssembly.instantiate(Buffer.from(Pa,"base64"),za).then(this._init),Ja)}_init(A){Ha=A.instance,za.env.emscripten_notify_memory_growth(0)}decode(A,e=0){if(!Ha)throw new Error("ZSTDDecoder: Await .init() before decoding.");const t=A.byteLength,i=Ha.exports.malloc(t);Ya.set(A,i),e=e||Number(Ha.exports.ZSTD_findDecompressedSize(i,t));const r=Ha.exports.malloc(e),a=Ha.exports.ZSTD_decompress(r,e,i,t),n=Ya.slice(r,r+a);return Ha.exports.free(i),Ha.exports.free(r),n}};var Va=Object.freeze({__proto__:null,default:class extends Ge{constructor(A){super(),this.planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,this.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,this.addCompression=A.LercParameters[HA]}decodeBlock(A){switch(this.addCompression){case YA:break;case zA:A=La(new Uint8Array(A)).buffer;break;case PA:A=Ka.decode(new Uint8Array(A)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return Oa.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}},zstd:Ka});var Za=Object.freeze({__proto__:null,default:class extends Ge{constructor(){if(super(),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(A,e){const t=new Blob([e]),i=await createImageBitmap(t);let r;"undefined"!=typeof document?(r=document.createElement("canvas"),r.width=i.width,r.height=i.height):r=new OffscreenCanvas(i.width,i.height);const a=r.getContext("2d");return a.drawImage(i,0,0),a.getImageData(0,0,i.width,i.height).data.buffer}}});exports.CogBitmapLayer=it,exports.CogTerrainLayer=st,exports.CogTiles=At,exports.GeoImage=Ve;
4
+ function(){var A,e,t,i,r,a,n,s,o,g,l,h,I,B,c,C,f=(A={defaultNoDataValue:-34027999387901484e22,decode:function(a,n){var s=(n=n||{}).encodedMaskData||null===n.encodedMaskData,o=r(a,n.inputOffset||0,s),g=null!==n.noDataValue?n.noDataValue:A.defaultNoDataValue,l=e(o,n.pixelType||Float32Array,n.encodedMaskData,g,n.returnMask),h={width:o.width,height:o.height,pixelData:l.resultPixels,minValue:l.minValue,maxValue:o.pixels.maxValue,noDataValue:g};return l.resultMask&&(h.maskData=l.resultMask),n.returnEncodedMask&&o.mask&&(h.encodedMaskData=o.mask.bitset?o.mask.bitset:null),n.returnFileInfo&&(h.fileInfo=t(o),n.computeUsedBitDepths&&(h.fileInfo.bitDepths=i(o))),h}},e=function(A,e,t,i,r){var n,s,o,g=0,l=A.pixels.numBlocksX,h=A.pixels.numBlocksY,I=Math.floor(A.width/l),B=Math.floor(A.height/h),c=2*A.maxZError,C=Number.MAX_VALUE;t=t||(A.mask?A.mask.bitset:null),s=new e(A.width*A.height),r&&t&&(o=new Uint8Array(A.width*A.height));for(var f,E,d=new Float32Array(I*B),Q=0;Q<=h;Q++){var u=Q!==h?B:A.height%h;if(0!==u)for(var w=0;w<=l;w++){var p=w!==l?I:A.width%l;if(0!==p){var m,y,D,k,b=Q*A.width*B+w*I,_=A.width-p,S=A.pixels.blocks[g];if(S.encoding<2?(0===S.encoding?m=S.rawData:(a(S.stuffedData,S.bitsPerPixel,S.numValidPixels,S.offset,c,d,A.pixels.maxValue),m=d),y=0):D=2===S.encoding?0:S.offset,t)for(E=0;E<u;E++){for(7&b&&(k=t[b>>3],k<<=7&b),f=0;f<p;f++)7&b||(k=t[b>>3]),128&k?(o&&(o[b]=1),C=C>(n=S.encoding<2?m[y++]:D)?n:C,s[b++]=n):(o&&(o[b]=0),s[b++]=i),k<<=1;b+=_}else if(S.encoding<2)for(E=0;E<u;E++){for(f=0;f<p;f++)C=C>(n=m[y++])?n:C,s[b++]=n;b+=_}else for(C=C>D?D:C,E=0;E<u;E++){for(f=0;f<p;f++)s[b++]=D;b+=_}if(1===S.encoding&&y!==S.numValidPixels)throw"Block and Mask do not match";g++}}}return{resultPixels:s,resultMask:o,minValue:C}},t=function(A){return{fileIdentifierString:A.fileIdentifierString,fileVersion:A.fileVersion,imageType:A.imageType,height:A.height,width:A.width,maxZError:A.maxZError,eofOffset:A.eofOffset,mask:A.mask?{numBlocksX:A.mask.numBlocksX,numBlocksY:A.mask.numBlocksY,numBytes:A.mask.numBytes,maxValue:A.mask.maxValue}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,numBytes:A.pixels.numBytes,maxValue:A.pixels.maxValue,noDataValue:A.noDataValue}}},i=function(A){for(var e=A.pixels.numBlocksX*A.pixels.numBlocksY,t={},i=0;i<e;i++){var r=A.pixels.blocks[i];0===r.encoding?t.float32=!0:1===r.encoding?t[r.bitsPerPixel]=!0:t[0]=!0}return Object.keys(t)},r=function(A,e,t){var i={},r=new Uint8Array(A,e,10);if(i.fileIdentifierString=String.fromCharCode.apply(null,r),"CntZImage"!==i.fileIdentifierString.trim())throw"Unexpected file identifier string: "+i.fileIdentifierString;e+=10;var a=new DataView(A,e,24);if(i.fileVersion=a.getInt32(0,!0),i.imageType=a.getInt32(4,!0),i.height=a.getUint32(8,!0),i.width=a.getUint32(12,!0),i.maxZError=a.getFloat64(16,!0),e+=24,!t)if(a=new DataView(A,e,16),i.mask={},i.mask.numBlocksY=a.getUint32(0,!0),i.mask.numBlocksX=a.getUint32(4,!0),i.mask.numBytes=a.getUint32(8,!0),i.mask.maxValue=a.getFloat32(12,!0),e+=16,i.mask.numBytes>0){var n=new Uint8Array(Math.ceil(i.width*i.height/8)),s=(a=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),o=2,g=0;do{if(s>0)for(;s--;)n[g++]=a.getUint8(o++);else{var l=a.getUint8(o++);for(s=-s;s--;)n[g++]=l}s=a.getInt16(o,!0),o+=2}while(o<i.mask.numBytes);if(-32768!==s||g<n.length)throw"Unexpected end of mask RLE encoding";i.mask.bitset=n,e+=i.mask.numBytes}else i.mask.numBytes|i.mask.numBlocksY|i.mask.maxValue||(i.mask.bitset=new Uint8Array(Math.ceil(i.width*i.height/8)));a=new DataView(A,e,16),i.pixels={},i.pixels.numBlocksY=a.getUint32(0,!0),i.pixels.numBlocksX=a.getUint32(4,!0),i.pixels.numBytes=a.getUint32(8,!0),i.pixels.maxValue=a.getFloat32(12,!0),e+=16;var h=i.pixels.numBlocksX,I=i.pixels.numBlocksY,B=h+(i.width%h>0?1:0),c=I+(i.height%I>0?1:0);i.pixels.blocks=new Array(B*c);for(var C=0,f=0;f<c;f++)for(var E=0;E<B;E++){var d=0,Q=A.byteLength-e;a=new DataView(A,e,Math.min(10,Q));var u={};i.pixels.blocks[C++]=u;var w=a.getUint8(0);if(d++,u.encoding=63&w,u.encoding>3)throw"Invalid block encoding ("+u.encoding+")";if(2!==u.encoding){if(0!==w&&2!==w){if(w>>=6,u.offsetType=w,2===w)u.offset=a.getInt8(1),d++;else if(1===w)u.offset=a.getInt16(1,!0),d+=2;else{if(0!==w)throw"Invalid block offset type";u.offset=a.getFloat32(1,!0),d+=4}if(1===u.encoding)if(w=a.getUint8(d),d++,u.bitsPerPixel=63&w,w>>=6,u.numValidPixelsType=w,2===w)u.numValidPixels=a.getUint8(d),d++;else if(1===w)u.numValidPixels=a.getUint16(d,!0),d+=2;else{if(0!==w)throw"Invalid valid pixel count type";u.numValidPixels=a.getUint32(d,!0),d+=4}}var p;if(e+=d,3!==u.encoding)if(0===u.encoding){var m=(i.pixels.numBytes-1)/4;if(m!==Math.floor(m))throw"uncompressed block has invalid length";p=new ArrayBuffer(4*m),new Uint8Array(p).set(new Uint8Array(A,e,4*m));var y=new Float32Array(p);u.rawData=y,e+=4*m}else if(1===u.encoding){var D=Math.ceil(u.numValidPixels*u.bitsPerPixel/8),k=Math.ceil(D/4);p=new ArrayBuffer(4*k),new Uint8Array(p).set(new Uint8Array(A,e,D)),u.stuffedData=new Uint32Array(p),e+=D}}else e++}return i.eofOffset=e,i},a=function(A,e,t,i,r,a,n){var s,o,g,l=(1<<e)-1,h=0,I=0,B=Math.ceil((n-i)/r),c=4*A.length-Math.ceil(e*t/8);for(A[A.length-1]<<=8*c,s=0;s<t;s++){if(0===I&&(g=A[h++],I=32),I>=e)o=g>>>I-e&l,I-=e;else{var C=e-I;o=(g&l)<<C&l,o+=(g=A[h++])>>>(I=32-C)}a[s]=o<B?i+o*r:n}return a},A),E=(n=function(A,e,t,i,r,a,n,s){var o,g,l,h,I,B=(1<<t)-1,c=0,C=0,f=4*A.length-Math.ceil(t*i/8);if(A[A.length-1]<<=8*f,r)for(o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(h=t-C)&B,g+=(l=A[c++])>>>(C=32-h)),e[o]=r[g];else for(I=Math.ceil((s-a)/n),o=0;o<i;o++)0===C&&(l=A[c++],C=32),C>=t?(g=l>>>C-t&B,C-=t):(g=(l&B)<<(h=t-C)&B,g+=(l=A[c++])>>>(C=32-h)),e[o]=g<I?a+g*n:s},s=function(A,e,t,i,r,a){var n,s=(1<<e)-1,o=0,g=0,l=0,h=0,I=0,B=[],c=4*A.length-Math.ceil(e*t/8);A[A.length-1]<<=8*c;var C=Math.ceil((a-i)/r);for(g=0;g<t;g++)0===h&&(n=A[o++],h=32),h>=e?(I=n>>>h-e&s,h-=e):(I=(n&s)<<(l=e-h)&s,I+=(n=A[o++])>>>(h=32-l)),B[g]=I<C?i+I*r:a;return B.unshift(i),B},o=function(A,e,t,i,r,a,n,s){var o,g,l,h,I=(1<<t)-1,B=0,c=0,C=0;if(r)for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&I,c-=t,C+=t):(g=l>>>C&I,c=32-(h=t-c),g|=((l=A[B++])&(1<<h)-1)<<t-h,C=h),e[o]=r[g];else{var f=Math.ceil((s-a)/n);for(o=0;o<i;o++)0===c&&(l=A[B++],c=32,C=0),c>=t?(g=l>>>C&I,c-=t,C+=t):(g=l>>>C&I,c=32-(h=t-c),g|=((l=A[B++])&(1<<h)-1)<<t-h,C=h),e[o]=g<f?a+g*n:s}return e},g=function(A,e,t,i,r,a){var n,s=(1<<e)-1,o=0,g=0,l=0,h=0,I=0,B=0,c=[],C=Math.ceil((a-i)/r);for(g=0;g<t;g++)0===h&&(n=A[o++],h=32,B=0),h>=e?(I=n>>>B&s,h-=e,B+=e):(I=n>>>B&s,h=32-(l=e-h),I|=((n=A[o++])&(1<<l)-1)<<e-l,B=l),c[g]=I<C?i+I*r:a;return c.unshift(i),c},l=function(A,e,t,i){var r,a,n,s,o=(1<<t)-1,g=0,l=0,h=4*A.length-Math.ceil(t*i/8);for(A[A.length-1]<<=8*h,r=0;r<i;r++)0===l&&(n=A[g++],l=32),l>=t?(a=n>>>l-t&o,l-=t):(a=(n&o)<<(s=t-l)&o,a+=(n=A[g++])>>>(l=32-s)),e[r]=a;return e},h=function(A,e,t,i){var r,a,n,s,o=(1<<t)-1,g=0,l=0,h=0;for(r=0;r<i;r++)0===l&&(n=A[g++],l=32,h=0),l>=t?(a=n>>>h&o,l-=t,h+=t):(a=n>>>h&o,l=32-(s=t-l),a|=((n=A[g++])&(1<<s)-1)<<t-s,h=s),e[r]=a;return e},I={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(A){for(var e=65535,t=65535,i=A.length,r=Math.floor(i/2),a=0;r;){var n=r>=359?359:r;r-=n;do{e+=A[a++]<<8,t+=e+=A[a++]}while(--n);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[a]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var a,n=new DataView(A,t,8),s=n.getInt32(0,!0);if(r.fileVersion=s,t+=4,s>=3&&(r.checksum=n.getUint32(4,!0),t+=4),n=new DataView(A,t,12),r.height=n.getUint32(0,!0),r.width=n.getUint32(4,!0),t+=8,s>=4?(r.numDims=n.getUint32(8,!0),t+=4):r.numDims=1,n=new DataView(A,t,40),r.numValidPixel=n.getUint32(0,!0),r.microBlockSize=n.getInt32(4,!0),r.blobSize=n.getInt32(8,!0),r.imageType=n.getInt32(12,!0),r.maxZError=n.getFloat64(16,!0),r.zMin=n.getFloat64(24,!0),r.zMax=n.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,s>=3&&(a=s>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-a,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),a=this.readSubArray(A,e.ptr,i,r),n=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var s,o=!0;for(s=0;s<t.numDims;s++)if(a[s]!==n[s]){o=!1;break}return t.minValues=a,t.maxValues=n,o},readSubArray:function(A,e,t,i){var r;if(t===Uint8Array)r=new Uint8Array(A,e,i);else{var a=new ArrayBuffer(i);new Uint8Array(a).set(new Uint8Array(A,e,i)),r=new t(a)}return r},readMask:function(A,e){var t,i,r=e.ptr,a=e.headerInfo,n=a.width*a.height,s=a.numValidPixel,o=new DataView(A,r,4),g={};if(g.numBytes=o.getUint32(0,!0),r+=4,(0===s||n===s)&&0!==g.numBytes)throw"invalid mask";if(0===s)t=new Uint8Array(Math.ceil(n/8)),g.bitset=t,i=new Uint8Array(n),e.pixels.resultMask=i,r+=g.numBytes;else if(g.numBytes>0){t=new Uint8Array(Math.ceil(n/8));var l=(o=new DataView(A,r,g.numBytes)).getInt16(0,!0),h=2,I=0,B=0;do{if(l>0)for(;l--;)t[I++]=o.getUint8(h++);else for(B=o.getUint8(h++),l=-l;l--;)t[I++]=B;l=o.getInt16(h,!0),h+=2}while(h<g.numBytes);if(-32768!==l||I<t.length)throw"Unexpected end of mask RLE encoding";i=new Uint8Array(n);var c=0,C=0;for(C=0;C<n;C++)7&C?(c=t[C>>3],c<<=7&C):c=t[C>>3],128&c&&(i[C]=1);e.pixels.resultMask=i,g.bitset=t,r+=g.numBytes}return e.ptr=r,e.mask=g,!0},readDataOneSweep:function(A,e,t,i){var r,a=e.ptr,n=e.headerInfo,s=n.numDims,o=n.width*n.height,g=n.imageType,l=n.numValidPixel*I.getDataTypeSize(g)*s,h=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,a,l);else{var B=new ArrayBuffer(l);new Uint8Array(B).set(new Uint8Array(A,a,l)),r=new t(B)}if(r.length===o*s)e.pixels.resultPixels=i?I.swapDimensionOrder(r,o,s,t,!0):r;else{e.pixels.resultPixels=new t(o*s);var c=0,C=0,f=0,E=0;if(s>1){if(i){for(C=0;C<o;C++)if(h[C])for(E=C,f=0;f<s;f++,E+=o)e.pixels.resultPixels[E]=r[c++]}else for(C=0;C<o;C++)if(h[C])for(E=C*s,f=0;f<s;f++)e.pixels.resultPixels[E+f]=r[c++]}else for(C=0;C<o;C++)h[C]&&(e.pixels.resultPixels[C]=r[c++])}return a+=l,e.ptr=a,!0},readHuffmanTree:function(A,e){var t=this.HUFFMAN_LUT_BITS_MAX,i=new DataView(A,e.ptr,16);if(e.ptr+=16,i.getInt32(0,!0)<2)throw"unsupported Huffman version";var r=i.getInt32(4,!0),a=i.getInt32(8,!0),n=i.getInt32(12,!0);if(a>=n)return!1;var s=new Uint32Array(n-a);I.decodeBits(A,e,s);var o,g,l,h,c=[];for(o=a;o<n;o++)c[g=o-(o<r?0:r)]={first:s[o-a],second:null};var C=A.byteLength-e.ptr,f=Math.ceil(C/4),E=new ArrayBuffer(4*f);new Uint8Array(E).set(new Uint8Array(A,e.ptr,C));var d,Q=new Uint32Array(E),u=0,w=0;for(d=Q[0],o=a;o<n;o++)(h=c[g=o-(o<r?0:r)].first)>0&&(c[g].second=d<<u>>>32-h,32-u>=h?32===(u+=h)&&(u=0,d=Q[++w]):(u+=h-32,d=Q[++w],c[g].second|=d>>>32-u));var p=0,m=0,y=new B;for(o=0;o<c.length;o++)void 0!==c[o]&&(p=Math.max(p,c[o].first));m=p>=t?t:p;var D,k,b,_,S,x=[];for(o=a;o<n;o++)if((h=c[g=o-(o<r?0:r)].first)>0)if(D=[h,g],h<=m)for(k=c[g].second<<m-h,b=1<<m-h,l=0;l<b;l++)x[k|l]=D;else for(k=c[g].second,S=y,_=h-1;_>=0;_--)k>>>_&1?(S.right||(S.right=new B),S=S.right):(S.left||(S.left=new B),S=S.left),0!==_||S.val||(S.val=D[1]);return{decodeLut:x,numBitsLUTQick:m,numBitsLUT:p,tree:y,stuffedData:Q,srcPtr:w,bitPos:u}},readHuffman:function(A,e,t,i){var r,a,n,s,o,g,l,h,B,c=e.headerInfo.numDims,C=e.headerInfo.height,f=e.headerInfo.width,E=f*C,d=this.readHuffmanTree(A,e),Q=d.decodeLut,u=d.tree,w=d.stuffedData,p=d.srcPtr,m=d.bitPos,y=d.numBitsLUTQick,D=d.numBitsLUT,k=0===e.headerInfo.imageType?128:0,b=e.pixels.resultMask,_=0;m>0&&(p++,m=0);var S,x=w[p],F=1===e.encodeMode,G=new t(E*c),U=G;if(c<2||F){for(S=0;S<c;S++)if(c>1&&(U=new t(G.buffer,E*S,E),_=0),e.headerInfo.numValidPixel===f*C)for(h=0,g=0;g<C;g++)for(l=0;l<f;l++,h++){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),Q[o])a=Q[o][1],m+=Q[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,F?(n+=l>0?_:g>0?U[h-f]:_,n&=255,U[h]=n,_=n):U[h]=n}else for(h=0,g=0;g<C;g++)for(l=0;l<f;l++,h++)if(b[h]){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),Q[o])a=Q[o][1],m+=Q[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,F?(l>0&&b[h-1]?n+=_:g>0&&b[h-f]?n+=U[h-f]:n+=_,n&=255,U[h]=n,_=n):U[h]=n}}else for(h=0,g=0;g<C;g++)for(l=0;l<f;l++)if(h=g*f+l,!b||b[h])for(S=0;S<c;S++,h+=E){if(a=0,o=s=x<<m>>>32-y,32-m<y&&(o=s|=w[p+1]>>>64-m-y),Q[o])a=Q[o][1],m+=Q[o][0];else for(o=s=x<<m>>>32-D,32-m<D&&(o=s|=w[p+1]>>>64-m-D),r=u,B=0;B<D;B++)if(!(r=s>>>D-B-1&1?r.right:r.left).left&&!r.right){a=r.val,m=m+B+1;break}m>=32&&(m-=32,x=w[++p]),n=a-k,U[h]=n}e.ptr=e.ptr+4*(p+1)+(m>0?4:0),e.pixels.resultPixels=G,c>1&&!i&&(e.pixels.resultPixels=I.swapDimensionOrder(G,E,c,t))},decodeBits:function(A,e,t,i,r){var a=e.headerInfo,I=a.fileVersion,B=0,c=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,C=new DataView(A,e.ptr,c),f=C.getUint8(0);B++;var E=f>>6,d=0===E?4:3-E,Q=(32&f)>0,u=31&f,w=0;if(1===d)w=C.getUint8(B),B++;else if(2===d)w=C.getUint16(B,!0),B+=2;else{if(4!==d)throw"Invalid valid pixel count type";w=C.getUint32(B,!0),B+=4}var p,m,y,D,k,b,_,S,x,F=2*a.maxZError,G=a.numDims>1?a.maxValues[r]:a.zMax;if(Q){for(e.counter.lut++,S=C.getUint8(B),B++,D=Math.ceil((S-1)*u/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),y=new Uint8Array(m),e.ptr+=B,y.set(new Uint8Array(A,e.ptr,D)),_=new Uint32Array(m),e.ptr+=D,x=0;S-1>>>x;)x++;D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,b=I>=3?g(_,u,S-1,i,F,G):s(_,u,S-1,i,F,G),I>=3?o(p,t,x,w,b):n(p,t,x,w,b)}else e.counter.bitstuffer++,x=u,e.ptr+=B,x>0&&(D=Math.ceil(w*x/8),k=Math.ceil(D/4),m=new ArrayBuffer(4*k),(y=new Uint8Array(m)).set(new Uint8Array(A,e.ptr,D)),p=new Uint32Array(m),e.ptr+=D,I>=3?null==i?h(p,t,x,w):o(p,t,x,w,!1,i,F,G):null==i?l(p,t,x,w):n(p,t,x,w,!1,i,F,G))},readTiles:function(A,e,t,i){var r=e.headerInfo,a=r.width,n=r.height,s=a*n,o=r.microBlockSize,g=r.imageType,l=I.getDataTypeSize(g),h=Math.ceil(a/o),B=Math.ceil(n/o);e.pixels.numBlocksY=B,e.pixels.numBlocksX=h,e.pixels.ptr=0;var c,C,f,E,d,Q,u,w,p,m,y=0,D=0,k=0,b=0,_=0,S=0,x=0,F=0,G=0,U=0,R=0,M=0,L=0,v=0,N=0,T=new t(o*o),q=n%o||o,O=a%o||o,J=r.numDims,H=e.pixels.resultMask,z=e.pixels.resultPixels,Y=r.fileVersion>=5?14:15,P=r.zMax;for(k=0;k<B;k++)for(_=k!==B-1?o:q,b=0;b<h;b++)for(U=k*a*o+b*o,R=a-(S=b!==h-1?o:O),w=0;w<J;w++){if(J>1?(m=z,U=k*a*o+b*o,z=new t(e.pixels.resultPixels.buffer,s*w*l,s),P=r.maxValues[w]):m=null,x=A.byteLength-e.ptr,C={},N=0,F=(c=new DataView(A,e.ptr,Math.min(10,x))).getUint8(0),N++,p=r.fileVersion>=5?4&F:0,G=F>>6&255,(F>>2&Y)!=(b*o>>3&Y))throw"integrity issue";if(p&&0===w)throw"integrity issue";if((d=3&F)>3)throw e.ptr+=N,"Invalid block encoding ("+d+")";if(2!==d)if(0===d){if(p)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=N,M=(M=_*S*l)<(L=A.byteLength-e.ptr)?M:L,f=new ArrayBuffer(M%l==0?M:M+l-M%l),new Uint8Array(f).set(new Uint8Array(A,e.ptr,M)),E=new t(f),v=0,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(z[U]=E[v++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)z[U++]=E[v++];U+=R}e.ptr+=v*l}else if(Q=I.getDataTypeUsed(p&&g<6?4:g,G),u=I.getOnePixel(C,N,Q,c),N+=I.getDataTypeSize(Q),3===d)if(e.ptr+=N,e.counter.constantoffset++,H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(z[U]=p?Math.min(P,m[U]+u):u),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)z[U]=p?Math.min(P,m[U]+u):u,U++;U+=R}else if(e.ptr+=N,I.decodeBits(A,e,T,u,w),N=0,p)if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(z[U]=T[N++]+m[U]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)z[U]=T[N++]+m[U],U++;U+=R}else if(H)for(y=0;y<_;y++){for(D=0;D<S;D++)H[U]&&(z[U]=T[N++]),U++;U+=R}else for(y=0;y<_;y++){for(D=0;D<S;D++)z[U++]=T[N++];U+=R}else{if(p)if(H)for(y=0;y<_;y++)for(D=0;D<S;D++)H[U]&&(z[U]=m[U]),U++;else for(y=0;y<_;y++)for(D=0;D<S;D++)z[U]=m[U],U++;e.counter.constant++,e.ptr+=N}}J>1&&!i&&(e.pixels.resultPixels=I.swapDimensionOrder(e.pixels.resultPixels,s,J,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:I.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,a=A.headerInfo.numDims,n=A.headerInfo.height*A.headerInfo.width,s=0,o=0,g=0,l=A.pixels.resultMask,h=A.pixels.resultPixels;if(l)if(a>1){if(e)for(s=0;s<a;s++)for(g=s*n,t=r[s],o=0;o<n;o++)l[o]&&(h[g+o]=t);else for(o=0;o<n;o++)if(l[o])for(g=o*a,s=0;s<a;s++)h[g+a]=r[s]}else for(o=0;o<n;o++)l[o]&&(h[o]=t);else if(a>1&&i!==t)if(e)for(s=0;s<a;s++)for(g=s*n,t=r[s],o=0;o<n;o++)h[g+o]=t;else for(o=0;o<n;o++)for(g=o*a,s=0;s<a;s++)h[g+s]=r[s];else for(o=0;o<n*a;o++)h[o]=t},getDataTypeArray:function(A){var e;switch(A){case 0:e=Int8Array;break;case 1:e=Uint8Array;break;case 2:e=Int16Array;break;case 3:e=Uint16Array;break;case 4:e=Int32Array;break;case 5:e=Uint32Array;break;case 6:default:e=Float32Array;break;case 7:e=Float64Array}return e},getPixelType:function(A){var e;switch(A){case 0:e="S8";break;case 1:e="U8";break;case 2:e="S16";break;case 3:e="U16";break;case 4:e="S32";break;case 5:e="U32";break;case 6:default:e="F32";break;case 7:e="F64"}return e},isValidPixelValue:function(A,e){if(null==e)return!1;var t;switch(A){case 0:t=e>=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var a=0,n=0,s=0,o=0,g=A;if(t>1)if(g=new i(e*t),r)for(a=0;a<e;a++)for(o=a,s=0;s<t;s++,o+=e)g[o]=A[n++];else for(a=0;a<e;a++)for(o=a,s=0;s<t;s++,o+=e)g[n++]=A[o];return g}},B=function(A,e,t){this.val=A,this.left=e,this.right=t},{decode:function(A,e){var t=(e=e||{}).noDataValue,i=0,r={};if(r.ptr=e.inputOffset||0,r.pixels={},I.readHeaderInfo(A,r)){var a=r.headerInfo,n=a.fileVersion,s=I.getDataTypeArray(a.imageType);if(n>5)throw"unsupported lerc version 2."+n;I.readMask(A,r),a.numValidPixel===a.width*a.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var o=a.width*a.height;r.pixels.resultPixels=new s(o*a.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var g,l=!e.returnPixelInterleavedDims;if(0!==a.numValidPixel)if(a.zMax===a.zMin)I.constructConstantSurface(r,l);else if(n>=4&&I.checkMinMaxRanges(A,r))I.constructConstantSurface(r,l);else{var h=new DataView(A,r.ptr,2),B=h.getUint8(0);if(r.ptr++,B)I.readDataOneSweep(A,r,s,l);else if(n>1&&a.imageType<=1&&Math.abs(a.maxZError-.5)<1e-5){var c=h.getUint8(1);if(r.ptr++,r.encodeMode=c,c>2||n<4&&c>1)throw"Invalid Huffman flag "+c;c?I.readHuffman(A,r,s,l):I.readTiles(A,r,s,l)}else I.readTiles(A,r,s,l)}r.eofOffset=r.ptr,e.inputOffset?(g=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(g)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(g=r.headerInfo.blobSize-r.ptr,Math.abs(g)>=1&&(r.eofOffset=r.headerInfo.blobSize));var C={width:a.width,height:a.height,pixelData:r.pixels.resultPixels,minValue:a.zMin,maxValue:a.zMax,validPixelCount:a.numValidPixel,dimCount:a.numDims,dimStats:{minValues:a.minValues,maxValues:a.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&I.isValidPixelValue(a.imageType,t)){var f=r.pixels.resultMask;for(i=0;i<o;i++)f[i]||(C.pixelData[i]=t);C.noDataValue=t}return r.noDataValue=t,e.returnFileInfo&&(C.fileInfo=I.formatFileInfo(r)),C}},getBandCount:function(A){for(var e=0,t=0,i={ptr:0,pixels:{}};t<A.byteLength-58;)I.readHeaderInfo(A,i),t+=i.headerInfo.blobSize,e++,i.ptr=t;return e}}),d=(c=new ArrayBuffer(4),C=new Uint8Array(c),new Uint32Array(c)[0]=1,1===C[0]),Q={decode:function(A,e){if(!d)throw"Big endian system is not supported.";var t,i,r=(e=e||{}).inputOffset||0,a=new Uint8Array(A,r,10),n=String.fromCharCode.apply(null,a);if("CntZImage"===n.trim())t=f,i=1;else{if("Lerc2"!==n.substring(0,5))throw"Unexpected file identifier string: "+n;t=E,i=2}for(var s,o,g,l,h,I,B=0,c=A.byteLength-10,C=[],Q={width:0,height:0,pixels:[],pixelType:e.pixelType,mask:null,statistics:[]},u=0;r<c;){var w=t.decode(A,{inputOffset:r,encodedMaskData:s,maskData:g,returnMask:0===B,returnEncodedMask:0===B,returnFileInfo:!0,returnPixelInterleavedDims:e.returnPixelInterleavedDims,pixelType:e.pixelType||null,noDataValue:e.noDataValue||null});r=w.fileInfo.eofOffset,g=w.maskData,0===B&&(s=w.encodedMaskData,Q.width=w.width,Q.height=w.height,Q.dimCount=w.dimCount||1,Q.pixelType=w.pixelType||w.fileInfo.pixelType,Q.mask=g),i>1&&(g&&C.push(g),w.fileInfo.mask&&w.fileInfo.mask.numBytes>0&&u++),B++,Q.pixels.push(w.pixelData),Q.statistics.push({minValue:w.minValue,maxValue:w.maxValue,noDataValue:w.noDataValue,dimStats:w.dimStats})}if(i>1&&u>1){for(I=Q.width*Q.height,Q.bandMasks=C,(g=new Uint8Array(I)).set(C[0]),l=1;l<C.length;l++)for(o=C[l],h=0;h<I;h++)g[h]=g[h]&o[h];Q.maskData=g}return Q}};Na.exports?Na.exports=Q:this.Lerc=Q}();var Oa=oA(qa.exports);let Ja,Ha,za;const Ya={env:{emscripten_notify_memory_growth:function(A){za=new Uint8Array(Ha.exports.memory.buffer)}}};const Pa="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",Ka=new class{init(){return Ja||(Ja="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+Pa).then((A=>A.arrayBuffer())).then((A=>WebAssembly.instantiate(A,Ya))).then(this._init):WebAssembly.instantiate(Buffer.from(Pa,"base64"),Ya).then(this._init),Ja)}_init(A){Ha=A.instance,Ya.env.emscripten_notify_memory_growth(0)}decode(A,e=0){if(!Ha)throw new Error("ZSTDDecoder: Await .init() before decoding.");const t=A.byteLength,i=Ha.exports.malloc(t);za.set(A,i),e=e||Number(Ha.exports.ZSTD_findDecompressedSize(i,t));const r=Ha.exports.malloc(e),a=Ha.exports.ZSTD_decompress(r,e,i,t),n=za.slice(r,r+a);return Ha.exports.free(i),Ha.exports.free(r),n}};var Va=Object.freeze({__proto__:null,default:class extends Ge{constructor(A){super(),this.planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,this.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,this.addCompression=A.LercParameters[HA]}decodeBlock(A){switch(this.addCompression){case zA:break;case YA:A=La(new Uint8Array(A)).buffer;break;case PA:A=Ka.decode(new Uint8Array(A)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return Oa.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}},zstd:Ka});var Za=Object.freeze({__proto__:null,default:class extends Ge{constructor(){if(super(),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(A,e){const t=new Blob([e]),i=await createImageBitmap(t);let r;"undefined"!=typeof document?(r=document.createElement("canvas"),r.width=i.width,r.height=i.height):r=new OffscreenCanvas(i.width,i.height);const a=r.getContext("2d");return a.drawImage(i,0,0),a.getImageData(0,0,i.width,i.height).data.buffer}}});exports.CogBitmapLayer=it,exports.CogTerrainLayer=st,exports.CogTiles=At,exports.GeoImage=Ve;
5
5
  //# sourceMappingURL=index.min.js.map