s3db.js 3.2.2 → 3.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/s3db.es.js CHANGED
@@ -1186,7 +1186,7 @@ async function dynamicCrypto() {
1186
1186
  let lib;
1187
1187
  if (process) {
1188
1188
  try {
1189
- const { webcrypto } = await Promise.resolve().then(function () { return _polyfillNode_crypto; });
1189
+ const { webcrypto } = await import('crypto');
1190
1190
  lib = webcrypto;
1191
1191
  } catch (error) {
1192
1192
  throw new Error("Crypto API not available");
@@ -13184,8 +13184,4 @@ class CachePlugin extends Plugin {
13184
13184
  }
13185
13185
  }
13186
13186
 
13187
- var _polyfillNode_crypto = /*#__PURE__*/Object.freeze({
13188
- __proto__: null
13189
- });
13190
-
13191
13187
  export { BaseError, Cache, CachePlugin, Client, ConnectionString, CostsPlugin, Database, ErrorMap, InvalidResourceItem, MemoryCache, MissingMetadata, NoSuchBucket, NoSuchKey, NotFound, Plugin, PluginObject, ResourceIdsPageReader, ResourceIdsReader, ResourceReader, ResourceWriter, S3Cache, S3_DEFAULT_ENDPOINT, S3_DEFAULT_REGION, S3db, UnknownError, Validator, ValidatorManager, decrypt, encrypt, sha256, streamToString };
@@ -4,7 +4,7 @@ import{nanoid as ni}from"nanoid";import{chunk as ai,isObject as oi,merge as it,c
4
4
  Verbose:
5
5
 
6
6
  ${JSON.stringify(n,null,2)}`),super(i),typeof Error.captureStackTrace=="function"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(i).stack,super.name=this.constructor.name,this.name=this.constructor.name,this.bucket=r,this.thrownAt=new Date}toJson(){return{...this}}toString(){return`${this.name} | ${this.message}`}}class wi extends Ke{constructor({bucket:t,...r}){super({...r,bucket:t,message:`Bucket does not exists [bucket:${t}]`})}}class or extends Ke{constructor({bucket:t,key:r,...i}){super({...i,bucket:t,message:`Key [${r}] does not exists [bucket:${t}/${r}]`}),this.key=r}}class gi extends or{}class vi extends Ke{constructor({bucket:t,...r}){super({...r,bucket:t,message:`Missing metadata for bucket [bucket:${t}]`})}}class At extends Ke{constructor({bucket:t,resourceName:r,attributes:i,validation:n}){super({bucket:t,message:`This item is not valid. Resource=${r} [bucket:${t}].
7
- ${JSON.stringify(n,null,2)}`}),this.resourceName=r,this.attributes=i,this.validation=n}}class mi extends Ke{}const bi={NotFound:gi,NoSuchKey:or,UnknownError:mi,NoSuchBucket:wi,MissingMetadata:vi,InvalidResourceItem:At},yi="us-east-1",xi="https://s3.us-east-1.amazonaws.com";class Ei{constructor(t){let r;try{r=new URL(t)}catch{throw new Error("Invalid connection string: "+t)}this.region=yi,r.protocol==="s3:"?this.defineS3(r):this.defineMinio(r);for(const[i,n]of r.searchParams.entries())this[i]=n}defineS3(t){if(this.bucket=t.hostname,this.accessKeyId=t.username,this.secretAccessKey=t.password,this.endpoint=xi,["/","",null].includes(t.pathname))this.keyPrefix="";else{let[,...r]=t.pathname.split("/");this.keyPrefix=[...r||[]].join("/")}}defineMinio(t){if(this.forcePathStyle=!0,this.endpoint=t.origin,this.accessKeyId=t.username,this.secretAccessKey=t.password,["/","",null].includes(t.pathname))this.bucket="s3db",this.keyPrefix="";else{let[,r,...i]=t.pathname.split("/");this.bucket=r,this.keyPrefix=[...i||[]].join("/")}}}class ki extends b{constructor({verbose:t=!1,id:r=null,AwsS3Client:i,connectionString:n,parallelism:a=10}){super(),this.verbose=t,this.id=r??ni(7),this.parallelism=a,this.config=new Ei(n),this.client=i||this.createClient()}createClient(){let t={region:this.config.region,endpoint:this.config.endpoint};return this.config.forcePathStyle&&(t.forcePathStyle=!0),this.config.accessKeyId&&(t.credentials={accessKeyId:this.config.accessKeyId,secretAccessKey:this.config.secretAccessKey}),new Ga(t)}async sendCommand(t){this.emit("command.request",t.constructor.name,t.input);const r=console.warn;try{console.warn=n=>{n.includes("Stream of unknown length")||r(n)}}catch(n){console.error(n)}const i=await this.client.send(t);this.emit("command.response",t.constructor.name,i,t.input);try{console.warn=r}catch(n){console.error(n)}return i}errorProxy(t,r){this.verbose&&(r.bucket=this.config.bucket,r.config=this.config,r.verbose=this.verbose),t.data=r;const i=bi[t.name];return i?new i(r):t}async putObject({key:t,metadata:r,contentType:i,body:n,contentEncoding:a}){const o={Bucket:this.config.bucket,Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,t):t,Metadata:{...r},Body:n||"",ContentType:i,ContentEncoding:a};try{const s=await this.sendCommand(new Va(o));return this.emit("putObject",s,o),s}catch(s){throw this.errorProxy(s,{key:t,command:o})}}async getObject(t){const r={Bucket:this.config.bucket,Key:ie.join(this.config.keyPrefix,t)};try{const i=await this.sendCommand(new Xa(r));return this.emit("getObject",i,r),i}catch(i){throw this.errorProxy(i,{key:t,command:r})}}async headObject(t){const r={Bucket:this.config.bucket,Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,t):t};try{const i=await this.client.send(new Ja(r));return this.emit("headObject",i,r),i}catch(i){throw this.errorProxy(i,{key:t,command:r})}}async copyObject({from:t,to:r}){const i={Bucket:this.config.bucket,Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,r):r,CopySource:ie.join(this.config.bucket,this.config.keyPrefix?ie.join(this.config.keyPrefix,t):t)};try{const n=await this.client.send(new Qa(i));return this.emit("copyObject",n,i),n}catch(n){throw this.errorProxy(n,{from:t,to:r,command:i})}}async exists(t){try{return await this.headObject(t),!0}catch(r){if(r.name==="NoSuchKey")return!1;if(r.name==="NotFound")return!1;throw r}}async deleteObject(t){const r={Bucket:this.config.bucket,Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,t):t};try{const i=await this.sendCommand(new eo(r));return this.emit("deleteObject",i,r),i}catch(i){throw this.errorProxy(i,{key:t,command:r})}}async deleteObjects(t){const r=ai(t,1e3),{results:i,errors:n}=await ce.for(r).withConcurrency(this.parallelism).process(async o=>{const s={Bucket:this.config.bucket,Delete:{Objects:o.map(h=>({Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,h):h}))}};try{return await this.sendCommand(new to(s))}catch(h){throw this.errorProxy(h,{key,command:s})}}),a={deleted:i,notFound:n};return this.emit("deleteObjects",a,t),a}async deleteAll({prefix:t}={}){const r=await this.getAllKeys({prefix:t}),i=await this.deleteObjects(r);return this.emit("deleteAll",{prefix:t,report:i}),i}async moveObject({from:t,to:r}){try{return await this.copyObject({from:t,to:r}),await this.deleteObject(t),!0}catch(i){throw this.errorProxy(i,{from:t,to:r,command:options})}}async listObjects({prefix:t,maxKeys:r=1e3,continuationToken:i}={}){const n={Bucket:this.config.bucket,MaxKeys:r,ContinuationToken:i,Prefix:this.config.keyPrefix?ie.join(this.config.keyPrefix,t||""):t||""};try{const a=await this.sendCommand(new ro(n));return this.emit("listObjects",a,n),a}catch(a){throw this.errorProxy(a,{command:n})}}async count({prefix:t}={}){let r=0,i=!0,n;for(;i;){const a={prefix:t,continuationToken:n},o=await this.listObjects(a);r+=o.KeyCount||0,i=o.IsTruncated||!1,n=o.NextContinuationToken}return this.emit("count",r,{prefix:t}),r}async getAllKeys({prefix:t}={}){let r=[],i=!0,n;for(;i;){const a={prefix:t,continuationToken:n},o=await this.listObjects(a);o.Contents&&(r=r.concat(o.Contents.map(s=>s.Key))),i=o.IsTruncated||!1,n=o.NextContinuationToken}return this.config.keyPrefix&&(r=r.map(a=>a.replace(this.config.keyPrefix,"")).map(a=>a.startsWith("/")?a.replace("/",""):a)),this.emit("getAllKeys",r,{prefix:t}),r}async getContinuationTokenAfterOffset(t={}){const{prefix:r,offset:i=1e3}=t;if(i===0)return null;let n=!0,a,o=0;for(;n;){let s=i<1e3?i:i-o>1e3?1e3:i-o;const h={prefix:r,maxKeys:s,continuationToken:a},f=await this.listObjects(h);if(f.Contents&&(o+=f.Contents.length),n=f.IsTruncated||!1,a=f.NextContinuationToken,o>=i)break}return this.emit("getContinuationTokenAfterOffset",a,t),a}async getKeysPage(t={}){const{prefix:r,offset:i=0,amount:n=100}=t;let a=[],o=!0,s;for(i>0&&(s=await this.getContinuationTokenAfterOffset({prefix:r,offset:i}));o;){const h={prefix:r,continuationToken:s},f=await this.listObjects(h);if(f.Contents&&(a=a.concat(f.Contents.map(l=>l.Key))),o=f.IsTruncated||!1,s=f.NextContinuationToken,a.length>n){a=a.splice(0,n);break}}return this.config.keyPrefix&&(a=a.map(h=>h.replace(this.config.keyPrefix,"")).map(h=>h.startsWith("/")?h.replace("/",""):h)),this.emit("getKeysPage",a,t),a}async moveAllObjects({prefixFrom:t,prefixTo:r}){const i=await this.getAllKeys({prefix:t}),{results:n,errors:a}=await ce.for(i).withConcurrency(this.parallelism).process(async o=>{const s=o.replace(t,r);try{return await this.moveObject({from:o,to:s}),s}catch(h){throw this.errorProxy(h,{from:o,to:s})}});if(this.emit("moveAllObjects",{results:n,errors:a},{prefixFrom:t,prefixTo:r}),a.length>0)throw console.log({errors:a}),new Error("Some objects could not be moved");return n}}async function Tt(){let e;if(process)try{const{webcrypto:t}=await Promise.resolve().then(function(){return Ph});e=t}catch{throw new Error("Crypto API not available")}else window&&(e=window.crypto);if(!e)throw new Error("Could not load any crypto library");return e}async function Si(e){const t=await Tt(),i=new TextEncoder().encode(e),n=await t.subtle.digest("SHA-256",i);return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("")}async function sr(e,t){const r=await Tt(),i=r.getRandomValues(new Uint8Array(16)),n=await Ai(t,i),a=r.getRandomValues(new Uint8Array(12)),s=new TextEncoder().encode(e),h=await r.subtle.encrypt({name:"AES-GCM",iv:a},n,s),f=new Uint8Array(i.length+a.length+h.byteLength);return f.set(i),f.set(a,i.length),f.set(new Uint8Array(h),i.length+a.length),Ro(f)}async function Ri(e,t){const r=await Tt(),i=Ao(e),n=i.slice(0,16),a=i.slice(16,28),o=i.slice(28),s=await Ai(t,n),h=await r.subtle.decrypt({name:"AES-GCM",iv:a},s,o);return new TextDecoder().decode(h)}async function Ai(e,t){const r=await Tt(),n=new TextEncoder().encode(e),a=await r.subtle.importKey("raw",n,{name:"PBKDF2"},!1,["deriveKey"]);return await r.subtle.deriveKey({name:"PBKDF2",salt:t,iterations:1e5,hash:"SHA-256"},a,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}function Ro(e){if(oi(process))return Buffer.from(e).toString("base64");{const t=String.fromCharCode.apply(null,new Uint8Array(e));return window.btoa(t)}}function Ao(e){if(oi(process))return new Uint8Array(Buffer.from(e,"base64"));{const t=window.atob(e),r=t.length,i=new Uint8Array(r);for(let n=0;n<r;n++)i[n]=t.charCodeAt(n);return i}}async function fr(e,t,r){if(!this.passphrase)return t.push({actual:e,type:"encryptionKeyMissing"}),e;try{return await sr(String(e),this.passphrase)}catch(i){t.push({actual:e,type:"encryptionProblem",error:i})}return e}class Ti extends no{constructor({options:t,passphrase:r,autoEncrypt:i=!0}={}){super(it({},{useNewCustomCheckerFunction:!0,messages:{encryptionKeyMissing:"Missing configuration for secrets encryption.",encryptionProblem:"Problem encrypting secret. Actual: {actual}. Error: {error}"},defaults:{string:{trim:!0},object:{strict:"remove"}}},t)),this.passphrase=r,this.autoEncrypt=i,this.alias("secret",{type:"string",custom:this.autoEncrypt?fr:void 0,messages:{string:"The '{field}' field must be a string.",stringMin:"This secret '{field}' field length must be at least {expected} long."}}),this.alias("secretAny",{type:"any",custom:this.autoEncrypt?fr:void 0}),this.alias("secretNumber",{type:"number",custom:this.autoEncrypt?fr:void 0})}}const Li=new Proxy(Ti,{instance:null,construct(e,t){return this.instance||(this.instance=new e(...t)),this.instance}}),To={trim:e=>e.trim(),encrypt:(e,{passphrase:t})=>sr(e,t),decrypt:(e,{passphrase:t})=>Ri(e,t),toString:e=>String(e),fromArray:(e,{separator:t})=>(e||[]).join(t),toArray:(e,{separator:t})=>(e||"").split(t),toJSON:e=>JSON.stringify(e),fromJSON:e=>JSON.parse(e),toNumber:e=>fi(e)?e.includes(".")?parseFloat(e):parseInt(e):e};class ti{constructor(t){const{map:r,name:i,attributes:n,passphrase:a,version:o=1,options:s={}}=t;if(this.name=i,this.version=o,this.attributes=n,this.passphrase=a??"secret",this.options=it({},this.defaultOptions(),s),this.validator=new Li({autoEncrypt:!1}).compile(it({$$async:!0},Re(this.attributes))),this.options.generateAutoHooks&&this.generateAutoHooks(),!tr(r))this.map=r,this.reversedMap=si(r);else{const h=rr(this.attributes,{safe:!0});this.reversedMap={...Object.keys(h).filter(f=>!f.includes("$$"))},this.map=si(this.reversedMap)}}defaultOptions(){return{autoEncrypt:!0,autoDecrypt:!0,arraySeparator:"|",generateAutoHooks:!0,hooks:{beforeMap:{},afterMap:{},beforeUnmap:{},afterUnmap:{}}}}addHook(t,r,i){this.options.hooks[t][r]||(this.options.hooks[t][r]=[]),this.options.hooks[t][r]=Ka([...this.options.hooks[t][r],i])}generateAutoHooks(){const t=rr(Re(this.attributes),{safe:!0});for(const[r,i]of Object.entries(t))i.includes("array")?(this.addHook("beforeMap",r,"fromArray"),this.addHook("afterUnmap",r,"toArray")):(i.includes("secret")&&(this.options.autoEncrypt&&this.addHook("beforeMap",r,"encrypt"),this.options.autoDecrypt&&this.addHook("afterUnmap",r,"decrypt")),i.includes("number")&&(this.addHook("beforeMap",r,"toString"),this.addHook("afterUnmap",r,"toNumber")),i.includes("boolean")&&(this.addHook("beforeMap",r,"toJSON"),this.addHook("afterUnmap",r,"fromJSON")))}static import(t){let{map:r,name:i,options:n,version:a,attributes:o}=fi(t)?JSON.parse(t):t;return new ti({map:r,name:i,options:n,version:a,attributes:o})}export(){const t={version:this.version,name:this.name,options:this.options,attributes:Re(this.attributes),map:this.map};for(const[r,i]of Object.entries(this.attributes))t.attributes[r]=JSON.stringify(i);return t}async applyHooksActions(t,r){for(const[i,n]of Object.entries(this.options.hooks[r]))for(const a of n){const o=Wa(t,i);o&&Ya(t,i,await To[a](o,{passphrase:this.passphrase,separator:this.options.arraySeparator}))}}async validate(t,{mutateOriginal:r=!1}={}){let i=r?t:Re(t);return await this.validator(i)}async mapper(t){const r=rr(Re(t),{safe:!0});await this.applyHooksActions(r,"beforeMap");const i={_v:this.version+""};for(const[n,a]of Object.entries(r))i[this.map[n]]=a;return await this.applyHooksActions(i,"afterMap"),i}async unmapper(t){const r=Re(t);delete r._v,await this.applyHooksActions(r,"beforeUnmap");const i={};for(const[n,a]of Object.entries(r))i[this.reversedMap[n]]=a;return await this.applyHooksActions(i,"afterUnmap"),io(i)}}class Oi extends b{constructor({resource:t}){super(),this.resource=t,this.client=t.client,this.stream=new ao({highWaterMark:this.client.parallelism*3,start:this._start.bind(this),pull:this._pull.bind(this),cancel:this._cancel.bind(this)})}build(){return this.stream.getReader()}async _start(t){this.controller=t,this.continuationToken=null,this.closeNextIteration=!1}async _pull(t){if(this.closeNextIteration){t.close();return}const r=await this.client.listObjects({prefix:`resource=${this.resource.name}`,continuationToken:this.continuationToken}),i=r?.Contents.map(n=>n.Key).map(n=>n.replace(this.client.config.keyPrefix,"")).map(n=>n.startsWith("/")?n.replace("/",""):n).map(n=>n.replace(`resource=${this.resource.name}/id=`,""));this.continuationToken=r.NextContinuationToken,this.enqueue(i),r.IsTruncated||(this.closeNextIteration=!0)}enqueue(t){t.forEach(r=>{this.controller.enqueue(r),this.emit("id",r)})}_cancel(t){console.warn("Stream cancelled",t)}}class Ci extends Oi{enqueue(t){this.controller.enqueue(t),this.emit("page",t)}}class Ii extends b{constructor({resource:t}){super(),this.resource=t,this.client=t.client,this.input=new Ci({resource:this.resource}),this.output=new oo({transform:this._transform.bind(this)},{highWaterMark:this.client.parallelism*2},{highWaterMark:1}),this.stream=this.input.stream.pipeThrough(this.output)}build(){return this.stream.getReader()}async _transform(t,r){await ce.for(t).withConcurrency(this.client.parallelism).process(async i=>{const n=await this.resource.get(i);return r.enqueue(n),n})}}class Mi extends b{constructor({resource:t}){super(),this.resource=t,this.client=t.client,this.stream=new so({start:this._start.bind(this),write:this._write.bind(this),close:this._close.bind(this),abort:this._abort.bind(this)})}build(){return this.stream.getWriter()}async _start(t){this.controller=t}async _write(t,r){const i=this.resource;await ce.for([].concat(t)).withConcurrency(this.client.parallelism).process(async n=>{await i.insert(n)})}async _close(t){}async _abort(t){console.error("Stream aborted:",t)}}function lr(e){return new Promise((t,r)=>{const i=[];e.on("data",n=>i.push(n)),e.on("error",r),e.on("end",()=>t(Buffer.concat(i).toString("utf-8")))})}class Fi extends b{constructor({name:t,client:r,options:i={},attributes:n={},parallelism:a=10,passphrase:o="secret",observers:s=[]}){super(),this.name=t,this.client=r,this.options=i,this.observers=s,this.parallelism=a,this.passphrase=o??"secret",this.schema=new ti({name:t,attributes:n,passphrase:o})}export(){return this.schema.export()}async validate(t){const r={original:Re(t),isValid:!1,errors:[]},i=await this.schema.validate(t,{mutateOriginal:!0});return i===!0?r.isValid=!0:r.errors=i,r.data=t,r}async insert({id:t,...r}){const{errors:i,isValid:n,data:a}=await this.validate(r);if(!n)throw new At({bucket:this.client.config.bucket,resourceName:this.name,attributes:r,validation:i});!t&&t!==0&&(t=ni());const o=await this.schema.mapper(a);await this.client.putObject({metadata:o,key:K(`resource=${this.name}`,`id=${t}`)});const s=it({id:t},a);return this.emit("insert",s),s}async get(t){const r=await this.client.headObject(K(`resource=${this.name}`,`id=${t}`));let i=await this.schema.unmapper(r.Metadata);return i.id=t,i._length=r.ContentLength,i._createdAt=r.LastModified,r.Expiration&&(i._expiresAt=r.Expiration),this.emit("get",i),i}async exists(t){try{return await this.client.headObject(K(`resource=${this.name}`,`id=${t}`)),!0}catch{return!1}}async update(t,r){const i=await this.get(t),n=it(i,r);delete n.id;const{isValid:a,errors:o,data:s}=await this.validate(n);if(!a)throw new At({bucket:this.client.bucket,resourceName:this.name,attributes:r,validation:o});return await this.client.putObject({key:K(`resource=${this.name}`,`id=${t}`),body:"",metadata:await this.schema.mapper(s)}),s.id=t,this.emit("update",r,s),s}async delete(t){const r=K(`resource=${this.name}`,`id=${t}`),i=await this.client.deleteObject(r);return this.emit("delete",t),i}async count(){const t=await this.client.count({prefix:`resource=${this.name}`});return this.emit("count",t),t}async insertMany(t){const{results:r}=await ce.for(t).withConcurrency(this.parallelism).handleError(async(i,n)=>{this.emit("error",i,n),this.observers.map(a=>a.emit("error",this.name,i,n))}).process(async i=>await this.insert(i));return this.emit("insertMany",t.length),r}async deleteMany(t){const r=ai(t.map(n=>K(`resource=${this.name}`,`id=${n}`)),1e3),{results:i}=await ce.for(r).withConcurrency(this.parallelism).handleError(async(n,a)=>{this.emit("error",n,a),this.observers.map(o=>o.emit("error",this.name,n,a))}).process(async n=>{const a=await this.client.deleteObjects(n);return n.forEach(o=>{const s=o.split("=").pop();this.emit("deleted",s),this.observers.map(h=>h.emit("deleted",this.name,s))}),a});return this.emit("deleteMany",t.length),i}async deleteAll(){const t=await this.listIds();this.emit("deleteAll",t.length),await this.deleteMany(t)}async listIds(){const r=(await this.client.getAllKeys({prefix:`resource=${this.name}`})).map(i=>i.replace(`resource=${this.name}/id=`,""));return this.emit("listIds",r.length),r}async getMany(t){const{results:r}=await ce.for(t).withConcurrency(this.client.parallelism).process(async i=>{this.emit("id",i);const n=await this.get(i);return this.emit("data",n),n});return this.emit("getMany",t.length),r}async getAll(){let t=await this.listIds();if(t.length===0)return[];const{results:r}=await ce.for(t).withConcurrency(this.client.parallelism).process(async i=>await this.get(i));return this.emit("getAll",r.length),r}async page({offset:t=0,size:r=100}){const n=(await this.client.getKeysPage({offset:t,amount:r,prefix:`resource=${this.name}`})).map(o=>o.replace(`resource=${this.name}/id=`,""));return await this.getMany(n)}readable(){return new Ii({resource:this}).build()}writable(){return new Mi({resource:this}).build()}}class Di extends b{constructor(t){super(),this.version="1",this.resources={},this.options=t,this.verbose=t.verbose||!1,this.parallelism=parseInt(t.parallelism+"")||10,this.plugins=t.plugins||[],this.cache=t.cache,this.passphrase=t.passphrase||"secret",this.client=t.client||new ki({verbose:this.verbose,parallelism:this.parallelism,connectionString:t.connectionString}),this.bucket=this.client.bucket,this.keyPrefix=this.client.keyPrefix}async connect(){await this.startPlugins();let t=null;if(await this.client.exists("s3db.json")){const r=await this.client.getObject("s3db.json");t=JSON.parse(await lr(r?.Body)),t=this.unserializeMetadata(t)}else t=this.blankMetadataStructure(),await this.uploadMetadataFile();for(const r of Object.entries(t.resources)){const[i,n]=r;this.resources[i]=new Fi({name:i,client:this.client,options:n.options,attributes:n.schema,parallelism:this.parallelism,passphrase:this.passphrase,observers:[this]})}this.emit("connected",new Date)}async startPlugins(){const t=this;if(!tr(this.plugins)){const r=this.plugins.map(a=>qa(a)?new a(this):a),i=r.map(async a=>{a.beforeSetup&&await a.beforeSetup(),await a.setup(t),a.afterSetup&&await a.afterSetup()});await Promise.all(i);const n=r.map(async a=>{a.beforeStart&&await a.beforeStart(),await a.start(),a.afterStart&&await a.afterStart()});await Promise.all(n)}}unserializeMetadata(t){const r={...t};if(tr(r.resources))return r;for(const[i,n]of Object.entries(r.resources))for(const[a,o]of Object.entries(n.attributes))r.resources[i].attributes[a]=JSON.parse(o);return r}async uploadMetadataFile(){const t={version:this.version,resources:Object.entries(this.resources).reduce((r,i)=>{const[n,a]=i;return r[n]=a.export(),r},{})};await this.client.putObject({key:"s3db.json",contentType:"application/json",body:JSON.stringify(t,null,2)})}blankMetadataStructure(){return{version:"1",resources:{}}}async createResource({name:t,attributes:r,options:i={}}){const n=new Fi({name:t,attributes:r,observers:[this],client:this.client,options:{autoDecrypt:!0,cache:this.cache,...i}});return this.resources[t]=n,await this.uploadMetadataFile(),this.emit("s3db.resourceCreated",t),n}resource(t){return this.resources[t]?this.resources[t]:Promise.reject(`resource ${t} does not exist`)}}class Lo extends Di{}class hr extends b{async _set(t,r){}async _get(t){}async _del(t){}async _clear(t){}async set(t,r){return await this._set(t,r),this.emit("set",r),r}async get(t){const r=await this._get(t);return this.emit("get",r),r}async del(t){const r=await this._del(t);return this.emit("delete",r),r}async clear(){const t=await this._clear();return this.emit("clear",t),t}}class Oo extends hr{constructor(){super(),this.cache={}}async _set(t,r){return this.cache[t]=r,r}async _get(t){return this.cache[t]}async _del(t){return delete this.cache[t],!0}async _clear(){return this.cache={},!0}}var We=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{},Q=[],Y=[],Co=typeof Uint8Array<"u"?Uint8Array:Array,cr=!1;function Ni(){cr=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t<r;++t)Q[t]=e[t],Y[e.charCodeAt(t)]=t;Y[45]=62,Y[95]=63}function Io(e){cr||Ni();var t,r,i,n,a,o,s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a=e[s-2]==="="?2:e[s-1]==="="?1:0,o=new Co(s*3/4-a),i=a>0?s-4:s;var h=0;for(t=0,r=0;t<i;t+=4,r+=3)n=Y[e.charCodeAt(t)]<<18|Y[e.charCodeAt(t+1)]<<12|Y[e.charCodeAt(t+2)]<<6|Y[e.charCodeAt(t+3)],o[h++]=n>>16&255,o[h++]=n>>8&255,o[h++]=n&255;return a===2?(n=Y[e.charCodeAt(t)]<<2|Y[e.charCodeAt(t+1)]>>4,o[h++]=n&255):a===1&&(n=Y[e.charCodeAt(t)]<<10|Y[e.charCodeAt(t+1)]<<4|Y[e.charCodeAt(t+2)]>>2,o[h++]=n>>8&255,o[h++]=n&255),o}function Mo(e){return Q[e>>18&63]+Q[e>>12&63]+Q[e>>6&63]+Q[e&63]}function Fo(e,t,r){for(var i,n=[],a=t;a<r;a+=3)i=(e[a]<<16)+(e[a+1]<<8)+e[a+2],n.push(Mo(i));return n.join("")}function zi(e){cr||Ni();for(var t,r=e.length,i=r%3,n="",a=[],o=16383,s=0,h=r-i;s<h;s+=o)a.push(Fo(e,s,s+o>h?h:s+o));return i===1?(t=e[r-1],n+=Q[t>>2],n+=Q[t<<4&63],n+="=="):i===2&&(t=(e[r-2]<<8)+e[r-1],n+=Q[t>>10],n+=Q[t>>4&63],n+=Q[t<<2&63],n+="="),a.push(n),a.join("")}function Lt(e,t,r,i,n){var a,o,s=n*8-i-1,h=(1<<s)-1,f=h>>1,l=-7,d=r?n-1:0,p=r?-1:1,u=e[t+d];for(d+=p,a=u&(1<<-l)-1,u>>=-l,l+=s;l>0;a=a*256+e[t+d],d+=p,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=i;l>0;o=o*256+e[t+d],d+=p,l-=8);if(a===0)a=1-f;else{if(a===h)return o?NaN:(u?-1:1)*(1/0);o=o+Math.pow(2,i),a=a-f}return(u?-1:1)*o*Math.pow(2,a-i)}function Pi(e,t,r,i,n,a){var o,s,h,f=a*8-n-1,l=(1<<f)-1,d=l>>1,p=n===23?Math.pow(2,-24)-Math.pow(2,-77):0,u=i?0:a-1,g=i?1:-1,S=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-o))<1&&(o--,h*=2),o+d>=1?t+=p/h:t+=p*Math.pow(2,1-d),t*h>=2&&(o++,h/=2),o+d>=l?(s=0,o=l):o+d>=1?(s=(t*h-1)*Math.pow(2,n),o=o+d):(s=t*Math.pow(2,d-1)*Math.pow(2,n),o=0));n>=8;e[r+u]=s&255,u+=g,s/=256,n-=8);for(o=o<<n|s,f+=n;f>0;e[r+u]=o&255,u+=g,o/=256,f-=8);e[r+u-g]|=S*128}var Do={}.toString,Ui=Array.isArray||function(e){return Do.call(e)=="[object Array]"};/*!
7
+ ${JSON.stringify(n,null,2)}`}),this.resourceName=r,this.attributes=i,this.validation=n}}class mi extends Ke{}const bi={NotFound:gi,NoSuchKey:or,UnknownError:mi,NoSuchBucket:wi,MissingMetadata:vi,InvalidResourceItem:At},yi="us-east-1",xi="https://s3.us-east-1.amazonaws.com";class Ei{constructor(t){let r;try{r=new URL(t)}catch{throw new Error("Invalid connection string: "+t)}this.region=yi,r.protocol==="s3:"?this.defineS3(r):this.defineMinio(r);for(const[i,n]of r.searchParams.entries())this[i]=n}defineS3(t){if(this.bucket=t.hostname,this.accessKeyId=t.username,this.secretAccessKey=t.password,this.endpoint=xi,["/","",null].includes(t.pathname))this.keyPrefix="";else{let[,...r]=t.pathname.split("/");this.keyPrefix=[...r||[]].join("/")}}defineMinio(t){if(this.forcePathStyle=!0,this.endpoint=t.origin,this.accessKeyId=t.username,this.secretAccessKey=t.password,["/","",null].includes(t.pathname))this.bucket="s3db",this.keyPrefix="";else{let[,r,...i]=t.pathname.split("/");this.bucket=r,this.keyPrefix=[...i||[]].join("/")}}}class ki extends b{constructor({verbose:t=!1,id:r=null,AwsS3Client:i,connectionString:n,parallelism:a=10}){super(),this.verbose=t,this.id=r??ni(7),this.parallelism=a,this.config=new Ei(n),this.client=i||this.createClient()}createClient(){let t={region:this.config.region,endpoint:this.config.endpoint};return this.config.forcePathStyle&&(t.forcePathStyle=!0),this.config.accessKeyId&&(t.credentials={accessKeyId:this.config.accessKeyId,secretAccessKey:this.config.secretAccessKey}),new Ga(t)}async sendCommand(t){this.emit("command.request",t.constructor.name,t.input);const r=console.warn;try{console.warn=n=>{n.includes("Stream of unknown length")||r(n)}}catch(n){console.error(n)}const i=await this.client.send(t);this.emit("command.response",t.constructor.name,i,t.input);try{console.warn=r}catch(n){console.error(n)}return i}errorProxy(t,r){this.verbose&&(r.bucket=this.config.bucket,r.config=this.config,r.verbose=this.verbose),t.data=r;const i=bi[t.name];return i?new i(r):t}async putObject({key:t,metadata:r,contentType:i,body:n,contentEncoding:a}){const o={Bucket:this.config.bucket,Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,t):t,Metadata:{...r},Body:n||"",ContentType:i,ContentEncoding:a};try{const s=await this.sendCommand(new Va(o));return this.emit("putObject",s,o),s}catch(s){throw this.errorProxy(s,{key:t,command:o})}}async getObject(t){const r={Bucket:this.config.bucket,Key:ie.join(this.config.keyPrefix,t)};try{const i=await this.sendCommand(new Xa(r));return this.emit("getObject",i,r),i}catch(i){throw this.errorProxy(i,{key:t,command:r})}}async headObject(t){const r={Bucket:this.config.bucket,Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,t):t};try{const i=await this.client.send(new Ja(r));return this.emit("headObject",i,r),i}catch(i){throw this.errorProxy(i,{key:t,command:r})}}async copyObject({from:t,to:r}){const i={Bucket:this.config.bucket,Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,r):r,CopySource:ie.join(this.config.bucket,this.config.keyPrefix?ie.join(this.config.keyPrefix,t):t)};try{const n=await this.client.send(new Qa(i));return this.emit("copyObject",n,i),n}catch(n){throw this.errorProxy(n,{from:t,to:r,command:i})}}async exists(t){try{return await this.headObject(t),!0}catch(r){if(r.name==="NoSuchKey")return!1;if(r.name==="NotFound")return!1;throw r}}async deleteObject(t){const r={Bucket:this.config.bucket,Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,t):t};try{const i=await this.sendCommand(new eo(r));return this.emit("deleteObject",i,r),i}catch(i){throw this.errorProxy(i,{key:t,command:r})}}async deleteObjects(t){const r=ai(t,1e3),{results:i,errors:n}=await ce.for(r).withConcurrency(this.parallelism).process(async o=>{const s={Bucket:this.config.bucket,Delete:{Objects:o.map(h=>({Key:this.config.keyPrefix?ie.join(this.config.keyPrefix,h):h}))}};try{return await this.sendCommand(new to(s))}catch(h){throw this.errorProxy(h,{key,command:s})}}),a={deleted:i,notFound:n};return this.emit("deleteObjects",a,t),a}async deleteAll({prefix:t}={}){const r=await this.getAllKeys({prefix:t}),i=await this.deleteObjects(r);return this.emit("deleteAll",{prefix:t,report:i}),i}async moveObject({from:t,to:r}){try{return await this.copyObject({from:t,to:r}),await this.deleteObject(t),!0}catch(i){throw this.errorProxy(i,{from:t,to:r,command:options})}}async listObjects({prefix:t,maxKeys:r=1e3,continuationToken:i}={}){const n={Bucket:this.config.bucket,MaxKeys:r,ContinuationToken:i,Prefix:this.config.keyPrefix?ie.join(this.config.keyPrefix,t||""):t||""};try{const a=await this.sendCommand(new ro(n));return this.emit("listObjects",a,n),a}catch(a){throw this.errorProxy(a,{command:n})}}async count({prefix:t}={}){let r=0,i=!0,n;for(;i;){const a={prefix:t,continuationToken:n},o=await this.listObjects(a);r+=o.KeyCount||0,i=o.IsTruncated||!1,n=o.NextContinuationToken}return this.emit("count",r,{prefix:t}),r}async getAllKeys({prefix:t}={}){let r=[],i=!0,n;for(;i;){const a={prefix:t,continuationToken:n},o=await this.listObjects(a);o.Contents&&(r=r.concat(o.Contents.map(s=>s.Key))),i=o.IsTruncated||!1,n=o.NextContinuationToken}return this.config.keyPrefix&&(r=r.map(a=>a.replace(this.config.keyPrefix,"")).map(a=>a.startsWith("/")?a.replace("/",""):a)),this.emit("getAllKeys",r,{prefix:t}),r}async getContinuationTokenAfterOffset(t={}){const{prefix:r,offset:i=1e3}=t;if(i===0)return null;let n=!0,a,o=0;for(;n;){let s=i<1e3?i:i-o>1e3?1e3:i-o;const h={prefix:r,maxKeys:s,continuationToken:a},f=await this.listObjects(h);if(f.Contents&&(o+=f.Contents.length),n=f.IsTruncated||!1,a=f.NextContinuationToken,o>=i)break}return this.emit("getContinuationTokenAfterOffset",a,t),a}async getKeysPage(t={}){const{prefix:r,offset:i=0,amount:n=100}=t;let a=[],o=!0,s;for(i>0&&(s=await this.getContinuationTokenAfterOffset({prefix:r,offset:i}));o;){const h={prefix:r,continuationToken:s},f=await this.listObjects(h);if(f.Contents&&(a=a.concat(f.Contents.map(l=>l.Key))),o=f.IsTruncated||!1,s=f.NextContinuationToken,a.length>n){a=a.splice(0,n);break}}return this.config.keyPrefix&&(a=a.map(h=>h.replace(this.config.keyPrefix,"")).map(h=>h.startsWith("/")?h.replace("/",""):h)),this.emit("getKeysPage",a,t),a}async moveAllObjects({prefixFrom:t,prefixTo:r}){const i=await this.getAllKeys({prefix:t}),{results:n,errors:a}=await ce.for(i).withConcurrency(this.parallelism).process(async o=>{const s=o.replace(t,r);try{return await this.moveObject({from:o,to:s}),s}catch(h){throw this.errorProxy(h,{from:o,to:s})}});if(this.emit("moveAllObjects",{results:n,errors:a},{prefixFrom:t,prefixTo:r}),a.length>0)throw console.log({errors:a}),new Error("Some objects could not be moved");return n}}async function Tt(){let e;if(process)try{const{webcrypto:t}=await import("crypto");e=t}catch{throw new Error("Crypto API not available")}else window&&(e=window.crypto);if(!e)throw new Error("Could not load any crypto library");return e}async function Si(e){const t=await Tt(),i=new TextEncoder().encode(e),n=await t.subtle.digest("SHA-256",i);return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("")}async function sr(e,t){const r=await Tt(),i=r.getRandomValues(new Uint8Array(16)),n=await Ai(t,i),a=r.getRandomValues(new Uint8Array(12)),s=new TextEncoder().encode(e),h=await r.subtle.encrypt({name:"AES-GCM",iv:a},n,s),f=new Uint8Array(i.length+a.length+h.byteLength);return f.set(i),f.set(a,i.length),f.set(new Uint8Array(h),i.length+a.length),Ro(f)}async function Ri(e,t){const r=await Tt(),i=Ao(e),n=i.slice(0,16),a=i.slice(16,28),o=i.slice(28),s=await Ai(t,n),h=await r.subtle.decrypt({name:"AES-GCM",iv:a},s,o);return new TextDecoder().decode(h)}async function Ai(e,t){const r=await Tt(),n=new TextEncoder().encode(e),a=await r.subtle.importKey("raw",n,{name:"PBKDF2"},!1,["deriveKey"]);return await r.subtle.deriveKey({name:"PBKDF2",salt:t,iterations:1e5,hash:"SHA-256"},a,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}function Ro(e){if(oi(process))return Buffer.from(e).toString("base64");{const t=String.fromCharCode.apply(null,new Uint8Array(e));return window.btoa(t)}}function Ao(e){if(oi(process))return new Uint8Array(Buffer.from(e,"base64"));{const t=window.atob(e),r=t.length,i=new Uint8Array(r);for(let n=0;n<r;n++)i[n]=t.charCodeAt(n);return i}}async function fr(e,t,r){if(!this.passphrase)return t.push({actual:e,type:"encryptionKeyMissing"}),e;try{return await sr(String(e),this.passphrase)}catch(i){t.push({actual:e,type:"encryptionProblem",error:i})}return e}class Ti extends no{constructor({options:t,passphrase:r,autoEncrypt:i=!0}={}){super(it({},{useNewCustomCheckerFunction:!0,messages:{encryptionKeyMissing:"Missing configuration for secrets encryption.",encryptionProblem:"Problem encrypting secret. Actual: {actual}. Error: {error}"},defaults:{string:{trim:!0},object:{strict:"remove"}}},t)),this.passphrase=r,this.autoEncrypt=i,this.alias("secret",{type:"string",custom:this.autoEncrypt?fr:void 0,messages:{string:"The '{field}' field must be a string.",stringMin:"This secret '{field}' field length must be at least {expected} long."}}),this.alias("secretAny",{type:"any",custom:this.autoEncrypt?fr:void 0}),this.alias("secretNumber",{type:"number",custom:this.autoEncrypt?fr:void 0})}}const Li=new Proxy(Ti,{instance:null,construct(e,t){return this.instance||(this.instance=new e(...t)),this.instance}}),To={trim:e=>e.trim(),encrypt:(e,{passphrase:t})=>sr(e,t),decrypt:(e,{passphrase:t})=>Ri(e,t),toString:e=>String(e),fromArray:(e,{separator:t})=>(e||[]).join(t),toArray:(e,{separator:t})=>(e||"").split(t),toJSON:e=>JSON.stringify(e),fromJSON:e=>JSON.parse(e),toNumber:e=>fi(e)?e.includes(".")?parseFloat(e):parseInt(e):e};class ti{constructor(t){const{map:r,name:i,attributes:n,passphrase:a,version:o=1,options:s={}}=t;if(this.name=i,this.version=o,this.attributes=n,this.passphrase=a??"secret",this.options=it({},this.defaultOptions(),s),this.validator=new Li({autoEncrypt:!1}).compile(it({$$async:!0},Re(this.attributes))),this.options.generateAutoHooks&&this.generateAutoHooks(),!tr(r))this.map=r,this.reversedMap=si(r);else{const h=rr(this.attributes,{safe:!0});this.reversedMap={...Object.keys(h).filter(f=>!f.includes("$$"))},this.map=si(this.reversedMap)}}defaultOptions(){return{autoEncrypt:!0,autoDecrypt:!0,arraySeparator:"|",generateAutoHooks:!0,hooks:{beforeMap:{},afterMap:{},beforeUnmap:{},afterUnmap:{}}}}addHook(t,r,i){this.options.hooks[t][r]||(this.options.hooks[t][r]=[]),this.options.hooks[t][r]=Ka([...this.options.hooks[t][r],i])}generateAutoHooks(){const t=rr(Re(this.attributes),{safe:!0});for(const[r,i]of Object.entries(t))i.includes("array")?(this.addHook("beforeMap",r,"fromArray"),this.addHook("afterUnmap",r,"toArray")):(i.includes("secret")&&(this.options.autoEncrypt&&this.addHook("beforeMap",r,"encrypt"),this.options.autoDecrypt&&this.addHook("afterUnmap",r,"decrypt")),i.includes("number")&&(this.addHook("beforeMap",r,"toString"),this.addHook("afterUnmap",r,"toNumber")),i.includes("boolean")&&(this.addHook("beforeMap",r,"toJSON"),this.addHook("afterUnmap",r,"fromJSON")))}static import(t){let{map:r,name:i,options:n,version:a,attributes:o}=fi(t)?JSON.parse(t):t;return new ti({map:r,name:i,options:n,version:a,attributes:o})}export(){const t={version:this.version,name:this.name,options:this.options,attributes:Re(this.attributes),map:this.map};for(const[r,i]of Object.entries(this.attributes))t.attributes[r]=JSON.stringify(i);return t}async applyHooksActions(t,r){for(const[i,n]of Object.entries(this.options.hooks[r]))for(const a of n){const o=Wa(t,i);o&&Ya(t,i,await To[a](o,{passphrase:this.passphrase,separator:this.options.arraySeparator}))}}async validate(t,{mutateOriginal:r=!1}={}){let i=r?t:Re(t);return await this.validator(i)}async mapper(t){const r=rr(Re(t),{safe:!0});await this.applyHooksActions(r,"beforeMap");const i={_v:this.version+""};for(const[n,a]of Object.entries(r))i[this.map[n]]=a;return await this.applyHooksActions(i,"afterMap"),i}async unmapper(t){const r=Re(t);delete r._v,await this.applyHooksActions(r,"beforeUnmap");const i={};for(const[n,a]of Object.entries(r))i[this.reversedMap[n]]=a;return await this.applyHooksActions(i,"afterUnmap"),io(i)}}class Oi extends b{constructor({resource:t}){super(),this.resource=t,this.client=t.client,this.stream=new ao({highWaterMark:this.client.parallelism*3,start:this._start.bind(this),pull:this._pull.bind(this),cancel:this._cancel.bind(this)})}build(){return this.stream.getReader()}async _start(t){this.controller=t,this.continuationToken=null,this.closeNextIteration=!1}async _pull(t){if(this.closeNextIteration){t.close();return}const r=await this.client.listObjects({prefix:`resource=${this.resource.name}`,continuationToken:this.continuationToken}),i=r?.Contents.map(n=>n.Key).map(n=>n.replace(this.client.config.keyPrefix,"")).map(n=>n.startsWith("/")?n.replace("/",""):n).map(n=>n.replace(`resource=${this.resource.name}/id=`,""));this.continuationToken=r.NextContinuationToken,this.enqueue(i),r.IsTruncated||(this.closeNextIteration=!0)}enqueue(t){t.forEach(r=>{this.controller.enqueue(r),this.emit("id",r)})}_cancel(t){console.warn("Stream cancelled",t)}}class Ci extends Oi{enqueue(t){this.controller.enqueue(t),this.emit("page",t)}}class Ii extends b{constructor({resource:t}){super(),this.resource=t,this.client=t.client,this.input=new Ci({resource:this.resource}),this.output=new oo({transform:this._transform.bind(this)},{highWaterMark:this.client.parallelism*2},{highWaterMark:1}),this.stream=this.input.stream.pipeThrough(this.output)}build(){return this.stream.getReader()}async _transform(t,r){await ce.for(t).withConcurrency(this.client.parallelism).process(async i=>{const n=await this.resource.get(i);return r.enqueue(n),n})}}class Mi extends b{constructor({resource:t}){super(),this.resource=t,this.client=t.client,this.stream=new so({start:this._start.bind(this),write:this._write.bind(this),close:this._close.bind(this),abort:this._abort.bind(this)})}build(){return this.stream.getWriter()}async _start(t){this.controller=t}async _write(t,r){const i=this.resource;await ce.for([].concat(t)).withConcurrency(this.client.parallelism).process(async n=>{await i.insert(n)})}async _close(t){}async _abort(t){console.error("Stream aborted:",t)}}function lr(e){return new Promise((t,r)=>{const i=[];e.on("data",n=>i.push(n)),e.on("error",r),e.on("end",()=>t(Buffer.concat(i).toString("utf-8")))})}class Fi extends b{constructor({name:t,client:r,options:i={},attributes:n={},parallelism:a=10,passphrase:o="secret",observers:s=[]}){super(),this.name=t,this.client=r,this.options=i,this.observers=s,this.parallelism=a,this.passphrase=o??"secret",this.schema=new ti({name:t,attributes:n,passphrase:o})}export(){return this.schema.export()}async validate(t){const r={original:Re(t),isValid:!1,errors:[]},i=await this.schema.validate(t,{mutateOriginal:!0});return i===!0?r.isValid=!0:r.errors=i,r.data=t,r}async insert({id:t,...r}){const{errors:i,isValid:n,data:a}=await this.validate(r);if(!n)throw new At({bucket:this.client.config.bucket,resourceName:this.name,attributes:r,validation:i});!t&&t!==0&&(t=ni());const o=await this.schema.mapper(a);await this.client.putObject({metadata:o,key:K(`resource=${this.name}`,`id=${t}`)});const s=it({id:t},a);return this.emit("insert",s),s}async get(t){const r=await this.client.headObject(K(`resource=${this.name}`,`id=${t}`));let i=await this.schema.unmapper(r.Metadata);return i.id=t,i._length=r.ContentLength,i._createdAt=r.LastModified,r.Expiration&&(i._expiresAt=r.Expiration),this.emit("get",i),i}async exists(t){try{return await this.client.headObject(K(`resource=${this.name}`,`id=${t}`)),!0}catch{return!1}}async update(t,r){const i=await this.get(t),n=it(i,r);delete n.id;const{isValid:a,errors:o,data:s}=await this.validate(n);if(!a)throw new At({bucket:this.client.bucket,resourceName:this.name,attributes:r,validation:o});return await this.client.putObject({key:K(`resource=${this.name}`,`id=${t}`),body:"",metadata:await this.schema.mapper(s)}),s.id=t,this.emit("update",r,s),s}async delete(t){const r=K(`resource=${this.name}`,`id=${t}`),i=await this.client.deleteObject(r);return this.emit("delete",t),i}async count(){const t=await this.client.count({prefix:`resource=${this.name}`});return this.emit("count",t),t}async insertMany(t){const{results:r}=await ce.for(t).withConcurrency(this.parallelism).handleError(async(i,n)=>{this.emit("error",i,n),this.observers.map(a=>a.emit("error",this.name,i,n))}).process(async i=>await this.insert(i));return this.emit("insertMany",t.length),r}async deleteMany(t){const r=ai(t.map(n=>K(`resource=${this.name}`,`id=${n}`)),1e3),{results:i}=await ce.for(r).withConcurrency(this.parallelism).handleError(async(n,a)=>{this.emit("error",n,a),this.observers.map(o=>o.emit("error",this.name,n,a))}).process(async n=>{const a=await this.client.deleteObjects(n);return n.forEach(o=>{const s=o.split("=").pop();this.emit("deleted",s),this.observers.map(h=>h.emit("deleted",this.name,s))}),a});return this.emit("deleteMany",t.length),i}async deleteAll(){const t=await this.listIds();this.emit("deleteAll",t.length),await this.deleteMany(t)}async listIds(){const r=(await this.client.getAllKeys({prefix:`resource=${this.name}`})).map(i=>i.replace(`resource=${this.name}/id=`,""));return this.emit("listIds",r.length),r}async getMany(t){const{results:r}=await ce.for(t).withConcurrency(this.client.parallelism).process(async i=>{this.emit("id",i);const n=await this.get(i);return this.emit("data",n),n});return this.emit("getMany",t.length),r}async getAll(){let t=await this.listIds();if(t.length===0)return[];const{results:r}=await ce.for(t).withConcurrency(this.client.parallelism).process(async i=>await this.get(i));return this.emit("getAll",r.length),r}async page({offset:t=0,size:r=100}){const n=(await this.client.getKeysPage({offset:t,amount:r,prefix:`resource=${this.name}`})).map(o=>o.replace(`resource=${this.name}/id=`,""));return await this.getMany(n)}readable(){return new Ii({resource:this}).build()}writable(){return new Mi({resource:this}).build()}}class Di extends b{constructor(t){super(),this.version="1",this.resources={},this.options=t,this.verbose=t.verbose||!1,this.parallelism=parseInt(t.parallelism+"")||10,this.plugins=t.plugins||[],this.cache=t.cache,this.passphrase=t.passphrase||"secret",this.client=t.client||new ki({verbose:this.verbose,parallelism:this.parallelism,connectionString:t.connectionString}),this.bucket=this.client.bucket,this.keyPrefix=this.client.keyPrefix}async connect(){await this.startPlugins();let t=null;if(await this.client.exists("s3db.json")){const r=await this.client.getObject("s3db.json");t=JSON.parse(await lr(r?.Body)),t=this.unserializeMetadata(t)}else t=this.blankMetadataStructure(),await this.uploadMetadataFile();for(const r of Object.entries(t.resources)){const[i,n]=r;this.resources[i]=new Fi({name:i,client:this.client,options:n.options,attributes:n.schema,parallelism:this.parallelism,passphrase:this.passphrase,observers:[this]})}this.emit("connected",new Date)}async startPlugins(){const t=this;if(!tr(this.plugins)){const r=this.plugins.map(a=>qa(a)?new a(this):a),i=r.map(async a=>{a.beforeSetup&&await a.beforeSetup(),await a.setup(t),a.afterSetup&&await a.afterSetup()});await Promise.all(i);const n=r.map(async a=>{a.beforeStart&&await a.beforeStart(),await a.start(),a.afterStart&&await a.afterStart()});await Promise.all(n)}}unserializeMetadata(t){const r={...t};if(tr(r.resources))return r;for(const[i,n]of Object.entries(r.resources))for(const[a,o]of Object.entries(n.attributes))r.resources[i].attributes[a]=JSON.parse(o);return r}async uploadMetadataFile(){const t={version:this.version,resources:Object.entries(this.resources).reduce((r,i)=>{const[n,a]=i;return r[n]=a.export(),r},{})};await this.client.putObject({key:"s3db.json",contentType:"application/json",body:JSON.stringify(t,null,2)})}blankMetadataStructure(){return{version:"1",resources:{}}}async createResource({name:t,attributes:r,options:i={}}){const n=new Fi({name:t,attributes:r,observers:[this],client:this.client,options:{autoDecrypt:!0,cache:this.cache,...i}});return this.resources[t]=n,await this.uploadMetadataFile(),this.emit("s3db.resourceCreated",t),n}resource(t){return this.resources[t]?this.resources[t]:Promise.reject(`resource ${t} does not exist`)}}class Lo extends Di{}class hr extends b{async _set(t,r){}async _get(t){}async _del(t){}async _clear(t){}async set(t,r){return await this._set(t,r),this.emit("set",r),r}async get(t){const r=await this._get(t);return this.emit("get",r),r}async del(t){const r=await this._del(t);return this.emit("delete",r),r}async clear(){const t=await this._clear();return this.emit("clear",t),t}}class Oo extends hr{constructor(){super(),this.cache={}}async _set(t,r){return this.cache[t]=r,r}async _get(t){return this.cache[t]}async _del(t){return delete this.cache[t],!0}async _clear(){return this.cache={},!0}}var We=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{},Q=[],Y=[],Co=typeof Uint8Array<"u"?Uint8Array:Array,cr=!1;function Ni(){cr=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t<r;++t)Q[t]=e[t],Y[e.charCodeAt(t)]=t;Y[45]=62,Y[95]=63}function Io(e){cr||Ni();var t,r,i,n,a,o,s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a=e[s-2]==="="?2:e[s-1]==="="?1:0,o=new Co(s*3/4-a),i=a>0?s-4:s;var h=0;for(t=0,r=0;t<i;t+=4,r+=3)n=Y[e.charCodeAt(t)]<<18|Y[e.charCodeAt(t+1)]<<12|Y[e.charCodeAt(t+2)]<<6|Y[e.charCodeAt(t+3)],o[h++]=n>>16&255,o[h++]=n>>8&255,o[h++]=n&255;return a===2?(n=Y[e.charCodeAt(t)]<<2|Y[e.charCodeAt(t+1)]>>4,o[h++]=n&255):a===1&&(n=Y[e.charCodeAt(t)]<<10|Y[e.charCodeAt(t+1)]<<4|Y[e.charCodeAt(t+2)]>>2,o[h++]=n>>8&255,o[h++]=n&255),o}function Mo(e){return Q[e>>18&63]+Q[e>>12&63]+Q[e>>6&63]+Q[e&63]}function Fo(e,t,r){for(var i,n=[],a=t;a<r;a+=3)i=(e[a]<<16)+(e[a+1]<<8)+e[a+2],n.push(Mo(i));return n.join("")}function zi(e){cr||Ni();for(var t,r=e.length,i=r%3,n="",a=[],o=16383,s=0,h=r-i;s<h;s+=o)a.push(Fo(e,s,s+o>h?h:s+o));return i===1?(t=e[r-1],n+=Q[t>>2],n+=Q[t<<4&63],n+="=="):i===2&&(t=(e[r-2]<<8)+e[r-1],n+=Q[t>>10],n+=Q[t>>4&63],n+=Q[t<<2&63],n+="="),a.push(n),a.join("")}function Lt(e,t,r,i,n){var a,o,s=n*8-i-1,h=(1<<s)-1,f=h>>1,l=-7,d=r?n-1:0,p=r?-1:1,u=e[t+d];for(d+=p,a=u&(1<<-l)-1,u>>=-l,l+=s;l>0;a=a*256+e[t+d],d+=p,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=i;l>0;o=o*256+e[t+d],d+=p,l-=8);if(a===0)a=1-f;else{if(a===h)return o?NaN:(u?-1:1)*(1/0);o=o+Math.pow(2,i),a=a-f}return(u?-1:1)*o*Math.pow(2,a-i)}function Pi(e,t,r,i,n,a){var o,s,h,f=a*8-n-1,l=(1<<f)-1,d=l>>1,p=n===23?Math.pow(2,-24)-Math.pow(2,-77):0,u=i?0:a-1,g=i?1:-1,S=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-o))<1&&(o--,h*=2),o+d>=1?t+=p/h:t+=p*Math.pow(2,1-d),t*h>=2&&(o++,h/=2),o+d>=l?(s=0,o=l):o+d>=1?(s=(t*h-1)*Math.pow(2,n),o=o+d):(s=t*Math.pow(2,d-1)*Math.pow(2,n),o=0));n>=8;e[r+u]=s&255,u+=g,s/=256,n-=8);for(o=o<<n|s,f+=n;f>0;e[r+u]=o&255,u+=g,o/=256,f-=8);e[r+u-g]|=S*128}var Do={}.toString,Ui=Array.isArray||function(e){return Do.call(e)=="[object Array]"};/*!
8
8
  * The buffer module from node.js, for the browser.
9
9
  *
10
10
  * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
@@ -18,4 +18,4 @@ ${JSON.stringify(n,null,2)}`}),this.resourceName=r,this.attributes=i,this.valida
18
18
  `))):s=e.stylize("[Circular]","special")),we(o)){if(a&&n.match(/^\d+$/))return s;o=JSON.stringify(""+n),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function js(e,t,r){var i=e.reduce(function(n,a){return a.indexOf(`
19
19
  `)>=0,n+a.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?r[0]+(t===""?"":t+`
20
20
  `)+" "+e.join(`,
21
- `)+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function $s(e){return Array.isArray(e)}function on(e){return typeof e=="boolean"}function vr(e){return e===null}function Hs(e){return typeof e=="number"}function mr(e){return typeof e=="string"}function we(e){return e===void 0}function br(e){return at(e)&&Er(e)==="[object RegExp]"}function at(e){return typeof e=="object"&&e!==null}function sn(e){return at(e)&&Er(e)==="[object Date]"}function yr(e){return at(e)&&(Er(e)==="[object Error]"||e instanceof Error)}function xr(e){return typeof e=="function"}function Er(e){return Object.prototype.toString.call(e)}function Ks(e,t){if(!t||!at(t))return e;for(var r=Object.keys(t),i=r.length;i--;)e[r[i]]=t[r[i]];return e}function fn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Oe(){this.head=null,this.tail=null,this.length=0}Oe.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},Oe.prototype.unshift=function(e){var t={data:e,next:this.head};this.length===0&&(this.tail=t),this.head=t,++this.length},Oe.prototype.shift=function(){if(this.length!==0){var e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},Oe.prototype.clear=function(){this.head=this.tail=null,this.length=0},Oe.prototype.join=function(e){if(this.length===0)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},Oe.prototype.concat=function(e){if(this.length===0)return c.alloc(0);if(this.length===1)return this.head.data;for(var t=c.allocUnsafe(e>>>0),r=this.head,i=0;r;)r.data.copy(t,i),i+=r.data.length,r=r.next;return t};var Ws=c.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Ys(e){if(e&&!Ws(e))throw new Error("Unknown encoding: "+e)}function ot(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),Ys(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Gs;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Vs;break;default:this.write=qs;return}this.charBuffer=new c(6),this.charReceived=0,this.charLength=0}ot.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived<this.charLength)return"";e=e.slice(r,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var n=t.charCodeAt(t.length-1);if(n>=55296&&n<=56319){this.charLength+=this.surrogateSize,t="";continue}if(this.charReceived=this.charLength=0,e.length===0)return t;break}this.detectIncompleteChar(e);var i=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,i),i-=this.charReceived),t+=e.toString(this.encoding,0,i);var i=t.length-1,n=t.charCodeAt(i);if(n>=55296&&n<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),e.copy(this.charBuffer,0,0,a),t.substring(0,i)}return t},ot.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(t==1&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},ot.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,i=this.charBuffer,n=this.encoding;t+=i.slice(0,r).toString(n)}return t};function qs(e){return e.toString(this.encoding)}function Gs(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function Vs(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}F.ReadableState=ln;var O=Ns("stream");Z(F,b);function Xs(e,t,r){if(typeof e.prependListener=="function")return e.prependListener(t,r);!e._events||!e._events[t]?e.on(t,r):Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]}function Js(e,t){return e.listeners(t).length}function ln(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof q&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,i=this.objectMode?16:16*1024;this.highWaterMark=r||r===0?r:i,this.highWaterMark=~~this.highWaterMark,this.buffer=new Oe,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new ot(e.encoding),this.encoding=e.encoding)}function F(e){if(!(this instanceof F))return new F(e);this._readableState=new ln(e,this),this.readable=!0,e&&typeof e.read=="function"&&(this._read=e.read),b.call(this)}F.prototype.push=function(e,t){var r=this._readableState;return!r.objectMode&&typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=c.from(e,t),t="")),hn(this,r,e,t,!1)},F.prototype.unshift=function(e){var t=this._readableState;return hn(this,t,e,"",!0)},F.prototype.isPaused=function(){return this._readableState.flowing===!1};function hn(e,t,r,i,n){var a=tf(t,r);if(a)e.emit("error",a);else if(r===null)t.reading=!1,rf(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!n){var o=new Error("stream.push() after EOF");e.emit("error",o)}else if(t.endEmitted&&n){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var h;t.decoder&&!n&&!i&&(r=t.decoder.write(r),h=!t.objectMode&&r.length===0),n||(t.reading=!1),h||(t.flowing&&t.length===0&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&Pt(e))),nf(e,t)}else n||(t.reading=!1);return Qs(t)}function Qs(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}F.prototype.setEncoding=function(e){return this._readableState.decoder=new ot(e),this._readableState.encoding=e,this};var cn=8388608;function ef(e){return e>=cn?e=cn:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function un(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=ef(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}F.prototype.read=function(e){O("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return O("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?Sr(this):Pt(this),null;if(e=un(e,t),e===0&&t.ended)return t.length===0&&Sr(this),null;var i=t.needReadable;O("need readable",i),(t.length===0||t.length-e<t.highWaterMark)&&(i=!0,O("length less than watermark",i)),t.ended||t.reading?(i=!1,O("reading or ended",i)):i&&(O("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=un(r,t)));var n;return e>0?n=pn(e,t):n=null,n===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&Sr(this)),n!==null&&this.emit("data",n),n};function tf(e,t){var r=null;return!c.isBuffer(t)&&typeof t!="string"&&t!==null&&t!==void 0&&!e.objectMode&&(r=new TypeError("Invalid non-string/buffer chunk")),r}function rf(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,Pt(e)}}function Pt(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(O("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?W(dn,e):dn(e))}function dn(e){O("emit readable"),e.emit("readable"),kr(e)}function nf(e,t){t.readingMore||(t.readingMore=!0,W(af,e,t))}function af(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(O("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}F.prototype._read=function(e){this.emit("error",new Error("not implemented"))},F.prototype.pipe=function(e,t){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e);break}i.pipesCount+=1,O("pipe count=%d opts=%j",i.pipesCount,t);var n=!t||t.end!==!1,a=n?s:l;i.endEmitted?W(a):r.once("end",a),e.on("unpipe",o);function o(v){O("onunpipe"),v===r&&l()}function s(){O("onend"),e.end()}var h=of(r);e.on("drain",h);var f=!1;function l(){O("cleanup"),e.removeListener("close",g),e.removeListener("finish",S),e.removeListener("drain",h),e.removeListener("error",u),e.removeListener("unpipe",o),r.removeListener("end",s),r.removeListener("end",l),r.removeListener("data",p),f=!0,i.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&h()}var d=!1;r.on("data",p);function p(v){O("ondata"),d=!1;var k=e.write(v);k===!1&&!d&&((i.pipesCount===1&&i.pipes===e||i.pipesCount>1&&_n(i.pipes,e)!==-1)&&!f&&(O("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,d=!0),r.pause())}function u(v){O("onerror",v),y(),e.removeListener("error",u),Js(e,"error")===0&&e.emit("error",v)}Xs(e,"error",u);function g(){e.removeListener("finish",S),y()}e.once("close",g);function S(){O("onfinish"),e.removeListener("close",g),y()}e.once("finish",S);function y(){O("unpipe"),r.unpipe(e)}return e.emit("pipe",r),i.flowing||(O("pipe resume"),r.resume()),e};function of(e){return function(){var t=e._readableState;O("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&e.listeners("data").length&&(t.flowing=!0,kr(e))}}F.prototype.unpipe=function(e){var t=this._readableState;if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var n=0;n<i;n++)r[n].emit("unpipe",this);return this}var a=_n(t.pipes,e);return a===-1?this:(t.pipes.splice(a,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},F.prototype.on=function(e,t){var r=b.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var i=this._readableState;!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.emittedReadable=!1,i.reading?i.length&&Pt(this):W(sf,this))}return r},F.prototype.addListener=F.prototype.on;function sf(e){O("readable nexttick read 0"),e.read(0)}F.prototype.resume=function(){var e=this._readableState;return e.flowing||(O("resume"),e.flowing=!0,ff(this,e)),this};function ff(e,t){t.resumeScheduled||(t.resumeScheduled=!0,W(lf,e,t))}function lf(e,t){t.reading||(O("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),kr(e),t.flowing&&!t.reading&&e.read(0)}F.prototype.pause=function(){return O("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(O("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function kr(e){var t=e._readableState;for(O("flow",t.flowing);t.flowing&&e.read()!==null;);}F.prototype.wrap=function(e){var t=this._readableState,r=!1,i=this;e.on("end",function(){if(O("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&i.push(o)}i.push(null)}),e.on("data",function(o){if(O("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var s=i.push(o);s||(r=!0,e.pause())}});for(var n in e)this[n]===void 0&&typeof e[n]=="function"&&(this[n]=function(o){return function(){return e[o].apply(e,arguments)}}(n));var a=["error","close","destroy","pause","resume"];return pf(a,function(o){e.on(o,i.emit.bind(i,o))}),i._read=function(o){O("wrapped _read",o),r&&(r=!1,e.resume())},i},F._fromList=pn;function pn(e,t){if(t.length===0)return null;var r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(t.decoder?r=t.buffer.join(""):t.buffer.length===1?r=t.buffer.head.data:r=t.buffer.concat(t.length),t.buffer.clear()):r=hf(e,t.buffer,t.decoder),r}function hf(e,t,r){var i;return e<t.head.data.length?(i=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?i=t.shift():i=r?cf(e,t):uf(e,t),i}function cf(e,t){var r=t.head,i=1,n=r.data;for(e-=n.length;r=r.next;){var a=r.data,o=e>a.length?a.length:e;if(o===a.length?n+=a:n+=a.slice(0,e),e-=o,e===0){o===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break}++i}return t.length-=i,n}function uf(e,t){var r=c.allocUnsafe(e),i=t.head,n=1;for(i.data.copy(r),e-=i.data.length;i=i.next;){var a=i.data,o=e>a.length?a.length:e;if(a.copy(r,r.length-e,0,o),e-=o,e===0){o===a.length?(++n,i.next?t.head=i.next:t.head=t.tail=null):(t.head=i,i.data=a.slice(o));break}++n}return t.length-=n,r}function Sr(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,W(df,t,e))}function df(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function pf(e,t){for(var r=0,i=e.length;r<i;r++)t(e[r],r)}function _n(e,t){for(var r=0,i=e.length;r<i;r++)if(e[r]===t)return r;return-1}j.WritableState=Rr,Z(j,b);function _f(){}function wf(e,t,r){this.chunk=e,this.encoding=t,this.callback=r,this.next=null}function Rr(e,t){Object.defineProperty(this,"buffer",{get:an(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),e=e||{},this.objectMode=!!e.objectMode,t instanceof q&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark,i=this.objectMode?16:16*1024;this.highWaterMark=r||r===0?r:i,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var n=e.decodeStrings===!1;this.decodeStrings=!n,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){Ef(t,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new yn(this)}Rr.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};function j(e){if(!(this instanceof j)&&!(this instanceof q))return new j(e);this._writableState=new Rr(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev)),b.call(this)}j.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function gf(e,t){var r=new Error("write after end");e.emit("error",r),W(t,r)}function vf(e,t,r,i){var n=!0,a=!1;return r===null?a=new TypeError("May not write null values to stream"):!c.isBuffer(r)&&typeof r!="string"&&r!==void 0&&!t.objectMode&&(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),W(i,a),n=!1),n}j.prototype.write=function(e,t,r){var i=this._writableState,n=!1;return typeof t=="function"&&(r=t,t=null),c.isBuffer(e)?t="buffer":t||(t=i.defaultEncoding),typeof r!="function"&&(r=_f),i.ended?gf(this,r):vf(this,i,e,r)&&(i.pendingcb++,n=bf(this,i,e,t,r)),n},j.prototype.cork=function(){var e=this._writableState;e.corked++},j.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest&&gn(this,e))},j.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function mf(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=c.from(t,r)),t}function bf(e,t,r,i,n){r=mf(t,r,i),c.isBuffer(r)&&(i="buffer");var a=t.objectMode?1:r.length;t.length+=a;var o=t.length<t.highWaterMark;if(o||(t.needDrain=!0),t.writing||t.corked){var s=t.lastBufferedRequest;t.lastBufferedRequest=new wf(r,i,n),s?s.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else Ar(e,t,!1,a,r,i,n);return o}function Ar(e,t,r,i,n,a,o){t.writelen=i,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(n,t.onwrite):e._write(n,a,t.onwrite),t.sync=!1}function yf(e,t,r,i,n){--t.pendingcb,r?W(n,i):n(i),e._writableState.errorEmitted=!0,e.emit("error",i)}function xf(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function Ef(e,t){var r=e._writableState,i=r.sync,n=r.writecb;if(xf(r),t)yf(e,r,i,t,n);else{var a=vn(r);!a&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&gn(e,r),i?W(wn,e,r,a,n):wn(e,r,a,n)}}function wn(e,t,r,i){r||kf(e,t),t.pendingcb--,i(),bn(e,t)}function kf(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function gn(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount,n=new Array(i),a=t.corkedRequestsFree;a.entry=r;for(var o=0;r;)n[o]=r,r=r.next,o+=1;Ar(e,t,!0,t.length,n,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new yn(t)}else{for(;r;){var s=r.chunk,h=r.encoding,f=r.callback,l=t.objectMode?1:s.length;if(Ar(e,t,!1,l,s,h,f),r=r.next,t.writing)break}r===null&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=r,t.bufferProcessing=!1}j.prototype._write=function(e,t,r){r(new Error("not implemented"))},j.prototype._writev=null,j.prototype.end=function(e,t,r){var i=this._writableState;typeof e=="function"?(r=e,e=null,t=null):typeof t=="function"&&(r=t,t=null),e!=null&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),!i.ending&&!i.finished&&Sf(this,i,r)};function vn(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function mn(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function bn(e,t){var r=vn(t);return r&&(t.pendingcb===0?(mn(e,t),t.finished=!0,e.emit("finish")):mn(e,t)),r}function Sf(e,t,r){t.ending=!0,bn(e,t),r&&(t.finished?W(r):e.once("finish",r)),t.ended=!0,e.writable=!1}function yn(e){var t=this;this.next=null,this.entry=null,this.finish=function(r){var i=t.entry;for(t.entry=null;i;){var n=i.callback;e.pendingcb--,n(r),i=i.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}Z(q,F);for(var xn=Object.keys(j.prototype),Tr=0;Tr<xn.length;Tr++){var Lr=xn[Tr];q.prototype[Lr]||(q.prototype[Lr]=j.prototype[Lr])}function q(e){if(!(this instanceof q))return new q(e);F.call(this,e),j.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",Rf)}function Rf(){this.allowHalfOpen||this._writableState.ended||W(Af,this)}function Af(e){e.end()}Z(G,q);function Tf(e){this.afterTransform=function(t,r){return Lf(e,t,r)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function Lf(e,t,r){var i=e._transformState;i.transforming=!1;var n=i.writecb;if(!n)return e.emit("error",new Error("no writecb in Transform class"));i.writechunk=null,i.writecb=null,r!=null&&e.push(r),n(t);var a=e._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&e._read(a.highWaterMark)}function G(e){if(!(this instanceof G))return new G(e);q.call(this,e),this._transformState=new Tf(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.once("prefinish",function(){typeof this._flush=="function"?this._flush(function(r){En(t,r)}):En(t)})}G.prototype.push=function(e,t){return this._transformState.needTransform=!1,q.prototype.push.call(this,e,t)},G.prototype._transform=function(e,t,r){throw new Error("Not implemented")},G.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}},G.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};function En(e,t){if(t)return e.emit("error",t);var r=e._writableState,i=e._transformState;if(r.length)throw new Error("Calling transform done when ws.length != 0");if(i.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}Z(st,G);function st(e){if(!(this instanceof st))return new st(e);G.call(this,e)}st.prototype._transform=function(e,t,r){r(null,e)},Z(se,b),se.Readable=F,se.Writable=j,se.Duplex=q,se.Transform=G,se.PassThrough=st,se.Stream=se;function se(){b.call(this)}se.prototype.pipe=function(e,t){var r=this;function i(l){e.writable&&e.write(l)===!1&&r.pause&&r.pause()}r.on("data",i);function n(){r.readable&&r.resume&&r.resume()}e.on("drain",n),!e._isStdio&&(!t||t.end!==!1)&&(r.on("end",o),r.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function h(l){if(f(),b.listenerCount(this,"error")===0)throw l}r.on("error",h),e.on("error",h);function f(){r.removeListener("data",i),e.removeListener("drain",n),r.removeListener("end",o),r.removeListener("close",s),r.removeListener("error",h),e.removeListener("error",h),r.removeListener("end",f),r.removeListener("close",f),e.removeListener("close",f)}return r.on("end",f),r.on("close",f),e.on("close",f),e.emit("pipe",r),e};var kn={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"};function Of(){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}function fe(e,t,r,i,n){if(t.subarray&&e.subarray){e.set(t.subarray(r,r+i),n);return}for(var a=0;a<i;a++)e[n+a]=t[r+a]}var Ut=Uint8Array,V=Uint16Array,Bt=Int32Array,Cf=4,Sn=0,Rn=1,If=2;function Ge(e){for(var t=e.length;--t>=0;)e[t]=0}var Mf=0,An=1,Ff=2,Df=3,Nf=258,Or=29,ft=256,lt=ft+1+Or,Ve=30,Cr=19,Tn=2*lt+1,Ce=15,Ir=16,zf=7,Mr=256,Ln=16,On=17,Cn=18,Fr=[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],Zt=[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],Pf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],In=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Uf=512,le=new Array((lt+2)*2);Ge(le);var ht=new Array(Ve*2);Ge(ht);var ct=new Array(Uf);Ge(ct);var ut=new Array(Nf-Df+1);Ge(ut);var Dr=new Array(Or);Ge(Dr);var jt=new Array(Ve);Ge(jt);function Nr(e,t,r,i,n){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}var Mn,Fn,Dn;function zr(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Nn(e){return e<256?ct[e]:ct[256+(e>>>7)]}function dt(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function H(e,t,r){e.bi_valid>Ir-r?(e.bi_buf|=t<<e.bi_valid&65535,dt(e,e.bi_buf),e.bi_buf=t>>Ir-e.bi_valid,e.bi_valid+=r-Ir):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function te(e,t,r){H(e,r[t*2],r[t*2+1])}function zn(e,t){var r=0;do r|=e&1,e>>>=1,r<<=1;while(--t>0);return r>>>1}function Bf(e){e.bi_valid===16?(dt(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function Zf(e,t){var r=t.dyn_tree,i=t.max_code,n=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,h=t.stat_desc.max_length,f,l,d,p,u,g,S=0;for(p=0;p<=Ce;p++)e.bl_count[p]=0;for(r[e.heap[e.heap_max]*2+1]=0,f=e.heap_max+1;f<Tn;f++)l=e.heap[f],p=r[r[l*2+1]*2+1]+1,p>h&&(p=h,S++),r[l*2+1]=p,!(l>i)&&(e.bl_count[p]++,u=0,l>=s&&(u=o[l-s]),g=r[l*2],e.opt_len+=g*(p+u),a&&(e.static_len+=g*(n[l*2+1]+u)));if(S!==0){do{for(p=h-1;e.bl_count[p]===0;)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[h]--,S-=2}while(S>0);for(p=h;p!==0;p--)for(l=e.bl_count[p];l!==0;)d=e.heap[--f],!(d>i)&&(r[d*2+1]!==p&&(e.opt_len+=(p-r[d*2+1])*r[d*2],r[d*2+1]=p),l--)}}function Pn(e,t,r){var i=new Array(Ce+1),n=0,a,o;for(a=1;a<=Ce;a++)i[a]=n=n+r[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=zn(i[s]++,s))}}function jf(){var e,t,r,i,n,a=new Array(Ce+1);for(r=0,i=0;i<Or-1;i++)for(Dr[i]=r,e=0;e<1<<Fr[i];e++)ut[r++]=i;for(ut[r-1]=i,n=0,i=0;i<16;i++)for(jt[i]=n,e=0;e<1<<Zt[i];e++)ct[n++]=i;for(n>>=7;i<Ve;i++)for(jt[i]=n<<7,e=0;e<1<<Zt[i]-7;e++)ct[256+n++]=i;for(t=0;t<=Ce;t++)a[t]=0;for(e=0;e<=143;)le[e*2+1]=8,e++,a[8]++;for(;e<=255;)le[e*2+1]=9,e++,a[9]++;for(;e<=279;)le[e*2+1]=7,e++,a[7]++;for(;e<=287;)le[e*2+1]=8,e++,a[8]++;for(Pn(le,lt+1,a),e=0;e<Ve;e++)ht[e*2+1]=5,ht[e*2]=zn(e,5);Mn=new Nr(le,Fr,ft+1,lt,Ce),Fn=new Nr(ht,Zt,0,Ve,Ce),Dn=new Nr(new Array(0),Pf,0,Cr,zf)}function Un(e){var t;for(t=0;t<lt;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ve;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Cr;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Mr*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Bn(e){e.bi_valid>8?dt(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function $f(e,t,r,i){Bn(e),dt(e,r),dt(e,~r),fe(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}function Zn(e,t,r,i){var n=t*2,a=r*2;return e[n]<e[a]||e[n]===e[a]&&i[t]<=i[r]}function Pr(e,t,r){for(var i=e.heap[r],n=r<<1;n<=e.heap_len&&(n<e.heap_len&&Zn(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!Zn(t,i,e.heap[n],e.depth));)e.heap[r]=e.heap[n],r=n,n<<=1;e.heap[r]=i}function jn(e,t,r){var i,n,a=0,o,s;if(e.last_lit!==0)do i=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],n=e.pending_buf[e.l_buf+a],a++,i===0?te(e,n,t):(o=ut[n],te(e,o+ft+1,t),s=Fr[o],s!==0&&(n-=Dr[o],H(e,n,s)),i--,o=Nn(i),te(e,o,r),s=Zt[o],s!==0&&(i-=jt[o],H(e,i,s)));while(a<e.last_lit);te(e,Mr,t)}function Ur(e,t){var r=t.dyn_tree,i=t.stat_desc.static_tree,n=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,h=-1,f;for(e.heap_len=0,e.heap_max=Tn,o=0;o<a;o++)r[o*2]!==0?(e.heap[++e.heap_len]=h=o,e.depth[o]=0):r[o*2+1]=0;for(;e.heap_len<2;)f=e.heap[++e.heap_len]=h<2?++h:0,r[f*2]=1,e.depth[f]=0,e.opt_len--,n&&(e.static_len-=i[f*2+1]);for(t.max_code=h,o=e.heap_len>>1;o>=1;o--)Pr(e,r,o);f=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Pr(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,r[f*2]=r[o*2]+r[s*2],e.depth[f]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,r[o*2+1]=r[s*2+1]=f,e.heap[1]=f++,Pr(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Zf(e,t),Pn(r,h,e.bl_count)}function $n(e,t,r){var i,n=-1,a,o=t[0*2+1],s=0,h=7,f=4;for(o===0&&(h=138,f=3),t[(r+1)*2+1]=65535,i=0;i<=r;i++)a=o,o=t[(i+1)*2+1],!(++s<h&&a===o)&&(s<f?e.bl_tree[a*2]+=s:a!==0?(a!==n&&e.bl_tree[a*2]++,e.bl_tree[Ln*2]++):s<=10?e.bl_tree[On*2]++:e.bl_tree[Cn*2]++,s=0,n=a,o===0?(h=138,f=3):a===o?(h=6,f=3):(h=7,f=4))}function Hn(e,t,r){var i,n=-1,a,o=t[0*2+1],s=0,h=7,f=4;for(o===0&&(h=138,f=3),i=0;i<=r;i++)if(a=o,o=t[(i+1)*2+1],!(++s<h&&a===o)){if(s<f)do te(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==n&&(te(e,a,e.bl_tree),s--),te(e,Ln,e.bl_tree),H(e,s-3,2)):s<=10?(te(e,On,e.bl_tree),H(e,s-3,3)):(te(e,Cn,e.bl_tree),H(e,s-11,7));s=0,n=a,o===0?(h=138,f=3):a===o?(h=6,f=3):(h=7,f=4)}}function Hf(e){var t;for($n(e,e.dyn_ltree,e.l_desc.max_code),$n(e,e.dyn_dtree,e.d_desc.max_code),Ur(e,e.bl_desc),t=Cr-1;t>=3&&e.bl_tree[In[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function Kf(e,t,r,i){var n;for(H(e,t-257,5),H(e,r-1,5),H(e,i-4,4),n=0;n<i;n++)H(e,e.bl_tree[In[n]*2+1],3);Hn(e,e.dyn_ltree,t-1),Hn(e,e.dyn_dtree,r-1)}function Wf(e){var t=4093624447,r;for(r=0;r<=31;r++,t>>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return Sn;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Rn;for(r=32;r<ft;r++)if(e.dyn_ltree[r*2]!==0)return Rn;return Sn}var Kn=!1;function Yf(e){Kn||(jf(),Kn=!0),e.l_desc=new zr(e.dyn_ltree,Mn),e.d_desc=new zr(e.dyn_dtree,Fn),e.bl_desc=new zr(e.bl_tree,Dn),e.bi_buf=0,e.bi_valid=0,Un(e)}function Wn(e,t,r,i){H(e,(Mf<<1)+(i?1:0),3),$f(e,t,r)}function qf(e){H(e,An<<1,3),te(e,Mr,le),Bf(e)}function Gf(e,t,r,i){var n,a,o=0;e.level>0?(e.strm.data_type===If&&(e.strm.data_type=Wf(e)),Ur(e,e.l_desc),Ur(e,e.d_desc),o=Hf(e),n=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=n&&(n=a)):n=a=r+5,r+4<=n&&t!==-1?Wn(e,t,r,i):e.strategy===Cf||a===n?(H(e,(An<<1)+(i?1:0),3),jn(e,le,ht)):(H(e,(Ff<<1)+(i?1:0),3),Kf(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),jn(e,e.dyn_ltree,e.dyn_dtree)),Un(e),i&&Bn(e)}function ge(e,t,r){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=r&255,e.last_lit++,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(ut[r]+ft+1)*2]++,e.dyn_dtree[Nn(t)*2]++),e.last_lit===e.lit_bufsize-1}function Br(e,t,r,i){for(var n=e&65535|0,a=e>>>16&65535|0,o=0;r!==0;){o=r>2e3?2e3:r,r-=o;do n=n+t[i++]|0,a=a+n|0;while(--o);n%=65521,a%=65521}return n|a<<16|0}function Vf(){for(var e,t=[],r=0;r<256;r++){e=r;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t}var Xf=Vf();function U(e,t,r,i){var n=Xf,a=i+r;e^=-1;for(var o=i;o<a;o++)e=e>>>8^n[(e^t[o])&255];return e^-1}var Ie=0,Jf=1,Qf=3,ve=4,Yn=5,me=0,qn=1,be=-2,el=-3,Zr=-5,tl=-1,rl=1,$t=2,il=3,nl=4,al=2,jr=8,ol=9,sl=29,fl=256,$r=fl+1+sl,ll=30,hl=19,cl=2*$r+1,ul=15,T=3,ye=258,X=ye+T+1,dl=32,Hr=42,Kr=69,Ht=73,Kt=91,Wt=103,Me=113,pt=666,N=1,_t=2,Fe=3,Xe=4,pl=3;function xe(e,t){return e.msg=kn[t],t}function Gn(e){return(e<<1)-(e>4?9:0)}function De(e){for(var t=e.length;--t>=0;)e[t]=0}function Ee(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(fe(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))}function B(e,t){Gf(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ee(e.strm)}function R(e,t){e.pending_buf[e.pending++]=t}function wt(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function _l(e,t,r,i){var n=e.avail_in;return n>i&&(n=i),n===0?0:(e.avail_in-=n,fe(t,e.input,e.next_in,n,r),e.state.wrap===1?e.adler=Br(e.adler,t,n,r):e.state.wrap===2&&(e.adler=U(e.adler,t,n,r)),e.next_in+=n,e.total_in+=n,n)}function Vn(e,t){var r=e.max_chain_length,i=e.strstart,n,a,o=e.prev_length,s=e.nice_match,h=e.strstart>e.w_size-X?e.strstart-(e.w_size-X):0,f=e.window,l=e.w_mask,d=e.prev,p=e.strstart+ye,u=f[i+o-1],g=f[i+o];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do if(n=t,!(f[n+o]!==g||f[n+o-1]!==u||f[n]!==f[i]||f[++n]!==f[i+1])){i+=2,n++;do;while(f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&i<p);if(a=ye-(p-i),i=p-ye,a>o){if(e.match_start=t,o=a,a>=s)break;u=f[i+o-1],g=f[i+o]}}while((t=d[t&l])>h&&--r!==0);return o<=e.lookahead?o:e.lookahead}function gt(e){var t=e.w_size,r,i,n,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-X)){fe(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,i=e.hash_size,r=i;do n=e.head[--r],e.head[r]=n>=t?n-t:0;while(--i);i=t,r=i;do n=e.prev[--r],e.prev[r]=n>=t?n-t:0;while(--i);a+=t}if(e.strm.avail_in===0)break;if(i=_l(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=i,e.lookahead+e.insert>=T)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+T-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<T)););}while(e.lookahead<X&&e.strm.avail_in!==0)}function wl(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(gt(e),e.lookahead===0&&t===Ie)return N;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var i=e.block_start+r;if((e.strstart===0||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,B(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-X&&(B(e,!1),e.strm.avail_out===0))return N}return e.insert=0,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):(e.strstart>e.block_start&&(B(e,!1),e.strm.avail_out===0),N)}function Wr(e,t){for(var r,i;;){if(e.lookahead<X){if(gt(e),e.lookahead<X&&t===Ie)return N;if(e.lookahead===0)break}if(r=0,e.lookahead>=T&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+T-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),r!==0&&e.strstart-r<=e.w_size-X&&(e.match_length=Vn(e,r)),e.match_length>=T)if(i=ge(e,e.strstart-e.match_start,e.match_length-T),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=T){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+T-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else i=ge(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(B(e,!1),e.strm.avail_out===0))return N}return e.insert=e.strstart<T-1?e.strstart:T-1,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?N:_t}function Je(e,t){for(var r,i,n;;){if(e.lookahead<X){if(gt(e),e.lookahead<X&&t===Ie)return N;if(e.lookahead===0)break}if(r=0,e.lookahead>=T&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+T-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=T-1,r!==0&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-X&&(e.match_length=Vn(e,r),e.match_length<=5&&(e.strategy===rl||e.match_length===T&&e.strstart-e.match_start>4096)&&(e.match_length=T-1)),e.prev_length>=T&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-T,i=ge(e,e.strstart-1-e.prev_match,e.prev_length-T),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+T-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=T-1,e.strstart++,i&&(B(e,!1),e.strm.avail_out===0))return N}else if(e.match_available){if(i=ge(e,0,e.window[e.strstart-1]),i&&B(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return N}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=ge(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<T-1?e.strstart:T-1,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?N:_t}function gl(e,t){for(var r,i,n,a,o=e.window;;){if(e.lookahead<=ye){if(gt(e),e.lookahead<=ye&&t===Ie)return N;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=T&&e.strstart>0&&(n=e.strstart-1,i=o[n],i===o[++n]&&i===o[++n]&&i===o[++n])){a=e.strstart+ye;do;while(i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&n<a);e.match_length=ye-(a-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=T?(r=ge(e,1,e.match_length-T),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=ge(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(B(e,!1),e.strm.avail_out===0))return N}return e.insert=0,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?N:_t}function vl(e,t){for(var r;;){if(e.lookahead===0&&(gt(e),e.lookahead===0)){if(t===Ie)return N;break}if(e.match_length=0,r=ge(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(B(e,!1),e.strm.avail_out===0))return N}return e.insert=0,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?N:_t}function re(e,t,r,i,n){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=i,this.func=n}var Qe;Qe=[new re(0,0,0,0,wl),new re(4,4,8,4,Wr),new re(4,5,16,8,Wr),new re(4,6,32,32,Wr),new re(4,4,16,16,Je),new re(8,16,32,32,Je),new re(8,16,128,128,Je),new re(8,32,128,256,Je),new re(32,128,258,1024,Je),new re(32,258,258,4096,Je)];function ml(e){e.window_size=2*e.w_size,De(e.head),e.max_lazy_match=Qe[e.level].max_lazy,e.good_match=Qe[e.level].good_length,e.nice_match=Qe[e.level].nice_length,e.max_chain_length=Qe[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=T-1,e.match_available=0,e.ins_h=0}function bl(){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=jr,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 V(cl*2),this.dyn_dtree=new V((2*ll+1)*2),this.bl_tree=new V((2*hl+1)*2),De(this.dyn_ltree),De(this.dyn_dtree),De(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new V(ul+1),this.heap=new V(2*$r+1),De(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new V(2*$r+1),De(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function yl(e){var t;return!e||!e.state?xe(e,be):(e.total_in=e.total_out=0,e.data_type=al,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Hr:Me,e.adler=t.wrap===2?0:1,t.last_flush=Ie,Yf(t),me)}function Xn(e){var t=yl(e);return t===me&&ml(e.state),t}function xl(e,t,r,i,n,a){if(!e)return be;var o=1;if(t===tl&&(t=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),n<1||n>ol||r!==jr||i<8||i>15||t<0||t>9||a<0||a>nl)return xe(e,be);i===8&&(i=9);var s=new bl;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=i,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=n+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+T-1)/T),s.window=new Ut(s.w_size*2),s.head=new V(s.hash_size),s.prev=new V(s.w_size),s.lit_bufsize=1<<n+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Ut(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=a,s.method=r,Xn(e)}function El(e,t){var r,i,n,a;if(!e||!e.state||t>Yn||t<0)return e?xe(e,be):be;if(i=e.state,!e.output||!e.input&&e.avail_in!==0||i.status===pt&&t!==ve)return xe(e,e.avail_out===0?Zr:be);if(i.strm=e,r=i.last_flush,i.last_flush=t,i.status===Hr)if(i.wrap===2)e.adler=0,R(i,31),R(i,139),R(i,8),i.gzhead?(R(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),R(i,i.gzhead.time&255),R(i,i.gzhead.time>>8&255),R(i,i.gzhead.time>>16&255),R(i,i.gzhead.time>>24&255),R(i,i.level===9?2:i.strategy>=$t||i.level<2?4:0),R(i,i.gzhead.os&255),i.gzhead.extra&&i.gzhead.extra.length&&(R(i,i.gzhead.extra.length&255),R(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=U(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=Kr):(R(i,0),R(i,0),R(i,0),R(i,0),R(i,0),R(i,i.level===9?2:i.strategy>=$t||i.level<2?4:0),R(i,pl),i.status=Me);else{var o=jr+(i.w_bits-8<<4)<<8,s=-1;i.strategy>=$t||i.level<2?s=0:i.level<6?s=1:i.level===6?s=2:s=3,o|=s<<6,i.strstart!==0&&(o|=dl),o+=31-o%31,i.status=Me,wt(i,o),i.strstart!==0&&(wt(i,e.adler>>>16),wt(i,e.adler&65535)),e.adler=1}if(i.status===Kr)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(i.gzhead.extra.length&65535)&&!(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),Ee(e),n=i.pending,i.pending===i.pending_buf_size));)R(i,i.gzhead.extra[i.gzindex]&255),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=Ht)}else i.status=Ht;if(i.status===Ht)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),Ee(e),n=i.pending,i.pending===i.pending_buf_size)){a=1;break}i.gzindex<i.gzhead.name.length?a=i.gzhead.name.charCodeAt(i.gzindex++)&255:a=0,R(i,a)}while(a!==0);i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),a===0&&(i.gzindex=0,i.status=Kt)}else i.status=Kt;if(i.status===Kt)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),Ee(e),n=i.pending,i.pending===i.pending_buf_size)){a=1;break}i.gzindex<i.gzhead.comment.length?a=i.gzhead.comment.charCodeAt(i.gzindex++)&255:a=0,R(i,a)}while(a!==0);i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),a===0&&(i.status=Wt)}else i.status=Wt;if(i.status===Wt&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&Ee(e),i.pending+2<=i.pending_buf_size&&(R(i,e.adler&255),R(i,e.adler>>8&255),e.adler=0,i.status=Me)):i.status=Me),i.pending!==0){if(Ee(e),e.avail_out===0)return i.last_flush=-1,me}else if(e.avail_in===0&&Gn(t)<=Gn(r)&&t!==ve)return xe(e,Zr);if(i.status===pt&&e.avail_in!==0)return xe(e,Zr);if(e.avail_in!==0||i.lookahead!==0||t!==Ie&&i.status!==pt){var h=i.strategy===$t?vl(i,t):i.strategy===il?gl(i,t):Qe[i.level].func(i,t);if((h===Fe||h===Xe)&&(i.status=pt),h===N||h===Fe)return e.avail_out===0&&(i.last_flush=-1),me;if(h===_t&&(t===Jf?qf(i):t!==Yn&&(Wn(i,0,0,!1),t===Qf&&(De(i.head),i.lookahead===0&&(i.strstart=0,i.block_start=0,i.insert=0))),Ee(e),e.avail_out===0))return i.last_flush=-1,me}return t!==ve?me:i.wrap<=0?qn:(i.wrap===2?(R(i,e.adler&255),R(i,e.adler>>8&255),R(i,e.adler>>16&255),R(i,e.adler>>24&255),R(i,e.total_in&255),R(i,e.total_in>>8&255),R(i,e.total_in>>16&255),R(i,e.total_in>>24&255)):(wt(i,e.adler>>>16),wt(i,e.adler&65535)),Ee(e),i.wrap>0&&(i.wrap=-i.wrap),i.pending!==0?me:qn)}function kl(e){var t;return!e||!e.state?be:(t=e.state.status,t!==Hr&&t!==Kr&&t!==Ht&&t!==Kt&&t!==Wt&&t!==Me&&t!==pt?xe(e,be):(e.state=null,t===Me?xe(e,el):me))}var Yt=30,Sl=12;function Rl(e,t){var r,i,n,a,o,s,h,f,l,d,p,u,g,S,y,v,k,E,_,A,z,m,C,L,x;r=e.state,i=e.next_in,L=e.input,n=i+(e.avail_in-5),a=e.next_out,x=e.output,o=a-(t-e.avail_out),s=a+(e.avail_out-257),h=r.dmax,f=r.wsize,l=r.whave,d=r.wnext,p=r.window,u=r.hold,g=r.bits,S=r.lencode,y=r.distcode,v=(1<<r.lenbits)-1,k=(1<<r.distbits)-1;e:do{g<15&&(u+=L[i++]<<g,g+=8,u+=L[i++]<<g,g+=8),E=S[u&v];t:for(;;){if(_=E>>>24,u>>>=_,g-=_,_=E>>>16&255,_===0)x[a++]=E&65535;else if(_&16){A=E&65535,_&=15,_&&(g<_&&(u+=L[i++]<<g,g+=8),A+=u&(1<<_)-1,u>>>=_,g-=_),g<15&&(u+=L[i++]<<g,g+=8,u+=L[i++]<<g,g+=8),E=y[u&k];r:for(;;){if(_=E>>>24,u>>>=_,g-=_,_=E>>>16&255,_&16){if(z=E&65535,_&=15,g<_&&(u+=L[i++]<<g,g+=8,g<_&&(u+=L[i++]<<g,g+=8)),z+=u&(1<<_)-1,z>h){e.msg="invalid distance too far back",r.mode=Yt;break e}if(u>>>=_,g-=_,_=a-o,z>_){if(_=z-_,_>l&&r.sane){e.msg="invalid distance too far back",r.mode=Yt;break e}if(m=0,C=p,d===0){if(m+=f-_,_<A){A-=_;do x[a++]=p[m++];while(--_);m=a-z,C=x}}else if(d<_){if(m+=f+d-_,_-=d,_<A){A-=_;do x[a++]=p[m++];while(--_);if(m=0,d<A){_=d,A-=_;do x[a++]=p[m++];while(--_);m=a-z,C=x}}}else if(m+=d-_,_<A){A-=_;do x[a++]=p[m++];while(--_);m=a-z,C=x}for(;A>2;)x[a++]=C[m++],x[a++]=C[m++],x[a++]=C[m++],A-=3;A&&(x[a++]=C[m++],A>1&&(x[a++]=C[m++]))}else{m=a-z;do x[a++]=x[m++],x[a++]=x[m++],x[a++]=x[m++],A-=3;while(A>2);A&&(x[a++]=x[m++],A>1&&(x[a++]=x[m++]))}}else if(_&64){e.msg="invalid distance code",r.mode=Yt;break e}else{E=y[(E&65535)+(u&(1<<_)-1)];continue r}break}}else if(_&64)if(_&32){r.mode=Sl;break e}else{e.msg="invalid literal/length code",r.mode=Yt;break e}else{E=S[(E&65535)+(u&(1<<_)-1)];continue t}break}}while(i<n&&a<s);A=g>>3,i-=A,g-=A<<3,u&=(1<<g)-1,e.next_in=i,e.next_out=a,e.avail_in=i<n?5+(n-i):5-(i-n),e.avail_out=a<s?257+(s-a):257-(a-s),r.hold=u,r.bits=g}var et=15,Jn=852,Qn=592,ea=0,Yr=1,ta=2,Al=[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],Tl=[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],Ll=[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],Ol=[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];function vt(e,t,r,i,n,a,o,s){var h=s.bits,f=0,l=0,d=0,p=0,u=0,g=0,S=0,y=0,v=0,k=0,E,_,A,z,m,C=null,L=0,x,D=new V(et+1),Se=new V(et+1),kt=null,ri=0,ii,St,Rt;for(f=0;f<=et;f++)D[f]=0;for(l=0;l<i;l++)D[t[r+l]]++;for(u=h,p=et;p>=1&&D[p]===0;p--);if(u>p&&(u=p),p===0)return n[a++]=1<<24|64<<16|0,n[a++]=1<<24|64<<16|0,s.bits=1,0;for(d=1;d<p&&D[d]===0;d++);for(u<d&&(u=d),y=1,f=1;f<=et;f++)if(y<<=1,y-=D[f],y<0)return-1;if(y>0&&(e===ea||p!==1))return-1;for(Se[1]=0,f=1;f<et;f++)Se[f+1]=Se[f]+D[f];for(l=0;l<i;l++)t[r+l]!==0&&(o[Se[t[r+l]]++]=l);if(e===ea?(C=kt=o,x=19):e===Yr?(C=Al,L-=257,kt=Tl,ri-=257,x=256):(C=Ll,kt=Ol,x=-1),k=0,l=0,f=d,m=a,g=u,S=0,A=-1,v=1<<u,z=v-1,e===Yr&&v>Jn||e===ta&&v>Qn)return 1;for(;;){ii=f-S,o[l]<x?(St=0,Rt=o[l]):o[l]>x?(St=kt[ri+o[l]],Rt=C[L+o[l]]):(St=96,Rt=0),E=1<<f-S,_=1<<g,d=_;do _-=E,n[m+(k>>S)+_]=ii<<24|St<<16|Rt|0;while(_!==0);for(E=1<<f-1;k&E;)E>>=1;if(E!==0?(k&=E-1,k+=E):k=0,l++,--D[f]===0){if(f===p)break;f=t[r+o[l]]}if(f>u&&(k&z)!==A){for(S===0&&(S=u),m+=d,g=f-S,y=1<<g;g+S<p&&(y-=D[g+S],!(y<=0));)g++,y<<=1;if(v+=1<<g,e===Yr&&v>Jn||e===ta&&v>Qn)return 1;A=k&z,n[A]=u<<24|g<<16|m-a|0}}return k!==0&&(n[m+k]=f-S<<24|64<<16|0),s.bits=u,0}var Cl=0,ra=1,ia=2,na=4,Il=5,qt=6,mt=0,Ml=1,Fl=2,ke=-2,Dl=-3,Nl=-4,zl=-5,aa=8,oa=1,sa=2,fa=3,la=4,ha=5,ca=6,ua=7,da=8,pa=9,_a=10,wa=11,he=12,qr=13,ga=14,Gr=15,va=16,ma=17,ba=18,ya=19,Gt=20,Vt=21,xa=22,Ea=23,ka=24,Sa=25,Ra=26,Vr=27,Aa=28,Ta=29,I=30,Pl=31,Ul=32,Bl=852,Zl=592;function La(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function jl(){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 V(320),this.work=new V(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function $l(e){var t;return!e||!e.state?ke:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=oa,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Bt(Bl),t.distcode=t.distdyn=new Bt(Zl),t.sane=1,t.back=-1,mt)}function Oa(e){var t;return!e||!e.state?ke:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,$l(e))}function Hl(e,t){var r,i;return!e||!e.state||(i=e.state,t<0?(r=0,t=-t):(r=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?ke:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=r,i.wbits=t,Oa(e))}function Kl(e,t){var r,i;return e?(i=new jl,e.state=i,i.window=null,r=Hl(e,t),r!==mt&&(e.state=null),r):ke}var Ca=!0,Xr,Jr;function Wl(e){if(Ca){var t;for(Xr=new Bt(512),Jr=new Bt(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(vt(ra,e.lens,0,288,Xr,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;vt(ia,e.lens,0,32,Jr,0,e.work,{bits:5}),Ca=!1}e.lencode=Xr,e.lenbits=9,e.distcode=Jr,e.distbits=5}function Yl(e,t,r,i){var n,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Ut(a.wsize)),i>=a.wsize?(fe(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(n=a.wsize-a.wnext,n>i&&(n=i),fe(a.window,t,r-i,n,a.wnext),i-=n,i?(fe(a.window,t,r-i,i,0),a.wnext=i,a.whave=a.wsize):(a.wnext+=n,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=n))),0}function ql(e,t){var r,i,n,a,o,s,h,f,l,d,p,u,g,S,y=0,v,k,E,_,A,z,m,C,L=new Ut(4),x,D,Se=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return ke;r=e.state,r.mode===he&&(r.mode=qr),o=e.next_out,n=e.output,h=e.avail_out,a=e.next_in,i=e.input,s=e.avail_in,f=r.hold,l=r.bits,d=s,p=h,C=mt;e:for(;;)switch(r.mode){case oa:if(r.wrap===0){r.mode=qr;break}for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(r.wrap&2&&f===35615){r.check=0,L[0]=f&255,L[1]=f>>>8&255,r.check=U(r.check,L,2,0),f=0,l=0,r.mode=sa;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((f&255)<<8)+(f>>8))%31){e.msg="incorrect header check",r.mode=I;break}if((f&15)!==aa){e.msg="unknown compression method",r.mode=I;break}if(f>>>=4,l-=4,m=(f&15)+8,r.wbits===0)r.wbits=m;else if(m>r.wbits){e.msg="invalid window size",r.mode=I;break}r.dmax=1<<m,e.adler=r.check=1,r.mode=f&512?_a:he,f=0,l=0;break;case sa:for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(r.flags=f,(r.flags&255)!==aa){e.msg="unknown compression method",r.mode=I;break}if(r.flags&57344){e.msg="unknown header flags set",r.mode=I;break}r.head&&(r.head.text=f>>8&1),r.flags&512&&(L[0]=f&255,L[1]=f>>>8&255,r.check=U(r.check,L,2,0)),f=0,l=0,r.mode=fa;case fa:for(;l<32;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.head&&(r.head.time=f),r.flags&512&&(L[0]=f&255,L[1]=f>>>8&255,L[2]=f>>>16&255,L[3]=f>>>24&255,r.check=U(r.check,L,4,0)),f=0,l=0,r.mode=la;case la:for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.head&&(r.head.xflags=f&255,r.head.os=f>>8),r.flags&512&&(L[0]=f&255,L[1]=f>>>8&255,r.check=U(r.check,L,2,0)),f=0,l=0,r.mode=ha;case ha:if(r.flags&1024){for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.length=f,r.head&&(r.head.extra_len=f),r.flags&512&&(L[0]=f&255,L[1]=f>>>8&255,r.check=U(r.check,L,2,0)),f=0,l=0}else r.head&&(r.head.extra=null);r.mode=ca;case ca:if(r.flags&1024&&(u=r.length,u>s&&(u=s),u&&(r.head&&(m=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),fe(r.head.extra,i,a,u,m)),r.flags&512&&(r.check=U(r.check,i,u,a)),s-=u,a+=u,r.length-=u),r.length))break e;r.length=0,r.mode=ua;case ua:if(r.flags&2048){if(s===0)break e;u=0;do m=i[a+u++],r.head&&m&&r.length<65536&&(r.head.name+=String.fromCharCode(m));while(m&&u<s);if(r.flags&512&&(r.check=U(r.check,i,u,a)),s-=u,a+=u,m)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=da;case da:if(r.flags&4096){if(s===0)break e;u=0;do m=i[a+u++],r.head&&m&&r.length<65536&&(r.head.comment+=String.fromCharCode(m));while(m&&u<s);if(r.flags&512&&(r.check=U(r.check,i,u,a)),s-=u,a+=u,m)break e}else r.head&&(r.head.comment=null);r.mode=pa;case pa:if(r.flags&512){for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(f!==(r.check&65535)){e.msg="header crc mismatch",r.mode=I;break}f=0,l=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=he;break;case _a:for(;l<32;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}e.adler=r.check=La(f),f=0,l=0,r.mode=wa;case wa:if(r.havedict===0)return e.next_out=o,e.avail_out=h,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,Fl;e.adler=r.check=1,r.mode=he;case he:if(t===Il||t===qt)break e;case qr:if(r.last){f>>>=l&7,l-=l&7,r.mode=Vr;break}for(;l<3;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}switch(r.last=f&1,f>>>=1,l-=1,f&3){case 0:r.mode=ga;break;case 1:if(Wl(r),r.mode=Gt,t===qt){f>>>=2,l-=2;break e}break;case 2:r.mode=ma;break;case 3:e.msg="invalid block type",r.mode=I}f>>>=2,l-=2;break;case ga:for(f>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if((f&65535)!==(f>>>16^65535)){e.msg="invalid stored block lengths",r.mode=I;break}if(r.length=f&65535,f=0,l=0,r.mode=Gr,t===qt)break e;case Gr:r.mode=va;case va:if(u=r.length,u){if(u>s&&(u=s),u>h&&(u=h),u===0)break e;fe(n,i,a,u,o),s-=u,a+=u,h-=u,o+=u,r.length-=u;break}r.mode=he;break;case ma:for(;l<14;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(r.nlen=(f&31)+257,f>>>=5,l-=5,r.ndist=(f&31)+1,f>>>=5,l-=5,r.ncode=(f&15)+4,f>>>=4,l-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=I;break}r.have=0,r.mode=ba;case ba:for(;r.have<r.ncode;){for(;l<3;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.lens[Se[r.have++]]=f&7,f>>>=3,l-=3}for(;r.have<19;)r.lens[Se[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,x={bits:r.lenbits},C=vt(Cl,r.lens,0,19,r.lencode,0,r.work,x),r.lenbits=x.bits,C){e.msg="invalid code lengths set",r.mode=I;break}r.have=0,r.mode=ya;case ya:for(;r.have<r.nlen+r.ndist;){for(;y=r.lencode[f&(1<<r.lenbits)-1],v=y>>>24,k=y>>>16&255,E=y&65535,!(v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(E<16)f>>>=v,l-=v,r.lens[r.have++]=E;else{if(E===16){for(D=v+2;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(f>>>=v,l-=v,r.have===0){e.msg="invalid bit length repeat",r.mode=I;break}m=r.lens[r.have-1],u=3+(f&3),f>>>=2,l-=2}else if(E===17){for(D=v+3;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}f>>>=v,l-=v,m=0,u=3+(f&7),f>>>=3,l-=3}else{for(D=v+7;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}f>>>=v,l-=v,m=0,u=11+(f&127),f>>>=7,l-=7}if(r.have+u>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=I;break}for(;u--;)r.lens[r.have++]=m}}if(r.mode===I)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=I;break}if(r.lenbits=9,x={bits:r.lenbits},C=vt(ra,r.lens,0,r.nlen,r.lencode,0,r.work,x),r.lenbits=x.bits,C){e.msg="invalid literal/lengths set",r.mode=I;break}if(r.distbits=6,r.distcode=r.distdyn,x={bits:r.distbits},C=vt(ia,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,x),r.distbits=x.bits,C){e.msg="invalid distances set",r.mode=I;break}if(r.mode=Gt,t===qt)break e;case Gt:r.mode=Vt;case Vt:if(s>=6&&h>=258){e.next_out=o,e.avail_out=h,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,Rl(e,p),o=e.next_out,n=e.output,h=e.avail_out,a=e.next_in,i=e.input,s=e.avail_in,f=r.hold,l=r.bits,r.mode===he&&(r.back=-1);break}for(r.back=0;y=r.lencode[f&(1<<r.lenbits)-1],v=y>>>24,k=y>>>16&255,E=y&65535,!(v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(k&&!(k&240)){for(_=v,A=k,z=E;y=r.lencode[z+((f&(1<<_+A)-1)>>_)],v=y>>>24,k=y>>>16&255,E=y&65535,!(_+v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}f>>>=_,l-=_,r.back+=_}if(f>>>=v,l-=v,r.back+=v,r.length=E,k===0){r.mode=Ra;break}if(k&32){r.back=-1,r.mode=he;break}if(k&64){e.msg="invalid literal/length code",r.mode=I;break}r.extra=k&15,r.mode=xa;case xa:if(r.extra){for(D=r.extra;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.length+=f&(1<<r.extra)-1,f>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=Ea;case Ea:for(;y=r.distcode[f&(1<<r.distbits)-1],v=y>>>24,k=y>>>16&255,E=y&65535,!(v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(!(k&240)){for(_=v,A=k,z=E;y=r.distcode[z+((f&(1<<_+A)-1)>>_)],v=y>>>24,k=y>>>16&255,E=y&65535,!(_+v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}f>>>=_,l-=_,r.back+=_}if(f>>>=v,l-=v,r.back+=v,k&64){e.msg="invalid distance code",r.mode=I;break}r.offset=E,r.extra=k&15,r.mode=ka;case ka:if(r.extra){for(D=r.extra;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.offset+=f&(1<<r.extra)-1,f>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=I;break}r.mode=Sa;case Sa:if(h===0)break e;if(u=p-h,r.offset>u){if(u=r.offset-u,u>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=I;break}u>r.wnext?(u-=r.wnext,g=r.wsize-u):g=r.wnext-u,u>r.length&&(u=r.length),S=r.window}else S=n,g=o-r.offset,u=r.length;u>h&&(u=h),h-=u,r.length-=u;do n[o++]=S[g++];while(--u);r.length===0&&(r.mode=Vt);break;case Ra:if(h===0)break e;n[o++]=r.length,h--,r.mode=Vt;break;case Vr:if(r.wrap){for(;l<32;){if(s===0)break e;s--,f|=i[a++]<<l,l+=8}if(p-=h,e.total_out+=p,r.total+=p,p&&(e.adler=r.check=r.flags?U(r.check,n,p,o-p):Br(r.check,n,p,o-p)),p=h,(r.flags?f:La(f))!==r.check){e.msg="incorrect data check",r.mode=I;break}f=0,l=0}r.mode=Aa;case Aa:if(r.wrap&&r.flags){for(;l<32;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(f!==(r.total&4294967295)){e.msg="incorrect length check",r.mode=I;break}f=0,l=0}r.mode=Ta;case Ta:C=Ml;break e;case I:C=Dl;break e;case Pl:return Nl;case Ul:default:return ke}return e.next_out=o,e.avail_out=h,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,(r.wsize||p!==e.avail_out&&r.mode<I&&(r.mode<Vr||t!==na))&&Yl(e,e.output,e.next_out,p-e.avail_out),d-=e.avail_in,p-=e.avail_out,e.total_in+=d,e.total_out+=p,r.total+=p,r.wrap&&p&&(e.adler=r.check=r.flags?U(r.check,n,p,e.next_out-p):Br(r.check,n,p,e.next_out-p)),e.data_type=r.bits+(r.last?64:0)+(r.mode===he?128:0)+(r.mode===Gt||r.mode===Gr?256:0),(d===0&&p===0||t===na)&&C===mt&&(C=zl),C}function Gl(e){if(!e||!e.state)return ke;var t=e.state;return t.window&&(t.window=null),e.state=null,mt}var Qr=0,tt=1,Xt=2,bt=3,Jt=4,rt=5,yt=6,xt=7,Ia=0,Ma=1,Fa=2,Da=3,ei=4,Na=5,Vl=6,Qt=0,za=1,Pa=2,Xl=-1,Jl=-2,Ql=-3,Ua=-5,eh=0,th=1,rh=9,ih=-1,nh=1,ah=2,oh=3,sh=4,fh=0,lh=0,hh=1,ch=2,Ba=8;function J(e){if(e<tt||e>xt)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}J.prototype.init=function(e,t,r,i,n){this.windowBits=e,this.level=t,this.memLevel=r,this.strategy=i,(this.mode===bt||this.mode===Jt)&&(this.windowBits+=16),this.mode===xt&&(this.windowBits+=32),(this.mode===rt||this.mode===yt)&&(this.windowBits=-this.windowBits),this.strm=new Of;var a;switch(this.mode){case tt:case bt:case rt:a=xl(this.strm,this.level,Ba,this.windowBits,this.memLevel,this.strategy);break;case Xt:case Jt:case yt:case xt:a=Kl(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}if(a!==Qt){this._error(a);return}this.write_in_progress=!1,this.init_done=!0},J.prototype.params=function(){throw new Error("deflateParams Not supported")},J.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===Qr)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")},J.prototype.write=function(e,t,r,i,n,a,o){this._writeCheck(),this.write_in_progress=!0;var s=this;return oe.nextTick(function(){s.write_in_progress=!1;var h=s._write(e,t,r,i,n,a,o);s.callback(h[0],h[1]),s.pending_close&&s.close()}),this};function uh(e,t){for(var r=0;r<e.length;r++)this[t+r]=e[r]}J.prototype.writeSync=function(e,t,r,i,n,a,o){return this._writeCheck(),this._write(e,t,r,i,n,a,o)},J.prototype._write=function(e,t,r,i,n,a,o){if(this.write_in_progress=!0,e!==Ia&&e!==Ma&&e!==Fa&&e!==Da&&e!==ei&&e!==Na)throw new Error("Invalid flush value");t==null&&(t=new c(0),i=0,r=0),n._set?n.set=n._set:n.set=uh;var s=this.strm;s.avail_in=i,s.input=t,s.next_in=r,s.avail_out=o,s.output=n,s.next_out=a;var h;switch(this.mode){case tt:case bt:case rt:h=El(s,e);break;case xt:case Xt:case Jt:case yt:h=ql(s,e);break;default:throw new Error("Unknown mode "+this.mode)}return this._checkError(h,s,e)||this._error(h),this.write_in_progress=!1,[s.avail_in,s.avail_out]},J.prototype._checkError=function(e,t,r){switch(e){case Qt:case Ua:if(t.avail_out!==0&&r===ei)return!1;break;case za:break;case Pa:return!1;default:return!1}return!0},J.prototype.close=function(){if(this.write_in_progress){this.pending_close=!0;return}this.pending_close=!1,this.mode===tt||this.mode===bt||this.mode===rt?kl(this.strm):Gl(this.strm),this.mode=Qr};var er;J.prototype.reset=function(){switch(this.mode){case tt:case rt:er=Xn(this.strm);break;case Xt:case yt:er=Oa(this.strm);break}er!==Qt&&this._error(er)},J.prototype._error=function(e){this.onerror(kn[e]+": "+this.strm.msg,e),this.write_in_progress=!1,this.pending_close&&this.close()};var Za=Object.freeze({__proto__:null,DEFLATE:tt,DEFLATERAW:rt,GUNZIP:Jt,GZIP:bt,INFLATE:Xt,INFLATERAW:yt,NONE:Qr,UNZIP:xt,Z_BEST_COMPRESSION:rh,Z_BEST_SPEED:th,Z_BINARY:lh,Z_BLOCK:Na,Z_BUF_ERROR:Ua,Z_DATA_ERROR:Ql,Z_DEFAULT_COMPRESSION:ih,Z_DEFAULT_STRATEGY:fh,Z_DEFLATED:Ba,Z_ERRNO:Xl,Z_FILTERED:nh,Z_FINISH:ei,Z_FIXED:sh,Z_FULL_FLUSH:Da,Z_HUFFMAN_ONLY:ah,Z_NEED_DICT:Pa,Z_NO_COMPRESSION:eh,Z_NO_FLUSH:Ia,Z_OK:Qt,Z_PARTIAL_FLUSH:Ma,Z_RLE:oh,Z_STREAM_END:za,Z_STREAM_ERROR:Jl,Z_SYNC_FLUSH:Fa,Z_TEXT:hh,Z_TREES:Vl,Z_UNKNOWN:ch,Zlib:J});function dh(e,t){if(!e)throw new Error(t)}var w={};Object.keys(Za).forEach(function(e){w[e]=Za[e]}),w.Z_MIN_WINDOWBITS=8,w.Z_MAX_WINDOWBITS=15,w.Z_DEFAULT_WINDOWBITS=15,w.Z_MIN_CHUNK=64,w.Z_MAX_CHUNK=1/0,w.Z_DEFAULT_CHUNK=16*1024,w.Z_MIN_MEMLEVEL=1,w.Z_MAX_MEMLEVEL=9,w.Z_DEFAULT_MEMLEVEL=8,w.Z_MIN_LEVEL=-1,w.Z_MAX_LEVEL=9,w.Z_DEFAULT_LEVEL=w.Z_DEFAULT_COMPRESSION;var Et={Z_OK:w.Z_OK,Z_STREAM_END:w.Z_STREAM_END,Z_NEED_DICT:w.Z_NEED_DICT,Z_ERRNO:w.Z_ERRNO,Z_STREAM_ERROR:w.Z_STREAM_ERROR,Z_DATA_ERROR:w.Z_DATA_ERROR,Z_MEM_ERROR:w.Z_MEM_ERROR,Z_BUF_ERROR:w.Z_BUF_ERROR,Z_VERSION_ERROR:w.Z_VERSION_ERROR};Object.keys(Et).forEach(function(e){Et[Et[e]]=e});function ph(e){return new Pe(e)}function _h(e){return new Ue(e)}function wh(e){return new je(e)}function gh(e){return new $e(e)}function vh(e){return new Be(e)}function mh(e){return new Ze(e)}function bh(e){return new He(e)}function yh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new Pe(t),e,r)}function xh(e,t){return ze(new Pe(t),e)}function Eh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new Be(t),e,r)}function kh(e,t){return ze(new Be(t),e)}function Sh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new je(t),e,r)}function Rh(e,t){return ze(new je(t),e)}function Ah(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new He(t),e,r)}function Th(e,t){return ze(new He(t),e)}function Lh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new Ue(t),e,r)}function Oh(e,t){return ze(new Ue(t),e)}function Ch(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new Ze(t),e,r)}function Ih(e,t){return ze(new Ze(t),e)}function Mh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new $e(t),e,r)}function Fh(e,t){return ze(new $e(t),e)}function Ne(e,t,r){var i=[],n=0;e.on("error",o),e.on("end",s),e.end(t),a();function a(){for(var h;(h=e.read())!==null;)i.push(h),n+=h.length;e.once("readable",a)}function o(h){e.removeListener("end",s),e.removeListener("readable",a),r(h)}function s(){var h=c.concat(i,n);i=[],r(null,h),e.close()}}function ze(e,t){if(typeof t=="string"&&(t=new c(t)),!c.isBuffer(t))throw new TypeError("Not a string or buffer");var r=w.Z_FINISH;return e._processChunk(t,r)}function Pe(e){if(!(this instanceof Pe))return new Pe(e);M.call(this,e,w.DEFLATE)}function Ue(e){if(!(this instanceof Ue))return new Ue(e);M.call(this,e,w.INFLATE)}function Be(e){if(!(this instanceof Be))return new Be(e);M.call(this,e,w.GZIP)}function Ze(e){if(!(this instanceof Ze))return new Ze(e);M.call(this,e,w.GUNZIP)}function je(e){if(!(this instanceof je))return new je(e);M.call(this,e,w.DEFLATERAW)}function $e(e){if(!(this instanceof $e))return new $e(e);M.call(this,e,w.INFLATERAW)}function He(e){if(!(this instanceof He))return new He(e);M.call(this,e,w.UNZIP)}function M(e,t){if(this._opts=e=e||{},this._chunkSize=e.chunkSize||w.Z_DEFAULT_CHUNK,G.call(this,e),e.flush&&e.flush!==w.Z_NO_FLUSH&&e.flush!==w.Z_PARTIAL_FLUSH&&e.flush!==w.Z_SYNC_FLUSH&&e.flush!==w.Z_FULL_FLUSH&&e.flush!==w.Z_FINISH&&e.flush!==w.Z_BLOCK)throw new Error("Invalid flush flag: "+e.flush);if(this._flushFlag=e.flush||w.Z_NO_FLUSH,e.chunkSize&&(e.chunkSize<w.Z_MIN_CHUNK||e.chunkSize>w.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBits<w.Z_MIN_WINDOWBITS||e.windowBits>w.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.level<w.Z_MIN_LEVEL||e.level>w.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevel<w.Z_MIN_MEMLEVEL||e.memLevel>w.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=w.Z_FILTERED&&e.strategy!=w.Z_HUFFMAN_ONLY&&e.strategy!=w.Z_RLE&&e.strategy!=w.Z_FIXED&&e.strategy!=w.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!c.isBuffer(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new w.Zlib(t);var r=this;this._hadError=!1,this._binding.onerror=function(a,o){r._binding=null,r._hadError=!0;var s=new Error(a);s.errno=o,s.code=Et[o],r.emit("error",s)};var i=w.Z_DEFAULT_COMPRESSION;typeof e.level=="number"&&(i=e.level);var n=w.Z_DEFAULT_STRATEGY;typeof e.strategy=="number"&&(n=e.strategy),this._binding.init(e.windowBits||w.Z_DEFAULT_WINDOWBITS,i,e.memLevel||w.Z_DEFAULT_MEMLEVEL,n,e.dictionary),this._buffer=new c(this._chunkSize),this._offset=0,this._closed=!1,this._level=i,this._strategy=n,this.once("end",this.close)}Z(M,G),M.prototype.params=function(e,t,r){if(e<w.Z_MIN_LEVEL||e>w.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=w.Z_FILTERED&&t!=w.Z_HUFFMAN_ONLY&&t!=w.Z_RLE&&t!=w.Z_FIXED&&t!=w.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var i=this;this.flush(w.Z_SYNC_FLUSH,function(){i._binding.params(e,t),i._hadError||(i._level=e,i._strategy=t,r&&r())})}else oe.nextTick(r)},M.prototype.reset=function(){return this._binding.reset()},M.prototype._flush=function(e){this._transform(new c(0),"",e)},M.prototype.flush=function(e,t){var r=this._writableState;if((typeof e=="function"||e===void 0&&!t)&&(t=e,e=w.Z_FULL_FLUSH),r.ended)t&&oe.nextTick(t);else if(r.ending)t&&this.once("end",t);else if(r.needDrain){var i=this;this.once("drain",function(){i.flush(t)})}else this._flushFlag=e,this.write(new c(0),"",t)},M.prototype.close=function(e){if(e&&oe.nextTick(e),!this._closed){this._closed=!0,this._binding.close();var t=this;oe.nextTick(function(){t.emit("close")})}},M.prototype._transform=function(e,t,r){var i,n=this._writableState,a=n.ending||n.ended,o=a&&(!e||n.length===e.length);if(!e===null&&!c.isBuffer(e))return r(new Error("invalid input"));o?i=w.Z_FINISH:(i=this._flushFlag,e.length>=n.length&&(this._flushFlag=this._opts.flush||w.Z_NO_FLUSH)),this._processChunk(e,i,r)},M.prototype._processChunk=function(e,t,r){var i=e&&e.length,n=this._chunkSize-this._offset,a=0,o=this,s=typeof r=="function";if(!s){var h=[],f=0,l;this.on("error",function(S){l=S});do var d=this._binding.writeSync(t,e,a,i,this._buffer,this._offset,n);while(!this._hadError&&g(d[0],d[1]));if(this._hadError)throw l;var p=c.concat(h,f);return this.close(),p}var u=this._binding.write(t,e,a,i,this._buffer,this._offset,n);u.buffer=e,u.callback=g;function g(S,y){if(!o._hadError){var v=n-y;if(dh(v>=0,"have should not go down"),v>0){var k=o._buffer.slice(o._offset,o._offset+v);o._offset+=v,s?o.push(k):(h.push(k),f+=k.length)}if((y===0||o._offset>=o._chunkSize)&&(n=o._chunkSize,o._offset=0,o._buffer=new c(o._chunkSize)),y===0){if(a+=i-S,i=S,!s)return!0;var E=o._binding.write(t,e,a,i,o._buffer,o._offset,o._chunkSize);E.callback=g,E.buffer=e;return}if(!s)return!1;r()}}},Z(Pe,M),Z(Ue,M),Z(Be,M),Z(Ze,M),Z(je,M),Z($e,M),Z(He,M);var ja={codes:Et,createDeflate:ph,createInflate:_h,createDeflateRaw:wh,createInflateRaw:gh,createGzip:vh,createGunzip:mh,createUnzip:bh,deflate:yh,deflateSync:xh,gzip:Eh,gzipSync:kh,deflateRaw:Sh,deflateRawSync:Rh,unzip:Ah,unzipSync:Th,inflate:Lh,inflateSync:Oh,gunzip:Ch,gunzipSync:Ih,inflateRaw:Mh,inflateRawSync:Fh,Deflate:Pe,Inflate:Ue,Gzip:Be,Gunzip:Ze,DeflateRaw:je,InflateRaw:$e,Unzip:He,Zlib:M};class $a extends hr{constructor({client:t,keyPrefix:r="cache"}){super(),this.client=t,this.keyPrefix=r}async _set(t,r){let i=JSON.stringify(r);const n=i.length;return i=ja.gzipSync(i).toString("base64"),this.client.putObject({key:K(this.keyPrefix,t),body:i,contentEncoding:"gzip",contentType:"application/gzip",metadata:{compressor:"zlib",compressed:"true","client-id":this.client.id,"length-serialized":String(n),"length-compressed":String(i.length),"compression-gain":(i.length/n).toFixed(2)}})}async _get(t){const{Body:r}=await this.client.getObject(K(this.keyPrefix,t));let i=await lr(r);return i=Buffer.from(i,"base64"),i=ja.unzipSync(i).toString(),JSON.parse(i)}async _del(t){return await this.client.deleteObject(K(this.keyPrefix,t)),!0}async _clear(t=""){const r=await this.client.getAllKeys({prefix:K(this.keyPrefix,t)});await this.client.deleteObjects(r)}}class Ha extends b{async setup(t){}async start(){}async stop(){}beforeSetup(){this.emit("plugin.beforeSetup",new Date)}afterSetup(){this.emit("plugin.afterSetup",new Date)}beforeStart(){this.emit("plugin.beforeStart",new Date)}afterStart(){this.emit("plugin.afterStart",new Date)}beforeStop(){this.emit("plugin.beforeStop",new Date)}afterStop(){this.emit("plugin.afterStop",new Date)}}const Dh={setup(e){},start(){},stop(){}},Nh={async setup(e){this.client=e.client,this.map={PutObjectCommand:"put",GetObjectCommand:"get",HeadObjectCommand:"get",DeleteObjectCommand:"delete",DeleteObjectsCommand:"delete",ListObjectsV2Command:"list"},this.costs={total:0,prices:{put:.005/1e3,copy:.005/1e3,list:.005/1e3,post:.005/1e3,get:4e-4/1e3,select:4e-4/1e3,delete:4e-4/1e3},requests:{total:0,put:0,post:0,copy:0,list:0,get:0,select:0,delete:0},events:{total:0,PutObjectCommand:0,GetObjectCommand:0,HeadObjectCommand:0,DeleteObjectCommand:0,DeleteObjectsCommand:0,ListObjectsV2Command:0}},this.client.costs=JSON.parse(JSON.stringify(this.costs))},async start(){this.client.on("command.response",e=>this.addRequest(e,this.map[e]))},addRequest(e,t){this.costs.events[e]++,this.costs.events.total++,this.costs.requests.total++,this.costs.requests[t]++,this.costs.total+=this.costs.prices[t],this.client.costs.events[e]++,this.client.costs.events.total++,this.client.costs.requests.total++,this.client.costs.requests[t]++,this.client.costs.total+=this.client.costs.prices[t]}};class zh extends Ha{constructor(t={}){super(),this.driver=t.driver}async setup(t){this.database=t,this.driver||(this.driver=new $a({keyPrefix:"cache",client:t.client})),this.installDatabaseProxy();for(const r of Object.values(t.resources))this.installResourcesProxies(r)}async start(){}async stop(){}installDatabaseProxy(){const t=this.installResourcesProxies.bind(this);this.database._createResource=this.database.createResource,this.database.createResource=async function(...r){const i=await this._createResource(...r);return t(i),i}}installResourcesProxies(t){t.cache=this.driver;let r=`resource=${t.name}`;this.driver.keyPrefix&&(this.driver.keyPrefix=K(this.driver.keyPrefix,r)),t.cacheKeyFor=async function({params:i={},action:n="list"}){let a=Object.keys(i).sort().map(o=>`${o}:${i[o]}`).join("|")||"empty";return a=await Si(a),a=K(r,`action=${n}`,`${a}.json.gz`),a},t._count=t.count,t._listIds=t.listIds,t._getMany=t.getMany,t._getAll=t.getAll,t._page=t.page,t.count=async function(){const i=await this.cacheKeyFor({action:"count"});try{const a=await this.cache.get(i);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const n=await t._count();return await this.cache.set(i,n),n},t.listIds=async function(){const i=await this.cacheKeyFor({action:"listIds"});try{const a=await this.cache.get(i);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const n=await t._listIds();return await this.cache.set(i,n),n},t.getMany=async function(i){const n=await this.cacheKeyFor({action:"getMany",params:{ids:i}});try{const o=await this.cache.get(n);if(o)return o}catch(o){if(o.name!=="NoSuchKey")throw o}const a=await t._getMany(i);return await this.cache.set(n,a),a},t.getAll=async function(){const i=await this.cacheKeyFor({action:"getAll"});try{const a=await this.cache.get(i);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const n=await t._getAll();return await this.cache.set(i,n),n},t.page=async function({offset:i,size:n}){const a=await this.cacheKeyFor({action:"page",params:{offset:i,size:n}});try{const s=await this.cache.get(a);if(s)return s}catch(s){if(s.name!=="NoSuchKey")throw s}const o=await t._page({offset:i,size:n});return await this.cache.set(a,o),o},t._insert=t.insert,t._update=t.update,t._delete=t.delete,t._deleteMany=t.deleteMany,t.insert=async function(...i){const n=await t._insert(...i);return await this.cache.clear(r),n},t.update=async function(...i){const n=await t._update(...i);return await this.cache.clear(r),n},t.delete=async function(...i){const n=await t._delete(...i);return await this.cache.clear(r),n},t.deleteMany=async function(...i){const n=await t._deleteMany(...i);return await this.cache.clear(r),n}}}var Ph=Object.freeze({__proto__:null});export{Ke as BaseError,hr as Cache,zh as CachePlugin,ki as Client,Ei as ConnectionString,Nh as CostsPlugin,Di as Database,bi as ErrorMap,At as InvalidResourceItem,Oo as MemoryCache,vi as MissingMetadata,wi as NoSuchBucket,or as NoSuchKey,gi as NotFound,Ha as Plugin,Dh as PluginObject,Ci as ResourceIdsPageReader,Oi as ResourceIdsReader,Ii as ResourceReader,Mi as ResourceWriter,$a as S3Cache,xi as S3_DEFAULT_ENDPOINT,yi as S3_DEFAULT_REGION,Lo as S3db,mi as UnknownError,Ti as Validator,Li as ValidatorManager,Ri as decrypt,sr as encrypt,Si as sha256,lr as streamToString};
21
+ `)+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function $s(e){return Array.isArray(e)}function on(e){return typeof e=="boolean"}function vr(e){return e===null}function Hs(e){return typeof e=="number"}function mr(e){return typeof e=="string"}function we(e){return e===void 0}function br(e){return at(e)&&Er(e)==="[object RegExp]"}function at(e){return typeof e=="object"&&e!==null}function sn(e){return at(e)&&Er(e)==="[object Date]"}function yr(e){return at(e)&&(Er(e)==="[object Error]"||e instanceof Error)}function xr(e){return typeof e=="function"}function Er(e){return Object.prototype.toString.call(e)}function Ks(e,t){if(!t||!at(t))return e;for(var r=Object.keys(t),i=r.length;i--;)e[r[i]]=t[r[i]];return e}function fn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Oe(){this.head=null,this.tail=null,this.length=0}Oe.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},Oe.prototype.unshift=function(e){var t={data:e,next:this.head};this.length===0&&(this.tail=t),this.head=t,++this.length},Oe.prototype.shift=function(){if(this.length!==0){var e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},Oe.prototype.clear=function(){this.head=this.tail=null,this.length=0},Oe.prototype.join=function(e){if(this.length===0)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},Oe.prototype.concat=function(e){if(this.length===0)return c.alloc(0);if(this.length===1)return this.head.data;for(var t=c.allocUnsafe(e>>>0),r=this.head,i=0;r;)r.data.copy(t,i),i+=r.data.length,r=r.next;return t};var Ws=c.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Ys(e){if(e&&!Ws(e))throw new Error("Unknown encoding: "+e)}function ot(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),Ys(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Gs;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Vs;break;default:this.write=qs;return}this.charBuffer=new c(6),this.charReceived=0,this.charLength=0}ot.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived<this.charLength)return"";e=e.slice(r,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var n=t.charCodeAt(t.length-1);if(n>=55296&&n<=56319){this.charLength+=this.surrogateSize,t="";continue}if(this.charReceived=this.charLength=0,e.length===0)return t;break}this.detectIncompleteChar(e);var i=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,i),i-=this.charReceived),t+=e.toString(this.encoding,0,i);var i=t.length-1,n=t.charCodeAt(i);if(n>=55296&&n<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),e.copy(this.charBuffer,0,0,a),t.substring(0,i)}return t},ot.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(t==1&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},ot.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,i=this.charBuffer,n=this.encoding;t+=i.slice(0,r).toString(n)}return t};function qs(e){return e.toString(this.encoding)}function Gs(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function Vs(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}F.ReadableState=ln;var O=Ns("stream");Z(F,b);function Xs(e,t,r){if(typeof e.prependListener=="function")return e.prependListener(t,r);!e._events||!e._events[t]?e.on(t,r):Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]}function Js(e,t){return e.listeners(t).length}function ln(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof q&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,i=this.objectMode?16:16*1024;this.highWaterMark=r||r===0?r:i,this.highWaterMark=~~this.highWaterMark,this.buffer=new Oe,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new ot(e.encoding),this.encoding=e.encoding)}function F(e){if(!(this instanceof F))return new F(e);this._readableState=new ln(e,this),this.readable=!0,e&&typeof e.read=="function"&&(this._read=e.read),b.call(this)}F.prototype.push=function(e,t){var r=this._readableState;return!r.objectMode&&typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=c.from(e,t),t="")),hn(this,r,e,t,!1)},F.prototype.unshift=function(e){var t=this._readableState;return hn(this,t,e,"",!0)},F.prototype.isPaused=function(){return this._readableState.flowing===!1};function hn(e,t,r,i,n){var a=tf(t,r);if(a)e.emit("error",a);else if(r===null)t.reading=!1,rf(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!n){var o=new Error("stream.push() after EOF");e.emit("error",o)}else if(t.endEmitted&&n){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var h;t.decoder&&!n&&!i&&(r=t.decoder.write(r),h=!t.objectMode&&r.length===0),n||(t.reading=!1),h||(t.flowing&&t.length===0&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&Pt(e))),nf(e,t)}else n||(t.reading=!1);return Qs(t)}function Qs(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}F.prototype.setEncoding=function(e){return this._readableState.decoder=new ot(e),this._readableState.encoding=e,this};var cn=8388608;function ef(e){return e>=cn?e=cn:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function un(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=ef(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}F.prototype.read=function(e){O("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return O("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?Sr(this):Pt(this),null;if(e=un(e,t),e===0&&t.ended)return t.length===0&&Sr(this),null;var i=t.needReadable;O("need readable",i),(t.length===0||t.length-e<t.highWaterMark)&&(i=!0,O("length less than watermark",i)),t.ended||t.reading?(i=!1,O("reading or ended",i)):i&&(O("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=un(r,t)));var n;return e>0?n=pn(e,t):n=null,n===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&Sr(this)),n!==null&&this.emit("data",n),n};function tf(e,t){var r=null;return!c.isBuffer(t)&&typeof t!="string"&&t!==null&&t!==void 0&&!e.objectMode&&(r=new TypeError("Invalid non-string/buffer chunk")),r}function rf(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,Pt(e)}}function Pt(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(O("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?W(dn,e):dn(e))}function dn(e){O("emit readable"),e.emit("readable"),kr(e)}function nf(e,t){t.readingMore||(t.readingMore=!0,W(af,e,t))}function af(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(O("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}F.prototype._read=function(e){this.emit("error",new Error("not implemented"))},F.prototype.pipe=function(e,t){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e);break}i.pipesCount+=1,O("pipe count=%d opts=%j",i.pipesCount,t);var n=!t||t.end!==!1,a=n?s:l;i.endEmitted?W(a):r.once("end",a),e.on("unpipe",o);function o(v){O("onunpipe"),v===r&&l()}function s(){O("onend"),e.end()}var h=of(r);e.on("drain",h);var f=!1;function l(){O("cleanup"),e.removeListener("close",g),e.removeListener("finish",S),e.removeListener("drain",h),e.removeListener("error",u),e.removeListener("unpipe",o),r.removeListener("end",s),r.removeListener("end",l),r.removeListener("data",p),f=!0,i.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&h()}var d=!1;r.on("data",p);function p(v){O("ondata"),d=!1;var k=e.write(v);k===!1&&!d&&((i.pipesCount===1&&i.pipes===e||i.pipesCount>1&&_n(i.pipes,e)!==-1)&&!f&&(O("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,d=!0),r.pause())}function u(v){O("onerror",v),y(),e.removeListener("error",u),Js(e,"error")===0&&e.emit("error",v)}Xs(e,"error",u);function g(){e.removeListener("finish",S),y()}e.once("close",g);function S(){O("onfinish"),e.removeListener("close",g),y()}e.once("finish",S);function y(){O("unpipe"),r.unpipe(e)}return e.emit("pipe",r),i.flowing||(O("pipe resume"),r.resume()),e};function of(e){return function(){var t=e._readableState;O("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&e.listeners("data").length&&(t.flowing=!0,kr(e))}}F.prototype.unpipe=function(e){var t=this._readableState;if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var n=0;n<i;n++)r[n].emit("unpipe",this);return this}var a=_n(t.pipes,e);return a===-1?this:(t.pipes.splice(a,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},F.prototype.on=function(e,t){var r=b.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var i=this._readableState;!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.emittedReadable=!1,i.reading?i.length&&Pt(this):W(sf,this))}return r},F.prototype.addListener=F.prototype.on;function sf(e){O("readable nexttick read 0"),e.read(0)}F.prototype.resume=function(){var e=this._readableState;return e.flowing||(O("resume"),e.flowing=!0,ff(this,e)),this};function ff(e,t){t.resumeScheduled||(t.resumeScheduled=!0,W(lf,e,t))}function lf(e,t){t.reading||(O("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),kr(e),t.flowing&&!t.reading&&e.read(0)}F.prototype.pause=function(){return O("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(O("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function kr(e){var t=e._readableState;for(O("flow",t.flowing);t.flowing&&e.read()!==null;);}F.prototype.wrap=function(e){var t=this._readableState,r=!1,i=this;e.on("end",function(){if(O("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&i.push(o)}i.push(null)}),e.on("data",function(o){if(O("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var s=i.push(o);s||(r=!0,e.pause())}});for(var n in e)this[n]===void 0&&typeof e[n]=="function"&&(this[n]=function(o){return function(){return e[o].apply(e,arguments)}}(n));var a=["error","close","destroy","pause","resume"];return pf(a,function(o){e.on(o,i.emit.bind(i,o))}),i._read=function(o){O("wrapped _read",o),r&&(r=!1,e.resume())},i},F._fromList=pn;function pn(e,t){if(t.length===0)return null;var r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(t.decoder?r=t.buffer.join(""):t.buffer.length===1?r=t.buffer.head.data:r=t.buffer.concat(t.length),t.buffer.clear()):r=hf(e,t.buffer,t.decoder),r}function hf(e,t,r){var i;return e<t.head.data.length?(i=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?i=t.shift():i=r?cf(e,t):uf(e,t),i}function cf(e,t){var r=t.head,i=1,n=r.data;for(e-=n.length;r=r.next;){var a=r.data,o=e>a.length?a.length:e;if(o===a.length?n+=a:n+=a.slice(0,e),e-=o,e===0){o===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break}++i}return t.length-=i,n}function uf(e,t){var r=c.allocUnsafe(e),i=t.head,n=1;for(i.data.copy(r),e-=i.data.length;i=i.next;){var a=i.data,o=e>a.length?a.length:e;if(a.copy(r,r.length-e,0,o),e-=o,e===0){o===a.length?(++n,i.next?t.head=i.next:t.head=t.tail=null):(t.head=i,i.data=a.slice(o));break}++n}return t.length-=n,r}function Sr(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,W(df,t,e))}function df(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function pf(e,t){for(var r=0,i=e.length;r<i;r++)t(e[r],r)}function _n(e,t){for(var r=0,i=e.length;r<i;r++)if(e[r]===t)return r;return-1}j.WritableState=Rr,Z(j,b);function _f(){}function wf(e,t,r){this.chunk=e,this.encoding=t,this.callback=r,this.next=null}function Rr(e,t){Object.defineProperty(this,"buffer",{get:an(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),e=e||{},this.objectMode=!!e.objectMode,t instanceof q&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark,i=this.objectMode?16:16*1024;this.highWaterMark=r||r===0?r:i,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var n=e.decodeStrings===!1;this.decodeStrings=!n,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){Ef(t,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new yn(this)}Rr.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};function j(e){if(!(this instanceof j)&&!(this instanceof q))return new j(e);this._writableState=new Rr(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev)),b.call(this)}j.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function gf(e,t){var r=new Error("write after end");e.emit("error",r),W(t,r)}function vf(e,t,r,i){var n=!0,a=!1;return r===null?a=new TypeError("May not write null values to stream"):!c.isBuffer(r)&&typeof r!="string"&&r!==void 0&&!t.objectMode&&(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),W(i,a),n=!1),n}j.prototype.write=function(e,t,r){var i=this._writableState,n=!1;return typeof t=="function"&&(r=t,t=null),c.isBuffer(e)?t="buffer":t||(t=i.defaultEncoding),typeof r!="function"&&(r=_f),i.ended?gf(this,r):vf(this,i,e,r)&&(i.pendingcb++,n=bf(this,i,e,t,r)),n},j.prototype.cork=function(){var e=this._writableState;e.corked++},j.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest&&gn(this,e))},j.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function mf(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=c.from(t,r)),t}function bf(e,t,r,i,n){r=mf(t,r,i),c.isBuffer(r)&&(i="buffer");var a=t.objectMode?1:r.length;t.length+=a;var o=t.length<t.highWaterMark;if(o||(t.needDrain=!0),t.writing||t.corked){var s=t.lastBufferedRequest;t.lastBufferedRequest=new wf(r,i,n),s?s.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else Ar(e,t,!1,a,r,i,n);return o}function Ar(e,t,r,i,n,a,o){t.writelen=i,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(n,t.onwrite):e._write(n,a,t.onwrite),t.sync=!1}function yf(e,t,r,i,n){--t.pendingcb,r?W(n,i):n(i),e._writableState.errorEmitted=!0,e.emit("error",i)}function xf(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function Ef(e,t){var r=e._writableState,i=r.sync,n=r.writecb;if(xf(r),t)yf(e,r,i,t,n);else{var a=vn(r);!a&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&gn(e,r),i?W(wn,e,r,a,n):wn(e,r,a,n)}}function wn(e,t,r,i){r||kf(e,t),t.pendingcb--,i(),bn(e,t)}function kf(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function gn(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount,n=new Array(i),a=t.corkedRequestsFree;a.entry=r;for(var o=0;r;)n[o]=r,r=r.next,o+=1;Ar(e,t,!0,t.length,n,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new yn(t)}else{for(;r;){var s=r.chunk,h=r.encoding,f=r.callback,l=t.objectMode?1:s.length;if(Ar(e,t,!1,l,s,h,f),r=r.next,t.writing)break}r===null&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=r,t.bufferProcessing=!1}j.prototype._write=function(e,t,r){r(new Error("not implemented"))},j.prototype._writev=null,j.prototype.end=function(e,t,r){var i=this._writableState;typeof e=="function"?(r=e,e=null,t=null):typeof t=="function"&&(r=t,t=null),e!=null&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),!i.ending&&!i.finished&&Sf(this,i,r)};function vn(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function mn(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function bn(e,t){var r=vn(t);return r&&(t.pendingcb===0?(mn(e,t),t.finished=!0,e.emit("finish")):mn(e,t)),r}function Sf(e,t,r){t.ending=!0,bn(e,t),r&&(t.finished?W(r):e.once("finish",r)),t.ended=!0,e.writable=!1}function yn(e){var t=this;this.next=null,this.entry=null,this.finish=function(r){var i=t.entry;for(t.entry=null;i;){var n=i.callback;e.pendingcb--,n(r),i=i.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}Z(q,F);for(var xn=Object.keys(j.prototype),Tr=0;Tr<xn.length;Tr++){var Lr=xn[Tr];q.prototype[Lr]||(q.prototype[Lr]=j.prototype[Lr])}function q(e){if(!(this instanceof q))return new q(e);F.call(this,e),j.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",Rf)}function Rf(){this.allowHalfOpen||this._writableState.ended||W(Af,this)}function Af(e){e.end()}Z(G,q);function Tf(e){this.afterTransform=function(t,r){return Lf(e,t,r)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function Lf(e,t,r){var i=e._transformState;i.transforming=!1;var n=i.writecb;if(!n)return e.emit("error",new Error("no writecb in Transform class"));i.writechunk=null,i.writecb=null,r!=null&&e.push(r),n(t);var a=e._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&e._read(a.highWaterMark)}function G(e){if(!(this instanceof G))return new G(e);q.call(this,e),this._transformState=new Tf(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.once("prefinish",function(){typeof this._flush=="function"?this._flush(function(r){En(t,r)}):En(t)})}G.prototype.push=function(e,t){return this._transformState.needTransform=!1,q.prototype.push.call(this,e,t)},G.prototype._transform=function(e,t,r){throw new Error("Not implemented")},G.prototype._write=function(e,t,r){var i=this._transformState;if(i.writecb=r,i.writechunk=e,i.writeencoding=t,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}},G.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};function En(e,t){if(t)return e.emit("error",t);var r=e._writableState,i=e._transformState;if(r.length)throw new Error("Calling transform done when ws.length != 0");if(i.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}Z(st,G);function st(e){if(!(this instanceof st))return new st(e);G.call(this,e)}st.prototype._transform=function(e,t,r){r(null,e)},Z(se,b),se.Readable=F,se.Writable=j,se.Duplex=q,se.Transform=G,se.PassThrough=st,se.Stream=se;function se(){b.call(this)}se.prototype.pipe=function(e,t){var r=this;function i(l){e.writable&&e.write(l)===!1&&r.pause&&r.pause()}r.on("data",i);function n(){r.readable&&r.resume&&r.resume()}e.on("drain",n),!e._isStdio&&(!t||t.end!==!1)&&(r.on("end",o),r.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function h(l){if(f(),b.listenerCount(this,"error")===0)throw l}r.on("error",h),e.on("error",h);function f(){r.removeListener("data",i),e.removeListener("drain",n),r.removeListener("end",o),r.removeListener("close",s),r.removeListener("error",h),e.removeListener("error",h),r.removeListener("end",f),r.removeListener("close",f),e.removeListener("close",f)}return r.on("end",f),r.on("close",f),e.on("close",f),e.emit("pipe",r),e};var kn={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"};function Of(){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}function fe(e,t,r,i,n){if(t.subarray&&e.subarray){e.set(t.subarray(r,r+i),n);return}for(var a=0;a<i;a++)e[n+a]=t[r+a]}var Ut=Uint8Array,V=Uint16Array,Bt=Int32Array,Cf=4,Sn=0,Rn=1,If=2;function Ge(e){for(var t=e.length;--t>=0;)e[t]=0}var Mf=0,An=1,Ff=2,Df=3,Nf=258,Or=29,ft=256,lt=ft+1+Or,Ve=30,Cr=19,Tn=2*lt+1,Ce=15,Ir=16,zf=7,Mr=256,Ln=16,On=17,Cn=18,Fr=[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],Zt=[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],Pf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],In=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Uf=512,le=new Array((lt+2)*2);Ge(le);var ht=new Array(Ve*2);Ge(ht);var ct=new Array(Uf);Ge(ct);var ut=new Array(Nf-Df+1);Ge(ut);var Dr=new Array(Or);Ge(Dr);var jt=new Array(Ve);Ge(jt);function Nr(e,t,r,i,n){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}var Mn,Fn,Dn;function zr(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Nn(e){return e<256?ct[e]:ct[256+(e>>>7)]}function dt(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function H(e,t,r){e.bi_valid>Ir-r?(e.bi_buf|=t<<e.bi_valid&65535,dt(e,e.bi_buf),e.bi_buf=t>>Ir-e.bi_valid,e.bi_valid+=r-Ir):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function te(e,t,r){H(e,r[t*2],r[t*2+1])}function zn(e,t){var r=0;do r|=e&1,e>>>=1,r<<=1;while(--t>0);return r>>>1}function Bf(e){e.bi_valid===16?(dt(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function Zf(e,t){var r=t.dyn_tree,i=t.max_code,n=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,h=t.stat_desc.max_length,f,l,d,p,u,g,S=0;for(p=0;p<=Ce;p++)e.bl_count[p]=0;for(r[e.heap[e.heap_max]*2+1]=0,f=e.heap_max+1;f<Tn;f++)l=e.heap[f],p=r[r[l*2+1]*2+1]+1,p>h&&(p=h,S++),r[l*2+1]=p,!(l>i)&&(e.bl_count[p]++,u=0,l>=s&&(u=o[l-s]),g=r[l*2],e.opt_len+=g*(p+u),a&&(e.static_len+=g*(n[l*2+1]+u)));if(S!==0){do{for(p=h-1;e.bl_count[p]===0;)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[h]--,S-=2}while(S>0);for(p=h;p!==0;p--)for(l=e.bl_count[p];l!==0;)d=e.heap[--f],!(d>i)&&(r[d*2+1]!==p&&(e.opt_len+=(p-r[d*2+1])*r[d*2],r[d*2+1]=p),l--)}}function Pn(e,t,r){var i=new Array(Ce+1),n=0,a,o;for(a=1;a<=Ce;a++)i[a]=n=n+r[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=zn(i[s]++,s))}}function jf(){var e,t,r,i,n,a=new Array(Ce+1);for(r=0,i=0;i<Or-1;i++)for(Dr[i]=r,e=0;e<1<<Fr[i];e++)ut[r++]=i;for(ut[r-1]=i,n=0,i=0;i<16;i++)for(jt[i]=n,e=0;e<1<<Zt[i];e++)ct[n++]=i;for(n>>=7;i<Ve;i++)for(jt[i]=n<<7,e=0;e<1<<Zt[i]-7;e++)ct[256+n++]=i;for(t=0;t<=Ce;t++)a[t]=0;for(e=0;e<=143;)le[e*2+1]=8,e++,a[8]++;for(;e<=255;)le[e*2+1]=9,e++,a[9]++;for(;e<=279;)le[e*2+1]=7,e++,a[7]++;for(;e<=287;)le[e*2+1]=8,e++,a[8]++;for(Pn(le,lt+1,a),e=0;e<Ve;e++)ht[e*2+1]=5,ht[e*2]=zn(e,5);Mn=new Nr(le,Fr,ft+1,lt,Ce),Fn=new Nr(ht,Zt,0,Ve,Ce),Dn=new Nr(new Array(0),Pf,0,Cr,zf)}function Un(e){var t;for(t=0;t<lt;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Ve;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Cr;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Mr*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Bn(e){e.bi_valid>8?dt(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function $f(e,t,r,i){Bn(e),dt(e,r),dt(e,~r),fe(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}function Zn(e,t,r,i){var n=t*2,a=r*2;return e[n]<e[a]||e[n]===e[a]&&i[t]<=i[r]}function Pr(e,t,r){for(var i=e.heap[r],n=r<<1;n<=e.heap_len&&(n<e.heap_len&&Zn(t,e.heap[n+1],e.heap[n],e.depth)&&n++,!Zn(t,i,e.heap[n],e.depth));)e.heap[r]=e.heap[n],r=n,n<<=1;e.heap[r]=i}function jn(e,t,r){var i,n,a=0,o,s;if(e.last_lit!==0)do i=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],n=e.pending_buf[e.l_buf+a],a++,i===0?te(e,n,t):(o=ut[n],te(e,o+ft+1,t),s=Fr[o],s!==0&&(n-=Dr[o],H(e,n,s)),i--,o=Nn(i),te(e,o,r),s=Zt[o],s!==0&&(i-=jt[o],H(e,i,s)));while(a<e.last_lit);te(e,Mr,t)}function Ur(e,t){var r=t.dyn_tree,i=t.stat_desc.static_tree,n=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,h=-1,f;for(e.heap_len=0,e.heap_max=Tn,o=0;o<a;o++)r[o*2]!==0?(e.heap[++e.heap_len]=h=o,e.depth[o]=0):r[o*2+1]=0;for(;e.heap_len<2;)f=e.heap[++e.heap_len]=h<2?++h:0,r[f*2]=1,e.depth[f]=0,e.opt_len--,n&&(e.static_len-=i[f*2+1]);for(t.max_code=h,o=e.heap_len>>1;o>=1;o--)Pr(e,r,o);f=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Pr(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,r[f*2]=r[o*2]+r[s*2],e.depth[f]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,r[o*2+1]=r[s*2+1]=f,e.heap[1]=f++,Pr(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Zf(e,t),Pn(r,h,e.bl_count)}function $n(e,t,r){var i,n=-1,a,o=t[0*2+1],s=0,h=7,f=4;for(o===0&&(h=138,f=3),t[(r+1)*2+1]=65535,i=0;i<=r;i++)a=o,o=t[(i+1)*2+1],!(++s<h&&a===o)&&(s<f?e.bl_tree[a*2]+=s:a!==0?(a!==n&&e.bl_tree[a*2]++,e.bl_tree[Ln*2]++):s<=10?e.bl_tree[On*2]++:e.bl_tree[Cn*2]++,s=0,n=a,o===0?(h=138,f=3):a===o?(h=6,f=3):(h=7,f=4))}function Hn(e,t,r){var i,n=-1,a,o=t[0*2+1],s=0,h=7,f=4;for(o===0&&(h=138,f=3),i=0;i<=r;i++)if(a=o,o=t[(i+1)*2+1],!(++s<h&&a===o)){if(s<f)do te(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==n&&(te(e,a,e.bl_tree),s--),te(e,Ln,e.bl_tree),H(e,s-3,2)):s<=10?(te(e,On,e.bl_tree),H(e,s-3,3)):(te(e,Cn,e.bl_tree),H(e,s-11,7));s=0,n=a,o===0?(h=138,f=3):a===o?(h=6,f=3):(h=7,f=4)}}function Hf(e){var t;for($n(e,e.dyn_ltree,e.l_desc.max_code),$n(e,e.dyn_dtree,e.d_desc.max_code),Ur(e,e.bl_desc),t=Cr-1;t>=3&&e.bl_tree[In[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function Kf(e,t,r,i){var n;for(H(e,t-257,5),H(e,r-1,5),H(e,i-4,4),n=0;n<i;n++)H(e,e.bl_tree[In[n]*2+1],3);Hn(e,e.dyn_ltree,t-1),Hn(e,e.dyn_dtree,r-1)}function Wf(e){var t=4093624447,r;for(r=0;r<=31;r++,t>>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return Sn;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Rn;for(r=32;r<ft;r++)if(e.dyn_ltree[r*2]!==0)return Rn;return Sn}var Kn=!1;function Yf(e){Kn||(jf(),Kn=!0),e.l_desc=new zr(e.dyn_ltree,Mn),e.d_desc=new zr(e.dyn_dtree,Fn),e.bl_desc=new zr(e.bl_tree,Dn),e.bi_buf=0,e.bi_valid=0,Un(e)}function Wn(e,t,r,i){H(e,(Mf<<1)+(i?1:0),3),$f(e,t,r)}function qf(e){H(e,An<<1,3),te(e,Mr,le),Bf(e)}function Gf(e,t,r,i){var n,a,o=0;e.level>0?(e.strm.data_type===If&&(e.strm.data_type=Wf(e)),Ur(e,e.l_desc),Ur(e,e.d_desc),o=Hf(e),n=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=n&&(n=a)):n=a=r+5,r+4<=n&&t!==-1?Wn(e,t,r,i):e.strategy===Cf||a===n?(H(e,(An<<1)+(i?1:0),3),jn(e,le,ht)):(H(e,(Ff<<1)+(i?1:0),3),Kf(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),jn(e,e.dyn_ltree,e.dyn_dtree)),Un(e),i&&Bn(e)}function ge(e,t,r){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=r&255,e.last_lit++,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(ut[r]+ft+1)*2]++,e.dyn_dtree[Nn(t)*2]++),e.last_lit===e.lit_bufsize-1}function Br(e,t,r,i){for(var n=e&65535|0,a=e>>>16&65535|0,o=0;r!==0;){o=r>2e3?2e3:r,r-=o;do n=n+t[i++]|0,a=a+n|0;while(--o);n%=65521,a%=65521}return n|a<<16|0}function Vf(){for(var e,t=[],r=0;r<256;r++){e=r;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t}var Xf=Vf();function U(e,t,r,i){var n=Xf,a=i+r;e^=-1;for(var o=i;o<a;o++)e=e>>>8^n[(e^t[o])&255];return e^-1}var Ie=0,Jf=1,Qf=3,ve=4,Yn=5,me=0,qn=1,be=-2,el=-3,Zr=-5,tl=-1,rl=1,$t=2,il=3,nl=4,al=2,jr=8,ol=9,sl=29,fl=256,$r=fl+1+sl,ll=30,hl=19,cl=2*$r+1,ul=15,T=3,ye=258,X=ye+T+1,dl=32,Hr=42,Kr=69,Ht=73,Kt=91,Wt=103,Me=113,pt=666,N=1,_t=2,Fe=3,Xe=4,pl=3;function xe(e,t){return e.msg=kn[t],t}function Gn(e){return(e<<1)-(e>4?9:0)}function De(e){for(var t=e.length;--t>=0;)e[t]=0}function Ee(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(fe(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))}function B(e,t){Gf(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ee(e.strm)}function R(e,t){e.pending_buf[e.pending++]=t}function wt(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function _l(e,t,r,i){var n=e.avail_in;return n>i&&(n=i),n===0?0:(e.avail_in-=n,fe(t,e.input,e.next_in,n,r),e.state.wrap===1?e.adler=Br(e.adler,t,n,r):e.state.wrap===2&&(e.adler=U(e.adler,t,n,r)),e.next_in+=n,e.total_in+=n,n)}function Vn(e,t){var r=e.max_chain_length,i=e.strstart,n,a,o=e.prev_length,s=e.nice_match,h=e.strstart>e.w_size-X?e.strstart-(e.w_size-X):0,f=e.window,l=e.w_mask,d=e.prev,p=e.strstart+ye,u=f[i+o-1],g=f[i+o];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do if(n=t,!(f[n+o]!==g||f[n+o-1]!==u||f[n]!==f[i]||f[++n]!==f[i+1])){i+=2,n++;do;while(f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&f[++i]===f[++n]&&i<p);if(a=ye-(p-i),i=p-ye,a>o){if(e.match_start=t,o=a,a>=s)break;u=f[i+o-1],g=f[i+o]}}while((t=d[t&l])>h&&--r!==0);return o<=e.lookahead?o:e.lookahead}function gt(e){var t=e.w_size,r,i,n,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-X)){fe(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,i=e.hash_size,r=i;do n=e.head[--r],e.head[r]=n>=t?n-t:0;while(--i);i=t,r=i;do n=e.prev[--r],e.prev[r]=n>=t?n-t:0;while(--i);a+=t}if(e.strm.avail_in===0)break;if(i=_l(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=i,e.lookahead+e.insert>=T)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+T-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<T)););}while(e.lookahead<X&&e.strm.avail_in!==0)}function wl(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(gt(e),e.lookahead===0&&t===Ie)return N;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var i=e.block_start+r;if((e.strstart===0||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,B(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-X&&(B(e,!1),e.strm.avail_out===0))return N}return e.insert=0,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):(e.strstart>e.block_start&&(B(e,!1),e.strm.avail_out===0),N)}function Wr(e,t){for(var r,i;;){if(e.lookahead<X){if(gt(e),e.lookahead<X&&t===Ie)return N;if(e.lookahead===0)break}if(r=0,e.lookahead>=T&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+T-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),r!==0&&e.strstart-r<=e.w_size-X&&(e.match_length=Vn(e,r)),e.match_length>=T)if(i=ge(e,e.strstart-e.match_start,e.match_length-T),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=T){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+T-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else i=ge(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(B(e,!1),e.strm.avail_out===0))return N}return e.insert=e.strstart<T-1?e.strstart:T-1,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?N:_t}function Je(e,t){for(var r,i,n;;){if(e.lookahead<X){if(gt(e),e.lookahead<X&&t===Ie)return N;if(e.lookahead===0)break}if(r=0,e.lookahead>=T&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+T-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=T-1,r!==0&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-X&&(e.match_length=Vn(e,r),e.match_length<=5&&(e.strategy===rl||e.match_length===T&&e.strstart-e.match_start>4096)&&(e.match_length=T-1)),e.prev_length>=T&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-T,i=ge(e,e.strstart-1-e.prev_match,e.prev_length-T),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+T-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=T-1,e.strstart++,i&&(B(e,!1),e.strm.avail_out===0))return N}else if(e.match_available){if(i=ge(e,0,e.window[e.strstart-1]),i&&B(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return N}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=ge(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<T-1?e.strstart:T-1,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?N:_t}function gl(e,t){for(var r,i,n,a,o=e.window;;){if(e.lookahead<=ye){if(gt(e),e.lookahead<=ye&&t===Ie)return N;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=T&&e.strstart>0&&(n=e.strstart-1,i=o[n],i===o[++n]&&i===o[++n]&&i===o[++n])){a=e.strstart+ye;do;while(i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&n<a);e.match_length=ye-(a-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=T?(r=ge(e,1,e.match_length-T),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=ge(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(B(e,!1),e.strm.avail_out===0))return N}return e.insert=0,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?N:_t}function vl(e,t){for(var r;;){if(e.lookahead===0&&(gt(e),e.lookahead===0)){if(t===Ie)return N;break}if(e.match_length=0,r=ge(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(B(e,!1),e.strm.avail_out===0))return N}return e.insert=0,t===ve?(B(e,!0),e.strm.avail_out===0?Fe:Xe):e.last_lit&&(B(e,!1),e.strm.avail_out===0)?N:_t}function re(e,t,r,i,n){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=i,this.func=n}var Qe;Qe=[new re(0,0,0,0,wl),new re(4,4,8,4,Wr),new re(4,5,16,8,Wr),new re(4,6,32,32,Wr),new re(4,4,16,16,Je),new re(8,16,32,32,Je),new re(8,16,128,128,Je),new re(8,32,128,256,Je),new re(32,128,258,1024,Je),new re(32,258,258,4096,Je)];function ml(e){e.window_size=2*e.w_size,De(e.head),e.max_lazy_match=Qe[e.level].max_lazy,e.good_match=Qe[e.level].good_length,e.nice_match=Qe[e.level].nice_length,e.max_chain_length=Qe[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=T-1,e.match_available=0,e.ins_h=0}function bl(){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=jr,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 V(cl*2),this.dyn_dtree=new V((2*ll+1)*2),this.bl_tree=new V((2*hl+1)*2),De(this.dyn_ltree),De(this.dyn_dtree),De(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new V(ul+1),this.heap=new V(2*$r+1),De(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new V(2*$r+1),De(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function yl(e){var t;return!e||!e.state?xe(e,be):(e.total_in=e.total_out=0,e.data_type=al,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Hr:Me,e.adler=t.wrap===2?0:1,t.last_flush=Ie,Yf(t),me)}function Xn(e){var t=yl(e);return t===me&&ml(e.state),t}function xl(e,t,r,i,n,a){if(!e)return be;var o=1;if(t===tl&&(t=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),n<1||n>ol||r!==jr||i<8||i>15||t<0||t>9||a<0||a>nl)return xe(e,be);i===8&&(i=9);var s=new bl;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=i,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=n+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+T-1)/T),s.window=new Ut(s.w_size*2),s.head=new V(s.hash_size),s.prev=new V(s.w_size),s.lit_bufsize=1<<n+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Ut(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=a,s.method=r,Xn(e)}function El(e,t){var r,i,n,a;if(!e||!e.state||t>Yn||t<0)return e?xe(e,be):be;if(i=e.state,!e.output||!e.input&&e.avail_in!==0||i.status===pt&&t!==ve)return xe(e,e.avail_out===0?Zr:be);if(i.strm=e,r=i.last_flush,i.last_flush=t,i.status===Hr)if(i.wrap===2)e.adler=0,R(i,31),R(i,139),R(i,8),i.gzhead?(R(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),R(i,i.gzhead.time&255),R(i,i.gzhead.time>>8&255),R(i,i.gzhead.time>>16&255),R(i,i.gzhead.time>>24&255),R(i,i.level===9?2:i.strategy>=$t||i.level<2?4:0),R(i,i.gzhead.os&255),i.gzhead.extra&&i.gzhead.extra.length&&(R(i,i.gzhead.extra.length&255),R(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=U(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=Kr):(R(i,0),R(i,0),R(i,0),R(i,0),R(i,0),R(i,i.level===9?2:i.strategy>=$t||i.level<2?4:0),R(i,pl),i.status=Me);else{var o=jr+(i.w_bits-8<<4)<<8,s=-1;i.strategy>=$t||i.level<2?s=0:i.level<6?s=1:i.level===6?s=2:s=3,o|=s<<6,i.strstart!==0&&(o|=dl),o+=31-o%31,i.status=Me,wt(i,o),i.strstart!==0&&(wt(i,e.adler>>>16),wt(i,e.adler&65535)),e.adler=1}if(i.status===Kr)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(i.gzhead.extra.length&65535)&&!(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),Ee(e),n=i.pending,i.pending===i.pending_buf_size));)R(i,i.gzhead.extra[i.gzindex]&255),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=Ht)}else i.status=Ht;if(i.status===Ht)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),Ee(e),n=i.pending,i.pending===i.pending_buf_size)){a=1;break}i.gzindex<i.gzhead.name.length?a=i.gzhead.name.charCodeAt(i.gzindex++)&255:a=0,R(i,a)}while(a!==0);i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),a===0&&(i.gzindex=0,i.status=Kt)}else i.status=Kt;if(i.status===Kt)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),Ee(e),n=i.pending,i.pending===i.pending_buf_size)){a=1;break}i.gzindex<i.gzhead.comment.length?a=i.gzhead.comment.charCodeAt(i.gzindex++)&255:a=0,R(i,a)}while(a!==0);i.gzhead.hcrc&&i.pending>n&&(e.adler=U(e.adler,i.pending_buf,i.pending-n,n)),a===0&&(i.status=Wt)}else i.status=Wt;if(i.status===Wt&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&Ee(e),i.pending+2<=i.pending_buf_size&&(R(i,e.adler&255),R(i,e.adler>>8&255),e.adler=0,i.status=Me)):i.status=Me),i.pending!==0){if(Ee(e),e.avail_out===0)return i.last_flush=-1,me}else if(e.avail_in===0&&Gn(t)<=Gn(r)&&t!==ve)return xe(e,Zr);if(i.status===pt&&e.avail_in!==0)return xe(e,Zr);if(e.avail_in!==0||i.lookahead!==0||t!==Ie&&i.status!==pt){var h=i.strategy===$t?vl(i,t):i.strategy===il?gl(i,t):Qe[i.level].func(i,t);if((h===Fe||h===Xe)&&(i.status=pt),h===N||h===Fe)return e.avail_out===0&&(i.last_flush=-1),me;if(h===_t&&(t===Jf?qf(i):t!==Yn&&(Wn(i,0,0,!1),t===Qf&&(De(i.head),i.lookahead===0&&(i.strstart=0,i.block_start=0,i.insert=0))),Ee(e),e.avail_out===0))return i.last_flush=-1,me}return t!==ve?me:i.wrap<=0?qn:(i.wrap===2?(R(i,e.adler&255),R(i,e.adler>>8&255),R(i,e.adler>>16&255),R(i,e.adler>>24&255),R(i,e.total_in&255),R(i,e.total_in>>8&255),R(i,e.total_in>>16&255),R(i,e.total_in>>24&255)):(wt(i,e.adler>>>16),wt(i,e.adler&65535)),Ee(e),i.wrap>0&&(i.wrap=-i.wrap),i.pending!==0?me:qn)}function kl(e){var t;return!e||!e.state?be:(t=e.state.status,t!==Hr&&t!==Kr&&t!==Ht&&t!==Kt&&t!==Wt&&t!==Me&&t!==pt?xe(e,be):(e.state=null,t===Me?xe(e,el):me))}var Yt=30,Sl=12;function Rl(e,t){var r,i,n,a,o,s,h,f,l,d,p,u,g,S,y,v,k,E,_,A,z,m,C,L,x;r=e.state,i=e.next_in,L=e.input,n=i+(e.avail_in-5),a=e.next_out,x=e.output,o=a-(t-e.avail_out),s=a+(e.avail_out-257),h=r.dmax,f=r.wsize,l=r.whave,d=r.wnext,p=r.window,u=r.hold,g=r.bits,S=r.lencode,y=r.distcode,v=(1<<r.lenbits)-1,k=(1<<r.distbits)-1;e:do{g<15&&(u+=L[i++]<<g,g+=8,u+=L[i++]<<g,g+=8),E=S[u&v];t:for(;;){if(_=E>>>24,u>>>=_,g-=_,_=E>>>16&255,_===0)x[a++]=E&65535;else if(_&16){A=E&65535,_&=15,_&&(g<_&&(u+=L[i++]<<g,g+=8),A+=u&(1<<_)-1,u>>>=_,g-=_),g<15&&(u+=L[i++]<<g,g+=8,u+=L[i++]<<g,g+=8),E=y[u&k];r:for(;;){if(_=E>>>24,u>>>=_,g-=_,_=E>>>16&255,_&16){if(z=E&65535,_&=15,g<_&&(u+=L[i++]<<g,g+=8,g<_&&(u+=L[i++]<<g,g+=8)),z+=u&(1<<_)-1,z>h){e.msg="invalid distance too far back",r.mode=Yt;break e}if(u>>>=_,g-=_,_=a-o,z>_){if(_=z-_,_>l&&r.sane){e.msg="invalid distance too far back",r.mode=Yt;break e}if(m=0,C=p,d===0){if(m+=f-_,_<A){A-=_;do x[a++]=p[m++];while(--_);m=a-z,C=x}}else if(d<_){if(m+=f+d-_,_-=d,_<A){A-=_;do x[a++]=p[m++];while(--_);if(m=0,d<A){_=d,A-=_;do x[a++]=p[m++];while(--_);m=a-z,C=x}}}else if(m+=d-_,_<A){A-=_;do x[a++]=p[m++];while(--_);m=a-z,C=x}for(;A>2;)x[a++]=C[m++],x[a++]=C[m++],x[a++]=C[m++],A-=3;A&&(x[a++]=C[m++],A>1&&(x[a++]=C[m++]))}else{m=a-z;do x[a++]=x[m++],x[a++]=x[m++],x[a++]=x[m++],A-=3;while(A>2);A&&(x[a++]=x[m++],A>1&&(x[a++]=x[m++]))}}else if(_&64){e.msg="invalid distance code",r.mode=Yt;break e}else{E=y[(E&65535)+(u&(1<<_)-1)];continue r}break}}else if(_&64)if(_&32){r.mode=Sl;break e}else{e.msg="invalid literal/length code",r.mode=Yt;break e}else{E=S[(E&65535)+(u&(1<<_)-1)];continue t}break}}while(i<n&&a<s);A=g>>3,i-=A,g-=A<<3,u&=(1<<g)-1,e.next_in=i,e.next_out=a,e.avail_in=i<n?5+(n-i):5-(i-n),e.avail_out=a<s?257+(s-a):257-(a-s),r.hold=u,r.bits=g}var et=15,Jn=852,Qn=592,ea=0,Yr=1,ta=2,Al=[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],Tl=[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],Ll=[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],Ol=[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];function vt(e,t,r,i,n,a,o,s){var h=s.bits,f=0,l=0,d=0,p=0,u=0,g=0,S=0,y=0,v=0,k=0,E,_,A,z,m,C=null,L=0,x,D=new V(et+1),Se=new V(et+1),kt=null,ri=0,ii,St,Rt;for(f=0;f<=et;f++)D[f]=0;for(l=0;l<i;l++)D[t[r+l]]++;for(u=h,p=et;p>=1&&D[p]===0;p--);if(u>p&&(u=p),p===0)return n[a++]=1<<24|64<<16|0,n[a++]=1<<24|64<<16|0,s.bits=1,0;for(d=1;d<p&&D[d]===0;d++);for(u<d&&(u=d),y=1,f=1;f<=et;f++)if(y<<=1,y-=D[f],y<0)return-1;if(y>0&&(e===ea||p!==1))return-1;for(Se[1]=0,f=1;f<et;f++)Se[f+1]=Se[f]+D[f];for(l=0;l<i;l++)t[r+l]!==0&&(o[Se[t[r+l]]++]=l);if(e===ea?(C=kt=o,x=19):e===Yr?(C=Al,L-=257,kt=Tl,ri-=257,x=256):(C=Ll,kt=Ol,x=-1),k=0,l=0,f=d,m=a,g=u,S=0,A=-1,v=1<<u,z=v-1,e===Yr&&v>Jn||e===ta&&v>Qn)return 1;for(;;){ii=f-S,o[l]<x?(St=0,Rt=o[l]):o[l]>x?(St=kt[ri+o[l]],Rt=C[L+o[l]]):(St=96,Rt=0),E=1<<f-S,_=1<<g,d=_;do _-=E,n[m+(k>>S)+_]=ii<<24|St<<16|Rt|0;while(_!==0);for(E=1<<f-1;k&E;)E>>=1;if(E!==0?(k&=E-1,k+=E):k=0,l++,--D[f]===0){if(f===p)break;f=t[r+o[l]]}if(f>u&&(k&z)!==A){for(S===0&&(S=u),m+=d,g=f-S,y=1<<g;g+S<p&&(y-=D[g+S],!(y<=0));)g++,y<<=1;if(v+=1<<g,e===Yr&&v>Jn||e===ta&&v>Qn)return 1;A=k&z,n[A]=u<<24|g<<16|m-a|0}}return k!==0&&(n[m+k]=f-S<<24|64<<16|0),s.bits=u,0}var Cl=0,ra=1,ia=2,na=4,Il=5,qt=6,mt=0,Ml=1,Fl=2,ke=-2,Dl=-3,Nl=-4,zl=-5,aa=8,oa=1,sa=2,fa=3,la=4,ha=5,ca=6,ua=7,da=8,pa=9,_a=10,wa=11,he=12,qr=13,ga=14,Gr=15,va=16,ma=17,ba=18,ya=19,Gt=20,Vt=21,xa=22,Ea=23,ka=24,Sa=25,Ra=26,Vr=27,Aa=28,Ta=29,I=30,Pl=31,Ul=32,Bl=852,Zl=592;function La(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function jl(){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 V(320),this.work=new V(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function $l(e){var t;return!e||!e.state?ke:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=oa,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Bt(Bl),t.distcode=t.distdyn=new Bt(Zl),t.sane=1,t.back=-1,mt)}function Oa(e){var t;return!e||!e.state?ke:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,$l(e))}function Hl(e,t){var r,i;return!e||!e.state||(i=e.state,t<0?(r=0,t=-t):(r=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?ke:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=r,i.wbits=t,Oa(e))}function Kl(e,t){var r,i;return e?(i=new jl,e.state=i,i.window=null,r=Hl(e,t),r!==mt&&(e.state=null),r):ke}var Ca=!0,Xr,Jr;function Wl(e){if(Ca){var t;for(Xr=new Bt(512),Jr=new Bt(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(vt(ra,e.lens,0,288,Xr,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;vt(ia,e.lens,0,32,Jr,0,e.work,{bits:5}),Ca=!1}e.lencode=Xr,e.lenbits=9,e.distcode=Jr,e.distbits=5}function Yl(e,t,r,i){var n,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Ut(a.wsize)),i>=a.wsize?(fe(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(n=a.wsize-a.wnext,n>i&&(n=i),fe(a.window,t,r-i,n,a.wnext),i-=n,i?(fe(a.window,t,r-i,i,0),a.wnext=i,a.whave=a.wsize):(a.wnext+=n,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=n))),0}function ql(e,t){var r,i,n,a,o,s,h,f,l,d,p,u,g,S,y=0,v,k,E,_,A,z,m,C,L=new Ut(4),x,D,Se=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return ke;r=e.state,r.mode===he&&(r.mode=qr),o=e.next_out,n=e.output,h=e.avail_out,a=e.next_in,i=e.input,s=e.avail_in,f=r.hold,l=r.bits,d=s,p=h,C=mt;e:for(;;)switch(r.mode){case oa:if(r.wrap===0){r.mode=qr;break}for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(r.wrap&2&&f===35615){r.check=0,L[0]=f&255,L[1]=f>>>8&255,r.check=U(r.check,L,2,0),f=0,l=0,r.mode=sa;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((f&255)<<8)+(f>>8))%31){e.msg="incorrect header check",r.mode=I;break}if((f&15)!==aa){e.msg="unknown compression method",r.mode=I;break}if(f>>>=4,l-=4,m=(f&15)+8,r.wbits===0)r.wbits=m;else if(m>r.wbits){e.msg="invalid window size",r.mode=I;break}r.dmax=1<<m,e.adler=r.check=1,r.mode=f&512?_a:he,f=0,l=0;break;case sa:for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(r.flags=f,(r.flags&255)!==aa){e.msg="unknown compression method",r.mode=I;break}if(r.flags&57344){e.msg="unknown header flags set",r.mode=I;break}r.head&&(r.head.text=f>>8&1),r.flags&512&&(L[0]=f&255,L[1]=f>>>8&255,r.check=U(r.check,L,2,0)),f=0,l=0,r.mode=fa;case fa:for(;l<32;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.head&&(r.head.time=f),r.flags&512&&(L[0]=f&255,L[1]=f>>>8&255,L[2]=f>>>16&255,L[3]=f>>>24&255,r.check=U(r.check,L,4,0)),f=0,l=0,r.mode=la;case la:for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.head&&(r.head.xflags=f&255,r.head.os=f>>8),r.flags&512&&(L[0]=f&255,L[1]=f>>>8&255,r.check=U(r.check,L,2,0)),f=0,l=0,r.mode=ha;case ha:if(r.flags&1024){for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.length=f,r.head&&(r.head.extra_len=f),r.flags&512&&(L[0]=f&255,L[1]=f>>>8&255,r.check=U(r.check,L,2,0)),f=0,l=0}else r.head&&(r.head.extra=null);r.mode=ca;case ca:if(r.flags&1024&&(u=r.length,u>s&&(u=s),u&&(r.head&&(m=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),fe(r.head.extra,i,a,u,m)),r.flags&512&&(r.check=U(r.check,i,u,a)),s-=u,a+=u,r.length-=u),r.length))break e;r.length=0,r.mode=ua;case ua:if(r.flags&2048){if(s===0)break e;u=0;do m=i[a+u++],r.head&&m&&r.length<65536&&(r.head.name+=String.fromCharCode(m));while(m&&u<s);if(r.flags&512&&(r.check=U(r.check,i,u,a)),s-=u,a+=u,m)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=da;case da:if(r.flags&4096){if(s===0)break e;u=0;do m=i[a+u++],r.head&&m&&r.length<65536&&(r.head.comment+=String.fromCharCode(m));while(m&&u<s);if(r.flags&512&&(r.check=U(r.check,i,u,a)),s-=u,a+=u,m)break e}else r.head&&(r.head.comment=null);r.mode=pa;case pa:if(r.flags&512){for(;l<16;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(f!==(r.check&65535)){e.msg="header crc mismatch",r.mode=I;break}f=0,l=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=he;break;case _a:for(;l<32;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}e.adler=r.check=La(f),f=0,l=0,r.mode=wa;case wa:if(r.havedict===0)return e.next_out=o,e.avail_out=h,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,Fl;e.adler=r.check=1,r.mode=he;case he:if(t===Il||t===qt)break e;case qr:if(r.last){f>>>=l&7,l-=l&7,r.mode=Vr;break}for(;l<3;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}switch(r.last=f&1,f>>>=1,l-=1,f&3){case 0:r.mode=ga;break;case 1:if(Wl(r),r.mode=Gt,t===qt){f>>>=2,l-=2;break e}break;case 2:r.mode=ma;break;case 3:e.msg="invalid block type",r.mode=I}f>>>=2,l-=2;break;case ga:for(f>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if((f&65535)!==(f>>>16^65535)){e.msg="invalid stored block lengths",r.mode=I;break}if(r.length=f&65535,f=0,l=0,r.mode=Gr,t===qt)break e;case Gr:r.mode=va;case va:if(u=r.length,u){if(u>s&&(u=s),u>h&&(u=h),u===0)break e;fe(n,i,a,u,o),s-=u,a+=u,h-=u,o+=u,r.length-=u;break}r.mode=he;break;case ma:for(;l<14;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(r.nlen=(f&31)+257,f>>>=5,l-=5,r.ndist=(f&31)+1,f>>>=5,l-=5,r.ncode=(f&15)+4,f>>>=4,l-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=I;break}r.have=0,r.mode=ba;case ba:for(;r.have<r.ncode;){for(;l<3;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.lens[Se[r.have++]]=f&7,f>>>=3,l-=3}for(;r.have<19;)r.lens[Se[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,x={bits:r.lenbits},C=vt(Cl,r.lens,0,19,r.lencode,0,r.work,x),r.lenbits=x.bits,C){e.msg="invalid code lengths set",r.mode=I;break}r.have=0,r.mode=ya;case ya:for(;r.have<r.nlen+r.ndist;){for(;y=r.lencode[f&(1<<r.lenbits)-1],v=y>>>24,k=y>>>16&255,E=y&65535,!(v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(E<16)f>>>=v,l-=v,r.lens[r.have++]=E;else{if(E===16){for(D=v+2;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(f>>>=v,l-=v,r.have===0){e.msg="invalid bit length repeat",r.mode=I;break}m=r.lens[r.have-1],u=3+(f&3),f>>>=2,l-=2}else if(E===17){for(D=v+3;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}f>>>=v,l-=v,m=0,u=3+(f&7),f>>>=3,l-=3}else{for(D=v+7;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}f>>>=v,l-=v,m=0,u=11+(f&127),f>>>=7,l-=7}if(r.have+u>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=I;break}for(;u--;)r.lens[r.have++]=m}}if(r.mode===I)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=I;break}if(r.lenbits=9,x={bits:r.lenbits},C=vt(ra,r.lens,0,r.nlen,r.lencode,0,r.work,x),r.lenbits=x.bits,C){e.msg="invalid literal/lengths set",r.mode=I;break}if(r.distbits=6,r.distcode=r.distdyn,x={bits:r.distbits},C=vt(ia,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,x),r.distbits=x.bits,C){e.msg="invalid distances set",r.mode=I;break}if(r.mode=Gt,t===qt)break e;case Gt:r.mode=Vt;case Vt:if(s>=6&&h>=258){e.next_out=o,e.avail_out=h,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,Rl(e,p),o=e.next_out,n=e.output,h=e.avail_out,a=e.next_in,i=e.input,s=e.avail_in,f=r.hold,l=r.bits,r.mode===he&&(r.back=-1);break}for(r.back=0;y=r.lencode[f&(1<<r.lenbits)-1],v=y>>>24,k=y>>>16&255,E=y&65535,!(v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(k&&!(k&240)){for(_=v,A=k,z=E;y=r.lencode[z+((f&(1<<_+A)-1)>>_)],v=y>>>24,k=y>>>16&255,E=y&65535,!(_+v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}f>>>=_,l-=_,r.back+=_}if(f>>>=v,l-=v,r.back+=v,r.length=E,k===0){r.mode=Ra;break}if(k&32){r.back=-1,r.mode=he;break}if(k&64){e.msg="invalid literal/length code",r.mode=I;break}r.extra=k&15,r.mode=xa;case xa:if(r.extra){for(D=r.extra;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.length+=f&(1<<r.extra)-1,f>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=Ea;case Ea:for(;y=r.distcode[f&(1<<r.distbits)-1],v=y>>>24,k=y>>>16&255,E=y&65535,!(v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(!(k&240)){for(_=v,A=k,z=E;y=r.distcode[z+((f&(1<<_+A)-1)>>_)],v=y>>>24,k=y>>>16&255,E=y&65535,!(_+v<=l);){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}f>>>=_,l-=_,r.back+=_}if(f>>>=v,l-=v,r.back+=v,k&64){e.msg="invalid distance code",r.mode=I;break}r.offset=E,r.extra=k&15,r.mode=ka;case ka:if(r.extra){for(D=r.extra;l<D;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}r.offset+=f&(1<<r.extra)-1,f>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=I;break}r.mode=Sa;case Sa:if(h===0)break e;if(u=p-h,r.offset>u){if(u=r.offset-u,u>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=I;break}u>r.wnext?(u-=r.wnext,g=r.wsize-u):g=r.wnext-u,u>r.length&&(u=r.length),S=r.window}else S=n,g=o-r.offset,u=r.length;u>h&&(u=h),h-=u,r.length-=u;do n[o++]=S[g++];while(--u);r.length===0&&(r.mode=Vt);break;case Ra:if(h===0)break e;n[o++]=r.length,h--,r.mode=Vt;break;case Vr:if(r.wrap){for(;l<32;){if(s===0)break e;s--,f|=i[a++]<<l,l+=8}if(p-=h,e.total_out+=p,r.total+=p,p&&(e.adler=r.check=r.flags?U(r.check,n,p,o-p):Br(r.check,n,p,o-p)),p=h,(r.flags?f:La(f))!==r.check){e.msg="incorrect data check",r.mode=I;break}f=0,l=0}r.mode=Aa;case Aa:if(r.wrap&&r.flags){for(;l<32;){if(s===0)break e;s--,f+=i[a++]<<l,l+=8}if(f!==(r.total&4294967295)){e.msg="incorrect length check",r.mode=I;break}f=0,l=0}r.mode=Ta;case Ta:C=Ml;break e;case I:C=Dl;break e;case Pl:return Nl;case Ul:default:return ke}return e.next_out=o,e.avail_out=h,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,(r.wsize||p!==e.avail_out&&r.mode<I&&(r.mode<Vr||t!==na))&&Yl(e,e.output,e.next_out,p-e.avail_out),d-=e.avail_in,p-=e.avail_out,e.total_in+=d,e.total_out+=p,r.total+=p,r.wrap&&p&&(e.adler=r.check=r.flags?U(r.check,n,p,e.next_out-p):Br(r.check,n,p,e.next_out-p)),e.data_type=r.bits+(r.last?64:0)+(r.mode===he?128:0)+(r.mode===Gt||r.mode===Gr?256:0),(d===0&&p===0||t===na)&&C===mt&&(C=zl),C}function Gl(e){if(!e||!e.state)return ke;var t=e.state;return t.window&&(t.window=null),e.state=null,mt}var Qr=0,tt=1,Xt=2,bt=3,Jt=4,rt=5,yt=6,xt=7,Ia=0,Ma=1,Fa=2,Da=3,ei=4,Na=5,Vl=6,Qt=0,za=1,Pa=2,Xl=-1,Jl=-2,Ql=-3,Ua=-5,eh=0,th=1,rh=9,ih=-1,nh=1,ah=2,oh=3,sh=4,fh=0,lh=0,hh=1,ch=2,Ba=8;function J(e){if(e<tt||e>xt)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}J.prototype.init=function(e,t,r,i,n){this.windowBits=e,this.level=t,this.memLevel=r,this.strategy=i,(this.mode===bt||this.mode===Jt)&&(this.windowBits+=16),this.mode===xt&&(this.windowBits+=32),(this.mode===rt||this.mode===yt)&&(this.windowBits=-this.windowBits),this.strm=new Of;var a;switch(this.mode){case tt:case bt:case rt:a=xl(this.strm,this.level,Ba,this.windowBits,this.memLevel,this.strategy);break;case Xt:case Jt:case yt:case xt:a=Kl(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}if(a!==Qt){this._error(a);return}this.write_in_progress=!1,this.init_done=!0},J.prototype.params=function(){throw new Error("deflateParams Not supported")},J.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===Qr)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")},J.prototype.write=function(e,t,r,i,n,a,o){this._writeCheck(),this.write_in_progress=!0;var s=this;return oe.nextTick(function(){s.write_in_progress=!1;var h=s._write(e,t,r,i,n,a,o);s.callback(h[0],h[1]),s.pending_close&&s.close()}),this};function uh(e,t){for(var r=0;r<e.length;r++)this[t+r]=e[r]}J.prototype.writeSync=function(e,t,r,i,n,a,o){return this._writeCheck(),this._write(e,t,r,i,n,a,o)},J.prototype._write=function(e,t,r,i,n,a,o){if(this.write_in_progress=!0,e!==Ia&&e!==Ma&&e!==Fa&&e!==Da&&e!==ei&&e!==Na)throw new Error("Invalid flush value");t==null&&(t=new c(0),i=0,r=0),n._set?n.set=n._set:n.set=uh;var s=this.strm;s.avail_in=i,s.input=t,s.next_in=r,s.avail_out=o,s.output=n,s.next_out=a;var h;switch(this.mode){case tt:case bt:case rt:h=El(s,e);break;case xt:case Xt:case Jt:case yt:h=ql(s,e);break;default:throw new Error("Unknown mode "+this.mode)}return this._checkError(h,s,e)||this._error(h),this.write_in_progress=!1,[s.avail_in,s.avail_out]},J.prototype._checkError=function(e,t,r){switch(e){case Qt:case Ua:if(t.avail_out!==0&&r===ei)return!1;break;case za:break;case Pa:return!1;default:return!1}return!0},J.prototype.close=function(){if(this.write_in_progress){this.pending_close=!0;return}this.pending_close=!1,this.mode===tt||this.mode===bt||this.mode===rt?kl(this.strm):Gl(this.strm),this.mode=Qr};var er;J.prototype.reset=function(){switch(this.mode){case tt:case rt:er=Xn(this.strm);break;case Xt:case yt:er=Oa(this.strm);break}er!==Qt&&this._error(er)},J.prototype._error=function(e){this.onerror(kn[e]+": "+this.strm.msg,e),this.write_in_progress=!1,this.pending_close&&this.close()};var Za=Object.freeze({__proto__:null,DEFLATE:tt,DEFLATERAW:rt,GUNZIP:Jt,GZIP:bt,INFLATE:Xt,INFLATERAW:yt,NONE:Qr,UNZIP:xt,Z_BEST_COMPRESSION:rh,Z_BEST_SPEED:th,Z_BINARY:lh,Z_BLOCK:Na,Z_BUF_ERROR:Ua,Z_DATA_ERROR:Ql,Z_DEFAULT_COMPRESSION:ih,Z_DEFAULT_STRATEGY:fh,Z_DEFLATED:Ba,Z_ERRNO:Xl,Z_FILTERED:nh,Z_FINISH:ei,Z_FIXED:sh,Z_FULL_FLUSH:Da,Z_HUFFMAN_ONLY:ah,Z_NEED_DICT:Pa,Z_NO_COMPRESSION:eh,Z_NO_FLUSH:Ia,Z_OK:Qt,Z_PARTIAL_FLUSH:Ma,Z_RLE:oh,Z_STREAM_END:za,Z_STREAM_ERROR:Jl,Z_SYNC_FLUSH:Fa,Z_TEXT:hh,Z_TREES:Vl,Z_UNKNOWN:ch,Zlib:J});function dh(e,t){if(!e)throw new Error(t)}var w={};Object.keys(Za).forEach(function(e){w[e]=Za[e]}),w.Z_MIN_WINDOWBITS=8,w.Z_MAX_WINDOWBITS=15,w.Z_DEFAULT_WINDOWBITS=15,w.Z_MIN_CHUNK=64,w.Z_MAX_CHUNK=1/0,w.Z_DEFAULT_CHUNK=16*1024,w.Z_MIN_MEMLEVEL=1,w.Z_MAX_MEMLEVEL=9,w.Z_DEFAULT_MEMLEVEL=8,w.Z_MIN_LEVEL=-1,w.Z_MAX_LEVEL=9,w.Z_DEFAULT_LEVEL=w.Z_DEFAULT_COMPRESSION;var Et={Z_OK:w.Z_OK,Z_STREAM_END:w.Z_STREAM_END,Z_NEED_DICT:w.Z_NEED_DICT,Z_ERRNO:w.Z_ERRNO,Z_STREAM_ERROR:w.Z_STREAM_ERROR,Z_DATA_ERROR:w.Z_DATA_ERROR,Z_MEM_ERROR:w.Z_MEM_ERROR,Z_BUF_ERROR:w.Z_BUF_ERROR,Z_VERSION_ERROR:w.Z_VERSION_ERROR};Object.keys(Et).forEach(function(e){Et[Et[e]]=e});function ph(e){return new Pe(e)}function _h(e){return new Ue(e)}function wh(e){return new je(e)}function gh(e){return new $e(e)}function vh(e){return new Be(e)}function mh(e){return new Ze(e)}function bh(e){return new He(e)}function yh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new Pe(t),e,r)}function xh(e,t){return ze(new Pe(t),e)}function Eh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new Be(t),e,r)}function kh(e,t){return ze(new Be(t),e)}function Sh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new je(t),e,r)}function Rh(e,t){return ze(new je(t),e)}function Ah(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new He(t),e,r)}function Th(e,t){return ze(new He(t),e)}function Lh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new Ue(t),e,r)}function Oh(e,t){return ze(new Ue(t),e)}function Ch(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new Ze(t),e,r)}function Ih(e,t){return ze(new Ze(t),e)}function Mh(e,t,r){return typeof t=="function"&&(r=t,t={}),Ne(new $e(t),e,r)}function Fh(e,t){return ze(new $e(t),e)}function Ne(e,t,r){var i=[],n=0;e.on("error",o),e.on("end",s),e.end(t),a();function a(){for(var h;(h=e.read())!==null;)i.push(h),n+=h.length;e.once("readable",a)}function o(h){e.removeListener("end",s),e.removeListener("readable",a),r(h)}function s(){var h=c.concat(i,n);i=[],r(null,h),e.close()}}function ze(e,t){if(typeof t=="string"&&(t=new c(t)),!c.isBuffer(t))throw new TypeError("Not a string or buffer");var r=w.Z_FINISH;return e._processChunk(t,r)}function Pe(e){if(!(this instanceof Pe))return new Pe(e);M.call(this,e,w.DEFLATE)}function Ue(e){if(!(this instanceof Ue))return new Ue(e);M.call(this,e,w.INFLATE)}function Be(e){if(!(this instanceof Be))return new Be(e);M.call(this,e,w.GZIP)}function Ze(e){if(!(this instanceof Ze))return new Ze(e);M.call(this,e,w.GUNZIP)}function je(e){if(!(this instanceof je))return new je(e);M.call(this,e,w.DEFLATERAW)}function $e(e){if(!(this instanceof $e))return new $e(e);M.call(this,e,w.INFLATERAW)}function He(e){if(!(this instanceof He))return new He(e);M.call(this,e,w.UNZIP)}function M(e,t){if(this._opts=e=e||{},this._chunkSize=e.chunkSize||w.Z_DEFAULT_CHUNK,G.call(this,e),e.flush&&e.flush!==w.Z_NO_FLUSH&&e.flush!==w.Z_PARTIAL_FLUSH&&e.flush!==w.Z_SYNC_FLUSH&&e.flush!==w.Z_FULL_FLUSH&&e.flush!==w.Z_FINISH&&e.flush!==w.Z_BLOCK)throw new Error("Invalid flush flag: "+e.flush);if(this._flushFlag=e.flush||w.Z_NO_FLUSH,e.chunkSize&&(e.chunkSize<w.Z_MIN_CHUNK||e.chunkSize>w.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBits<w.Z_MIN_WINDOWBITS||e.windowBits>w.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.level<w.Z_MIN_LEVEL||e.level>w.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevel<w.Z_MIN_MEMLEVEL||e.memLevel>w.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=w.Z_FILTERED&&e.strategy!=w.Z_HUFFMAN_ONLY&&e.strategy!=w.Z_RLE&&e.strategy!=w.Z_FIXED&&e.strategy!=w.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!c.isBuffer(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new w.Zlib(t);var r=this;this._hadError=!1,this._binding.onerror=function(a,o){r._binding=null,r._hadError=!0;var s=new Error(a);s.errno=o,s.code=Et[o],r.emit("error",s)};var i=w.Z_DEFAULT_COMPRESSION;typeof e.level=="number"&&(i=e.level);var n=w.Z_DEFAULT_STRATEGY;typeof e.strategy=="number"&&(n=e.strategy),this._binding.init(e.windowBits||w.Z_DEFAULT_WINDOWBITS,i,e.memLevel||w.Z_DEFAULT_MEMLEVEL,n,e.dictionary),this._buffer=new c(this._chunkSize),this._offset=0,this._closed=!1,this._level=i,this._strategy=n,this.once("end",this.close)}Z(M,G),M.prototype.params=function(e,t,r){if(e<w.Z_MIN_LEVEL||e>w.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=w.Z_FILTERED&&t!=w.Z_HUFFMAN_ONLY&&t!=w.Z_RLE&&t!=w.Z_FIXED&&t!=w.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var i=this;this.flush(w.Z_SYNC_FLUSH,function(){i._binding.params(e,t),i._hadError||(i._level=e,i._strategy=t,r&&r())})}else oe.nextTick(r)},M.prototype.reset=function(){return this._binding.reset()},M.prototype._flush=function(e){this._transform(new c(0),"",e)},M.prototype.flush=function(e,t){var r=this._writableState;if((typeof e=="function"||e===void 0&&!t)&&(t=e,e=w.Z_FULL_FLUSH),r.ended)t&&oe.nextTick(t);else if(r.ending)t&&this.once("end",t);else if(r.needDrain){var i=this;this.once("drain",function(){i.flush(t)})}else this._flushFlag=e,this.write(new c(0),"",t)},M.prototype.close=function(e){if(e&&oe.nextTick(e),!this._closed){this._closed=!0,this._binding.close();var t=this;oe.nextTick(function(){t.emit("close")})}},M.prototype._transform=function(e,t,r){var i,n=this._writableState,a=n.ending||n.ended,o=a&&(!e||n.length===e.length);if(!e===null&&!c.isBuffer(e))return r(new Error("invalid input"));o?i=w.Z_FINISH:(i=this._flushFlag,e.length>=n.length&&(this._flushFlag=this._opts.flush||w.Z_NO_FLUSH)),this._processChunk(e,i,r)},M.prototype._processChunk=function(e,t,r){var i=e&&e.length,n=this._chunkSize-this._offset,a=0,o=this,s=typeof r=="function";if(!s){var h=[],f=0,l;this.on("error",function(S){l=S});do var d=this._binding.writeSync(t,e,a,i,this._buffer,this._offset,n);while(!this._hadError&&g(d[0],d[1]));if(this._hadError)throw l;var p=c.concat(h,f);return this.close(),p}var u=this._binding.write(t,e,a,i,this._buffer,this._offset,n);u.buffer=e,u.callback=g;function g(S,y){if(!o._hadError){var v=n-y;if(dh(v>=0,"have should not go down"),v>0){var k=o._buffer.slice(o._offset,o._offset+v);o._offset+=v,s?o.push(k):(h.push(k),f+=k.length)}if((y===0||o._offset>=o._chunkSize)&&(n=o._chunkSize,o._offset=0,o._buffer=new c(o._chunkSize)),y===0){if(a+=i-S,i=S,!s)return!0;var E=o._binding.write(t,e,a,i,o._buffer,o._offset,o._chunkSize);E.callback=g,E.buffer=e;return}if(!s)return!1;r()}}},Z(Pe,M),Z(Ue,M),Z(Be,M),Z(Ze,M),Z(je,M),Z($e,M),Z(He,M);var ja={codes:Et,createDeflate:ph,createInflate:_h,createDeflateRaw:wh,createInflateRaw:gh,createGzip:vh,createGunzip:mh,createUnzip:bh,deflate:yh,deflateSync:xh,gzip:Eh,gzipSync:kh,deflateRaw:Sh,deflateRawSync:Rh,unzip:Ah,unzipSync:Th,inflate:Lh,inflateSync:Oh,gunzip:Ch,gunzipSync:Ih,inflateRaw:Mh,inflateRawSync:Fh,Deflate:Pe,Inflate:Ue,Gzip:Be,Gunzip:Ze,DeflateRaw:je,InflateRaw:$e,Unzip:He,Zlib:M};class $a extends hr{constructor({client:t,keyPrefix:r="cache"}){super(),this.client=t,this.keyPrefix=r}async _set(t,r){let i=JSON.stringify(r);const n=i.length;return i=ja.gzipSync(i).toString("base64"),this.client.putObject({key:K(this.keyPrefix,t),body:i,contentEncoding:"gzip",contentType:"application/gzip",metadata:{compressor:"zlib",compressed:"true","client-id":this.client.id,"length-serialized":String(n),"length-compressed":String(i.length),"compression-gain":(i.length/n).toFixed(2)}})}async _get(t){const{Body:r}=await this.client.getObject(K(this.keyPrefix,t));let i=await lr(r);return i=Buffer.from(i,"base64"),i=ja.unzipSync(i).toString(),JSON.parse(i)}async _del(t){return await this.client.deleteObject(K(this.keyPrefix,t)),!0}async _clear(t=""){const r=await this.client.getAllKeys({prefix:K(this.keyPrefix,t)});await this.client.deleteObjects(r)}}class Ha extends b{async setup(t){}async start(){}async stop(){}beforeSetup(){this.emit("plugin.beforeSetup",new Date)}afterSetup(){this.emit("plugin.afterSetup",new Date)}beforeStart(){this.emit("plugin.beforeStart",new Date)}afterStart(){this.emit("plugin.afterStart",new Date)}beforeStop(){this.emit("plugin.beforeStop",new Date)}afterStop(){this.emit("plugin.afterStop",new Date)}}const Dh={setup(e){},start(){},stop(){}},Nh={async setup(e){this.client=e.client,this.map={PutObjectCommand:"put",GetObjectCommand:"get",HeadObjectCommand:"get",DeleteObjectCommand:"delete",DeleteObjectsCommand:"delete",ListObjectsV2Command:"list"},this.costs={total:0,prices:{put:.005/1e3,copy:.005/1e3,list:.005/1e3,post:.005/1e3,get:4e-4/1e3,select:4e-4/1e3,delete:4e-4/1e3},requests:{total:0,put:0,post:0,copy:0,list:0,get:0,select:0,delete:0},events:{total:0,PutObjectCommand:0,GetObjectCommand:0,HeadObjectCommand:0,DeleteObjectCommand:0,DeleteObjectsCommand:0,ListObjectsV2Command:0}},this.client.costs=JSON.parse(JSON.stringify(this.costs))},async start(){this.client.on("command.response",e=>this.addRequest(e,this.map[e]))},addRequest(e,t){this.costs.events[e]++,this.costs.events.total++,this.costs.requests.total++,this.costs.requests[t]++,this.costs.total+=this.costs.prices[t],this.client.costs.events[e]++,this.client.costs.events.total++,this.client.costs.requests.total++,this.client.costs.requests[t]++,this.client.costs.total+=this.client.costs.prices[t]}};class zh extends Ha{constructor(t={}){super(),this.driver=t.driver}async setup(t){this.database=t,this.driver||(this.driver=new $a({keyPrefix:"cache",client:t.client})),this.installDatabaseProxy();for(const r of Object.values(t.resources))this.installResourcesProxies(r)}async start(){}async stop(){}installDatabaseProxy(){const t=this.installResourcesProxies.bind(this);this.database._createResource=this.database.createResource,this.database.createResource=async function(...r){const i=await this._createResource(...r);return t(i),i}}installResourcesProxies(t){t.cache=this.driver;let r=`resource=${t.name}`;this.driver.keyPrefix&&(this.driver.keyPrefix=K(this.driver.keyPrefix,r)),t.cacheKeyFor=async function({params:i={},action:n="list"}){let a=Object.keys(i).sort().map(o=>`${o}:${i[o]}`).join("|")||"empty";return a=await Si(a),a=K(r,`action=${n}`,`${a}.json.gz`),a},t._count=t.count,t._listIds=t.listIds,t._getMany=t.getMany,t._getAll=t.getAll,t._page=t.page,t.count=async function(){const i=await this.cacheKeyFor({action:"count"});try{const a=await this.cache.get(i);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const n=await t._count();return await this.cache.set(i,n),n},t.listIds=async function(){const i=await this.cacheKeyFor({action:"listIds"});try{const a=await this.cache.get(i);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const n=await t._listIds();return await this.cache.set(i,n),n},t.getMany=async function(i){const n=await this.cacheKeyFor({action:"getMany",params:{ids:i}});try{const o=await this.cache.get(n);if(o)return o}catch(o){if(o.name!=="NoSuchKey")throw o}const a=await t._getMany(i);return await this.cache.set(n,a),a},t.getAll=async function(){const i=await this.cacheKeyFor({action:"getAll"});try{const a=await this.cache.get(i);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const n=await t._getAll();return await this.cache.set(i,n),n},t.page=async function({offset:i,size:n}){const a=await this.cacheKeyFor({action:"page",params:{offset:i,size:n}});try{const s=await this.cache.get(a);if(s)return s}catch(s){if(s.name!=="NoSuchKey")throw s}const o=await t._page({offset:i,size:n});return await this.cache.set(a,o),o},t._insert=t.insert,t._update=t.update,t._delete=t.delete,t._deleteMany=t.deleteMany,t.insert=async function(...i){const n=await t._insert(...i);return await this.cache.clear(r),n},t.update=async function(...i){const n=await t._update(...i);return await this.cache.clear(r),n},t.delete=async function(...i){const n=await t._delete(...i);return await this.cache.clear(r),n},t.deleteMany=async function(...i){const n=await t._deleteMany(...i);return await this.cache.clear(r),n}}}export{Ke as BaseError,hr as Cache,zh as CachePlugin,ki as Client,Ei as ConnectionString,Nh as CostsPlugin,Di as Database,bi as ErrorMap,At as InvalidResourceItem,Oo as MemoryCache,vi as MissingMetadata,wi as NoSuchBucket,or as NoSuchKey,gi as NotFound,Ha as Plugin,Dh as PluginObject,Ci as ResourceIdsPageReader,Oi as ResourceIdsReader,Ii as ResourceReader,Mi as ResourceWriter,$a as S3Cache,xi as S3_DEFAULT_ENDPOINT,yi as S3_DEFAULT_REGION,Lo as S3db,mi as UnknownError,Ti as Validator,Li as ValidatorManager,Ri as decrypt,sr as encrypt,Si as sha256,lr as streamToString};
package/dist/s3db.iife.js CHANGED
@@ -1181,7 +1181,7 @@ ${JSON.stringify(validation, null, 2)}`
1181
1181
  let lib;
1182
1182
  if (process) {
1183
1183
  try {
1184
- const { webcrypto } = await Promise.resolve().then(function () { return _polyfillNode_crypto; });
1184
+ const { webcrypto } = await import('crypto');
1185
1185
  lib = webcrypto;
1186
1186
  } catch (error) {
1187
1187
  throw new Error("Crypto API not available");
@@ -13179,10 +13179,6 @@ ${JSON.stringify(validation, null, 2)}`
13179
13179
  }
13180
13180
  }
13181
13181
 
13182
- var _polyfillNode_crypto = /*#__PURE__*/Object.freeze({
13183
- __proto__: null
13184
- });
13185
-
13186
13182
  exports.BaseError = BaseError;
13187
13183
  exports.Cache = Cache;
13188
13184
  exports.CachePlugin = CachePlugin;