tempest.games 0.0.10 → 0.0.12
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/bin/backend.bun.js
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var
|
|
3
|
+
var Wl=Object.create;var{getPrototypeOf:Il,defineProperty:aa,getOwnPropertyNames:El}=Object;var Vl=Object.prototype.hasOwnProperty;var Ul=(n,i,o)=>{o=n!=null?Wl(Il(n)):{};const e=i||!n||!n.__esModule?aa(o,"default",{value:n,enumerable:!0}):o;for(let a of El(n))if(!Vl.call(e,a))aa(e,a,{get:()=>n[a],enumerable:!0});return e};var A=(n,i)=>()=>(i||n((i={exports:{}}).exports,i),i.exports);var Na=A((WF,se)=>{function Pl(n){var i=n.split(",");for(var o=0,e=0;o<i.length;o++){var a=_l(i[o].trim(),o);if(a)i[e++]=a}return i.length=e,i}function _l(n,i){var o=Ll.exec(n);if(!o)return null;var e=o[1],a=1;if(o[2]){var t=o[2].split(";");for(var s=0;s<t.length;s++){var c=t[s].trim().split("=");if(c[0]==="q"){a=parseFloat(c[1]);break}}}return{charset:e,q:a,i}}function ql(n,i,o){var e={o:-1,q:0,s:0};for(var a=0;a<i.length;a++){var t=nr(n,i[a],o);if(t&&(e.s-t.s||e.q-t.q||e.o-t.o)<0)e=t}return e}function nr(n,i,o){var e=0;if(i.charset.toLowerCase()===n.toLowerCase())e|=1;else if(i.charset!=="*")return null;return{i:o,o:i.i,q:i.q,s:e}}function Ha(n,i){var o=Pl(n===void 0?"*":n||"");if(!i)return o.filter(Qa).sort(Za).map(ir);var e=i.map(function a(t,s){return ql(t,o,s)});return e.filter(Qa).sort(Za).map(function a(t){return i[e.indexOf(t)]})}function Za(n,i){return i.q-n.q||i.s-n.s||n.o-i.o||n.i-i.i||0}function ir(n){return n.charset}function Qa(n){return n.q>0}se.exports=Ha;se.exports.preferredCharsets=Ha;var Ll=/^\s*([^\s;]+)\s*(?:;(.*))?$/});var qa=A((IF,ce)=>{function er(n){var i=n.split(","),o=!1,e=1;for(var a=0,t=0;a<i.length;a++){var s=ar(i[a].trim(),a);if(s)i[t++]=s,o=o||Pa("identity",s),e=Math.min(e,s.q||1)}if(!o)i[t++]={encoding:"identity",q:e,i:a};return i.length=t,i}function ar(n,i){var o=or.exec(n);if(!o)return null;var e=o[1],a=1;if(o[2]){var t=o[2].split(";");for(var s=0;s<t.length;s++){var c=t[s].trim().split("=");if(c[0]==="q"){a=parseFloat(c[1]);break}}}return{encoding:e,q:a,i}}function tr(n,i,o){var e={o:-1,q:0,s:0};for(var a=0;a<i.length;a++){var t=Pa(n,i[a],o);if(t&&(e.s-t.s||e.q-t.q||e.o-t.o)<0)e=t}return e}function Pa(n,i,o){var e=0;if(i.encoding.toLowerCase()===n.toLowerCase())e|=1;else if(i.encoding!=="*")return null;return{i:o,o:i.i,q:i.q,s:e}}function _a(n,i){var o=er(n||"");if(!i)return o.filter(La).sort(Da).map(sr);var e=i.map(function a(t,s){return tr(t,o,s)});return e.filter(La).sort(Da).map(function a(t){return i[e.indexOf(t)]})}function Da(n,i){return i.q-n.q||i.s-n.s||n.o-i.o||n.i-i.i||0}function sr(n){return n.encoding}function La(n){return n.q>0}ce.exports=_a;ce.exports.preferredEncodings=_a;var or=/^\s*([^\s;]+)\s*(?:;(.*))?$/});var at=A((EF,le)=>{function lr(n){var i=n.split(",");for(var o=0,e=0;o<i.length;o++){var a=ot(i[o].trim(),o);if(a)i[e++]=a}return i.length=e,i}function ot(n,i){var o=cr.exec(n);if(!o)return null;var e=o[1],a=o[2],t=e;if(a)t+="-"+a;var s=1;if(o[3]){var c=o[3].split(";");for(var l=0;l<c.length;l++){var r=c[l].split("=");if(r[0]==="q")s=parseFloat(r[1])}}return{prefix:e,suffix:a,q:s,i,full:t}}function rr(n,i,o){var e={o:-1,q:0,s:0};for(var a=0;a<i.length;a++){var t=pr(n,i[a],o);if(t&&(e.s-t.s||e.q-t.q||e.o-t.o)<0)e=t}return e}function pr(n,i,o){var e=ot(n);if(!e)return null;var a=0;if(i.full.toLowerCase()===e.full.toLowerCase())a|=4;else if(i.prefix.toLowerCase()===e.full.toLowerCase())a|=2;else if(i.full.toLowerCase()===e.prefix.toLowerCase())a|=1;else if(i.full!=="*")return null;return{i:o,o:i.i,q:i.q,s:a}}function et(n,i){var o=lr(n===void 0?"*":n||"");if(!i)return o.filter(it).sort(nt).map(mr);var e=i.map(function a(t,s){return rr(t,o,s)});return e.filter(it).sort(nt).map(function a(t){return i[e.indexOf(t)]})}function nt(n,i){return i.q-n.q||i.s-n.s||n.o-i.o||n.i-i.i||0}function mr(n){return n.full}function it(n){return n.q>0}le.exports=et;le.exports.preferredLanguages=et;var cr=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/});var pt=A((VF,re)=>{function xr(n){var i=br(n);for(var o=0,e=0;o<i.length;o++){var a=ct(i[o].trim(),o);if(a)i[e++]=a}return i.length=e,i}function ct(n,i){var o=ur.exec(n);if(!o)return null;var e=Object.create(null),a=1,t=o[2],s=o[1];if(o[3]){var c=Tr(o[3]).map(vr);for(var l=0;l<c.length;l++){var r=c[l],p=r[0].toLowerCase(),m=r[1],T=m&&m[0]==='"'&&m[m.length-1]==='"'?m.substr(1,m.length-2):m;if(p==="q"){a=parseFloat(T);break}e[p]=T}}return{type:s,subtype:t,params:e,q:a,i}}function dr(n,i,o){var e={o:-1,q:0,s:0};for(var a=0;a<i.length;a++){var t=fr(n,i[a],o);if(t&&(e.s-t.s||e.q-t.q||e.o-t.o)<0)e=t}return e}function fr(n,i,o){var e=ct(n),a=0;if(!e)return null;if(i.type.toLowerCase()==e.type.toLowerCase())a|=4;else if(i.type!="*")return null;if(i.subtype.toLowerCase()==e.subtype.toLowerCase())a|=2;else if(i.subtype!="*")return null;var t=Object.keys(i.params);if(t.length>0)if(t.every(function(s){return i.params[s]=="*"||(i.params[s]||"").toLowerCase()==(e.params[s]||"").toLowerCase()}))a|=1;else return null;return{i:o,o:i.i,q:i.q,s:a}}function lt(n,i){var o=xr(n===void 0?"*/*":n||"");if(!i)return o.filter(st).sort(tt).map(yr);var e=i.map(function a(t,s){return dr(t,o,s)});return e.filter(st).sort(tt).map(function a(t){return i[e.indexOf(t)]})}function tt(n,i){return i.q-n.q||i.s-n.s||n.o-i.o||n.i-i.i||0}function yr(n){return n.type+"/"+n.subtype}function st(n){return n.q>0}function rt(n){var i=0,o=0;while((o=n.indexOf('"',o))!==-1)i++,o++;return i}function vr(n){var i=n.indexOf("="),o,e;if(i===-1)o=n;else o=n.substr(0,i),e=n.substr(i+1);return[o,e]}function br(n){var i=n.split(",");for(var o=1,e=0;o<i.length;o++)if(rt(i[e])%2==0)i[++e]=i[o];else i[e]+=","+i[o];return i.length=e+1,i}function Tr(n){var i=n.split(";");for(var o=1,e=0;o<i.length;o++)if(rt(i[e])%2==0)i[++e]=i[o];else i[e]+=";"+i[o];i.length=e+1;for(var o=0;o<i.length;o++)i[o]=i[o].trim();return i}re.exports=lt;re.exports.preferredMediaTypes=lt;var ur=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/});var mt=A((UF,pe)=>{function Y(n){if(!(this instanceof Y))return new Y(n);this.request=n}/*!
|
|
4
4
|
* negotiator
|
|
5
5
|
* Copyright(c) 2012 Federico Romero
|
|
6
6
|
* Copyright(c) 2012-2014 Isaac Z. Schlueter
|
|
7
7
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
8
8
|
* MIT Licensed
|
|
9
|
-
*/var br=Ha(),Tr=_a(),Sr=et(),wr=rt();pe.exports=Y;pe.exports.Negotiator=Y;Y.prototype.charset=function n(i){var o=this.charsets(i);return o&&o[0]};Y.prototype.charsets=function n(i){return br(this.request.headers["accept-charset"],i)};Y.prototype.encoding=function n(i){var o=this.encodings(i);return o&&o[0]};Y.prototype.encodings=function n(i){return Tr(this.request.headers["accept-encoding"],i)};Y.prototype.language=function n(i){var o=this.languages(i);return o&&o[0]};Y.prototype.languages=function n(i){return Sr(this.request.headers["accept-language"],i)};Y.prototype.mediaType=function n(i){var o=this.mediaTypes(i);return o&&o[0]};Y.prototype.mediaTypes=function n(i){return wr(this.request.headers.accept,i)};Y.prototype.preferredCharset=Y.prototype.charset;Y.prototype.preferredCharsets=Y.prototype.charsets;Y.prototype.preferredEncoding=Y.prototype.encoding;Y.prototype.preferredEncodings=Y.prototype.encodings;Y.prototype.preferredLanguage=Y.prototype.language;Y.prototype.preferredLanguages=Y.prototype.languages;Y.prototype.preferredMediaType=Y.prototype.mediaType;Y.prototype.preferredMediaTypes=Y.prototype.mediaTypes});var mt=A((XF,gr)=>{gr.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var xt=A((ZF,ut)=>{/*!
|
|
9
|
+
*/var Sr=Na(),wr=qa(),gr=at(),Fr=pt();pe.exports=Y;pe.exports.Negotiator=Y;Y.prototype.charset=function n(i){var o=this.charsets(i);return o&&o[0]};Y.prototype.charsets=function n(i){return Sr(this.request.headers["accept-charset"],i)};Y.prototype.encoding=function n(i){var o=this.encodings(i);return o&&o[0]};Y.prototype.encodings=function n(i){return wr(this.request.headers["accept-encoding"],i)};Y.prototype.language=function n(i){var o=this.languages(i);return o&&o[0]};Y.prototype.languages=function n(i){return gr(this.request.headers["accept-language"],i)};Y.prototype.mediaType=function n(i){var o=this.mediaTypes(i);return o&&o[0]};Y.prototype.mediaTypes=function n(i){return Fr(this.request.headers.accept,i)};Y.prototype.preferredCharset=Y.prototype.charset;Y.prototype.preferredCharsets=Y.prototype.charsets;Y.prototype.preferredEncoding=Y.prototype.encoding;Y.prototype.preferredEncodings=Y.prototype.encodings;Y.prototype.preferredLanguage=Y.prototype.language;Y.prototype.preferredLanguages=Y.prototype.languages;Y.prototype.preferredMediaType=Y.prototype.mediaType;Y.prototype.preferredMediaTypes=Y.prototype.mediaTypes});var ut=A((YF,hr)=>{hr.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var dt=A((BF,xt)=>{/*!
|
|
10
10
|
* mime-db
|
|
11
11
|
* Copyright(c) 2014 Jonathan Ong
|
|
12
12
|
* Copyright(c) 2015-2022 Douglas Christopher Wilson
|
|
13
13
|
* MIT Licensed
|
|
14
|
-
*/
|
|
14
|
+
*/xt.exports=ut()});var Tt=A((jr)=>{function yt(n){if(!n||typeof n!=="string")return!1;var i=ft.exec(n),o=i&&lo[i[1].toLowerCase()];if(o&&o.charset)return o.charset;if(i&&Kr.test(i[1]))return"UTF-8";return!1}function Rr(n){if(!n||typeof n!=="string")return!1;var i=n.indexOf("/")===-1?jr.lookup(n):n;if(!i)return!1;if(i.indexOf("charset")===-1){var o=jr.charset(i);if(o)i+="; charset="+o.toLowerCase()}return i}function Mr(n){if(!n||typeof n!=="string")return!1;var i=ft.exec(n),o=i&&jr.extensions[i[1].toLowerCase()];if(!o||!o.length)return!1;return o[0]}function Jr(n){if(!n||typeof n!=="string")return!1;var i=Ar("x."+n).toLowerCase().substr(1);if(!i)return!1;return jr.types[i]||!1}function $r(n,i){var o=["nginx","apache",void 0,"iana"];Object.keys(lo).forEach(function e(a){var t=lo[a],s=t.extensions;if(!s||!s.length)return;n[a]=s;for(var c=0;c<s.length;c++){var l=s[c];if(i[l]){var r=o.indexOf(lo[i[l]].source),p=o.indexOf(t.source);if(i[l]!=="application/octet-stream"&&(r>p||r===p&&i[l].substr(0,12)==="application/"))continue}i[l]=a}})}/*!
|
|
15
15
|
* mime-types
|
|
16
16
|
* Copyright(c) 2014 Jonathan Ong
|
|
17
17
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
18
18
|
* MIT Licensed
|
|
19
|
-
*/var lo=
|
|
19
|
+
*/var lo=dt(),Ar=import.meta.require("path").extname,ft=/^\s*([^;\s]*)(?:;|\s|$)/,Kr=/^text\//i;jr.charset=yt;jr.charsets={lookup:yt};jr.contentType=Rr;jr.extension=Mr;jr.extensions=Object.create(null);jr.lookup=Jr;jr.types=Object.create(null);$r(jr.extensions,jr.types)});var ro=A((GF,St)=>{function mn(n){if(!(this instanceof mn))return new mn(n);this.headers=n.headers,this.negotiator=new Cr(n)}function Ir(n){return n.indexOf("/")===-1?Wr.lookup(n):n}function Er(n){return typeof n==="string"}/*!
|
|
20
20
|
* accepts
|
|
21
21
|
* Copyright(c) 2014 Jonathan Ong
|
|
22
22
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
23
23
|
* MIT Licensed
|
|
24
|
-
*/var
|
|
24
|
+
*/var Cr=mt(),Wr=Tt();St.exports=mn;mn.prototype.type=mn.prototype.types=function(n){var i=n;if(i&&!Array.isArray(i)){i=new Array(arguments.length);for(var o=0;o<i.length;o++)i[o]=arguments[o]}if(!i||i.length===0)return this.negotiator.mediaTypes();if(!this.headers.accept)return i[0];var e=i.map(Ir),a=this.negotiator.mediaTypes(e.filter(Er)),t=a[0];return t?i[e.indexOf(t)]:!1};mn.prototype.encoding=mn.prototype.encodings=function(n){var i=n;if(i&&!Array.isArray(i)){i=new Array(arguments.length);for(var o=0;o<i.length;o++)i[o]=arguments[o]}if(!i||i.length===0)return this.negotiator.encodings();return this.negotiator.encodings(i)[0]||!1};mn.prototype.charset=mn.prototype.charsets=function(n){var i=n;if(i&&!Array.isArray(i)){i=new Array(arguments.length);for(var o=0;o<i.length;o++)i[o]=arguments[o]}if(!i||i.length===0)return this.negotiator.charsets();return this.negotiator.charsets(i)[0]||!1};mn.prototype.lang=mn.prototype.langs=mn.prototype.language=mn.prototype.languages=function(n){var i=n;if(i&&!Array.isArray(i)){i=new Array(arguments.length);for(var o=0;o<i.length;o++)i[o]=arguments[o]}if(!i||i.length===0)return this.negotiator.languages();return this.negotiator.languages(i)[0]||!1}});var de=A((wt,gt)=>{/*!
|
|
25
25
|
* base64id v0.1.0
|
|
26
|
-
*/var Ei=import.meta.require("crypto"),xe=function(){};xe.prototype.getRandomBytes=function(n){var i=4096,o=this;if(n=n||12,n>i)return Ei.randomBytes(n);var e=parseInt(i/n),a=parseInt(e*0.85);if(!a)return Ei.randomBytes(n);if(this.bytesBufferIndex==null)this.bytesBufferIndex=-1;if(this.bytesBufferIndex==e)this.bytesBuffer=null,this.bytesBufferIndex=-1;if(this.bytesBufferIndex==-1||this.bytesBufferIndex>a){if(!this.isGeneratingBytes)this.isGeneratingBytes=!0,Ei.randomBytes(i,function(s,c){o.bytesBuffer=c,o.bytesBufferIndex=0,o.isGeneratingBytes=!1});if(this.bytesBufferIndex==-1)return Ei.randomBytes(n)}var t=this.bytesBuffer.slice(n*this.bytesBufferIndex,n*(this.bytesBufferIndex+1));return this.bytesBufferIndex++,t};xe.prototype.generateId=function(){var n=Buffer.alloc(15);if(!n.writeInt32BE)return Math.abs(Math.random()*Math.random()*Date.now()|0).toString()+Math.abs(Math.random()*Math.random()*Date.now()|0).toString();if(this.sequenceNumber=this.sequenceNumber+1|0,n.writeInt32BE(this.sequenceNumber,11),Ei.randomBytes)this.getRandomBytes(12).copy(n);else[0,4,8].forEach(function(i){n.writeInt32BE(Math.random()*Math.pow(2,32)|0,i)});return n.toString("base64").replace(/\//g,"_").replace(/\+/g,"-")};St=wt.exports=new xe});var po=A((Ft)=>{Object.defineProperty(Ft,"__esModule",{value:!0});Ft.ERROR_PACKET=Ft.PACKET_TYPES_REVERSE=Ft.PACKET_TYPES=void 0;var Kn=Object.create(null);Ft.PACKET_TYPES=Kn;Kn.open="0";Kn.close="1";Kn.ping="2";Kn.pong="3";Kn.message="4";Kn.upgrade="5";Kn.noop="6";var gt=Object.create(null);Ft.PACKET_TYPES_REVERSE=gt;Object.keys(Kn).forEach((n)=>{gt[Kn[n]]=n});var Ir={type:"error",data:"parser error"};Ft.ERROR_PACKET=Ir});var Rt=A((Kt)=>{function Br(n,i){if(n.data instanceof ArrayBuffer||ArrayBuffer.isView(n.data))return i(At(n.data,!1));Kt.encodePacket(n,!0,(o)=>{if(!fe)fe=new TextEncoder;i(fe.encode(o))})}Object.defineProperty(Kt,"__esModule",{value:!0});Kt.encodePacket=void 0;Kt.encodePacketToBinary=Br;var Ur=po(),Yr=({type:n,data:i},o,e)=>{if(i instanceof ArrayBuffer||ArrayBuffer.isView(i))return e(o?i:"b"+At(i,!0).toString("base64"));return e(Ur.PACKET_TYPES[n]+(i||""))};Kt.encodePacket=Yr;var At=(n,i)=>{if(Buffer.isBuffer(n)||n instanceof Uint8Array&&!i)return n;else if(n instanceof ArrayBuffer)return Buffer.from(n);else return Buffer.from(n.buffer,n.byteOffset,n.byteLength)},fe});var jt=A((Jt)=>{Object.defineProperty(Jt,"__esModule",{value:!0});Jt.decodePacket=void 0;var mo=po(),Zr=(n,i)=>{if(typeof n!=="string")return{type:"message",data:Mt(n,i)};const o=n.charAt(0);if(o==="b"){const e=Buffer.from(n.substring(1),"base64");return{type:"message",data:Mt(e,i)}}if(!mo.PACKET_TYPES_REVERSE[o])return mo.ERROR_PACKET;return n.length>1?{type:mo.PACKET_TYPES_REVERSE[o],data:n.substring(1)}:{type:mo.PACKET_TYPES_REVERSE[o]}};Jt.decodePacket=Zr;var Mt=(n,i)=>{switch(i){case"arraybuffer":if(n instanceof ArrayBuffer)return n;else if(Buffer.isBuffer(n))return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);else return n.buffer;case"nodebuffer":default:if(Buffer.isBuffer(n))return n;else return Buffer.from(n)}}});var Vi=A((fo)=>{function Hr(){return new TransformStream({transform(n,i){be.encodePacketToBinary(n,(o)=>{const e=o.length;let a;if(e<126)a=new Uint8Array(1),new DataView(a.buffer).setUint8(0,e);else if(e<65536){a=new Uint8Array(3);const t=new DataView(a.buffer);t.setUint8(0,126),t.setUint16(1,e)}else{a=new Uint8Array(9);const t=new DataView(a.buffer);t.setUint8(0,127),t.setBigUint64(1,BigInt(e))}if(n.data&&typeof n.data!=="string")a[0]|=128;i.enqueue(a),i.enqueue(o)})}})}function uo(n){return n.reduce((i,o)=>i+o.length,0)}function xo(n,i){if(n[0].length===i)return n.shift();const o=new Uint8Array(i);let e=0;for(let a=0;a<i;a++)if(o[a]=n[0][e++],e===n[0].length)n.shift(),e=0;if(n.length&&e<n[0].length)n[0]=n[0].slice(e);return o}function Nr(n,i){if(!ve)ve=new TextDecoder;const o=[];let e=0,a=-1,t=!1;return new TransformStream({transform(s,c){o.push(s);while(!0){if(e===0){if(uo(o)<1)break;const l=xo(o,1);if(t=(l[0]&128)===128,a=l[0]&127,a<126)e=3;else if(a===126)e=1;else e=2}else if(e===1){if(uo(o)<2)break;const l=xo(o,2);a=new DataView(l.buffer,l.byteOffset,l.length).getUint16(0),e=3}else if(e===2){if(uo(o)<8)break;const l=xo(o,8),r=new DataView(l.buffer,l.byteOffset,l.length),p=r.getUint32(0);if(p>Math.pow(2,21)-1){c.enqueue(kt.ERROR_PACKET);break}a=p*Math.pow(2,32)+r.getUint32(4),e=3}else{if(uo(o)<a)break;const l=xo(o,a);c.enqueue(Te.decodePacket(t?l:ve.decode(l),i)),e=0}if(a===0||a>n){c.enqueue(kt.ERROR_PACKET);break}}}})}Object.defineProperty(fo,"__esModule",{value:!0});fo.decodePayload=fo.decodePacket=fo.encodePayload=fo.encodePacket=fo.protocol=void 0;fo.createPacketEncoderStream=Hr;fo.createPacketDecoderStream=Nr;var be=Rt();Object.defineProperty(fo,"encodePacket",{enumerable:!0,get:function(){return be.encodePacket}});var Te=jt();Object.defineProperty(fo,"decodePacket",{enumerable:!0,get:function(){return Te.decodePacket}});var kt=po(),Ot=String.fromCharCode(30),Gr=(n,i)=>{const o=n.length,e=new Array(o);let a=0;n.forEach((t,s)=>{be.encodePacket(t,!1,(c)=>{if(e[s]=c,++a===o)i(e.join(Ot))})})};fo.encodePayload=Gr;var Qr=(n,i)=>{const o=n.split(Ot),e=[];for(let a=0;a<o.length;a++){const t=Te.decodePacket(o[a],i);if(e.push(t),t.type==="error")break}return e};fo.decodePayload=Qr;var ve;fo.protocol=4});var Et=A((qF,It)=>{function Ct(n){var i=[],o=0,e=n.length,a,t;while(o<e)if(a=n.charCodeAt(o++),a>=55296&&a<=56319&&o<e)if(t=n.charCodeAt(o++),(t&64512)==56320)i.push(((a&1023)<<10)+(t&1023)+65536);else i.push(a),o--;else i.push(a);return i}function qr(n){var i=n.length,o=-1,e,a="";while(++o<i){if(e=n[o],e>65535)e-=65536,a+=Bn(e>>>10&1023|55296),e=56320|e&1023;a+=Bn(e)}return a}function Wt(n,i){if(n>=55296&&n<=57343){if(i)throw Error("Lone surrogate U+"+n.toString(16).toUpperCase()+" is not a scalar value");return!1}return!0}function Se(n,i){return Bn(n>>i&63|128)}function np(n,i){if((n&4294967168)==0)return Bn(n);var o="";if((n&4294965248)==0)o=Bn(n>>6&31|192);else if((n&4294901760)==0){if(!Wt(n,i))n=65533;o=Bn(n>>12&15|224),o+=Se(n,6)}else if((n&4292870144)==0)o=Bn(n>>18&7|240),o+=Se(n,12),o+=Se(n,6);return o+=Bn(n&63|128),o}function ip(n,i){i=i||{};var o=i.strict!==!1,e=Ct(n),a=e.length,t=-1,s,c="";while(++t<a)s=e[t],c+=np(s,o);return c}function ri(){if(Xn>=vo)throw Error("Invalid byte index");var n=yo[Xn]&255;if(Xn++,(n&192)==128)return n&63;throw Error("Invalid continuation byte")}function op(n){var i,o,e,a,t;if(Xn>vo)throw Error("Invalid byte index");if(Xn==vo)return!1;if(i=yo[Xn]&255,Xn++,(i&128)==0)return i;if((i&224)==192)if(o=ri(),t=(i&31)<<6|o,t>=128)return t;else throw Error("Invalid continuation byte");if((i&240)==224)if(o=ri(),e=ri(),t=(i&15)<<12|o<<6|e,t>=2048)return Wt(t,n)?t:65533;else throw Error("Invalid continuation byte");if((i&248)==240){if(o=ri(),e=ri(),a=ri(),t=(i&7)<<18|o<<12|e<<6|a,t>=65536&&t<=1114111)return t}throw Error("Invalid UTF-8 detected")}function ep(n,i){i=i||{};var o=i.strict!==!1;yo=Ct(n),vo=yo.length,Xn=0;var e=[],a;while((a=op(o))!==!1)e.push(a);return qr(e)}/*! https://mths.be/utf8js v2.1.2 by @mathias */var Bn=String.fromCharCode,yo,vo,Xn;It.exports={version:"2.1.2",encode:ip,decode:ep}});var Nt=A((Qt)=>{function we(n,i,o,e){if(typeof i==="function")e=i,i=null;if(typeof o==="function")e=o,o=null;if(Buffer.isBuffer(n.data))return Vt(n,i,e);else if(n.data&&(n.data.buffer||n.data)instanceof ArrayBuffer)return Vt({type:n.type,data:Fe(n.data)},i,e);var a=Qt.packets[n.type];if(n.data!==void 0)a+=o?Ut.encode(String(n.data),{strict:!1}):String(n.data);return e(""+a)}function Vt(n,i,o){if(!i)return Yt(n,o);var e=n.data,a=Buffer.allocUnsafe(1);return a[0]=Qt.packets[n.type],o(Buffer.concat([a,e]))}function Yt(n,i){var o=Buffer.isBuffer(n.data)?n.data:Fe(n.data),e="b"+Qt.packets[n.type];return e+=o.toString("base64"),i(e)}function ge(n,i,o){if(n===void 0)return wn;var e;if(typeof n==="string"){if(e=n.charAt(0),e==="b")return Bt(n.slice(1),i);if(o){if(n=sp(n),n===!1)return wn}if(Number(e)!=e||!pi[e])return wn;if(n.length>1)return{type:pi[e],data:n.slice(1)};else return{type:pi[e]}}if(i==="arraybuffer"){var a=new Uint8Array(n);return e=a[0],{type:pi[e],data:a.buffer.slice(1)}}if(n instanceof ArrayBuffer)n=Fe(n);return e=n[0],{type:pi[e],data:n.slice(1)}}function sp(n){try{n=Ut.decode(n,{strict:!1})}catch(i){return!1}return n}function Bt(n,i){var o=pi[n.charAt(0)],e=Buffer.from(n.slice(1),"base64");if(i==="arraybuffer"){var a=new Uint8Array(e.length);for(var t=0;t<a.length;t++)a[t]=e[t];e=a.buffer}return{type:o,data:e}}function cp(n,i,o){if(typeof i==="function")o=i,i=null;if(i&&ap(n))return Zt(n,o);if(!n.length)return o("0:");function e(a,t){we(a,i,!1,function(s){t(null,lp(s))})}Xt(n,e,function(a,t){return o(t.join(""))})}function lp(n){return n.length+":"+n}function Xt(n,i,o){const e=new Array(n.length);let a=0;for(let t=0;t<n.length;t++)i(n[t],(s,c)=>{if(e[t]=c,++a===n.length)o(null,e)})}function rp(n,i,o){if(typeof n!=="string")return Gt(n,i,o);if(typeof i==="function")o=i,i=null;if(n==="")return o(wn,0,1);var e="",a,t,s;for(var c=0,l=n.length;c<l;c++){var r=n.charAt(c);if(r!==":"){e+=r;continue}if(e===""||e!=(a=Number(e)))return o(wn,0,1);if(t=n.slice(c+1,c+1+a),e!=t.length)return o(wn,0,1);if(t.length){if(s=ge(t,i,!1),wn.type===s.type&&wn.data===s.data)return o(wn,0,1);var p=o(s,c+a,l);if(p===!1)return}c+=a,e=""}if(e!=="")return o(wn,0,1)}function pp(n){var i="";for(var o=0,e=n.length;o<e;o++)i+=String.fromCharCode(n[o]);return i}function mp(n){var i=Buffer.allocUnsafe(n.length);for(var o=0,e=n.length;o<e;o++)i.writeUInt8(n.charCodeAt(o),o);return i}function Fe(n){var i=n.byteLength||n.length,o=n.byteOffset||0;return Buffer.from(n.buffer||n,o,i)}function Zt(n,i){if(!n.length)return i(tp);Xt(n,up,function(o,e){return i(Buffer.concat(e))})}function up(n,i){function o(e){var a=""+e.length,t;if(typeof e==="string"){t=Buffer.allocUnsafe(a.length+2),t[0]=0;for(var s=0;s<a.length;s++)t[s+1]=parseInt(a[s],10);return t[t.length-1]=255,i(null,Buffer.concat([t,mp(e)]))}t=Buffer.allocUnsafe(a.length+2),t[0]=1;for(var s=0;s<a.length;s++)t[s+1]=parseInt(a[s],10);t[t.length-1]=255,i(null,Buffer.concat([t,e]))}we(n,!0,!0,o)}function Gt(n,i,o){if(typeof i==="function")o=i,i=null;var e=n,a=[],t;while(e.length>0){var s="",c=e[0]===0;for(t=1;;t++){if(e[t]===255)break;if(s.length>310)return o(wn,0,1);s+=""+e[t]}e=e.slice(s.length+1);var l=parseInt(s,10),r=e.slice(1,l+1);if(c)r=pp(r);a.push(r),e=e.slice(l+1)}var p=a.length;for(t=0;t<p;t++){var m=a[t];o(ge(m,i,!0),t,p)}}Object.defineProperty(Qt,"__esModule",{value:!0});Qt.decodePayloadAsBinary=Qt.encodePayloadAsBinary=Qt.decodePayload=Qt.encodePayload=Qt.decodeBase64Packet=Qt.decodePacket=Qt.encodeBase64Packet=Qt.encodePacket=Qt.packets=Qt.protocol=void 0;var Ut=Et();Qt.protocol=3;var ap=(n)=>{for(let i of n)if(i.data instanceof ArrayBuffer||ArrayBuffer.isView(i.data))return!0;return!1};Qt.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6};var pi=Object.keys(Qt.packets),wn={type:"error",data:"parser error"},tp=Buffer.concat([]);Qt.encodePacket=we;Qt.encodeBase64Packet=Yt;Qt.decodePacket=ge;Qt.decodeBase64Packet=Bt;Qt.encodePayload=cp;Qt.decodePayload=rp;Qt.encodePayloadAsBinary=Zt;Qt.decodePayloadAsBinary=Gt});var Lt=A((ih,Dt)=>{function Fp(n){if(n=String(n),n.length>100)return;var i=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(!i)return;var o=parseFloat(i[1]),e=(i[2]||"ms").toLowerCase();switch(e){case"years":case"year":case"yrs":case"yr":case"y":return o*gp;case"weeks":case"week":case"w":return o*wp;case"days":case"day":case"d":return o*Pn;case"hours":case"hour":case"hrs":case"hr":case"h":return o*xi;case"minutes":case"minute":case"mins":case"min":case"m":return o*ui;case"seconds":case"second":case"secs":case"sec":case"s":return o*mi;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}function hp(n){var i=Math.abs(n);if(i>=Pn)return Math.round(n/Pn)+"d";if(i>=xi)return Math.round(n/xi)+"h";if(i>=ui)return Math.round(n/ui)+"m";if(i>=mi)return Math.round(n/mi)+"s";return n+"ms"}function Ap(n){var i=Math.abs(n);if(i>=Pn)return bo(n,i,Pn,"day");if(i>=xi)return bo(n,i,xi,"hour");if(i>=ui)return bo(n,i,ui,"minute");if(i>=mi)return bo(n,i,mi,"second");return n+" ms"}function bo(n,i,o,e){var a=i>=o*1.5;return Math.round(n/o)+" "+e+(a?"s":"")}var mi=1000,ui=mi*60,xi=ui*60,Pn=xi*24,wp=Pn*7,gp=Pn*365.25;Dt.exports=function(n,i){i=i||{};var o=typeof n;if(o==="string"&&n.length>0)return Fp(n);else if(o==="number"&&isFinite(n))return i.long?Ap(n):hp(n);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))}});var he=A((oh,Pt)=>{function Kp(n){o.debug=o,o.default=o,o.coerce=l,o.disable=t,o.enable=a,o.enabled=s,o.humanize=Lt(),o.destroy=r,Object.keys(n).forEach((p)=>{o[p]=n[p]}),o.names=[],o.skips=[],o.formatters={};function i(p){let m=0;for(let T=0;T<p.length;T++)m=(m<<5)-m+p.charCodeAt(T),m|=0;return o.colors[Math.abs(m)%o.colors.length]}o.selectColor=i;function o(p){let m,T=null,R,y;function v(...u){if(!v.enabled)return;const b=v,S=Number(new Date),K=S-(m||S);if(b.diff=K,b.prev=m,b.curr=S,m=S,u[0]=o.coerce(u[0]),typeof u[0]!=="string")u.unshift("%O");let W=0;u[0]=u[0].replace(/%([a-zA-Z%])/g,(d,h)=>{if(d==="%%")return"%";W++;const w=o.formatters[h];if(typeof w==="function"){const g=u[W];d=w.call(b,g),u.splice(W,1),W--}return d}),o.formatArgs.call(b,u),(b.log||o.log).apply(b,u)}if(v.namespace=p,v.useColors=o.useColors(),v.color=o.selectColor(p),v.extend=e,v.destroy=o.destroy,Object.defineProperty(v,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(T!==null)return T;if(R!==o.namespaces)R=o.namespaces,y=o.enabled(p);return y},set:(u)=>{T=u}}),typeof o.init==="function")o.init(v);return v}function e(p,m){const T=o(this.namespace+(typeof m==="undefined"?":":m)+p);return T.log=this.log,T}function a(p){o.save(p),o.namespaces=p,o.names=[],o.skips=[];let m;const T=(typeof p==="string"?p:"").split(/[\s,]+/),R=T.length;for(m=0;m<R;m++){if(!T[m])continue;if(p=T[m].replace(/\*/g,".*?"),p[0]==="-")o.skips.push(new RegExp("^"+p.slice(1)+"$"));else o.names.push(new RegExp("^"+p+"$"))}}function t(){const p=[...o.names.map(c),...o.skips.map(c).map((m)=>"-"+m)].join(",");return o.enable(""),p}function s(p){if(p[p.length-1]==="*")return!0;let m,T;for(m=0,T=o.skips.length;m<T;m++)if(o.skips[m].test(p))return!1;for(m=0,T=o.names.length;m<T;m++)if(o.names[m].test(p))return!0;return!1}function c(p){return p.toString().substring(2,p.toString().length-2).replace(/\.\*\?$/,"*")}function l(p){if(p instanceof Error)return p.stack||p.message;return p}function r(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return o.enable(o.load()),o}Pt.exports=Kp});var qt=A((_t,So)=>{function Rp(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let n;return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&(n=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(n[1],10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Mp(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+So.exports.humanize(this.diff),!this.useColors)return;const i="color: "+this.color;n.splice(1,0,i,"color: inherit");let o=0,e=0;n[0].replace(/%[a-zA-Z%]/g,(a)=>{if(a==="%%")return;if(o++,a==="%c")e=o}),n.splice(e,0,i)}function Jp(n){try{if(n)_t.storage.setItem("debug",n);else _t.storage.removeItem("debug")}catch(i){}}function $p(){let n;try{n=_t.storage.getItem("debug")}catch(i){}if(!n&&typeof process!=="undefined"&&"env"in process)n=process.env.DEBUG;return n}function jp(){try{return localStorage}catch(n){}}_t.formatArgs=Mp;_t.save=Jp;_t.load=$p;_t.useColors=Rp;_t.storage=jp();_t.destroy=(()=>{let n=!1;return()=>{if(!n)n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();_t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];_t.log=console.debug||console.log||(()=>{});So.exports=he()(_t);var{formatters:kp}=So.exports;kp.j=function(n){try{return JSON.stringify(n)}catch(i){return"[UnexpectedJSONParseError]: "+i.message}}});var is=A((ah,ns)=>{ns.exports=(n,i)=>{i=i||process.argv;const o=n.startsWith("-")?"":n.length===1?"-":"--",e=i.indexOf(o+n),a=i.indexOf("--");return e!==-1&&(a===-1?!0:e<a)}});var es=A((th,os)=>{function Yp(n){if(n===0)return!1;return{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3}}function Bp(n){if(di===!1)return 0;if(gn("color=16m")||gn("color=full")||gn("color=truecolor"))return 3;if(gn("color=256"))return 2;if(n&&!n.isTTY&&di!==!0)return 0;const i=di?1:0;if(process.platform==="win32"){const o=Up.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(o[0])>=10&&Number(o[2])>=10586)return Number(o[2])>=14931?3:2;return 1}if("CI"in nn){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some((o)=>(o in nn))||nn.CI_NAME==="codeship")return 1;return i}if("TEAMCITY_VERSION"in nn)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(nn.TEAMCITY_VERSION)?1:0;if(nn.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in nn){const o=parseInt((nn.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(nn.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(nn.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(nn.TERM))return 1;if("COLORTERM"in nn)return 1;if(nn.TERM==="dumb")return i;return i}function Ae(n){const i=Bp(n);return Yp(i)}var Up=import.meta.require("os"),gn=is(),nn=process.env,di;if(gn("no-color")||gn("no-colors")||gn("color=false"))di=!1;else if(gn("color")||gn("colors")||gn("color=true")||gn("color=always"))di=!0;if("FORCE_COLOR"in nn)di=nn.FORCE_COLOR.length===0||parseInt(nn.FORCE_COLOR,10)!==0;os.exports={supportsColor:Ae,stdout:Ae(process.stdout),stderr:Ae(process.stderr)}});var cs=A((ts,go)=>{function Zp(){return"colors"in ts.inspectOpts?Boolean(ts.inspectOpts.colors):Xp.isatty(process.stderr.fd)}function Gp(n){const{namespace:i,useColors:o}=this;if(o){const e=this.color,a="\x1B[3"+(e<8?e:"8;5;"+e),t=` ${a};1m${i} \x1B[0m`;n[0]=t+n[0].split("\n").join("\n"+t),n.push(a+"m+"+go.exports.humanize(this.diff)+"\x1B[0m")}else n[0]=Qp()+i+" "+n[0]}function Qp(){if(ts.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function Hp(...n){return process.stderr.write(wo.formatWithOptions(ts.inspectOpts,...n)+"\n")}function Np(n){if(n)process.env.DEBUG=n;else delete process.env.DEBUG}function Dp(){return process.env.DEBUG}function Lp(n){n.inspectOpts={};const i=Object.keys(ts.inspectOpts);for(let o=0;o<i.length;o++)n.inspectOpts[i[o]]=ts.inspectOpts[i[o]]}var Xp=import.meta.require("tty"),wo=import.meta.require("util");ts.init=Lp;ts.log=Hp;ts.formatArgs=Gp;ts.save=Np;ts.load=Dp;ts.useColors=Zp;ts.destroy=wo.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");ts.colors=[6,2,3,4,5,1];try{const n=es();if(n&&(n.stderr||n).level>=2)ts.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(n){}ts.inspectOpts=Object.keys(process.env).filter((n)=>{return/^debug_/i.test(n)}).reduce((n,i)=>{const o=i.substring(6).toLowerCase().replace(/_([a-z])/g,(a,t)=>{return t.toUpperCase()});let e=process.env[i];if(/^(yes|on|true|enabled)$/i.test(e))e=!0;else if(/^(no|off|false|disabled)$/i.test(e))e=!1;else if(e==="null")e=null;else e=Number(e);return n[o]=e,n},{});go.exports=he()(ts);var{formatters:as}=go.exports;as.o=function(n){return this.inspectOpts.colors=this.useColors,wo.inspect(n,this.inspectOpts).split("\n").map((i)=>i.trim()).join(" ")};as.O=function(n){return this.inspectOpts.colors=this.useColors,wo.inspect(n,this.inspectOpts)}});var q=A((ch,Ke)=>{if(typeof process==="undefined"||process.type==="renderer"||!1||process.__nwjs)Ke.exports=qt();else Ke.exports=cs()});var qn=A((rs)=>{function lm(){}Object.defineProperty(rs,"__esModule",{value:!0});rs.Transport=void 0;var am=import.meta.require("events"),tm=Vi(),sm=Nt(),cm=q(),Re=cm.default("engine:transport");class ls extends am.EventEmitter{constructor(n){super();this.writable=!1,this._readyState="open",this.discarded=!1,this.protocol=n._query.EIO==="4"?4:3,this.parser=this.protocol===4?tm:sm,this.supportsBinary=!(n._query&&n._query.b64)}get readyState(){return this._readyState}set readyState(n){Re("readyState updated from %s to %s (%s)",this._readyState,n,this.name),this._readyState=n}discard(){this.discarded=!0}onRequest(n){Re("setting request"),this.req=n}close(n){if(this.readyState==="closed"||this.readyState==="closing")return;this.readyState="closing",this.doClose(n||lm)}onError(n,i){if(this.listeners("error").length){const o=new Error(n);o.type="TransportError",o.description=i,this.emit("error",o)}else Re("ignored transport error %s (%s)",n,i)}onPacket(n){this.emit("packet",n)}onData(n){this.onPacket(this.parser.decodePacket(n))}onClose(){this.readyState="closed",this.emit("close")}}rs.Transport=ls});var Me=A((xs)=>{Object.defineProperty(xs,"__esModule",{value:!0});xs.Polling=void 0;var rm=qn(),ms=import.meta.require("zlib"),pm=ro(),mm=q(),mn=mm.default("engine:polling"),um={gzip:ms.createGzip,deflate:ms.createDeflate};class us extends rm.Transport{constructor(n){super(n);this.closeTimeout=30000}get name(){return"polling"}get supportsFraming(){return!1}onRequest(n){const i=n.res;if(n.res=null,n.method==="GET")this.onPollRequest(n,i);else if(n.method==="POST")this.onDataRequest(n,i);else i.writeHead(500),i.end()}onPollRequest(n,i){if(this.req){mn("request overlap"),this.onError("overlap from client"),i.writeHead(400),i.end();return}mn("setting request"),this.req=n,this.res=i;const o=()=>{this.onError("poll connection closed prematurely")},e=()=>{n.removeListener("close",o),this.req=this.res=null};if(n.cleanup=e,n.on("close",o),this.writable=!0,this.emit("drain"),this.writable&&this.shouldClose)mn("triggering empty send to append close packet"),this.send([{type:"noop"}])}onDataRequest(n,i){if(this.dataReq){this.onError("data request overlap from client"),i.writeHead(400),i.end();return}const o=n.headers["content-type"]==="application/octet-stream";if(o&&this.protocol===4)return this.onError("invalid content");this.dataReq=n,this.dataRes=i;let e=o?Buffer.concat([]):"";const a=()=>{n.removeListener("data",s),n.removeListener("end",c),n.removeListener("close",t),this.dataReq=this.dataRes=e=null},t=()=>{a(),this.onError("data request connection closed prematurely")},s=(l)=>{let r;if(o)e=Buffer.concat([e,l]),r=e.length;else e+=l,r=Buffer.byteLength(e);if(r>this.maxHttpBufferSize)i.writeHead(413).end(),a()},c=()=>{this.onData(e);const l={"Content-Type":"text/html","Content-Length":2};i.writeHead(200,this.headers(n,l)),i.end("ok"),a()};if(n.on("close",t),!o)n.setEncoding("utf8");n.on("data",s),n.on("end",c)}onData(n){mn('received "%s"',n);const i=(o)=>{if(o.type==="close")return mn("got xhr close packet"),this.onClose(),!1;this.onPacket(o)};if(this.protocol===3)this.parser.decodePayload(n,i);else this.parser.decodePayload(n).forEach(i)}onClose(){if(this.writable)this.send([{type:"noop"}]);super.onClose()}send(n){if(this.writable=!1,this.shouldClose)mn("appending close packet to payload"),n.push({type:"close"}),this.shouldClose(),this.shouldClose=null;const i=(o)=>{const e=n.some((a)=>{return a.options&&a.options.compress});this.write(o,{compress:e})};if(this.protocol===3)this.parser.encodePayload(n,this.supportsBinary,i);else this.parser.encodePayload(n,i)}write(n,i){mn('writing "%s"',n),this.doWrite(n,i,()=>{this.req.cleanup()})}doWrite(n,i,o){const e=typeof n==="string",t={"Content-Type":e?"text/plain; charset=UTF-8":"application/octet-stream"},s=(r)=>{t["Content-Length"]=typeof r==="string"?Buffer.byteLength(r):r.length,this.res.writeHead(200,this.headers(this.req,t)),this.res.end(r),o()};if(!this.httpCompression||!i.compress){s(n);return}if((e?Buffer.byteLength(n):n.length)<this.httpCompression.threshold){s(n);return}const l=pm(this.req).encodings(["gzip","deflate"]);if(!l){s(n);return}this.compress(n,l,(r,p)=>{if(r){this.res.writeHead(500),this.res.end(),o(r);return}t["Content-Encoding"]=l,s(p)})}compress(n,i,o){mn("compressing");const e=[];let a=0;um[i](this.httpCompression).on("error",o).on("data",function(t){e.push(t),a+=t.length}).on("end",function(){o(null,Buffer.concat(e,a))}).end(n)}doClose(n){mn("closing");let i;if(this.dataReq)mn("aborting ongoing data request"),this.dataReq.destroy();const o=()=>{clearTimeout(i),n(),this.onClose()};if(this.writable)mn("transport writable - closing right away"),this.send([{type:"close"}]),o();else if(this.discarded)mn("transport discarded - closing right away"),o();else mn("transport not writable - buffering orderly close"),this.shouldClose=o,i=setTimeout(o,this.closeTimeout)}headers(n,i){i=i||{};const o=n.headers["user-agent"];if(o&&(~o.indexOf(";MSIE")||~o.indexOf("Trident/")))i["X-XSS-Protection"]="0";return i["cache-control"]="no-store",this.emit("headers",i,n),i}}xs.Polling=us});var bs=A((ys)=>{Object.defineProperty(ys,"__esModule",{value:!0});ys.JSONP=void 0;var xm=Me(),dm=import.meta.require("querystring"),fm=/\\\\n/g,ym=/(\\)?\\n/g;class fs extends xm.Polling{constructor(n){super(n);this.head="___eio["+(n._query.j||"").replace(/[^0-9]/g,"")+"](",this.foot=");"}onData(n){if(n=dm.parse(n).d,typeof n==="string")n=n.replace(ym,function(i,o){return o?i:"\n"}),super.onData(n.replace(fm,"\\n"))}doWrite(n,i,o){const e=JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");n=this.head+e+this.foot,super.doWrite(n,i,o)}}ys.JSONP=fs});var gs=A((Ss)=>{Object.defineProperty(Ss,"__esModule",{value:!0});Ss.WebSocket=void 0;var vm=qn(),bm=q(),Je=bm.default("engine:ws");class Ts extends vm.Transport{constructor(n){super(n);this.socket=n.websocket,this.socket.on("message",(i,o)=>{const e=o?i:i.toString();Je('received "%s"',e),super.onData(e)}),this.socket.once("close",this.onClose.bind(this)),this.socket.on("error",this.onError.bind(this)),this.writable=!0,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}get supportsFraming(){return!0}send(n){this.writable=!1;for(let i=0;i<n.length;i++){const o=n[i],e=i+1===n.length,a={};if(o.options)a.compress=o.options.compress;const t=(c)=>{if(c)return this.onError("write error",c.stack);else if(e)this.writable=!0,this.emit("drain")},s=(c)=>{if(this.perMessageDeflate){if((typeof c==="string"?Buffer.byteLength(c):c.length)<this.perMessageDeflate.threshold)a.compress=!1}Je('writing "%s"',c),this.socket.send(c,a,t)};if(o.options&&typeof o.options.wsPreEncoded==="string")s(o.options.wsPreEncoded);else if(this._canSendPreEncodedFrame(o))this.socket._sender.sendFrame(o.options.wsPreEncodedFrame,t);else this.parser.encodePacket(o,this.supportsBinary,s)}}_canSendPreEncodedFrame(n){var i,o,e;return!this.perMessageDeflate&&typeof((o=(i=this.socket)===null||i===void 0?void 0:i._sender)===null||o===void 0?void 0:o.sendFrame)==="function"&&((e=n.options)===null||e===void 0?void 0:e.wsPreEncodedFrame)!==void 0}doClose(n){Je("closing"),this.socket.close(),n&&n()}}Ss.WebSocket=Ts});var $e=A((hs)=>{Object.defineProperty(hs,"__esModule",{value:!0});hs.WebTransport=void 0;var Tm=qn(),Sm=q(),wm=Vi(),fi=Sm.default("engine:webtransport");class Fs extends Tm.Transport{constructor(n,i,o){super({_query:{EIO:"4"}});this.session=n;const e=wm.createPacketEncoderStream();e.readable.pipeTo(i.writable).catch(()=>{fi("the stream was closed")}),this.writer=e.writable.getWriter(),(async()=>{try{while(!0){const{value:a,done:t}=await o.read();if(t){fi("session is closed");break}fi("received chunk: %o",a),this.onPacket(a)}}catch(a){fi("error while reading: %s",a.message)}})(),n.closed.then(()=>this.onClose()),this.writable=!0}get name(){return"webtransport"}get supportsFraming(){return!0}async send(n){this.writable=!1;try{for(let i=0;i<n.length;i++){const o=n[i];await this.writer.write(o)}}catch(i){fi("error while writing: %s",i.message)}this.writable=!0,this.emit("drain")}doClose(n){fi("closing WebTransport session"),this.session.close(),n&&n()}}hs.WebTransport=Fs});var je=A((Rs)=>{function Ks(n){if(typeof n._query.j==="string")return new Fm.JSONP(n);else return new gm.Polling(n)}Object.defineProperty(Rs,"__esModule",{value:!0});var gm=Me(),Fm=bs(),hm=gs(),Am=$e();Rs.default={polling:Ks,websocket:hm.WebSocket,webtransport:Am.WebTransport};Ks.upgradesTo=["websocket","webtransport"]});var ke=A((Js)=>{Object.defineProperty(Js,"__esModule",{value:!0});Js.Socket=void 0;var Rm=import.meta.require("events"),Mm=q(),Zn=import.meta.require("timers"),Q=Mm.default("engine:socket");class Ms extends Rm.EventEmitter{constructor(n,i,o,e,a){super();if(this._readyState="opening",this.upgrading=!1,this.upgraded=!1,this.writeBuffer=[],this.packetsFn=[],this.sentCallbackFn=[],this.cleanupFn=[],this.id=n,this.server=i,this.request=e,this.protocol=a,e)if(e.websocket&&e.websocket._socket)this.remoteAddress=e.websocket._socket.remoteAddress;else this.remoteAddress=e.connection.remoteAddress;this.pingTimeoutTimer=null,this.pingIntervalTimer=null,this.setTransport(o),this.onOpen()}get readyState(){return this._readyState}set readyState(n){Q("readyState updated from %s to %s",this._readyState,n),this._readyState=n}onOpen(){if(this.readyState="open",this.transport.sid=this.id,this.sendPacket("open",JSON.stringify({sid:this.id,upgrades:this.getAvailableUpgrades(),pingInterval:this.server.opts.pingInterval,pingTimeout:this.server.opts.pingTimeout,maxPayload:this.server.opts.maxHttpBufferSize})),this.server.opts.initialPacket)this.sendPacket("message",this.server.opts.initialPacket);if(this.emit("open"),this.protocol===3)this.resetPingTimeout(this.server.opts.pingInterval+this.server.opts.pingTimeout);else this.schedulePing()}onPacket(n){if(this.readyState!=="open")return Q("packet received with closed socket");switch(Q(`received packet ${n.type}`),this.emit("packet",n),this.resetPingTimeout(this.server.opts.pingInterval+this.server.opts.pingTimeout),n.type){case"ping":if(this.transport.protocol!==3){this.onError("invalid heartbeat direction");return}Q("got ping"),this.sendPacket("pong"),this.emit("heartbeat");break;case"pong":if(this.transport.protocol===3){this.onError("invalid heartbeat direction");return}Q("got pong"),this.pingIntervalTimer.refresh(),this.emit("heartbeat");break;case"error":this.onClose("parse error");break;case"message":this.emit("data",n.data),this.emit("message",n.data);break}}onError(n){Q("transport error"),this.onClose("transport error",n)}schedulePing(){this.pingIntervalTimer=Zn.setTimeout(()=>{Q("writing ping packet - expecting pong within %sms",this.server.opts.pingTimeout),this.sendPacket("ping"),this.resetPingTimeout(this.server.opts.pingTimeout)},this.server.opts.pingInterval)}resetPingTimeout(n){Zn.clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=Zn.setTimeout(()=>{if(this.readyState==="closed")return;this.onClose("ping timeout")},n)}setTransport(n){const i=this.onError.bind(this),o=this.onPacket.bind(this),e=this.flush.bind(this),a=this.onClose.bind(this,"transport close");this.transport=n,this.transport.once("error",i),this.transport.on("packet",o),this.transport.on("drain",e),this.transport.once("close",a),this.setupSendCallback(),this.cleanupFn.push(function(){n.removeListener("error",i),n.removeListener("packet",o),n.removeListener("drain",e),n.removeListener("close",a)})}maybeUpgrade(n){Q('might upgrade socket transport from "%s" to "%s"',this.transport.name,n.name),this.upgrading=!0;const i=Zn.setTimeout(()=>{if(Q("client did not complete upgrade - closing transport"),t(),n.readyState==="open")n.close()},this.server.opts.upgradeTimeout);let o;const e=(r)=>{if(r.type==="ping"&&r.data==="probe")Q("got probe ping packet, sending pong"),n.send([{type:"pong",data:"probe"}]),this.emit("upgrading",n),clearInterval(o),o=setInterval(a,100);else if(r.type==="upgrade"&&this.readyState!=="closed"){if(Q("got upgrade packet - upgrading"),t(),this.transport.discard(),this.upgraded=!0,this.clearTransport(),this.setTransport(n),this.emit("upgrade",n),this.flush(),this.readyState==="closing")n.close(()=>{this.onClose("forced close")})}else t(),n.close()},a=()=>{if(this.transport.name==="polling"&&this.transport.writable)Q("writing a noop packet to polling for fast upgrade"),this.transport.send([{type:"noop"}])},t=()=>{this.upgrading=!1,clearInterval(o),Zn.clearTimeout(i),n.removeListener("packet",e),n.removeListener("close",c),n.removeListener("error",s),this.removeListener("close",l)},s=(r)=>{Q("client did not complete upgrade - %s",r),t(),n.close(),n=null},c=()=>{s("transport closed")},l=()=>{s("socket closed")};n.on("packet",e),n.once("close",c),n.once("error",s),this.once("close",l)}clearTransport(){let n;const i=this.cleanupFn.length;for(let o=0;o<i;o++)n=this.cleanupFn.shift(),n();this.transport.on("error",function(){Q("error triggered by discarded transport")}),this.transport.close(),Zn.clearTimeout(this.pingTimeoutTimer)}onClose(n,i){if(this.readyState!=="closed")this.readyState="closed",Zn.clearTimeout(this.pingIntervalTimer),Zn.clearTimeout(this.pingTimeoutTimer),process.nextTick(()=>{this.writeBuffer=[]}),this.packetsFn=[],this.sentCallbackFn=[],this.clearTransport(),this.emit("close",n,i)}setupSendCallback(){const n=()=>{if(this.sentCallbackFn.length>0){const i=this.sentCallbackFn.splice(0,1)[0];if(typeof i==="function")Q("executing send callback"),i(this.transport);else if(Array.isArray(i)){Q("executing batch send callback");const o=i.length;let e=0;for(;e<o;e++)if(typeof i[e]==="function")i[e](this.transport)}}};this.transport.on("drain",n),this.cleanupFn.push(()=>{this.transport.removeListener("drain",n)})}send(n,i,o){return this.sendPacket("message",n,i,o),this}write(n,i,o){return this.sendPacket("message",n,i,o),this}sendPacket(n,i,o={},e){if(typeof o==="function")e=o,o={};if(this.readyState!=="closing"&&this.readyState!=="closed"){Q('sending packet "%s" (%s)',n,i),o.compress=o.compress!==!1;const a={type:n,options:o};if(i)a.data=i;if(this.emit("packetCreate",a),this.writeBuffer.push(a),e)this.packetsFn.push(e);this.flush()}}flush(){if(this.readyState!=="closed"&&this.transport.writable&&this.writeBuffer.length){Q("flushing buffer to transport"),this.emit("flush",this.writeBuffer),this.server.emit("flush",this,this.writeBuffer);const n=this.writeBuffer;if(this.writeBuffer=[],!this.transport.supportsFraming)this.sentCallbackFn.push(this.packetsFn);else this.sentCallbackFn.push.apply(this.sentCallbackFn,this.packetsFn);this.packetsFn=[],this.transport.send(n),this.emit("drain"),this.server.emit("drain",this)}}getAvailableUpgrades(){const n=[],i=this.server.upgrades(this.transport.name);let o=0;const e=i.length;for(;o<e;++o){const a=i[o];if(this.server.opts.transports.indexOf(a)!==-1)n.push(a)}return n}close(n){if(this.readyState!=="open")return;if(this.readyState="closing",this.writeBuffer.length){Q("there are %d remaining packets in the buffer, waiting for the 'drain' event",this.writeBuffer.length),this.once("drain",()=>{Q("all packets have been sent, closing the transport"),this.closeTransport(n)});return}Q("the buffer is empty, closing the transport right away",n),this.closeTransport(n)}closeTransport(n){if(Q("closing the transport (discard? %s)",n),n)this.transport.discard();this.transport.close(this.onClose.bind(this,"forced close"))}}Js.Socket=Ms});var js=A((zm)=>{function jm(n,i){if(typeof n!=="string")throw new TypeError("argument str must be a string");var o={},e=i||{},a=n.split(";"),t=e.decode||Jm;for(var s=0;s<a.length;s++){var c=a[s],l=c.indexOf("=");if(l<0)continue;var r=c.substring(0,l).trim();if(o[r]==null){var p=c.substring(l+1,c.length).trim();if(p[0]==='"')p=p.slice(1,-1);o[r]=Om(p,t)}}return o}function km(n,i,o){var e=o||{},a=e.encode||$m;if(typeof a!=="function")throw new TypeError("option encode is invalid");if(!Fo.test(n))throw new TypeError("argument name is invalid");var t=a(i);if(t&&!Fo.test(t))throw new TypeError("argument val is invalid");var s=n+"="+t;if(e.maxAge!=null){var c=e.maxAge-0;if(isNaN(c)||!isFinite(c))throw new TypeError("option maxAge is invalid");s+="; Max-Age="+Math.floor(c)}if(e.domain){if(!Fo.test(e.domain))throw new TypeError("option domain is invalid");s+="; Domain="+e.domain}if(e.path){if(!Fo.test(e.path))throw new TypeError("option path is invalid");s+="; Path="+e.path}if(e.expires){if(typeof e.expires.toUTCString!=="function")throw new TypeError("option expires is invalid");s+="; Expires="+e.expires.toUTCString()}if(e.httpOnly)s+="; HttpOnly";if(e.secure)s+="; Secure";if(e.sameSite){var l=typeof e.sameSite==="string"?e.sameSite.toLowerCase():e.sameSite;switch(l){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s}function Om(n,i){try{return i(n)}catch(o){return n}}/*!
|
|
26
|
+
*/var Ei=import.meta.require("crypto"),xe=function(){};xe.prototype.getRandomBytes=function(n){var i=4096,o=this;if(n=n||12,n>i)return Ei.randomBytes(n);var e=parseInt(i/n),a=parseInt(e*0.85);if(!a)return Ei.randomBytes(n);if(this.bytesBufferIndex==null)this.bytesBufferIndex=-1;if(this.bytesBufferIndex==e)this.bytesBuffer=null,this.bytesBufferIndex=-1;if(this.bytesBufferIndex==-1||this.bytesBufferIndex>a){if(!this.isGeneratingBytes)this.isGeneratingBytes=!0,Ei.randomBytes(i,function(s,c){o.bytesBuffer=c,o.bytesBufferIndex=0,o.isGeneratingBytes=!1});if(this.bytesBufferIndex==-1)return Ei.randomBytes(n)}var t=this.bytesBuffer.slice(n*this.bytesBufferIndex,n*(this.bytesBufferIndex+1));return this.bytesBufferIndex++,t};xe.prototype.generateId=function(){var n=Buffer.alloc(15);if(!n.writeInt32BE)return Math.abs(Math.random()*Math.random()*Date.now()|0).toString()+Math.abs(Math.random()*Math.random()*Date.now()|0).toString();if(this.sequenceNumber=this.sequenceNumber+1|0,n.writeInt32BE(this.sequenceNumber,11),Ei.randomBytes)this.getRandomBytes(12).copy(n);else[0,4,8].forEach(function(i){n.writeInt32BE(Math.random()*Math.pow(2,32)|0,i)});return n.toString("base64").replace(/\//g,"_").replace(/\+/g,"-")};wt=gt.exports=new xe});var po=A((ht)=>{Object.defineProperty(ht,"__esModule",{value:!0});ht.ERROR_PACKET=ht.PACKET_TYPES_REVERSE=ht.PACKET_TYPES=void 0;var Rn=Object.create(null);ht.PACKET_TYPES=Rn;Rn.open="0";Rn.close="1";Rn.ping="2";Rn.pong="3";Rn.message="4";Rn.upgrade="5";Rn.noop="6";var Ft=Object.create(null);ht.PACKET_TYPES_REVERSE=Ft;Object.keys(Rn).forEach((n)=>{Ft[Rn[n]]=n});var Vr={type:"error",data:"parser error"};ht.ERROR_PACKET=Vr});var Mt=A((Rt)=>{function Gr(n,i){if(n.data instanceof ArrayBuffer||ArrayBuffer.isView(n.data))return i(Kt(n.data,!1));Rt.encodePacket(n,!0,(o)=>{if(!fe)fe=new TextEncoder;i(fe.encode(o))})}Object.defineProperty(Rt,"__esModule",{value:!0});Rt.encodePacket=void 0;Rt.encodePacketToBinary=Gr;var Br=po(),Xr=({type:n,data:i},o,e)=>{if(i instanceof ArrayBuffer||ArrayBuffer.isView(i))return e(o?i:"b"+Kt(i,!0).toString("base64"));return e(Br.PACKET_TYPES[n]+(i||""))};Rt.encodePacket=Xr;var Kt=(n,i)=>{if(Buffer.isBuffer(n)||n instanceof Uint8Array&&!i)return n;else if(n instanceof ArrayBuffer)return Buffer.from(n);else return Buffer.from(n.buffer,n.byteOffset,n.byteLength)},fe});var kt=A(($t)=>{Object.defineProperty($t,"__esModule",{value:!0});$t.decodePacket=void 0;var mo=po(),Qr=(n,i)=>{if(typeof n!=="string")return{type:"message",data:Jt(n,i)};const o=n.charAt(0);if(o==="b"){const e=Buffer.from(n.substring(1),"base64");return{type:"message",data:Jt(e,i)}}if(!mo.PACKET_TYPES_REVERSE[o])return mo.ERROR_PACKET;return n.length>1?{type:mo.PACKET_TYPES_REVERSE[o],data:n.substring(1)}:{type:mo.PACKET_TYPES_REVERSE[o]}};$t.decodePacket=Qr;var Jt=(n,i)=>{switch(i){case"arraybuffer":if(n instanceof ArrayBuffer)return n;else if(Buffer.isBuffer(n))return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);else return n.buffer;case"nodebuffer":default:if(Buffer.isBuffer(n))return n;else return Buffer.from(n)}}});var Vi=A((fo)=>{function Dr(){return new TransformStream({transform(n,i){be.encodePacketToBinary(n,(o)=>{const e=o.length;let a;if(e<126)a=new Uint8Array(1),new DataView(a.buffer).setUint8(0,e);else if(e<65536){a=new Uint8Array(3);const t=new DataView(a.buffer);t.setUint8(0,126),t.setUint16(1,e)}else{a=new Uint8Array(9);const t=new DataView(a.buffer);t.setUint8(0,127),t.setBigUint64(1,BigInt(e))}if(n.data&&typeof n.data!=="string")a[0]|=128;i.enqueue(a),i.enqueue(o)})}})}function uo(n){return n.reduce((i,o)=>i+o.length,0)}function xo(n,i){if(n[0].length===i)return n.shift();const o=new Uint8Array(i);let e=0;for(let a=0;a<i;a++)if(o[a]=n[0][e++],e===n[0].length)n.shift(),e=0;if(n.length&&e<n[0].length)n[0]=n[0].slice(e);return o}function Lr(n,i){if(!ve)ve=new TextDecoder;const o=[];let e=0,a=-1,t=!1;return new TransformStream({transform(s,c){o.push(s);while(!0){if(e===0){if(uo(o)<1)break;const l=xo(o,1);if(t=(l[0]&128)===128,a=l[0]&127,a<126)e=3;else if(a===126)e=1;else e=2}else if(e===1){if(uo(o)<2)break;const l=xo(o,2);a=new DataView(l.buffer,l.byteOffset,l.length).getUint16(0),e=3}else if(e===2){if(uo(o)<8)break;const l=xo(o,8),r=new DataView(l.buffer,l.byteOffset,l.length),p=r.getUint32(0);if(p>Math.pow(2,21)-1){c.enqueue(Ot.ERROR_PACKET);break}a=p*Math.pow(2,32)+r.getUint32(4),e=3}else{if(uo(o)<a)break;const l=xo(o,a);c.enqueue(Te.decodePacket(t?l:ve.decode(l),i)),e=0}if(a===0||a>n){c.enqueue(Ot.ERROR_PACKET);break}}}})}Object.defineProperty(fo,"__esModule",{value:!0});fo.decodePayload=fo.decodePacket=fo.encodePayload=fo.encodePacket=fo.protocol=void 0;fo.createPacketEncoderStream=Dr;fo.createPacketDecoderStream=Lr;var be=Mt();Object.defineProperty(fo,"encodePacket",{enumerable:!0,get:function(){return be.encodePacket}});var Te=kt();Object.defineProperty(fo,"decodePacket",{enumerable:!0,get:function(){return Te.decodePacket}});var Ot=po(),zt=String.fromCharCode(30),Hr=(n,i)=>{const o=n.length,e=new Array(o);let a=0;n.forEach((t,s)=>{be.encodePacket(t,!1,(c)=>{if(e[s]=c,++a===o)i(e.join(zt))})})};fo.encodePayload=Hr;var Nr=(n,i)=>{const o=n.split(zt),e=[];for(let a=0;a<o.length;a++){const t=Te.decodePacket(o[a],i);if(e.push(t),t.type==="error")break}return e};fo.decodePayload=Nr;var ve;fo.protocol=4});var Vt=A((PF,Et)=>{function Wt(n){var i=[],o=0,e=n.length,a,t;while(o<e)if(a=n.charCodeAt(o++),a>=55296&&a<=56319&&o<e)if(t=n.charCodeAt(o++),(t&64512)==56320)i.push(((a&1023)<<10)+(t&1023)+65536);else i.push(a),o--;else i.push(a);return i}function ip(n){var i=n.length,o=-1,e,a="";while(++o<i){if(e=n[o],e>65535)e-=65536,a+=Bn(e>>>10&1023|55296),e=56320|e&1023;a+=Bn(e)}return a}function It(n,i){if(n>=55296&&n<=57343){if(i)throw Error("Lone surrogate U+"+n.toString(16).toUpperCase()+" is not a scalar value");return!1}return!0}function Se(n,i){return Bn(n>>i&63|128)}function op(n,i){if((n&4294967168)==0)return Bn(n);var o="";if((n&4294965248)==0)o=Bn(n>>6&31|192);else if((n&4294901760)==0){if(!It(n,i))n=65533;o=Bn(n>>12&15|224),o+=Se(n,6)}else if((n&4292870144)==0)o=Bn(n>>18&7|240),o+=Se(n,12),o+=Se(n,6);return o+=Bn(n&63|128),o}function ep(n,i){i=i||{};var o=i.strict!==!1,e=Wt(n),a=e.length,t=-1,s,c="";while(++t<a)s=e[t],c+=op(s,o);return c}function ri(){if(Xn>=vo)throw Error("Invalid byte index");var n=yo[Xn]&255;if(Xn++,(n&192)==128)return n&63;throw Error("Invalid continuation byte")}function ap(n){var i,o,e,a,t;if(Xn>vo)throw Error("Invalid byte index");if(Xn==vo)return!1;if(i=yo[Xn]&255,Xn++,(i&128)==0)return i;if((i&224)==192)if(o=ri(),t=(i&31)<<6|o,t>=128)return t;else throw Error("Invalid continuation byte");if((i&240)==224)if(o=ri(),e=ri(),t=(i&15)<<12|o<<6|e,t>=2048)return It(t,n)?t:65533;else throw Error("Invalid continuation byte");if((i&248)==240){if(o=ri(),e=ri(),a=ri(),t=(i&7)<<18|o<<12|e<<6|a,t>=65536&&t<=1114111)return t}throw Error("Invalid UTF-8 detected")}function tp(n,i){i=i||{};var o=i.strict!==!1;yo=Wt(n),vo=yo.length,Xn=0;var e=[],a;while((a=ap(o))!==!1)e.push(a);return ip(e)}/*! https://mths.be/utf8js v2.1.2 by @mathias */var Bn=String.fromCharCode,yo,vo,Xn;Et.exports={version:"2.1.2",encode:ep,decode:tp}});var Dt=A((Ht)=>{function we(n,i,o,e){if(typeof i==="function")e=i,i=null;if(typeof o==="function")e=o,o=null;if(Buffer.isBuffer(n.data))return Ut(n,i,e);else if(n.data&&(n.data.buffer||n.data)instanceof ArrayBuffer)return Ut({type:n.type,data:Fe(n.data)},i,e);var a=Ht.packets[n.type];if(n.data!==void 0)a+=o?Yt.encode(String(n.data),{strict:!1}):String(n.data);return e(""+a)}function Ut(n,i,o){if(!i)return Bt(n,o);var e=n.data,a=Buffer.allocUnsafe(1);return a[0]=Ht.packets[n.type],o(Buffer.concat([a,e]))}function Bt(n,i){var o=Buffer.isBuffer(n.data)?n.data:Fe(n.data),e="b"+Ht.packets[n.type];return e+=o.toString("base64"),i(e)}function ge(n,i,o){if(n===void 0)return gn;var e;if(typeof n==="string"){if(e=n.charAt(0),e==="b")return Xt(n.slice(1),i);if(o){if(n=lp(n),n===!1)return gn}if(Number(e)!=e||!pi[e])return gn;if(n.length>1)return{type:pi[e],data:n.slice(1)};else return{type:pi[e]}}if(i==="arraybuffer"){var a=new Uint8Array(n);return e=a[0],{type:pi[e],data:a.buffer.slice(1)}}if(n instanceof ArrayBuffer)n=Fe(n);return e=n[0],{type:pi[e],data:n.slice(1)}}function lp(n){try{n=Yt.decode(n,{strict:!1})}catch(i){return!1}return n}function Xt(n,i){var o=pi[n.charAt(0)],e=Buffer.from(n.slice(1),"base64");if(i==="arraybuffer"){var a=new Uint8Array(e.length);for(var t=0;t<a.length;t++)a[t]=e[t];e=a.buffer}return{type:o,data:e}}function rp(n,i,o){if(typeof i==="function")o=i,i=null;if(i&&sp(n))return Zt(n,o);if(!n.length)return o("0:");function e(a,t){we(a,i,!1,function(s){t(null,pp(s))})}Gt(n,e,function(a,t){return o(t.join(""))})}function pp(n){return n.length+":"+n}function Gt(n,i,o){const e=new Array(n.length);let a=0;for(let t=0;t<n.length;t++)i(n[t],(s,c)=>{if(e[t]=c,++a===n.length)o(null,e)})}function mp(n,i,o){if(typeof n!=="string")return Qt(n,i,o);if(typeof i==="function")o=i,i=null;if(n==="")return o(gn,0,1);var e="",a,t,s;for(var c=0,l=n.length;c<l;c++){var r=n.charAt(c);if(r!==":"){e+=r;continue}if(e===""||e!=(a=Number(e)))return o(gn,0,1);if(t=n.slice(c+1,c+1+a),e!=t.length)return o(gn,0,1);if(t.length){if(s=ge(t,i,!1),gn.type===s.type&&gn.data===s.data)return o(gn,0,1);var p=o(s,c+a,l);if(p===!1)return}c+=a,e=""}if(e!=="")return o(gn,0,1)}function up(n){var i="";for(var o=0,e=n.length;o<e;o++)i+=String.fromCharCode(n[o]);return i}function xp(n){var i=Buffer.allocUnsafe(n.length);for(var o=0,e=n.length;o<e;o++)i.writeUInt8(n.charCodeAt(o),o);return i}function Fe(n){var i=n.byteLength||n.length,o=n.byteOffset||0;return Buffer.from(n.buffer||n,o,i)}function Zt(n,i){if(!n.length)return i(cp);Gt(n,dp,function(o,e){return i(Buffer.concat(e))})}function dp(n,i){function o(e){var a=""+e.length,t;if(typeof e==="string"){t=Buffer.allocUnsafe(a.length+2),t[0]=0;for(var s=0;s<a.length;s++)t[s+1]=parseInt(a[s],10);return t[t.length-1]=255,i(null,Buffer.concat([t,xp(e)]))}t=Buffer.allocUnsafe(a.length+2),t[0]=1;for(var s=0;s<a.length;s++)t[s+1]=parseInt(a[s],10);t[t.length-1]=255,i(null,Buffer.concat([t,e]))}we(n,!0,!0,o)}function Qt(n,i,o){if(typeof i==="function")o=i,i=null;var e=n,a=[],t;while(e.length>0){var s="",c=e[0]===0;for(t=1;;t++){if(e[t]===255)break;if(s.length>310)return o(gn,0,1);s+=""+e[t]}e=e.slice(s.length+1);var l=parseInt(s,10),r=e.slice(1,l+1);if(c)r=up(r);a.push(r),e=e.slice(l+1)}var p=a.length;for(t=0;t<p;t++){var m=a[t];o(ge(m,i,!0),t,p)}}Object.defineProperty(Ht,"__esModule",{value:!0});Ht.decodePayloadAsBinary=Ht.encodePayloadAsBinary=Ht.decodePayload=Ht.encodePayload=Ht.decodeBase64Packet=Ht.decodePacket=Ht.encodeBase64Packet=Ht.encodePacket=Ht.packets=Ht.protocol=void 0;var Yt=Vt();Ht.protocol=3;var sp=(n)=>{for(let i of n)if(i.data instanceof ArrayBuffer||ArrayBuffer.isView(i.data))return!0;return!1};Ht.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6};var pi=Object.keys(Ht.packets),gn={type:"error",data:"parser error"},cp=Buffer.concat([]);Ht.encodePacket=we;Ht.encodeBase64Packet=Bt;Ht.decodePacket=ge;Ht.decodeBase64Packet=Xt;Ht.encodePayload=rp;Ht.decodePayload=mp;Ht.encodePayloadAsBinary=Zt;Ht.decodePayloadAsBinary=Qt});var Pt=A((qF,Lt)=>{function Ap(n){if(n=String(n),n.length>100)return;var i=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(!i)return;var o=parseFloat(i[1]),e=(i[2]||"ms").toLowerCase();switch(e){case"years":case"year":case"yrs":case"yr":case"y":return o*hp;case"weeks":case"week":case"w":return o*Fp;case"days":case"day":case"d":return o*Pn;case"hours":case"hour":case"hrs":case"hr":case"h":return o*xi;case"minutes":case"minute":case"mins":case"min":case"m":return o*ui;case"seconds":case"second":case"secs":case"sec":case"s":return o*mi;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}function Kp(n){var i=Math.abs(n);if(i>=Pn)return Math.round(n/Pn)+"d";if(i>=xi)return Math.round(n/xi)+"h";if(i>=ui)return Math.round(n/ui)+"m";if(i>=mi)return Math.round(n/mi)+"s";return n+"ms"}function Rp(n){var i=Math.abs(n);if(i>=Pn)return bo(n,i,Pn,"day");if(i>=xi)return bo(n,i,xi,"hour");if(i>=ui)return bo(n,i,ui,"minute");if(i>=mi)return bo(n,i,mi,"second");return n+" ms"}function bo(n,i,o,e){var a=i>=o*1.5;return Math.round(n/o)+" "+e+(a?"s":"")}var mi=1000,ui=mi*60,xi=ui*60,Pn=xi*24,Fp=Pn*7,hp=Pn*365.25;Lt.exports=function(n,i){i=i||{};var o=typeof n;if(o==="string"&&n.length>0)return Ap(n);else if(o==="number"&&isFinite(n))return i.long?Rp(n):Kp(n);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))}});var he=A((nh,_t)=>{function Mp(n){o.debug=o,o.default=o,o.coerce=l,o.disable=t,o.enable=a,o.enabled=s,o.humanize=Pt(),o.destroy=r,Object.keys(n).forEach((p)=>{o[p]=n[p]}),o.names=[],o.skips=[],o.formatters={};function i(p){let m=0;for(let T=0;T<p.length;T++)m=(m<<5)-m+p.charCodeAt(T),m|=0;return o.colors[Math.abs(m)%o.colors.length]}o.selectColor=i;function o(p){let m,T=null,R,y;function v(...u){if(!v.enabled)return;const b=v,S=Number(new Date),K=S-(m||S);if(b.diff=K,b.prev=m,b.curr=S,m=S,u[0]=o.coerce(u[0]),typeof u[0]!=="string")u.unshift("%O");let W=0;u[0]=u[0].replace(/%([a-zA-Z%])/g,(d,h)=>{if(d==="%%")return"%";W++;const w=o.formatters[h];if(typeof w==="function"){const g=u[W];d=w.call(b,g),u.splice(W,1),W--}return d}),o.formatArgs.call(b,u),(b.log||o.log).apply(b,u)}if(v.namespace=p,v.useColors=o.useColors(),v.color=o.selectColor(p),v.extend=e,v.destroy=o.destroy,Object.defineProperty(v,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(T!==null)return T;if(R!==o.namespaces)R=o.namespaces,y=o.enabled(p);return y},set:(u)=>{T=u}}),typeof o.init==="function")o.init(v);return v}function e(p,m){const T=o(this.namespace+(typeof m==="undefined"?":":m)+p);return T.log=this.log,T}function a(p){o.save(p),o.namespaces=p,o.names=[],o.skips=[];let m;const T=(typeof p==="string"?p:"").split(/[\s,]+/),R=T.length;for(m=0;m<R;m++){if(!T[m])continue;if(p=T[m].replace(/\*/g,".*?"),p[0]==="-")o.skips.push(new RegExp("^"+p.slice(1)+"$"));else o.names.push(new RegExp("^"+p+"$"))}}function t(){const p=[...o.names.map(c),...o.skips.map(c).map((m)=>"-"+m)].join(",");return o.enable(""),p}function s(p){if(p[p.length-1]==="*")return!0;let m,T;for(m=0,T=o.skips.length;m<T;m++)if(o.skips[m].test(p))return!1;for(m=0,T=o.names.length;m<T;m++)if(o.names[m].test(p))return!0;return!1}function c(p){return p.toString().substring(2,p.toString().length-2).replace(/\.\*\?$/,"*")}function l(p){if(p instanceof Error)return p.stack||p.message;return p}function r(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return o.enable(o.load()),o}_t.exports=Mp});var ns=A((qt,So)=>{function Jp(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let n;return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&(n=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(n[1],10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function $p(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+So.exports.humanize(this.diff),!this.useColors)return;const i="color: "+this.color;n.splice(1,0,i,"color: inherit");let o=0,e=0;n[0].replace(/%[a-zA-Z%]/g,(a)=>{if(a==="%%")return;if(o++,a==="%c")e=o}),n.splice(e,0,i)}function jp(n){try{if(n)qt.storage.setItem("debug",n);else qt.storage.removeItem("debug")}catch(i){}}function kp(){let n;try{n=qt.storage.getItem("debug")}catch(i){}if(!n&&typeof process!=="undefined"&&"env"in process)n=process.env.DEBUG;return n}function Op(){try{return localStorage}catch(n){}}qt.formatArgs=$p;qt.save=jp;qt.load=kp;qt.useColors=Jp;qt.storage=Op();qt.destroy=(()=>{let n=!1;return()=>{if(!n)n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();qt.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];qt.log=console.debug||console.log||(()=>{});So.exports=he()(qt);var{formatters:zp}=So.exports;zp.j=function(n){try{return JSON.stringify(n)}catch(i){return"[UnexpectedJSONParseError]: "+i.message}}});var os=A((oh,is)=>{is.exports=(n,i)=>{i=i||process.argv;const o=n.startsWith("-")?"":n.length===1?"-":"--",e=i.indexOf(o+n),a=i.indexOf("--");return e!==-1&&(a===-1?!0:e<a)}});var as=A((eh,es)=>{function Xp(n){if(n===0)return!1;return{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3}}function Gp(n){if(di===!1)return 0;if(Fn("color=16m")||Fn("color=full")||Fn("color=truecolor"))return 3;if(Fn("color=256"))return 2;if(n&&!n.isTTY&&di!==!0)return 0;const i=di?1:0;if(process.platform==="win32"){const o=Bp.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(o[0])>=10&&Number(o[2])>=10586)return Number(o[2])>=14931?3:2;return 1}if("CI"in nn){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some((o)=>(o in nn))||nn.CI_NAME==="codeship")return 1;return i}if("TEAMCITY_VERSION"in nn)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(nn.TEAMCITY_VERSION)?1:0;if(nn.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in nn){const o=parseInt((nn.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(nn.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(nn.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(nn.TERM))return 1;if("COLORTERM"in nn)return 1;if(nn.TERM==="dumb")return i;return i}function Ae(n){const i=Gp(n);return Xp(i)}var Bp=import.meta.require("os"),Fn=os(),nn=process.env,di;if(Fn("no-color")||Fn("no-colors")||Fn("color=false"))di=!1;else if(Fn("color")||Fn("colors")||Fn("color=true")||Fn("color=always"))di=!0;if("FORCE_COLOR"in nn)di=nn.FORCE_COLOR.length===0||parseInt(nn.FORCE_COLOR,10)!==0;es.exports={supportsColor:Ae,stdout:Ae(process.stdout),stderr:Ae(process.stderr)}});var ls=A((ss,go)=>{function Qp(){return"colors"in ss.inspectOpts?Boolean(ss.inspectOpts.colors):Zp.isatty(process.stderr.fd)}function Hp(n){const{namespace:i,useColors:o}=this;if(o){const e=this.color,a="\x1B[3"+(e<8?e:"8;5;"+e),t=` ${a};1m${i} \x1B[0m`;n[0]=t+n[0].split("\n").join("\n"+t),n.push(a+"m+"+go.exports.humanize(this.diff)+"\x1B[0m")}else n[0]=Np()+i+" "+n[0]}function Np(){if(ss.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function Dp(...n){return process.stderr.write(wo.formatWithOptions(ss.inspectOpts,...n)+"\n")}function Lp(n){if(n)process.env.DEBUG=n;else delete process.env.DEBUG}function Pp(){return process.env.DEBUG}function _p(n){n.inspectOpts={};const i=Object.keys(ss.inspectOpts);for(let o=0;o<i.length;o++)n.inspectOpts[i[o]]=ss.inspectOpts[i[o]]}var Zp=import.meta.require("tty"),wo=import.meta.require("util");ss.init=_p;ss.log=Dp;ss.formatArgs=Hp;ss.save=Lp;ss.load=Pp;ss.useColors=Qp;ss.destroy=wo.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");ss.colors=[6,2,3,4,5,1];try{const n=as();if(n&&(n.stderr||n).level>=2)ss.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(n){}ss.inspectOpts=Object.keys(process.env).filter((n)=>{return/^debug_/i.test(n)}).reduce((n,i)=>{const o=i.substring(6).toLowerCase().replace(/_([a-z])/g,(a,t)=>{return t.toUpperCase()});let e=process.env[i];if(/^(yes|on|true|enabled)$/i.test(e))e=!0;else if(/^(no|off|false|disabled)$/i.test(e))e=!1;else if(e==="null")e=null;else e=Number(e);return n[o]=e,n},{});go.exports=he()(ss);var{formatters:ts}=go.exports;ts.o=function(n){return this.inspectOpts.colors=this.useColors,wo.inspect(n,this.inspectOpts).split("\n").map((i)=>i.trim()).join(" ")};ts.O=function(n){return this.inspectOpts.colors=this.useColors,wo.inspect(n,this.inspectOpts)}});var q=A((th,Ke)=>{if(typeof process==="undefined"||process.type==="renderer"||!1||process.__nwjs)Ke.exports=ns();else Ke.exports=ls()});var qn=A((ps)=>{function pm(){}Object.defineProperty(ps,"__esModule",{value:!0});ps.Transport=void 0;var sm=import.meta.require("events"),cm=Vi(),lm=Dt(),rm=q(),Re=rm.default("engine:transport");class rs extends sm.EventEmitter{constructor(n){super();this.writable=!1,this._readyState="open",this.discarded=!1,this.protocol=n._query.EIO==="4"?4:3,this.parser=this.protocol===4?cm:lm,this.supportsBinary=!(n._query&&n._query.b64)}get readyState(){return this._readyState}set readyState(n){Re("readyState updated from %s to %s (%s)",this._readyState,n,this.name),this._readyState=n}discard(){this.discarded=!0}onRequest(n){Re("setting request"),this.req=n}close(n){if(this.readyState==="closed"||this.readyState==="closing")return;this.readyState="closing",this.doClose(n||pm)}onError(n,i){if(this.listeners("error").length){const o=new Error(n);o.type="TransportError",o.description=i,this.emit("error",o)}else Re("ignored transport error %s (%s)",n,i)}onPacket(n){this.emit("packet",n)}onData(n){this.onPacket(this.parser.decodePacket(n))}onClose(){this.readyState="closed",this.emit("close")}}ps.Transport=rs});var Me=A((ds)=>{Object.defineProperty(ds,"__esModule",{value:!0});ds.Polling=void 0;var mm=qn(),us=import.meta.require("zlib"),um=ro(),xm=q(),un=xm.default("engine:polling"),dm={gzip:us.createGzip,deflate:us.createDeflate};class xs extends mm.Transport{constructor(n){super(n);this.closeTimeout=30000}get name(){return"polling"}get supportsFraming(){return!1}onRequest(n){const i=n.res;if(n.res=null,n.method==="GET")this.onPollRequest(n,i);else if(n.method==="POST")this.onDataRequest(n,i);else i.writeHead(500),i.end()}onPollRequest(n,i){if(this.req){un("request overlap"),this.onError("overlap from client"),i.writeHead(400),i.end();return}un("setting request"),this.req=n,this.res=i;const o=()=>{this.onError("poll connection closed prematurely")},e=()=>{n.removeListener("close",o),this.req=this.res=null};if(n.cleanup=e,n.on("close",o),this.writable=!0,this.emit("drain"),this.writable&&this.shouldClose)un("triggering empty send to append close packet"),this.send([{type:"noop"}])}onDataRequest(n,i){if(this.dataReq){this.onError("data request overlap from client"),i.writeHead(400),i.end();return}const o=n.headers["content-type"]==="application/octet-stream";if(o&&this.protocol===4)return this.onError("invalid content");this.dataReq=n,this.dataRes=i;let e=o?Buffer.concat([]):"";const a=()=>{n.removeListener("data",s),n.removeListener("end",c),n.removeListener("close",t),this.dataReq=this.dataRes=e=null},t=()=>{a(),this.onError("data request connection closed prematurely")},s=(l)=>{let r;if(o)e=Buffer.concat([e,l]),r=e.length;else e+=l,r=Buffer.byteLength(e);if(r>this.maxHttpBufferSize)i.writeHead(413).end(),a()},c=()=>{this.onData(e);const l={"Content-Type":"text/html","Content-Length":2};i.writeHead(200,this.headers(n,l)),i.end("ok"),a()};if(n.on("close",t),!o)n.setEncoding("utf8");n.on("data",s),n.on("end",c)}onData(n){un('received "%s"',n);const i=(o)=>{if(o.type==="close")return un("got xhr close packet"),this.onClose(),!1;this.onPacket(o)};if(this.protocol===3)this.parser.decodePayload(n,i);else this.parser.decodePayload(n).forEach(i)}onClose(){if(this.writable)this.send([{type:"noop"}]);super.onClose()}send(n){if(this.writable=!1,this.shouldClose)un("appending close packet to payload"),n.push({type:"close"}),this.shouldClose(),this.shouldClose=null;const i=(o)=>{const e=n.some((a)=>{return a.options&&a.options.compress});this.write(o,{compress:e})};if(this.protocol===3)this.parser.encodePayload(n,this.supportsBinary,i);else this.parser.encodePayload(n,i)}write(n,i){un('writing "%s"',n),this.doWrite(n,i,()=>{this.req.cleanup()})}doWrite(n,i,o){const e=typeof n==="string",t={"Content-Type":e?"text/plain; charset=UTF-8":"application/octet-stream"},s=(r)=>{t["Content-Length"]=typeof r==="string"?Buffer.byteLength(r):r.length,this.res.writeHead(200,this.headers(this.req,t)),this.res.end(r),o()};if(!this.httpCompression||!i.compress){s(n);return}if((e?Buffer.byteLength(n):n.length)<this.httpCompression.threshold){s(n);return}const l=um(this.req).encodings(["gzip","deflate"]);if(!l){s(n);return}this.compress(n,l,(r,p)=>{if(r){this.res.writeHead(500),this.res.end(),o(r);return}t["Content-Encoding"]=l,s(p)})}compress(n,i,o){un("compressing");const e=[];let a=0;dm[i](this.httpCompression).on("error",o).on("data",function(t){e.push(t),a+=t.length}).on("end",function(){o(null,Buffer.concat(e,a))}).end(n)}doClose(n){un("closing");let i;if(this.dataReq)un("aborting ongoing data request"),this.dataReq.destroy();const o=()=>{clearTimeout(i),n(),this.onClose()};if(this.writable)un("transport writable - closing right away"),this.send([{type:"close"}]),o();else if(this.discarded)un("transport discarded - closing right away"),o();else un("transport not writable - buffering orderly close"),this.shouldClose=o,i=setTimeout(o,this.closeTimeout)}headers(n,i){i=i||{};const o=n.headers["user-agent"];if(o&&(~o.indexOf(";MSIE")||~o.indexOf("Trident/")))i["X-XSS-Protection"]="0";return i["cache-control"]="no-store",this.emit("headers",i,n),i}}ds.Polling=xs});var Ts=A((vs)=>{Object.defineProperty(vs,"__esModule",{value:!0});vs.JSONP=void 0;var fm=Me(),ym=import.meta.require("querystring"),vm=/\\\\n/g,bm=/(\\)?\\n/g;class ys extends fm.Polling{constructor(n){super(n);this.head="___eio["+(n._query.j||"").replace(/[^0-9]/g,"")+"](",this.foot=");"}onData(n){if(n=ym.parse(n).d,typeof n==="string")n=n.replace(bm,function(i,o){return o?i:"\n"}),super.onData(n.replace(vm,"\\n"))}doWrite(n,i,o){const e=JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029");n=this.head+e+this.foot,super.doWrite(n,i,o)}}vs.JSONP=ys});var Fs=A((ws)=>{Object.defineProperty(ws,"__esModule",{value:!0});ws.WebSocket=void 0;var Tm=qn(),Sm=q(),Je=Sm.default("engine:ws");class Ss extends Tm.Transport{constructor(n){super(n);this.socket=n.websocket,this.socket.on("message",(i,o)=>{const e=o?i:i.toString();Je('received "%s"',e),super.onData(e)}),this.socket.once("close",this.onClose.bind(this)),this.socket.on("error",this.onError.bind(this)),this.writable=!0,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}get supportsFraming(){return!0}send(n){this.writable=!1;for(let i=0;i<n.length;i++){const o=n[i],e=i+1===n.length,a={};if(o.options)a.compress=o.options.compress;const t=(c)=>{if(c)return this.onError("write error",c.stack);else if(e)this.writable=!0,this.emit("drain")},s=(c)=>{if(this.perMessageDeflate){if((typeof c==="string"?Buffer.byteLength(c):c.length)<this.perMessageDeflate.threshold)a.compress=!1}Je('writing "%s"',c),this.socket.send(c,a,t)};if(o.options&&typeof o.options.wsPreEncoded==="string")s(o.options.wsPreEncoded);else if(this._canSendPreEncodedFrame(o))this.socket._sender.sendFrame(o.options.wsPreEncodedFrame,t);else this.parser.encodePacket(o,this.supportsBinary,s)}}_canSendPreEncodedFrame(n){var i,o,e;return!this.perMessageDeflate&&typeof((o=(i=this.socket)===null||i===void 0?void 0:i._sender)===null||o===void 0?void 0:o.sendFrame)==="function"&&((e=n.options)===null||e===void 0?void 0:e.wsPreEncodedFrame)!==void 0}doClose(n){Je("closing"),this.socket.close(),n&&n()}}ws.WebSocket=Ss});var $e=A((As)=>{Object.defineProperty(As,"__esModule",{value:!0});As.WebTransport=void 0;var wm=qn(),gm=q(),Fm=Vi(),fi=gm.default("engine:webtransport");class hs extends wm.Transport{constructor(n,i,o){super({_query:{EIO:"4"}});this.session=n;const e=Fm.createPacketEncoderStream();e.readable.pipeTo(i.writable).catch(()=>{fi("the stream was closed")}),this.writer=e.writable.getWriter(),(async()=>{try{while(!0){const{value:a,done:t}=await o.read();if(t){fi("session is closed");break}fi("received chunk: %o",a),this.onPacket(a)}}catch(a){fi("error while reading: %s",a.message)}})(),n.closed.then(()=>this.onClose()),this.writable=!0}get name(){return"webtransport"}get supportsFraming(){return!0}async send(n){this.writable=!1;try{for(let i=0;i<n.length;i++){const o=n[i];await this.writer.write(o)}}catch(i){fi("error while writing: %s",i.message)}this.writable=!0,this.emit("drain")}doClose(n){fi("closing WebTransport session"),this.session.close(),n&&n()}}As.WebTransport=hs});var je=A((Ms)=>{function Rs(n){if(typeof n._query.j==="string")return new Am.JSONP(n);else return new hm.Polling(n)}Object.defineProperty(Ms,"__esModule",{value:!0});var hm=Me(),Am=Ts(),Km=Fs(),Rm=$e();Ms.default={polling:Rs,websocket:Km.WebSocket,webtransport:Rm.WebTransport};Rs.upgradesTo=["websocket","webtransport"]});var ke=A(($s)=>{Object.defineProperty($s,"__esModule",{value:!0});$s.Socket=void 0;var Jm=import.meta.require("events"),$m=q(),Gn=import.meta.require("timers"),Q=$m.default("engine:socket");class Js extends Jm.EventEmitter{constructor(n,i,o,e,a){super();if(this._readyState="opening",this.upgrading=!1,this.upgraded=!1,this.writeBuffer=[],this.packetsFn=[],this.sentCallbackFn=[],this.cleanupFn=[],this.id=n,this.server=i,this.request=e,this.protocol=a,e)if(e.websocket&&e.websocket._socket)this.remoteAddress=e.websocket._socket.remoteAddress;else this.remoteAddress=e.connection.remoteAddress;this.pingTimeoutTimer=null,this.pingIntervalTimer=null,this.setTransport(o),this.onOpen()}get readyState(){return this._readyState}set readyState(n){Q("readyState updated from %s to %s",this._readyState,n),this._readyState=n}onOpen(){if(this.readyState="open",this.transport.sid=this.id,this.sendPacket("open",JSON.stringify({sid:this.id,upgrades:this.getAvailableUpgrades(),pingInterval:this.server.opts.pingInterval,pingTimeout:this.server.opts.pingTimeout,maxPayload:this.server.opts.maxHttpBufferSize})),this.server.opts.initialPacket)this.sendPacket("message",this.server.opts.initialPacket);if(this.emit("open"),this.protocol===3)this.resetPingTimeout(this.server.opts.pingInterval+this.server.opts.pingTimeout);else this.schedulePing()}onPacket(n){if(this.readyState!=="open")return Q("packet received with closed socket");switch(Q(`received packet ${n.type}`),this.emit("packet",n),this.resetPingTimeout(this.server.opts.pingInterval+this.server.opts.pingTimeout),n.type){case"ping":if(this.transport.protocol!==3){this.onError("invalid heartbeat direction");return}Q("got ping"),this.sendPacket("pong"),this.emit("heartbeat");break;case"pong":if(this.transport.protocol===3){this.onError("invalid heartbeat direction");return}Q("got pong"),this.pingIntervalTimer.refresh(),this.emit("heartbeat");break;case"error":this.onClose("parse error");break;case"message":this.emit("data",n.data),this.emit("message",n.data);break}}onError(n){Q("transport error"),this.onClose("transport error",n)}schedulePing(){this.pingIntervalTimer=Gn.setTimeout(()=>{Q("writing ping packet - expecting pong within %sms",this.server.opts.pingTimeout),this.sendPacket("ping"),this.resetPingTimeout(this.server.opts.pingTimeout)},this.server.opts.pingInterval)}resetPingTimeout(n){Gn.clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=Gn.setTimeout(()=>{if(this.readyState==="closed")return;this.onClose("ping timeout")},n)}setTransport(n){const i=this.onError.bind(this),o=this.onPacket.bind(this),e=this.flush.bind(this),a=this.onClose.bind(this,"transport close");this.transport=n,this.transport.once("error",i),this.transport.on("packet",o),this.transport.on("drain",e),this.transport.once("close",a),this.setupSendCallback(),this.cleanupFn.push(function(){n.removeListener("error",i),n.removeListener("packet",o),n.removeListener("drain",e),n.removeListener("close",a)})}maybeUpgrade(n){Q('might upgrade socket transport from "%s" to "%s"',this.transport.name,n.name),this.upgrading=!0;const i=Gn.setTimeout(()=>{if(Q("client did not complete upgrade - closing transport"),t(),n.readyState==="open")n.close()},this.server.opts.upgradeTimeout);let o;const e=(r)=>{if(r.type==="ping"&&r.data==="probe")Q("got probe ping packet, sending pong"),n.send([{type:"pong",data:"probe"}]),this.emit("upgrading",n),clearInterval(o),o=setInterval(a,100);else if(r.type==="upgrade"&&this.readyState!=="closed"){if(Q("got upgrade packet - upgrading"),t(),this.transport.discard(),this.upgraded=!0,this.clearTransport(),this.setTransport(n),this.emit("upgrade",n),this.flush(),this.readyState==="closing")n.close(()=>{this.onClose("forced close")})}else t(),n.close()},a=()=>{if(this.transport.name==="polling"&&this.transport.writable)Q("writing a noop packet to polling for fast upgrade"),this.transport.send([{type:"noop"}])},t=()=>{this.upgrading=!1,clearInterval(o),Gn.clearTimeout(i),n.removeListener("packet",e),n.removeListener("close",c),n.removeListener("error",s),this.removeListener("close",l)},s=(r)=>{Q("client did not complete upgrade - %s",r),t(),n.close(),n=null},c=()=>{s("transport closed")},l=()=>{s("socket closed")};n.on("packet",e),n.once("close",c),n.once("error",s),this.once("close",l)}clearTransport(){let n;const i=this.cleanupFn.length;for(let o=0;o<i;o++)n=this.cleanupFn.shift(),n();this.transport.on("error",function(){Q("error triggered by discarded transport")}),this.transport.close(),Gn.clearTimeout(this.pingTimeoutTimer)}onClose(n,i){if(this.readyState!=="closed")this.readyState="closed",Gn.clearTimeout(this.pingIntervalTimer),Gn.clearTimeout(this.pingTimeoutTimer),process.nextTick(()=>{this.writeBuffer=[]}),this.packetsFn=[],this.sentCallbackFn=[],this.clearTransport(),this.emit("close",n,i)}setupSendCallback(){const n=()=>{if(this.sentCallbackFn.length>0){const i=this.sentCallbackFn.splice(0,1)[0];if(typeof i==="function")Q("executing send callback"),i(this.transport);else if(Array.isArray(i)){Q("executing batch send callback");const o=i.length;let e=0;for(;e<o;e++)if(typeof i[e]==="function")i[e](this.transport)}}};this.transport.on("drain",n),this.cleanupFn.push(()=>{this.transport.removeListener("drain",n)})}send(n,i,o){return this.sendPacket("message",n,i,o),this}write(n,i,o){return this.sendPacket("message",n,i,o),this}sendPacket(n,i,o={},e){if(typeof o==="function")e=o,o={};if(this.readyState!=="closing"&&this.readyState!=="closed"){Q('sending packet "%s" (%s)',n,i),o.compress=o.compress!==!1;const a={type:n,options:o};if(i)a.data=i;if(this.emit("packetCreate",a),this.writeBuffer.push(a),e)this.packetsFn.push(e);this.flush()}}flush(){if(this.readyState!=="closed"&&this.transport.writable&&this.writeBuffer.length){Q("flushing buffer to transport"),this.emit("flush",this.writeBuffer),this.server.emit("flush",this,this.writeBuffer);const n=this.writeBuffer;if(this.writeBuffer=[],!this.transport.supportsFraming)this.sentCallbackFn.push(this.packetsFn);else this.sentCallbackFn.push.apply(this.sentCallbackFn,this.packetsFn);this.packetsFn=[],this.transport.send(n),this.emit("drain"),this.server.emit("drain",this)}}getAvailableUpgrades(){const n=[],i=this.server.upgrades(this.transport.name);let o=0;const e=i.length;for(;o<e;++o){const a=i[o];if(this.server.opts.transports.indexOf(a)!==-1)n.push(a)}return n}close(n){if(this.readyState!=="open")return;if(this.readyState="closing",this.writeBuffer.length){Q("there are %d remaining packets in the buffer, waiting for the 'drain' event",this.writeBuffer.length),this.once("drain",()=>{Q("all packets have been sent, closing the transport"),this.closeTransport(n)});return}Q("the buffer is empty, closing the transport right away",n),this.closeTransport(n)}closeTransport(n){if(Q("closing the transport (discard? %s)",n),n)this.transport.discard();this.transport.close(this.onClose.bind(this,"forced close"))}}$s.Socket=Js});var ks=A((Wm)=>{function Om(n,i){if(typeof n!=="string")throw new TypeError("argument str must be a string");var o={},e=i||{},a=n.split(";"),t=e.decode||jm;for(var s=0;s<a.length;s++){var c=a[s],l=c.indexOf("=");if(l<0)continue;var r=c.substring(0,l).trim();if(o[r]==null){var p=c.substring(l+1,c.length).trim();if(p[0]==='"')p=p.slice(1,-1);o[r]=Cm(p,t)}}return o}function zm(n,i,o){var e=o||{},a=e.encode||km;if(typeof a!=="function")throw new TypeError("option encode is invalid");if(!Fo.test(n))throw new TypeError("argument name is invalid");var t=a(i);if(t&&!Fo.test(t))throw new TypeError("argument val is invalid");var s=n+"="+t;if(e.maxAge!=null){var c=e.maxAge-0;if(isNaN(c)||!isFinite(c))throw new TypeError("option maxAge is invalid");s+="; Max-Age="+Math.floor(c)}if(e.domain){if(!Fo.test(e.domain))throw new TypeError("option domain is invalid");s+="; Domain="+e.domain}if(e.path){if(!Fo.test(e.path))throw new TypeError("option path is invalid");s+="; Path="+e.path}if(e.expires){if(typeof e.expires.toUTCString!=="function")throw new TypeError("option expires is invalid");s+="; Expires="+e.expires.toUTCString()}if(e.httpOnly)s+="; HttpOnly";if(e.secure)s+="; Secure";if(e.sameSite){var l=typeof e.sameSite==="string"?e.sameSite.toLowerCase():e.sameSite;switch(l){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s}function Cm(n,i){try{return i(n)}catch(o){return n}}/*!
|
|
27
27
|
* cookie
|
|
28
28
|
* Copyright(c) 2012-2014 Roman Shtylman
|
|
29
29
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
30
30
|
* MIT Licensed
|
|
31
|
-
*/
|
|
31
|
+
*/Wm.parse=Om;Wm.serialize=zm;var jm=decodeURIComponent,km=encodeURIComponent,Fo=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/});var Cs=A((dh,zs)=>{function Ym(n){if(n===null||n===void 0)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(n)}function Bm(){try{if(!Object.assign)return!1;var n=new String("abc");if(n[5]="de",Object.getOwnPropertyNames(n)[0]==="5")return!1;var i={};for(var o=0;o<10;o++)i["_"+String.fromCharCode(o)]=o;var e=Object.getOwnPropertyNames(i).map(function(t){return i[t]});if(e.join("")!=="0123456789")return!1;var a={};if("abcdefghijklmnopqrst".split("").forEach(function(t){a[t]=t}),Object.keys(Object.assign({},a)).join("")!=="abcdefghijklmnopqrst")return!1;return!0}catch(t){return!1}}var Os=Object.getOwnPropertySymbols,Vm=Object.prototype.hasOwnProperty,Um=Object.prototype.propertyIsEnumerable;zs.exports=Bm()?Object.assign:function(n,i){var o,e=Ym(n),a;for(var t=1;t<arguments.length;t++){o=Object(arguments[t]);for(var s in o)if(Vm.call(o,s))e[s]=o[s];if(Os){a=Os(o);for(var c=0;c<a.length;c++)if(Um.call(o,a[c]))e[a[c]]=o[a[c]]}}return e}});var Es=A((fh,Oe)=>{function Is(n,i){if(typeof n!=="string")throw new TypeError("header argument is required");if(!i)throw new TypeError("field argument is required");var o=!Array.isArray(i)?Ws(String(i)):i;for(var e=0;e<o.length;e++)if(!Xm.test(o[e]))throw new TypeError("field argument contains an invalid header name");if(n==="*")return n;var a=n,t=Ws(n.toLowerCase());if(o.indexOf("*")!==-1||t.indexOf("*")!==-1)return"*";for(var s=0;s<o.length;s++){var c=o[s].toLowerCase();if(t.indexOf(c)===-1)t.push(c),a=a?a+", "+o[s]:o[s]}return a}function Ws(n){var i=0,o=[],e=0;for(var a=0,t=n.length;a<t;a++)switch(n.charCodeAt(a)){case 32:if(e===i)e=i=a+1;break;case 44:o.push(n.substring(e,i)),e=i=a+1;break;default:i=a+1;break}return o.push(n.substring(e,i)),o}function Gm(n,i){if(!n||!n.getHeader||!n.setHeader)throw new TypeError("res argument is required");var o=n.getHeader("Vary")||"",e=Array.isArray(o)?o.join(", "):String(o);if(o=Is(e,i))n.setHeader("Vary",o)}/*!
|
|
32
32
|
* vary
|
|
33
33
|
* Copyright(c) 2014-2017 Douglas Christopher Wilson
|
|
34
34
|
* MIT Licensed
|
|
35
|
-
*/Oe.exports=Bm;Oe.exports.append=Ws;var Ym=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/});var ze=A((bh,Es)=>{(function(){var n=zs(),i=Is(),o={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function e(y){return typeof y==="string"||y instanceof String}function a(y,v){if(Array.isArray(v)){for(var u=0;u<v.length;++u)if(a(y,v[u]))return!0;return!1}else if(e(v))return y===v;else if(v instanceof RegExp)return v.test(y);else return!!v}function t(y,v){var u=v.headers.origin,b=[],S;if(!y.origin||y.origin==="*")b.push([{key:"Access-Control-Allow-Origin",value:"*"}]);else if(e(y.origin))b.push([{key:"Access-Control-Allow-Origin",value:y.origin}]),b.push([{key:"Vary",value:"Origin"}]);else S=a(u,y.origin),b.push([{key:"Access-Control-Allow-Origin",value:S?u:!1}]),b.push([{key:"Vary",value:"Origin"}]);return b}function s(y){var v=y.methods;if(v.join)v=y.methods.join(",");return{key:"Access-Control-Allow-Methods",value:v}}function c(y){if(y.credentials===!0)return{key:"Access-Control-Allow-Credentials",value:"true"};return null}function l(y,v){var u=y.allowedHeaders||y.headers,b=[];if(!u)u=v.headers["access-control-request-headers"],b.push([{key:"Vary",value:"Access-Control-Request-Headers"}]);else if(u.join)u=u.join(",");if(u&&u.length)b.push([{key:"Access-Control-Allow-Headers",value:u}]);return b}function r(y){var v=y.exposedHeaders;if(!v)return null;else if(v.join)v=v.join(",");if(v&&v.length)return{key:"Access-Control-Expose-Headers",value:v};return null}function p(y){var v=(typeof y.maxAge==="number"||y.maxAge)&&y.maxAge.toString();if(v&&v.length)return{key:"Access-Control-Max-Age",value:v};return null}function m(y,v){for(var u=0,b=y.length;u<b;u++){var S=y[u];if(S){if(Array.isArray(S))m(S,v);else if(S.key==="Vary"&&S.value)i(v,S.value);else if(S.value)v.setHeader(S.key,S.value)}}}function T(y,v,u,b){var S=[],K=v.method&&v.method.toUpperCase&&v.method.toUpperCase();if(K==="OPTIONS")if(S.push(t(y,v)),S.push(c(y,v)),S.push(s(y,v)),S.push(l(y,v)),S.push(p(y,v)),S.push(r(y,v)),m(S,u),y.preflightContinue)b();else u.statusCode=y.optionsSuccessStatus,u.setHeader("Content-Length","0"),u.end();else S.push(t(y,v)),S.push(c(y,v)),S.push(r(y,v)),m(S,u),b()}function R(y){var v=null;if(typeof y==="function")v=y;else v=function(u,b){b(null,y)};return function u(b,S,K){v(b,function(W,x){if(W)K(W);else{var d=n({},o,x),h=null;if(d.origin&&typeof d.origin==="function")h=d.origin;else if(d.origin)h=function(w,g){g(null,d.origin)};if(h)h(b.headers.origin,function(w,g){if(w||!g)K(w);else d.origin=g,T(d,b,S,K)});else K()}})}}Es.exports=R})()});var Ce=A((Gs)=>{function Lm(n){try{const i=JSON.parse(n);if(typeof i.sid==="string")return i.sid}catch(i){}}function Bs(n,i,o){const e=i===B.errors.FORBIDDEN?403:400,a=o&&o.message?o.message:B.errorMessages[i];n.writeHead(e,{"Content-Type":"application/json"}),n.end(JSON.stringify({code:i,message:a}))}function Xs(n,i,o={}){if(n.on("error",()=>{C("ignoring error from closed connection")}),n.writable){const e=o.message||B.errorMessages[i],a=Buffer.byteLength(e);n.write("HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-type: text/html\r\nContent-Length: "+a+"\r\n\r\n"+e)}n.destroy()}function Pm(n){if(n+="",n.length<1)return!1;if(!Yi[n.charCodeAt(0)])return C('invalid header, index 0, char "%s"',n.charCodeAt(0)),!0;if(n.length<2)return!1;if(!Yi[n.charCodeAt(1)])return C('invalid header, index 1, char "%s"',n.charCodeAt(1)),!0;if(n.length<3)return!1;if(!Yi[n.charCodeAt(2)])return C('invalid header, index 2, char "%s"',n.charCodeAt(2)),!0;if(n.length<4)return!1;if(!Yi[n.charCodeAt(3)])return C('invalid header, index 3, char "%s"',n.charCodeAt(3)),!0;for(let i=4;i<n.length;++i)if(!Yi[n.charCodeAt(i)])return C('invalid header, index "%i", char "%s"',i,n.charCodeAt(i)),!0;return!1}Object.defineProperty(Gs,"__esModule",{value:!0});Gs.Server=Gs.BaseServer=void 0;var Xm=import.meta.require("querystring"),Zm=import.meta.require("url"),Vs=de(),ho=je(),Gm=import.meta.require("events"),Us=ke(),Qm=q(),Hm=js(),Nm=import.meta.require("ws"),Ys=$e(),Dm=Vi(),C=Qm.default("engine"),yi=Symbol("responseHeaders");class Bi extends Gm.EventEmitter{constructor(n={}){super();if(this.middlewares=[],this.clients={},this.clientsCount=0,this.opts=Object.assign({wsEngine:Nm.Server,pingTimeout:20000,pingInterval:25000,upgradeTimeout:1e4,maxHttpBufferSize:1e6,transports:["polling","websocket"],allowUpgrades:!0,httpCompression:{threshold:1024},cors:!1,allowEIO3:!1},n),n.cookie)this.opts.cookie=Object.assign({name:"io",path:"/",httpOnly:n.cookie.path!==!1,sameSite:"lax"},n.cookie);if(this.opts.cors)this.use(ze()(this.opts.cors));if(n.perMessageDeflate)this.opts.perMessageDeflate=Object.assign({threshold:1024},n.perMessageDeflate);this.init()}_computePath(n){let i=(n.path||"/engine.io").replace(/\/$/,"");if(n.addTrailingSlash!==!1)i+="/";return i}upgrades(n){if(!this.opts.allowUpgrades)return[];return ho.default[n].upgradesTo||[]}verify(n,i,o){const e=n._query.transport;if(!~this.opts.transports.indexOf(e)||e==="webtransport")return C('unknown transport "%s"',e),o(B.errors.UNKNOWN_TRANSPORT,{transport:e});if(Pm(n.headers.origin)){const s=n.headers.origin;return n.headers.origin=null,C("origin header invalid"),o(B.errors.BAD_REQUEST,{name:"INVALID_ORIGIN",origin:s})}const t=n._query.sid;if(t){if(!this.clients.hasOwnProperty(t))return C('unknown sid "%s"',t),o(B.errors.UNKNOWN_SID,{sid:t});const s=this.clients[t].transport.name;if(!i&&s!==e)return C("bad request: unexpected transport without upgrade"),o(B.errors.BAD_REQUEST,{name:"TRANSPORT_MISMATCH",transport:e,previousTransport:s})}else{if(n.method!=="GET")return o(B.errors.BAD_HANDSHAKE_METHOD,{method:n.method});if(e==="websocket"&&!i)return C("invalid transport upgrade"),o(B.errors.BAD_REQUEST,{name:"TRANSPORT_HANDSHAKE_ERROR"});if(!this.opts.allowRequest)return o();return this.opts.allowRequest(n,(s,c)=>{if(!c)return o(B.errors.FORBIDDEN,{message:s});o()})}o()}use(n){this.middlewares.push(n)}_applyMiddlewares(n,i,o){if(this.middlewares.length===0)return C("no middleware to apply, skipping"),o();const e=(a)=>{C("applying middleware n\xB0%d",a+1),this.middlewares[a](n,i,(t)=>{if(t)return o(t);if(a+1<this.middlewares.length)e(a+1);else o()})};e(0)}close(){C("closing all open clients");for(let n in this.clients)if(this.clients.hasOwnProperty(n))this.clients[n].close(!0);return this.cleanup(),this}generateId(n){return Vs.generateId()}async handshake(n,i,o){const e=i._query.EIO==="4"?4:3;if(e===3&&!this.opts.allowEIO3){C("unsupported protocol version"),this.emit("connection_error",{req:i,code:B.errors.UNSUPPORTED_PROTOCOL_VERSION,message:B.errorMessages[B.errors.UNSUPPORTED_PROTOCOL_VERSION],context:{protocol:e}}),o(B.errors.UNSUPPORTED_PROTOCOL_VERSION);return}let a;try{a=await this.generateId(i)}catch(c){C("error while generating an id"),this.emit("connection_error",{req:i,code:B.errors.BAD_REQUEST,message:B.errorMessages[B.errors.BAD_REQUEST],context:{name:"ID_GENERATION_ERROR",error:c}}),o(B.errors.BAD_REQUEST);return}C('handshaking client "%s"',a);try{var t=this.createTransport(n,i);if(n==="polling")t.maxHttpBufferSize=this.opts.maxHttpBufferSize,t.httpCompression=this.opts.httpCompression;else if(n==="websocket")t.perMessageDeflate=this.opts.perMessageDeflate}catch(c){C('error handshaking to transport "%s"',n),this.emit("connection_error",{req:i,code:B.errors.BAD_REQUEST,message:B.errorMessages[B.errors.BAD_REQUEST],context:{name:"TRANSPORT_HANDSHAKE_ERROR",error:c}}),o(B.errors.BAD_REQUEST);return}const s=new Us.Socket(a,this,t,i,e);return t.on("headers",(c,l)=>{if(!l._query.sid){if(this.opts.cookie)c["Set-Cookie"]=[Hm.serialize(this.opts.cookie.name,a,this.opts.cookie)];this.emit("initial_headers",c,l)}this.emit("headers",c,l)}),t.onRequest(i),this.clients[a]=s,this.clientsCount++,s.once("close",()=>{delete this.clients[a],this.clientsCount--}),this.emit("connection",s),t}async onWebTransportSession(n){const i=setTimeout(()=>{C("the client failed to establish a bidirectional stream in the given period"),n.close()},this.opts.upgradeTimeout),e=await n.incomingBidirectionalStreams.getReader().read();if(e.done){C("session is closed");return}const a=e.value,t=Dm.createPacketDecoderStream(this.opts.maxHttpBufferSize,"nodebuffer"),s=a.readable.pipeThrough(t).getReader(),{value:c,done:l}=await s.read();if(l){C("stream is closed");return}if(clearTimeout(i),c.type!=="open")return C("invalid WebTransport handshake"),n.close();if(c.data===void 0){const m=new Ys.WebTransport(n,a,s),T=Vs.generateId();C('handshaking client "%s" (WebTransport)',T);const R=new Us.Socket(T,this,m,null,4);this.clients[T]=R,this.clientsCount++,R.once("close",()=>{delete this.clients[T],this.clientsCount--}),this.emit("connection",R);return}const r=Lm(c.data);if(!r)return C("invalid WebTransport handshake"),n.close();const p=this.clients[r];if(!p)C("upgrade attempt for closed client"),n.close();else if(p.upgrading)C("transport has already been trying to upgrade"),n.close();else if(p.upgraded)C("transport had already been upgraded"),n.close();else{C("upgrading existing transport");const m=new Ys.WebTransport(n,a,s);p.maybeUpgrade(m)}}}Gs.BaseServer=Bi;Bi.errors={UNKNOWN_TRANSPORT:0,UNKNOWN_SID:1,BAD_HANDSHAKE_METHOD:2,BAD_REQUEST:3,FORBIDDEN:4,UNSUPPORTED_PROTOCOL_VERSION:5};Bi.errorMessages={0:"Transport unknown",1:"Session ID unknown",2:"Bad handshake method",3:"Bad request",4:"Forbidden",5:"Unsupported protocol version"};class Zs{constructor(n,i){this.req=n,this.socket=i,n[yi]={}}setHeader(n,i){this.req[yi][n]=i}getHeader(n){return this.req[yi][n]}removeHeader(n){delete this.req[yi][n]}write(){}writeHead(){}end(){this.socket.destroy()}}class B extends Bi{init(){if(!~this.opts.transports.indexOf("websocket"))return;if(this.ws)this.ws.close();if(this.ws=new this.opts.wsEngine({noServer:!0,clientTracking:!1,perMessageDeflate:this.opts.perMessageDeflate,maxPayload:this.opts.maxHttpBufferSize}),typeof this.ws.on==="function")this.ws.on("headers",(n,i)=>{const o=i[yi]||{};if(delete i[yi],!i._query.sid)this.emit("initial_headers",o,i);this.emit("headers",o,i),C("writing headers: %j",o),Object.keys(o).forEach((a)=>{n.push(`${a}: ${o[a]}`)})})}cleanup(){if(this.ws)C("closing webSocketServer"),this.ws.close()}prepare(n){if(!n._query)n._query=~n.url.indexOf("?")?Xm.parse(Zm.parse(n.url).query):{}}createTransport(n,i){return new ho.default[n](i)}handleRequest(n,i){C('handling "%s" http request "%s"',n.method,n.url),this.prepare(n),n.res=i;const o=(e,a)=>{if(e!==void 0){this.emit("connection_error",{req:n,code:e,message:B.errorMessages[e],context:a}),Bs(i,e,a);return}if(n._query.sid)C("setting new request for existing client"),this.clients[n._query.sid].transport.onRequest(n);else{const t=(s,c)=>Bs(i,s,c);this.handshake(n._query.transport,n,t)}};this._applyMiddlewares(n,i,(e)=>{if(e)o(B.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(n,!1,o)})}handleUpgrade(n,i,o){this.prepare(n);const e=new Zs(n,i),a=(t,s)=>{if(t!==void 0){this.emit("connection_error",{req:n,code:t,message:B.errorMessages[t],context:s}),Xs(i,t,s);return}const c=Buffer.from(o);o=null,e.writeHead(),this.ws.handleUpgrade(n,i,c,(l)=>{this.onWebSocket(n,i,l)})};this._applyMiddlewares(n,e,(t)=>{if(t)a(B.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(n,!0,a)})}onWebSocket(n,i,o){if(o.on("error",a),ho.default[n._query.transport]!==void 0&&!ho.default[n._query.transport].prototype.handlesUpgrades){C("transport doesnt handle upgraded requests"),o.close();return}const e=n._query.sid;if(n.websocket=o,e){const t=this.clients[e];if(!t)C("upgrade attempt for closed client"),o.close();else if(t.upgrading)C("transport has already been trying to upgrade"),o.close();else if(t.upgraded)C("transport had already been upgraded"),o.close();else{C("upgrading existing transport"),o.removeListener("error",a);const s=this.createTransport(n._query.transport,n);s.perMessageDeflate=this.opts.perMessageDeflate,t.maybeUpgrade(s)}}else{const t=(s,c)=>Xs(i,s,c);this.handshake(n._query.transport,n,t)}function a(){C("websocket error before upgrade")}}attach(n,i={}){const o=this._computePath(i),e=i.destroyUpgradeTimeout||1000;function a(s){return o===s.url.slice(0,o.length)}const t=n.listeners("request").slice(0);if(n.removeAllListeners("request"),n.on("close",this.close.bind(this)),n.on("listening",this.init.bind(this)),n.on("request",(s,c)=>{if(a(s))C('intercepting request for path "%s"',o),this.handleRequest(s,c);else{let l=0;const r=t.length;for(;l<r;l++)t[l].call(n,s,c)}}),~this.opts.transports.indexOf("websocket"))n.on("upgrade",(s,c,l)=>{if(a(s))this.handleUpgrade(s,c,l);else if(i.destroyUpgrade!==!1)setTimeout(function(){if(c.writable&&c.bytesWritten<=0)return c.on("error",(r)=>{C("error while destroying upgrade: %s",r.message)}),c.end()},e)})}}Gs.Server=B;var Yi=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]});var Ps=A((Ds)=>{Object.defineProperty(Ds,"__esModule",{value:!0});Ds.Polling=void 0;var qm=qn(),Hs=import.meta.require("zlib"),nu=ro(),iu=q(),yn=iu.default("engine:polling"),ou={gzip:Hs.createGzip,deflate:Hs.createDeflate};class Ns extends qm.Transport{constructor(n){super(n);this.closeTimeout=30000}get name(){return"polling"}get supportsFraming(){return!1}onRequest(n){const i=n.res;if(n.res=null,n.getMethod()==="get")this.onPollRequest(n,i);else if(n.getMethod()==="post")this.onDataRequest(n,i);else i.writeStatus("500 Internal Server Error"),i.end()}onPollRequest(n,i){if(this.req){yn("request overlap"),this.onError("overlap from client"),i.writeStatus("500 Internal Server Error"),i.end();return}yn("setting request"),this.req=n,this.res=i;const o=()=>{this.writable=!1,this.onError("poll connection closed prematurely")},e=()=>{this.req=this.res=null};if(n.cleanup=e,i.onAborted(o),this.writable=!0,this.emit("drain"),this.writable&&this.shouldClose)yn("triggering empty send to append close packet"),this.send([{type:"noop"}])}onDataRequest(n,i){if(this.dataReq){this.onError("data request overlap from client"),i.writeStatus("500 Internal Server Error"),i.end();return}const o=Number(n.headers["content-length"]);if(!o){this.onError("content-length header required"),i.writeStatus("411 Length Required").end();return}if(o>this.maxHttpBufferSize){this.onError("payload too large"),i.writeStatus("413 Payload Too Large").end();return}if(n.headers["content-type"]==="application/octet-stream"&&this.protocol===4)return this.onError("invalid content");this.dataReq=n,this.dataRes=i;let a,t=0;const s={"Content-Type":"text/html"};this.headers(n,s);for(let l in s)i.writeHeader(l,String(s[l]));const c=(l)=>{this.onData(l.toString()),this.onDataRequestCleanup(),i.cork(()=>{i.end("ok")})};i.onAborted(()=>{this.onDataRequestCleanup(),this.onError("data request connection closed prematurely")}),i.onData((l,r)=>{const p=t+l.byteLength;if(p>o){this.onError("content-length mismatch"),i.close();return}if(!a){if(r){c(Buffer.from(l));return}a=Buffer.allocUnsafe(o)}if(Buffer.from(l).copy(a,t),r){if(p!=o){this.onError("content-length mismatch"),i.writeStatus("400 Content-Length Mismatch").end(),this.onDataRequestCleanup();return}c(a);return}t=p})}onDataRequestCleanup(){this.dataReq=this.dataRes=null}onData(n){yn('received "%s"',n);const i=(o)=>{if(o.type==="close")return yn("got xhr close packet"),this.onClose(),!1;this.onPacket(o)};if(this.protocol===3)this.parser.decodePayload(n,i);else this.parser.decodePayload(n).forEach(i)}onClose(){if(this.writable)this.send([{type:"noop"}]);super.onClose()}send(n){if(this.writable=!1,this.shouldClose)yn("appending close packet to payload"),n.push({type:"close"}),this.shouldClose(),this.shouldClose=null;const i=(o)=>{const e=n.some((a)=>{return a.options&&a.options.compress});this.write(o,{compress:e})};if(this.protocol===3)this.parser.encodePayload(n,this.supportsBinary,i);else this.parser.encodePayload(n,i)}write(n,i){yn('writing "%s"',n),this.doWrite(n,i,()=>{this.req.cleanup()})}doWrite(n,i,o){const e=typeof n==="string",t={"Content-Type":e?"text/plain; charset=UTF-8":"application/octet-stream"},s=(r)=>{this.headers(this.req,t),this.res.cork(()=>{Object.keys(t).forEach((p)=>{this.res.writeHeader(p,String(t[p]))}),this.res.end(r)}),o()};if(!this.httpCompression||!i.compress){s(n);return}if((e?Buffer.byteLength(n):n.length)<this.httpCompression.threshold){s(n);return}const l=nu(this.req).encodings(["gzip","deflate"]);if(!l){s(n);return}this.compress(n,l,(r,p)=>{if(r){this.res.writeStatus("500 Internal Server Error"),this.res.end(),o(r);return}t["Content-Encoding"]=l,s(p)})}compress(n,i,o){yn("compressing");const e=[];let a=0;ou[i](this.httpCompression).on("error",o).on("data",function(t){e.push(t),a+=t.length}).on("end",function(){o(null,Buffer.concat(e,a))}).end(n)}doClose(n){yn("closing");let i;const o=()=>{clearTimeout(i),n(),this.onClose()};if(this.writable)yn("transport writable - closing right away"),this.send([{type:"close"}]),o();else if(this.discarded)yn("transport discarded - closing right away"),o();else yn("transport not writable - buffering orderly close"),this.shouldClose=o,i=setTimeout(o,this.closeTimeout)}headers(n,i){i=i||{};const o=n.headers["user-agent"];if(o&&(~o.indexOf(";MSIE")||~o.indexOf("Trident/")))i["X-XSS-Protection"]="0";return i["cache-control"]="no-store",this.emit("headers",i,n),i}}Ds.Polling=Ns});var oc=A((nc)=>{Object.defineProperty(nc,"__esModule",{value:!0});nc.WebSocket=void 0;var eu=qn(),au=q(),_s=au.default("engine:ws");class qs extends eu.Transport{constructor(n){super(n);this.writable=!1,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}get supportsFraming(){return!0}send(n){this.writable=!1;for(let i=0;i<n.length;i++){const o=n[i],e=i+1===n.length,a=(t)=>{const s=typeof t!=="string",c=this.perMessageDeflate&&Buffer.byteLength(t)>this.perMessageDeflate.threshold;if(_s('writing "%s"',t),this.socket.send(t,s,c),e)this.writable=!0,this.emit("drain")};if(o.options&&typeof o.options.wsPreEncoded==="string")a(o.options.wsPreEncoded);else this.parser.encodePacket(o,this.supportsBinary,a)}}doClose(n){_s("closing"),n&&n(),this.socket.end()}}nc.WebSocket=qs});var ac=A((ec)=>{Object.defineProperty(ec,"__esModule",{value:!0});var tu=Ps(),su=oc();ec.default={polling:tu.Polling,websocket:su.WebSocket}});var rc=A((cc)=>{Object.defineProperty(cc,"__esModule",{value:!0});cc.uServer=void 0;var lu=q(),ni=Ce(),ru=ac(),Gn=lu.default("engine:uws");class tc extends ni.BaseServer{init(){}cleanup(){}prepare(n,i){n.method=n.getMethod().toUpperCase(),n.url=n.getUrl();const o=new URLSearchParams(n.getQuery());n._query=Object.fromEntries(o.entries()),n.headers={},n.forEach((e,a)=>{n.headers[e]=a}),n.connection={remoteAddress:Buffer.from(i.getRemoteAddressAsText()).toString()},i.onAborted(()=>{Gn("response has been aborted")})}createTransport(n,i){return new ru.default[n](i)}attach(n,i={}){const o=this._computePath(i);n.any(o,this.handleRequest.bind(this)).ws(o,{compression:i.compression,idleTimeout:i.idleTimeout,maxBackpressure:i.maxBackpressure,maxPayloadLength:this.opts.maxHttpBufferSize,upgrade:this.handleUpgrade.bind(this),open:(e)=>{const a=e.getUserData().transport;a.socket=e,a.writable=!0,a.emit("drain")},message:(e,a,t)=>{e.getUserData().transport.onData(t?a:Buffer.from(a).toString())},close:(e,a,t)=>{e.getUserData().transport.onClose(a,t)}})}_applyMiddlewares(n,i,o){if(this.middlewares.length===0)return o();n.res=new sc(i),super._applyMiddlewares(n,n.res,(e)=>{n.res.writeHead(),o(e)})}handleRequest(n,i){Gn('handling "%s" http request "%s"',i.getMethod(),i.getUrl()),this.prepare(i,n),i.res=n;const o=(e,a)=>{if(e!==void 0){this.emit("connection_error",{req:i,code:e,message:ni.Server.errorMessages[e],context:a}),this.abortRequest(i.res,e,a);return}if(i._query.sid)Gn("setting new request for existing client"),this.clients[i._query.sid].transport.onRequest(i);else{const t=(s,c)=>this.abortRequest(n,s,c);this.handshake(i._query.transport,i,t)}};this._applyMiddlewares(i,n,(e)=>{if(e)o(ni.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(i,!1,o)})}handleUpgrade(n,i,o){Gn("on upgrade"),this.prepare(i,n),i.res=n;const e=async(a,t)=>{if(a!==void 0){this.emit("connection_error",{req:i,code:a,message:ni.Server.errorMessages[a],context:t}),this.abortRequest(n,a,t);return}const s=i._query.sid;let c;if(s){const l=this.clients[s];if(!l)Gn("upgrade attempt for closed client"),n.close();else if(l.upgrading)Gn("transport has already been trying to upgrade"),n.close();else if(l.upgraded)Gn("transport had already been upgraded"),n.close();else Gn("upgrading existing transport"),c=this.createTransport(i._query.transport,i),l.maybeUpgrade(c)}else if(c=await this.handshake(i._query.transport,i,(l,r)=>this.abortRequest(n,l,r)),!c)return;i.res.writeStatus("101 Switching Protocols"),n.upgrade({transport:c},i.getHeader("sec-websocket-key"),i.getHeader("sec-websocket-protocol"),i.getHeader("sec-websocket-extensions"),o)};this._applyMiddlewares(i,n,(a)=>{if(a)e(ni.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(i,!0,e)})}abortRequest(n,i,o){const e=i===ni.Server.errors.FORBIDDEN?"403 Forbidden":"400 Bad Request",a=o&&o.message?o.message:ni.Server.errorMessages[i];n.writeStatus(e),n.writeHeader("Content-Type","application/json"),n.end(JSON.stringify({code:i,message:a}))}}cc.uServer=tc;class sc{constructor(n){this.res=n,this.statusWritten=!1,this.headers=[],this.isAborted=!1}set statusCode(n){if(!n)return;this.writeStatus(n===200?"200 OK":"204 No Content")}writeHead(n){this.statusCode=n}setHeader(n,i){if(Array.isArray(i))i.forEach((o)=>{this.writeHeader(n,o)});else this.writeHeader(n,i)}removeHeader(){}getHeader(){}writeStatus(n){if(this.isAborted)return;return this.res.writeStatus(n),this.statusWritten=!0,this.writeBufferedHeaders(),this}writeHeader(n,i){if(this.isAborted)return;if(n==="Content-Length")return;if(this.statusWritten)this.res.writeHeader(n,i);else this.headers.push([n,i])}writeBufferedHeaders(){this.headers.forEach(([n,i])=>{this.res.writeHeader(n,i)})}end(n){if(this.isAborted)return;this.res.cork(()=>{if(!this.statusWritten)this.writeBufferedHeaders();this.res.end(n)})}onData(n){if(this.isAborted)return;this.res.onData(n)}onAborted(n){if(this.isAborted)return;this.res.onAborted(()=>{this.isAborted=!0,n()})}cork(n){if(this.isAborted)return;this.res.cork(n)}}});var dc=A((vi)=>{function fu(n,i,o){if(typeof i==="function")o=i,i={};const e=pu.createServer(function(t,s){s.writeHead(501),s.end("Not Implemented")}),a=uc(e,i);return a.httpServer=e,e.listen(n,o),a}function uc(n,i){const o=new pc.Server(i);return o.attach(n,i),o}Object.defineProperty(vi,"__esModule",{value:!0});vi.protocol=vi.Transport=vi.Socket=vi.uServer=vi.parser=vi.attach=vi.listen=vi.transports=vi.Server=void 0;var pu=import.meta.require("http"),pc=Ce();Object.defineProperty(vi,"Server",{enumerable:!0,get:function(){return pc.Server}});var mu=je();vi.transports=mu.default;var mc=Vi();vi.parser=mc;var uu=rc();Object.defineProperty(vi,"uServer",{enumerable:!0,get:function(){return uu.uServer}});var xu=ke();Object.defineProperty(vi,"Socket",{enumerable:!0,get:function(){return xu.Socket}});var du=qn();Object.defineProperty(vi,"Transport",{enumerable:!0,get:function(){return du.Transport}});vi.protocol=mc.protocol;vi.listen=fu;vi.attach=uc});var fc=A((wu)=>{function sn(n){if(n)return Su(n)}function Su(n){for(var i in sn.prototype)n[i]=sn.prototype[i];return n}wu.Emitter=sn;sn.prototype.on=sn.prototype.addEventListener=function(n,i){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(i),this};sn.prototype.once=function(n,i){function o(){this.off(n,o),i.apply(this,arguments)}return o.fn=i,this.on(n,o),this};sn.prototype.off=sn.prototype.removeListener=sn.prototype.removeAllListeners=sn.prototype.removeEventListener=function(n,i){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var o=this._callbacks["$"+n];if(!o)return this;if(arguments.length==1)return delete this._callbacks["$"+n],this;var e;for(var a=0;a<o.length;a++)if(e=o[a],e===i||e.fn===i){o.splice(a,1);break}if(o.length===0)delete this._callbacks["$"+n];return this};sn.prototype.emit=function(n){this._callbacks=this._callbacks||{};var i=new Array(arguments.length-1),o=this._callbacks["$"+n];for(var e=1;e<arguments.length;e++)i[e-1]=arguments[e];if(o){o=o.slice(0);for(var e=0,a=o.length;e<a;++e)o[e].apply(this,i)}return this};sn.prototype.emitReserved=sn.prototype.emit;sn.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};sn.prototype.hasListeners=function(n){return!!this.listeners(n).length}});var We=A((bc)=>{function vc(n){return Fu&&(n instanceof ArrayBuffer||hu(n))||Au&&n instanceof Blob||Ku&&n instanceof File}function Ao(n,i){if(!n||typeof n!=="object")return!1;if(Array.isArray(n)){for(let o=0,e=n.length;o<e;o++)if(Ao(n[o]))return!0;return!1}if(vc(n))return!0;if(n.toJSON&&typeof n.toJSON==="function"&&arguments.length===1)return Ao(n.toJSON(),!0);for(let o in n)if(Object.prototype.hasOwnProperty.call(n,o)&&Ao(n[o]))return!0;return!1}Object.defineProperty(bc,"__esModule",{value:!0});bc.hasBinary=bc.isBinary=void 0;var Fu=typeof ArrayBuffer==="function",hu=(n)=>{return typeof ArrayBuffer.isView==="function"?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer},yc=Object.prototype.toString,Au=typeof Blob==="function"||typeof Blob!=="undefined"&&yc.call(Blob)==="[object BlobConstructor]",Ku=typeof File==="function"||typeof File!=="undefined"&&yc.call(File)==="[object FileConstructor]";bc.isBinary=vc;bc.hasBinary=Ao});var gc=A((Sc)=>{function Ju(n){const i=[],o=n.data,e=n;return e.data=Ie(o,i),e.attachments=i.length,{packet:e,buffers:i}}function Ie(n,i){if(!n)return n;if(Mu.isBinary(n)){const o={_placeholder:!0,num:i.length};return i.push(n),o}else if(Array.isArray(n)){const o=new Array(n.length);for(let e=0;e<n.length;e++)o[e]=Ie(n[e],i);return o}else if(typeof n==="object"&&!(n instanceof Date)){const o={};for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e))o[e]=Ie(n[e],i);return o}return n}function $u(n,i){return n.data=Ee(n.data,i),delete n.attachments,n}function Ee(n,i){if(!n)return n;if(n&&n._placeholder===!0)if(typeof n.num==="number"&&n.num>=0&&n.num<i.length)return i[n.num];else throw new Error("illegal attachments");else if(Array.isArray(n))for(let o=0;o<n.length;o++)n[o]=Ee(n[o],i);else if(typeof n==="object"){for(let o in n)if(Object.prototype.hasOwnProperty.call(n,o))n[o]=Ee(n[o],i)}return n}Object.defineProperty(Sc,"__esModule",{value:!0});Sc.reconstructPacket=Sc.deconstructPacket=void 0;var Mu=We();Sc.deconstructPacket=Ju;Sc.reconstructPacket=$u});var Xi=A((Jc)=>{function Fc(n){return Object.prototype.toString.call(n)==="[object Object]"}Object.defineProperty(Jc,"__esModule",{value:!0});Jc.Decoder=Jc.Encoder=Jc.PacketType=Jc.protocol=void 0;var ku=fc(),Ac=gc(),Kc=We(),Ou=q(),Ve=Ou.default("socket.io-parser"),zu=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];Jc.protocol=5;var H;(function(n){n[n.CONNECT=0]="CONNECT",n[n.DISCONNECT=1]="DISCONNECT",n[n.EVENT=2]="EVENT",n[n.ACK=3]="ACK",n[n.CONNECT_ERROR=4]="CONNECT_ERROR",n[n.BINARY_EVENT=5]="BINARY_EVENT",n[n.BINARY_ACK=6]="BINARY_ACK"})(H=Jc.PacketType||(Jc.PacketType={}));class Rc{constructor(n){this.replacer=n}encode(n){if(Ve("encoding packet %j",n),n.type===H.EVENT||n.type===H.ACK){if(Kc.hasBinary(n))return this.encodeAsBinary({type:n.type===H.EVENT?H.BINARY_EVENT:H.BINARY_ACK,nsp:n.nsp,data:n.data,id:n.id})}return[this.encodeAsString(n)]}encodeAsString(n){let i=""+n.type;if(n.type===H.BINARY_EVENT||n.type===H.BINARY_ACK)i+=n.attachments+"-";if(n.nsp&&n.nsp!=="/")i+=n.nsp+",";if(n.id!=null)i+=n.id;if(n.data!=null)i+=JSON.stringify(n.data,this.replacer);return Ve("encoded %j as %s",n,i),i}encodeAsBinary(n){const i=Ac.deconstructPacket(n),o=this.encodeAsString(i.packet),e=i.buffers;return e.unshift(o),e}}Jc.Encoder=Rc;class Ue extends ku.Emitter{constructor(n){super();this.reviver=n}add(n){let i;if(typeof n==="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");i=this.decodeString(n);const o=i.type===H.BINARY_EVENT;if(o||i.type===H.BINARY_ACK){if(i.type=o?H.EVENT:H.ACK,this.reconstructor=new Mc(i),i.attachments===0)super.emitReserved("decoded",i)}else super.emitReserved("decoded",i)}else if(Kc.isBinary(n)||n.base64){if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");else if(i=this.reconstructor.takeBinaryData(n),i)this.reconstructor=null,super.emitReserved("decoded",i)}else throw new Error("Unknown type: "+n)}decodeString(n){let i=0;const o={type:Number(n.charAt(0))};if(H[o.type]===void 0)throw new Error("unknown packet type "+o.type);if(o.type===H.BINARY_EVENT||o.type===H.BINARY_ACK){const a=i+1;while(n.charAt(++i)!=="-"&&i!=n.length);const t=n.substring(a,i);if(t!=Number(t)||n.charAt(i)!=="-")throw new Error("Illegal attachments");o.attachments=Number(t)}if(n.charAt(i+1)==="/"){const a=i+1;while(++i){if(n.charAt(i)===",")break;if(i===n.length)break}o.nsp=n.substring(a,i)}else o.nsp="/";const e=n.charAt(i+1);if(e!==""&&Number(e)==e){const a=i+1;while(++i){const t=n.charAt(i);if(t==null||Number(t)!=t){--i;break}if(i===n.length)break}o.id=Number(n.substring(a,i+1))}if(n.charAt(++i)){const a=this.tryParse(n.substr(i));if(Ue.isPayloadValid(o.type,a))o.data=a;else throw new Error("invalid payload")}return Ve("decoded %s as %j",n,o),o}tryParse(n){try{return JSON.parse(n,this.reviver)}catch(i){return!1}}static isPayloadValid(n,i){switch(n){case H.CONNECT:return Fc(i);case H.DISCONNECT:return i===void 0;case H.CONNECT_ERROR:return typeof i==="string"||Fc(i);case H.EVENT:case H.BINARY_EVENT:return Array.isArray(i)&&(typeof i[0]==="number"||typeof i[0]==="string"&&zu.indexOf(i[0])===-1);case H.ACK:case H.BINARY_ACK:return Array.isArray(i)}}destroy(){if(this.reconstructor)this.reconstructor.finishedReconstruction(),this.reconstructor=null}}Jc.Decoder=Ue;class Mc{constructor(n){this.packet=n,this.buffers=[],this.reconPack=n}takeBinaryData(n){if(this.buffers.push(n),this.buffers.length===this.reconPack.attachments){const i=Ac.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),i}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}});var zc=A((kc)=>{Object.defineProperty(kc,"__esModule",{value:!0});kc.Client=void 0;var Ko=Xi(),Iu=q(),Eu=import.meta.require("url"),Fn=Iu("socket.io:client");class jc{constructor(n,i){this.sockets=new Map,this.nsps=new Map,this.server=n,this.conn=i,this.encoder=n.encoder,this.decoder=new n._parser.Decoder,this.id=i.id,this.setup()}get request(){return this.conn.request}setup(){this.onclose=this.onclose.bind(this),this.ondata=this.ondata.bind(this),this.onerror=this.onerror.bind(this),this.ondecoded=this.ondecoded.bind(this),this.decoder.on("decoded",this.ondecoded),this.conn.on("data",this.ondata),this.conn.on("error",this.onerror),this.conn.on("close",this.onclose),this.connectTimeout=setTimeout(()=>{if(this.nsps.size===0)Fn("no namespace joined yet, close the client"),this.close();else Fn("the client has already joined a namespace, nothing to do")},this.server._connectTimeout)}connect(n,i={}){if(this.server._nsps.has(n))return Fn("connecting to namespace %s",n),this.doConnect(n,i);this.server._checkNamespace(n,i,(o)=>{if(o)this.doConnect(n,i);else Fn("creation of namespace %s was denied",n),this._packet({type:Ko.PacketType.CONNECT_ERROR,nsp:n,data:{message:"Invalid namespace"}})})}doConnect(n,i){const o=this.server.of(n);o._add(this,i,(e)=>{if(this.sockets.set(e.id,e),this.nsps.set(o.name,e),this.connectTimeout)clearTimeout(this.connectTimeout),this.connectTimeout=void 0})}_disconnect(){for(let n of this.sockets.values())n.disconnect();this.sockets.clear(),this.close()}_remove(n){if(this.sockets.has(n.id)){const i=this.sockets.get(n.id).nsp.name;this.sockets.delete(n.id),this.nsps.delete(i)}else Fn("ignoring remove for %s",n.id)}close(){if(this.conn.readyState==="open")Fn("forcing transport close"),this.conn.close(),this.onclose("forced server close")}_packet(n,i={}){if(this.conn.readyState!=="open"){Fn("ignoring packet write %j",n);return}const o=i.preEncoded?n:this.encoder.encode(n);this.writeToEngine(o,i)}writeToEngine(n,i){if(i.volatile&&!this.conn.transport.writable){Fn("volatile packet is discarded since the transport is not currently writable");return}const o=Array.isArray(n)?n:[n];for(let e of o)this.conn.write(e,i)}ondata(n){try{this.decoder.add(n)}catch(i){Fn("invalid packet format"),this.onerror(i)}}ondecoded(n){let i,o;if(this.conn.protocol===3){const a=Eu.parse(n.nsp,!0);i=a.pathname,o=a.query}else i=n.nsp,o=n.data;const e=this.nsps.get(i);if(!e&&n.type===Ko.PacketType.CONNECT)this.connect(i,o);else if(e&&n.type!==Ko.PacketType.CONNECT&&n.type!==Ko.PacketType.CONNECT_ERROR)process.nextTick(function(){e._onpacket(n)});else Fn("invalid state (packet type: %s)",n.type),this.close()}onerror(n){for(let i of this.sockets.values())i._onerror(n);this.conn.close()}onclose(n,i){Fn("client close with reason %s",n),this.destroy();for(let o of this.sockets.values())o._onclose(n,i);this.sockets.clear(),this.decoder.destroy()}destroy(){if(this.conn.removeListener("data",this.ondata),this.conn.removeListener("error",this.onerror),this.conn.removeListener("close",this.onclose),this.decoder.removeListener("decoded",this.ondecoded),this.connectTimeout)clearTimeout(this.connectTimeout),this.connectTimeout=void 0}}kc.Client=jc});var Ro=A((Wc)=>{Object.defineProperty(Wc,"__esModule",{value:!0});Wc.StrictEventEmitter=void 0;var Vu=import.meta.require("events");class Cc extends Vu.EventEmitter{on(n,i){return super.on(n,i)}once(n,i){return super.once(n,i)}emit(n,...i){return super.emit(n,...i)}emitReserved(n,...i){return super.emit(n,...i)}emitUntyped(n,...i){return super.emit(n,...i)}listeners(n){return super.listeners(n)}}Wc.StrictEventEmitter=Cc});var Be=A((Vc)=>{Object.defineProperty(Vc,"__esModule",{value:!0});Vc.RemoteSocket=Vc.BroadcastOperator=void 0;var Ec=Zi(),Uu=Xi();class kn{constructor(n,i=new Set,o=new Set,e={}){this.adapter=n,this.rooms=i,this.exceptRooms=o,this.flags=e}to(n){const i=new Set(this.rooms);if(Array.isArray(n))n.forEach((o)=>i.add(o));else i.add(n);return new kn(this.adapter,i,this.exceptRooms,this.flags)}in(n){return this.to(n)}except(n){const i=new Set(this.exceptRooms);if(Array.isArray(n))n.forEach((o)=>i.add(o));else i.add(n);return new kn(this.adapter,this.rooms,i,this.flags)}compress(n){const i=Object.assign({},this.flags,{compress:n});return new kn(this.adapter,this.rooms,this.exceptRooms,i)}get volatile(){const n=Object.assign({},this.flags,{volatile:!0});return new kn(this.adapter,this.rooms,this.exceptRooms,n)}get local(){const n=Object.assign({},this.flags,{local:!0});return new kn(this.adapter,this.rooms,this.exceptRooms,n)}timeout(n){const i=Object.assign({},this.flags,{timeout:n});return new kn(this.adapter,this.rooms,this.exceptRooms,i)}emit(n,...i){if(Ec.RESERVED_EVENTS.has(n))throw new Error(`"${String(n)}" is a reserved event name`);const o=[n,...i],e={type:Uu.PacketType.EVENT,data:o};if(typeof o[o.length-1]!=="function")return this.adapter.broadcast(e,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags}),!0;const t=o.pop();let s=!1,c=[];const l=setTimeout(()=>{s=!0,t.apply(this,[new Error("operation has timed out"),this.flags.expectSingleResponse?null:c])},this.flags.timeout);let r=-1,p=0,m=0;const T=()=>{if(!s&&r===p&&c.length===m)clearTimeout(l),t.apply(this,[null,this.flags.expectSingleResponse?c[0]:c])};return this.adapter.broadcastWithAck(e,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags},(R)=>{m+=R,p++,T()},(R)=>{c.push(R),T()}),this.adapter.serverCount().then((R)=>{r=R,T()}),!0}emitWithAck(n,...i){return new Promise((o,e)=>{i.push((a,t)=>{if(a)return a.responses=t,e(a);else return o(t)}),this.emit(n,...i)})}allSockets(){if(!this.adapter)throw new Error("No adapter for this namespace, are you trying to get the list of clients of a dynamic namespace?");return this.adapter.sockets(this.rooms)}fetchSockets(){return this.adapter.fetchSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags}).then((n)=>{return n.map((i)=>{if(i instanceof Ec.Socket)return i;else return new Ye(this.adapter,i)})})}socketsJoin(n){this.adapter.addSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(n)?n:[n])}socketsLeave(n){this.adapter.delSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(n)?n:[n])}disconnectSockets(n=!1){this.adapter.disconnectSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},n)}}Vc.BroadcastOperator=kn;class Ye{constructor(n,i){this.id=i.id,this.handshake=i.handshake,this.rooms=new Set(i.rooms),this.data=i.data,this.operator=new kn(n,new Set([this.id]),new Set,{expectSingleResponse:!0})}timeout(n){return this.operator.timeout(n)}emit(n,...i){return this.operator.emit(n,...i)}join(n){return this.operator.socketsJoin(n)}leave(n){return this.operator.socketsLeave(n)}disconnect(n=!1){return this.operator.disconnectSockets(n),this}}Vc.RemoteSocket=Ye});var Zi=A((On)=>{function Bc(){}var Xc=On&&On.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(On,"__esModule",{value:!0});On.Socket=On.RESERVED_EVENTS=void 0;var vn=Xi(),Bu=Xc(q()),Xu=Ro(),Yc=Xc(de()),Zu=Be(),on=Bu.default("socket.io:socket"),Gu=new Set(["transport error","transport close","forced close","ping timeout","server shutting down","forced server close"]);On.RESERVED_EVENTS=new Set(["connect","connect_error","disconnect","disconnecting","newListener","removeListener"]);class Zc extends Xu.StrictEventEmitter{constructor(n,i,o,e){super();if(this.nsp=n,this.client=i,this.recovered=!1,this.data={},this.connected=!1,this.acks=new Map,this.fns=[],this.flags={},this.server=n.server,this.adapter=this.nsp.adapter,e)this.id=e.sid,this.pid=e.pid,e.rooms.forEach((a)=>this.join(a)),this.data=e.data,e.missedPackets.forEach((a)=>{this.packet({type:vn.PacketType.EVENT,data:a})}),this.recovered=!0;else{if(i.conn.protocol===3)this.id=n.name!=="/"?n.name+"#"+i.id:i.id;else this.id=Yc.default.generateId();if(this.server._opts.connectionStateRecovery)this.pid=Yc.default.generateId()}this.handshake=this.buildHandshake(o),this.on("error",Bc)}buildHandshake(n){var i,o,e,a;return{headers:((i=this.request)===null||i===void 0?void 0:i.headers)||{},time:new Date+"",address:this.conn.remoteAddress,xdomain:!!((o=this.request)===null||o===void 0?void 0:o.headers.origin),secure:!this.request||!!this.request.connection.encrypted,issued:+new Date,url:(e=this.request)===null||e===void 0?void 0:e.url,query:((a=this.request)===null||a===void 0?void 0:a._query)||{},auth:n}}emit(n,...i){if(On.RESERVED_EVENTS.has(n))throw new Error(`"${String(n)}" is a reserved event name`);const o=[n,...i],e={type:vn.PacketType.EVENT,data:o};if(typeof o[o.length-1]==="function"){const t=this.nsp._ids++;on("emitting packet with ack id %d",t),this.registerAckCallback(t,o.pop()),e.id=t}const a=Object.assign({},this.flags);if(this.flags={},this.nsp.server.opts.connectionStateRecovery)this.adapter.broadcast(e,{rooms:new Set([this.id]),except:new Set,flags:a});else this.notifyOutgoingListeners(e),this.packet(e,a);return!0}emitWithAck(n,...i){const o=this.flags.timeout!==void 0;return new Promise((e,a)=>{i.push((t,s)=>{if(o)return t?a(t):e(s);else return e(t)}),this.emit(n,...i)})}registerAckCallback(n,i){const o=this.flags.timeout;if(o===void 0){this.acks.set(n,i);return}const e=setTimeout(()=>{on("event with ack id %d has timed out after %d ms",n,o),this.acks.delete(n),i.call(this,new Error("operation has timed out"))},o);this.acks.set(n,(...a)=>{clearTimeout(e),i.apply(this,[null,...a])})}to(n){return this.newBroadcastOperator().to(n)}in(n){return this.newBroadcastOperator().in(n)}except(n){return this.newBroadcastOperator().except(n)}send(...n){return this.emit("message",...n),this}write(...n){return this.emit("message",...n),this}packet(n,i={}){n.nsp=this.nsp.name,i.compress=i.compress!==!1,this.client._packet(n,i)}join(n){return on("join room %s",n),this.adapter.addAll(this.id,new Set(Array.isArray(n)?n:[n]))}leave(n){return on("leave room %s",n),this.adapter.del(this.id,n)}leaveAll(){this.adapter.delAll(this.id)}_onconnect(){if(on("socket connected - writing packet"),this.connected=!0,this.join(this.id),this.conn.protocol===3)this.packet({type:vn.PacketType.CONNECT});else this.packet({type:vn.PacketType.CONNECT,data:{sid:this.id,pid:this.pid}})}_onpacket(n){switch(on("got packet %j",n),n.type){case vn.PacketType.EVENT:this.onevent(n);break;case vn.PacketType.BINARY_EVENT:this.onevent(n);break;case vn.PacketType.ACK:this.onack(n);break;case vn.PacketType.BINARY_ACK:this.onack(n);break;case vn.PacketType.DISCONNECT:this.ondisconnect();break}}onevent(n){const i=n.data||[];if(on("emitting event %j",i),n.id!=null)on("attaching ack callback to event"),i.push(this.ack(n.id));if(this._anyListeners&&this._anyListeners.length){const o=this._anyListeners.slice();for(let e of o)e.apply(this,i)}this.dispatch(i)}ack(n){const i=this;let o=!1;return function(){if(o)return;const e=Array.prototype.slice.call(arguments);on("sending ack %j",e),i.packet({id:n,type:vn.PacketType.ACK,data:e}),o=!0}}onack(n){const i=this.acks.get(n.id);if(typeof i=="function")on("calling ack %s with %j",n.id,n.data),i.apply(this,n.data),this.acks.delete(n.id);else on("bad ack %s",n.id)}ondisconnect(){on("got disconnect packet"),this._onclose("client namespace disconnect")}_onerror(n){this.emitReserved("error",n)}_onclose(n,i){if(!this.connected)return this;if(on("closing socket - reason %s",n),this.emitReserved("disconnecting",n,i),this.server._opts.connectionStateRecovery&&Gu.has(n))on("connection state recovery is enabled for sid %s",this.id),this.adapter.persistSession({sid:this.id,pid:this.pid,rooms:[...this.rooms],data:this.data});this._cleanup(),this.client._remove(this),this.connected=!1,this.emitReserved("disconnect",n,i);return}_cleanup(){this.leaveAll(),this.nsp._remove(this),this.join=Bc}_error(n){this.packet({type:vn.PacketType.CONNECT_ERROR,data:n})}disconnect(n=!1){if(!this.connected)return this;if(n)this.client._disconnect();else this.packet({type:vn.PacketType.DISCONNECT}),this._onclose("server namespace disconnect");return this}compress(n){return this.flags.compress=n,this}get volatile(){return this.flags.volatile=!0,this}get broadcast(){return this.newBroadcastOperator()}get local(){return this.newBroadcastOperator().local}timeout(n){return this.flags.timeout=n,this}dispatch(n){on("dispatching an event %j",n),this.run(n,(i)=>{process.nextTick(()=>{if(i)return this._onerror(i);if(this.connected)super.emitUntyped.apply(this,n);else on("ignore packet received after disconnection")})})}use(n){return this.fns.push(n),this}run(n,i){const o=this.fns.slice(0);if(!o.length)return i(null);function e(a){o[a](n,function(t){if(t)return i(t);if(!o[a+1])return i(null);e(a+1)})}e(0)}get disconnected(){return!this.connected}get request(){return this.client.request}get conn(){return this.client.conn}get rooms(){return this.adapter.socketRooms(this.id)||new Set}onAny(n){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(n),this}prependAny(n){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(n),this}offAny(n){if(!this._anyListeners)return this;if(n){const i=this._anyListeners;for(let o=0;o<i.length;o++)if(n===i[o])return i.splice(o,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(n){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(n),this}prependAnyOutgoing(n){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(n),this}offAnyOutgoing(n){if(!this._anyOutgoingListeners)return this;if(n){const i=this._anyOutgoingListeners;for(let o=0;o<i.length;o++)if(n===i[o])return i.splice(o,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(n){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const i=this._anyOutgoingListeners.slice();for(let o of i)o.apply(this,n.data)}}newBroadcastOperator(){const n=Object.assign({},this.flags);return this.flags={},new Zu.BroadcastOperator(this.adapter,new Set,new Set([this.id]),n)}}On.Socket=Zc});var Xe=A((zn)=>{var Qu=zn&&zn.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(zn,"__esModule",{value:!0});zn.Namespace=zn.RESERVED_EVENTS=void 0;var Gc=Zi(),Hu=Ro(),Nu=Qu(q()),un=Be(),bi=Nu.default("socket.io:namespace");zn.RESERVED_EVENTS=new Set(["connect","connection","new_namespace"]);class Qc extends Hu.StrictEventEmitter{constructor(n,i){super();this.sockets=new Map,this._fns=[],this._ids=0,this.server=n,this.name=i,this._initAdapter()}_initAdapter(){this.adapter=new(this.server.adapter())(this)}use(n){return this._fns.push(n),this}run(n,i){const o=this._fns.slice(0);if(!o.length)return i(null);function e(a){o[a](n,function(t){if(t)return i(t);if(!o[a+1])return i(null);e(a+1)})}e(0)}to(n){return new un.BroadcastOperator(this.adapter).to(n)}in(n){return new un.BroadcastOperator(this.adapter).in(n)}except(n){return new un.BroadcastOperator(this.adapter).except(n)}async _add(n,i,o){var e;bi("adding socket to nsp %s",this.name);const a=await this._createSocket(n,i);if(((e=this.server.opts.connectionStateRecovery)===null||e===void 0?void 0:e.skipMiddlewares)&&a.recovered&&n.conn.readyState==="open")return this._doConnect(a,o);this.run(a,(t)=>{process.nextTick(()=>{if(n.conn.readyState!=="open"){bi("next called after client was closed - ignoring socket"),a._cleanup();return}if(t)if(bi("middleware error, sending CONNECT_ERROR packet to the client"),a._cleanup(),n.conn.protocol===3)return a._error(t.data||t.message);else return a._error({message:t.message,data:t.data});this._doConnect(a,o)})})}async _createSocket(n,i){const{pid:o,offset:e}=i;if(this.server.opts.connectionStateRecovery&&typeof o==="string"&&typeof e==="string"){let a;try{a=await this.adapter.restoreSession(o,e)}catch(t){bi("error while restoring session: %s",t)}if(a)return bi("connection state recovered for sid %s",a.sid),new Gc.Socket(this,n,i,a)}return new Gc.Socket(this,n,i)}_doConnect(n,i){if(this.sockets.set(n.id,n),n._onconnect(),i)i(n);this.emitReserved("connect",n),this.emitReserved("connection",n)}_remove(n){if(this.sockets.has(n.id))this.sockets.delete(n.id);else bi("ignoring remove for %s",n.id)}emit(n,...i){return new un.BroadcastOperator(this.adapter).emit(n,...i)}send(...n){return this.emit("message",...n),this}write(...n){return this.emit("message",...n),this}serverSideEmit(n,...i){if(zn.RESERVED_EVENTS.has(n))throw new Error(`"${String(n)}" is a reserved event name`);return i.unshift(n),this.adapter.serverSideEmit(i),!0}serverSideEmitWithAck(n,...i){return new Promise((o,e)=>{i.push((a,t)=>{if(a)return a.responses=t,e(a);else return o(t)}),this.serverSideEmit(n,...i)})}_onServerSideEmit(n){super.emitUntyped.apply(this,n)}allSockets(){return new un.BroadcastOperator(this.adapter).allSockets()}compress(n){return new un.BroadcastOperator(this.adapter).compress(n)}get volatile(){return new un.BroadcastOperator(this.adapter).volatile}get local(){return new un.BroadcastOperator(this.adapter).local}timeout(n){return new un.BroadcastOperator(this.adapter).timeout(n)}fetchSockets(){return new un.BroadcastOperator(this.adapter).fetchSockets()}socketsJoin(n){return new un.BroadcastOperator(this.adapter).socketsJoin(n)}socketsLeave(n){return new un.BroadcastOperator(this.adapter).socketsLeave(n)}disconnectSockets(n=!1){return new un.BroadcastOperator(this.adapter).disconnectSockets(n)}}zn.Namespace=Qc});var qc=A((Pc)=>{function Ze(n){let i="";do i=Dc[n%Mo]+i,n=Math.floor(n/Mo);while(n>0);return i}function Du(n){let i=0;for(Qn=0;Qn<n.length;Qn++)i=i*Mo+Lc[n.charAt(Qn)];return i}function Lu(){const n=Ze(+new Date);if(n!==Nc)return Hc=0,Nc=n;return n+"."+Ze(Hc++)}Object.defineProperty(Pc,"__esModule",{value:!0});Pc.yeast=Pc.decode=Pc.encode=void 0;var Dc="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Mo=64,Lc={},Hc=0,Qn=0,Nc;Pc.encode=Ze;Pc.decode=Du;Pc.yeast=Lu;for(;Qn<Mo;Qn++)Lc[Dc[Qn]]=Qn});var He=A((il)=>{function ox(n,i){const o=i.rooms.size===0||n.some((a)=>i.rooms.has(a)),e=n.every((a)=>!i.except.has(a));return o&&e}var Ge;Object.defineProperty(il,"__esModule",{value:!0});il.SessionAwareAdapter=il.Adapter=void 0;var qu=import.meta.require("events"),nx=qc(),Jo=import.meta.require("ws"),ix=typeof((Ge=Jo===null||Jo===void 0?void 0:Jo.Sender)===null||Ge===void 0?void 0:Ge.frame)==="function";class Qe extends qu.EventEmitter{constructor(n){super();this.nsp=n,this.rooms=new Map,this.sids=new Map,this.encoder=n.server.encoder}init(){}close(){}serverCount(){return Promise.resolve(1)}addAll(n,i){if(!this.sids.has(n))this.sids.set(n,new Set);for(let o of i){if(this.sids.get(n).add(o),!this.rooms.has(o))this.rooms.set(o,new Set),this.emit("create-room",o);if(!this.rooms.get(o).has(n))this.rooms.get(o).add(n),this.emit("join-room",o,n)}}del(n,i){if(this.sids.has(n))this.sids.get(n).delete(i);this._del(i,n)}_del(n,i){const o=this.rooms.get(n);if(o!=null){if(o.delete(i))this.emit("leave-room",n,i);if(o.size===0&&this.rooms.delete(n))this.emit("delete-room",n)}}delAll(n){if(!this.sids.has(n))return;for(let i of this.sids.get(n))this._del(i,n);this.sids.delete(n)}broadcast(n,i){const o=i.flags||{},e={preEncoded:!0,volatile:o.volatile,compress:o.compress};n.nsp=this.nsp.name;const a=this._encode(n,e);this.apply(i,(t)=>{if(typeof t.notifyOutgoingListeners==="function")t.notifyOutgoingListeners(n);t.client.writeToEngine(a,e)})}broadcastWithAck(n,i,o,e){const a=i.flags||{},t={preEncoded:!0,volatile:a.volatile,compress:a.compress};n.nsp=this.nsp.name,n.id=this.nsp._ids++;const s=this._encode(n,t);let c=0;this.apply(i,(l)=>{if(c++,l.acks.set(n.id,e),typeof l.notifyOutgoingListeners==="function")l.notifyOutgoingListeners(n);l.client.writeToEngine(s,t)}),o(c)}_encode(n,i){const o=this.encoder.encode(n);if(ix&&o.length===1&&typeof o[0]==="string"){const e=Buffer.from("4"+o[0]);i.wsPreEncodedFrame=Jo.Sender.frame(e,{readOnly:!1,mask:!1,rsv1:!1,opcode:1,fin:!0})}return o}sockets(n){const i=new Set;return this.apply({rooms:n},(o)=>{i.add(o.id)}),Promise.resolve(i)}socketRooms(n){return this.sids.get(n)}fetchSockets(n){const i=[];return this.apply(n,(o)=>{i.push(o)}),Promise.resolve(i)}addSockets(n,i){this.apply(n,(o)=>{o.join(i)})}delSockets(n,i){this.apply(n,(o)=>{i.forEach((e)=>o.leave(e))})}disconnectSockets(n,i){this.apply(n,(o)=>{o.disconnect(i)})}apply(n,i){const o=n.rooms,e=this.computeExceptSids(n.except);if(o.size){const a=new Set;for(let t of o){if(!this.rooms.has(t))continue;for(let s of this.rooms.get(t)){if(a.has(s)||e.has(s))continue;const c=this.nsp.sockets.get(s);if(c)i(c),a.add(s)}}}else for(let[a]of this.sids){if(e.has(a))continue;const t=this.nsp.sockets.get(a);if(t)i(t)}}computeExceptSids(n){const i=new Set;if(n&&n.size>0){for(let o of n)if(this.rooms.has(o))this.rooms.get(o).forEach((e)=>i.add(e))}return i}serverSideEmit(n){console.warn("this adapter does not support the serverSideEmit() functionality")}persistSession(n){}restoreSession(n,i){return null}}il.Adapter=Qe;class nl extends Qe{constructor(n){super(n);this.nsp=n,this.sessions=new Map,this.packets=[],this.maxDisconnectionDuration=n.server.opts.connectionStateRecovery.maxDisconnectionDuration,setInterval(()=>{const o=Date.now()-this.maxDisconnectionDuration;this.sessions.forEach((e,a)=>{if(e.disconnectedAt<o)this.sessions.delete(a)});for(let e=this.packets.length-1;e>=0;e--)if(this.packets[e].emittedAt<o){this.packets.splice(0,e+1);break}},60000).unref()}persistSession(n){n.disconnectedAt=Date.now(),this.sessions.set(n.pid,n)}restoreSession(n,i){const o=this.sessions.get(n);if(!o)return null;if(o.disconnectedAt+this.maxDisconnectionDuration<Date.now())return this.sessions.delete(n),null;const a=this.packets.findIndex((s)=>s.id===i);if(a===-1)return null;const t=[];for(let s=a+1;s<this.packets.length;s++){const c=this.packets[s];if(ox(o.rooms,c.opts))t.push(c.data)}return Promise.resolve(Object.assign(Object.assign({},o),{missedPackets:t}))}broadcast(n,i){var o;const e=n.type===2,a=n.id===void 0,t=((o=i.flags)===null||o===void 0?void 0:o.volatile)===void 0;if(e&&a&&t){const s=nx.yeast();n.data.push(s),this.packets.push({id:s,opts:i,data:n.data,emittedAt:Date.now()})}super.broadcast(n,i)}}il.SessionAwareAdapter=nl});var al=A((hn)=>{function Si(){return cx.randomBytes(8).toString("hex")}function ii(n){return{rooms:[...n.rooms],except:[...n.except],flags:n.flags}}function Ti(n){return{rooms:new Set(n.rooms),except:new Set(n.except),flags:n.flags}}var ax=hn&&hn.__rest||function(n,i){var o={};for(var e in n)if(Object.prototype.hasOwnProperty.call(n,e)&&i.indexOf(e)<0)o[e]=n[e];if(n!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var a=0,e=Object.getOwnPropertySymbols(n);a<e.length;a++)if(i.indexOf(e[a])<0&&Object.prototype.propertyIsEnumerable.call(n,e[a]))o[e[a]]=n[e[a]]}return o};Object.defineProperty(hn,"__esModule",{value:!0});hn.ClusterAdapterWithHeartbeat=hn.ClusterAdapter=hn.MessageType=void 0;var tx=He(),sx=q(),cx=import.meta.require("crypto"),D=sx.debug("socket.io-adapter"),lx="emitter",$o=5000,j;(function(n){n[n.INITIAL_HEARTBEAT=1]="INITIAL_HEARTBEAT",n[n.HEARTBEAT=2]="HEARTBEAT",n[n.BROADCAST=3]="BROADCAST",n[n.SOCKETS_JOIN=4]="SOCKETS_JOIN",n[n.SOCKETS_LEAVE=5]="SOCKETS_LEAVE",n[n.DISCONNECT_SOCKETS=6]="DISCONNECT_SOCKETS",n[n.FETCH_SOCKETS=7]="FETCH_SOCKETS",n[n.FETCH_SOCKETS_RESPONSE=8]="FETCH_SOCKETS_RESPONSE",n[n.SERVER_SIDE_EMIT=9]="SERVER_SIDE_EMIT",n[n.SERVER_SIDE_EMIT_RESPONSE=10]="SERVER_SIDE_EMIT_RESPONSE",n[n.BROADCAST_CLIENT_COUNT=11]="BROADCAST_CLIENT_COUNT",n[n.BROADCAST_ACK=12]="BROADCAST_ACK",n[n.ADAPTER_CLOSE=13]="ADAPTER_CLOSE"})(j=hn.MessageType||(hn.MessageType={}));class Ne extends tx.Adapter{constructor(n){super(n);this.requests=new Map,this.ackRequests=new Map,this.uid=Si()}onMessage(n,i){if(n.uid===this.uid)return D("[%s] ignore message from self",this.uid);switch(D("[%s] new event of type %d from %s",this.uid,n.type,n.uid),n.type){case j.BROADCAST:{if(n.data.requestId!==void 0)super.broadcastWithAck(n.data.packet,Ti(n.data.opts),(e)=>{D("[%s] waiting for %d client acknowledgements",this.uid,e),this.publishResponse(n.uid,{type:j.BROADCAST_CLIENT_COUNT,data:{requestId:n.data.requestId,clientCount:e}})},(e)=>{D("[%s] received acknowledgement with value %j",this.uid,e),this.publishResponse(n.uid,{type:j.BROADCAST_ACK,data:{requestId:n.data.requestId,packet:e}})});else{const e=n.data.packet,a=Ti(n.data.opts);this.addOffsetIfNecessary(e,a,i),super.broadcast(e,a)}break}case j.SOCKETS_JOIN:super.addSockets(Ti(n.data.opts),n.data.rooms);break;case j.SOCKETS_LEAVE:super.delSockets(Ti(n.data.opts),n.data.rooms);break;case j.DISCONNECT_SOCKETS:super.disconnectSockets(Ti(n.data.opts),n.data.close);break;case j.FETCH_SOCKETS:{D("[%s] calling fetchSockets with opts %j",this.uid,n.data.opts),super.fetchSockets(Ti(n.data.opts)).then((o)=>{this.publishResponse(n.uid,{type:j.FETCH_SOCKETS_RESPONSE,data:{requestId:n.data.requestId,sockets:o.map((e)=>{const a=e.handshake,{sessionStore:t}=a,s=ax(a,["sessionStore"]);return{id:e.id,handshake:s,rooms:[...e.rooms],data:e.data}})}})});break}case j.SERVER_SIDE_EMIT:{const o=n.data.packet;if(n.data.requestId===void 0){this.nsp._onServerSideEmit(o);return}let a=!1;const t=(s)=>{if(a)return;a=!0,D("[%s] calling acknowledgement with %j",this.uid,s),this.publishResponse(n.uid,{type:j.SERVER_SIDE_EMIT_RESPONSE,data:{requestId:n.data.requestId,packet:s}})};this.nsp._onServerSideEmit([...o,t]);break}case j.BROADCAST_CLIENT_COUNT:case j.BROADCAST_ACK:case j.FETCH_SOCKETS_RESPONSE:case j.SERVER_SIDE_EMIT_RESPONSE:this.onResponse(n);break;default:D("[%s] unknown message type: %s",this.uid,n.type)}}onResponse(n){var i,o;const e=n.data.requestId;switch(D("[%s] received response %s to request %s",this.uid,n.type,e),n.type){case j.BROADCAST_CLIENT_COUNT:{(i=this.ackRequests.get(e))===null||i===void 0||i.clientCountCallback(n.data.clientCount);break}case j.BROADCAST_ACK:{(o=this.ackRequests.get(e))===null||o===void 0||o.ack(n.data.packet);break}case j.FETCH_SOCKETS_RESPONSE:{const a=this.requests.get(e);if(!a)return;if(a.current++,n.data.sockets.forEach((t)=>a.responses.push(t)),a.current===a.expected)clearTimeout(a.timeout),a.resolve(a.responses),this.requests.delete(e);break}case j.SERVER_SIDE_EMIT_RESPONSE:{const a=this.requests.get(e);if(!a)return;if(a.current++,a.responses.push(n.data.packet),a.current===a.expected)clearTimeout(a.timeout),a.resolve(null,a.responses),this.requests.delete(e);break}default:D("[%s] unknown response type: %s",this.uid,n.type)}}async broadcast(n,i){var o;if(!((o=i.flags)===null||o===void 0?void 0:o.local))try{const a=await this.publishAndReturnOffset({type:j.BROADCAST,data:{packet:n,opts:ii(i)}});this.addOffsetIfNecessary(n,i,a)}catch(a){return D("[%s] error while broadcasting message: %s",this.uid,a.message)}super.broadcast(n,i)}addOffsetIfNecessary(n,i,o){var e;if(!this.nsp.server.opts.connectionStateRecovery)return;const a=n.type===2,t=n.id===void 0,s=((e=i.flags)===null||e===void 0?void 0:e.volatile)===void 0;if(a&&t&&s)n.data.push(o)}broadcastWithAck(n,i,o,e){var a;if(!((a=i===null||i===void 0?void 0:i.flags)===null||a===void 0?void 0:a.local)){const s=Si();this.ackRequests.set(s,{clientCountCallback:o,ack:e}),this.publish({type:j.BROADCAST,data:{packet:n,requestId:s,opts:ii(i)}}),setTimeout(()=>{this.ackRequests.delete(s)},i.flags.timeout)}super.broadcastWithAck(n,i,o,e)}async addSockets(n,i){var o;if(!((o=n.flags)===null||o===void 0?void 0:o.local))try{await this.publishAndReturnOffset({type:j.SOCKETS_JOIN,data:{opts:ii(n),rooms:i}})}catch(a){D("[%s] error while publishing message: %s",this.uid,a.message)}super.addSockets(n,i)}async delSockets(n,i){var o;if(!((o=n.flags)===null||o===void 0?void 0:o.local))try{await this.publishAndReturnOffset({type:j.SOCKETS_LEAVE,data:{opts:ii(n),rooms:i}})}catch(a){D("[%s] error while publishing message: %s",this.uid,a.message)}super.delSockets(n,i)}async disconnectSockets(n,i){var o;if(!((o=n.flags)===null||o===void 0?void 0:o.local))try{await this.publishAndReturnOffset({type:j.DISCONNECT_SOCKETS,data:{opts:ii(n),close:i}})}catch(a){D("[%s] error while publishing message: %s",this.uid,a.message)}super.disconnectSockets(n,i)}async fetchSockets(n){var i;const[o,e]=await Promise.all([super.fetchSockets(n),this.serverCount()]),a=e-1;if(((i=n.flags)===null||i===void 0?void 0:i.local)||a<=0)return o;const t=Si();return new Promise((s,c)=>{const l=setTimeout(()=>{const p=this.requests.get(t);if(p)c(new Error(`timeout reached: only ${p.current} responses received out of ${p.expected}`)),this.requests.delete(t)},n.flags.timeout||$o),r={type:j.FETCH_SOCKETS,resolve:s,timeout:l,current:0,expected:a,responses:o};this.requests.set(t,r),this.publish({type:j.FETCH_SOCKETS,data:{opts:ii(n),requestId:t}})})}async serverSideEmit(n){if(typeof n[n.length-1]!=="function")return this.publish({type:j.SERVER_SIDE_EMIT,data:{packet:n}});const o=n.pop(),e=await this.serverCount()-1;if(D('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,e),e<=0)return o(null,[]);const a=Si(),t=setTimeout(()=>{const c=this.requests.get(a);if(c)o(new Error(`timeout reached: only ${c.current} responses received out of ${c.expected}`),c.responses),this.requests.delete(a)},$o),s={type:j.SERVER_SIDE_EMIT,resolve:o,timeout:t,current:0,expected:e,responses:[]};this.requests.set(a,s),this.publish({type:j.SERVER_SIDE_EMIT,data:{requestId:a,packet:n}})}publish(n){this.publishAndReturnOffset(n).catch((i)=>{D("[%s] error while publishing message: %s",this.uid,i)})}publishAndReturnOffset(n){return n.uid=this.uid,n.nsp=this.nsp.name,this.doPublish(n)}publishResponse(n,i){i.uid=this.uid,i.nsp=this.nsp.name,this.doPublishResponse(n,i).catch((o)=>{D("[%s] error while publishing response: %s",this.uid,o)})}}hn.ClusterAdapter=Ne;class el extends Ne{constructor(n,i){super(n);this.nodesMap=new Map,this.customRequests=new Map,this._opts=Object.assign({heartbeatInterval:5000,heartbeatTimeout:1e4},i),this.cleanupTimer=setInterval(()=>{const o=Date.now();this.nodesMap.forEach((e,a)=>{if(o-e>this._opts.heartbeatTimeout)D("[%s] node %s seems down",this.uid,a),this.removeNode(a)})},1000)}init(){this.publish({type:j.INITIAL_HEARTBEAT})}scheduleHeartbeat(){if(this.heartbeatTimer)this.heartbeatTimer.refresh();else this.heartbeatTimer=setTimeout(()=>{this.publish({type:j.HEARTBEAT})},this._opts.heartbeatInterval)}close(){if(this.publish({type:j.ADAPTER_CLOSE}),clearTimeout(this.heartbeatTimer),this.cleanupTimer)clearInterval(this.cleanupTimer)}onMessage(n,i){if(n.uid===this.uid)return D("[%s] ignore message from self",this.uid);if(n.uid&&n.uid!==lx)this.nodesMap.set(n.uid,Date.now());switch(D("[%s] new event of type %d from %s",this.uid,n.type,n.uid),n.type){case j.INITIAL_HEARTBEAT:this.publish({type:j.HEARTBEAT});break;case j.HEARTBEAT:break;case j.ADAPTER_CLOSE:this.removeNode(n.uid);break;default:super.onMessage(n,i)}}serverCount(){return Promise.resolve(1+this.nodesMap.size)}publish(n){return this.scheduleHeartbeat(),super.publish(n)}async serverSideEmit(n){if(typeof n[n.length-1]!=="function")return this.publish({type:j.SERVER_SIDE_EMIT,data:{packet:n}});const o=n.pop(),e=this.nodesMap.size;if(D('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,e),e<=0)return o(null,[]);const a=Si(),t=setTimeout(()=>{const c=this.customRequests.get(a);if(c)o(new Error(`timeout reached: missing ${c.missingUids.size} responses`),c.responses),this.customRequests.delete(a)},$o),s={type:j.SERVER_SIDE_EMIT,resolve:o,timeout:t,missingUids:new Set([...this.nodesMap.keys()]),responses:[]};this.customRequests.set(a,s),this.publish({type:j.SERVER_SIDE_EMIT,data:{requestId:a,packet:n}})}async fetchSockets(n){var i;const[o,e]=await Promise.all([super.fetchSockets({rooms:n.rooms,except:n.except,flags:{local:!0}}),this.serverCount()]),a=e-1;if(((i=n.flags)===null||i===void 0?void 0:i.local)||a<=0)return o;const t=Si();return new Promise((s,c)=>{const l=setTimeout(()=>{const p=this.customRequests.get(t);if(p)c(new Error(`timeout reached: missing ${p.missingUids.size} responses`)),this.customRequests.delete(t)},n.flags.timeout||$o),r={type:j.FETCH_SOCKETS,resolve:s,timeout:l,missingUids:new Set([...this.nodesMap.keys()]),responses:o};this.customRequests.set(t,r),this.publish({type:j.FETCH_SOCKETS,data:{opts:ii(n),requestId:t}})})}onResponse(n){const i=n.data.requestId;switch(D("[%s] received response %s to request %s",this.uid,n.type,i),n.type){case j.FETCH_SOCKETS_RESPONSE:{const o=this.customRequests.get(i);if(!o)return;if(n.data.sockets.forEach((e)=>o.responses.push(e)),o.missingUids.delete(n.uid),o.missingUids.size===0)clearTimeout(o.timeout),o.resolve(o.responses),this.customRequests.delete(i);break}case j.SERVER_SIDE_EMIT_RESPONSE:{const o=this.customRequests.get(i);if(!o)return;if(o.responses.push(n.data.packet),o.missingUids.delete(n.uid),o.missingUids.size===0)clearTimeout(o.timeout),o.resolve(null,o.responses),this.customRequests.delete(i);break}default:super.onResponse(n)}}removeNode(n){this.customRequests.forEach((i,o)=>{if(i.missingUids.delete(n),i.missingUids.size===0){if(clearTimeout(i.timeout),i.type===j.FETCH_SOCKETS)i.resolve(i.responses);else if(i.type===j.SERVER_SIDE_EMIT)i.resolve(null,i.responses);this.customRequests.delete(o)}}),this.nodesMap.delete(n)}}hn.ClusterAdapterWithHeartbeat=el});var jo=A((oi)=>{Object.defineProperty(oi,"__esModule",{value:!0});oi.MessageType=oi.ClusterAdapterWithHeartbeat=oi.ClusterAdapter=oi.SessionAwareAdapter=oi.Adapter=void 0;var tl=He();Object.defineProperty(oi,"Adapter",{enumerable:!0,get:function(){return tl.Adapter}});Object.defineProperty(oi,"SessionAwareAdapter",{enumerable:!0,get:function(){return tl.SessionAwareAdapter}});var De=al();Object.defineProperty(oi,"ClusterAdapter",{enumerable:!0,get:function(){return De.ClusterAdapter}});Object.defineProperty(oi,"ClusterAdapterWithHeartbeat",{enumerable:!0,get:function(){return De.ClusterAdapterWithHeartbeat}});Object.defineProperty(oi,"MessageType",{enumerable:!0,get:function(){return De.MessageType}})});var rl=A((wi)=>{var px=wi&&wi.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(wi,"__esModule",{value:!0});wi.ParentNamespace=void 0;var sl=Xe(),mx=jo(),ux=px(q()),cl=ux.default("socket.io:parent-namespace");class ko extends sl.Namespace{constructor(n){super(n,"/_"+ko.count++);this.children=new Set}_initAdapter(){this.adapter=new ll(this,this.children)}emit(n,...i){return this.children.forEach((o)=>{o.emit(n,...i)}),!0}createChild(n){cl("creating child namespace %s",n);const i=new sl.Namespace(this.server,n);if(i._fns=this._fns.slice(0),this.listeners("connect").forEach((o)=>i.on("connect",o)),this.listeners("connection").forEach((o)=>i.on("connection",o)),this.children.add(i),this.server._opts.cleanupEmptyChildNamespaces){const o=i._remove;i._remove=(e)=>{if(o.call(i,e),i.sockets.size===0)cl("closing child namespace %s",n),i.adapter.close(),this.server._nsps.delete(i.name),this.children.delete(i)}}return this.server._nsps.set(n,i),this.server.sockets.emitReserved("new_namespace",i),i}fetchSockets(){throw new Error("fetchSockets() is not supported on parent namespaces")}}wi.ParentNamespace=ko;ko.count=0;class ll extends mx.Adapter{constructor(n,i){super(n);this.children=i}broadcast(n,i){this.children.forEach((o)=>{o.adapter.broadcast(n,i)})}}});var fl=A((Rn)=>{function fx(n){ei.Adapter.prototype.addAll=function(i,o){const e=!this.sids.has(i);ul.call(this,i,o);const a=this.nsp.sockets.get(i);if(!a)return;if(a.conn.transport.name==="websocket"){ml(this.nsp.name,a,e,o);return}if(e)a.conn.on("upgrade",()=>{const t=this.sids.get(i);if(t)ml(this.nsp.name,a,e,t)})},ei.Adapter.prototype.del=function(i,o){xl.call(this,i,o);const e=this.nsp.sockets.get(i);if(e&&e.conn.transport.name==="websocket"){const a=e.conn.id,t=e.conn.transport.socket,s=`${this.nsp.name}${Le}${o}`;Oo("unsubscribe connection %s from topic %s",a,s),t.unsubscribe(s)}},ei.Adapter.prototype.broadcast=function(i,o){if(!(o.rooms.size<=1&&o.except.size===0)){dl.call(this,i,o);return}const a=o.flags||{},t={preEncoded:!0,volatile:a.volatile,compress:a.compress};i.nsp=this.nsp.name;const s=this.encoder.encode(i),c=o.rooms.size===0?this.nsp.name:`${this.nsp.name}${Le}${o.rooms.keys().next().value}`;Oo("fast publish to %s",c),s.forEach((l)=>{const r=typeof l!=="string";n.publish(c,r?l:"4"+l,r)}),this.apply(o,(l)=>{if(l.conn.transport.name!=="websocket")l.client.writeToEngine(s,t)})}}function ml(n,i,o,e){const a=i.conn.id,t=i.conn.transport.socket;if(o)Oo("subscribe connection %s to topic %s",a,n),t.subscribe(n);e.forEach((s)=>{const c=`${n}${Le}${s}`;Oo("subscribe connection %s to topic %s",a,c),t.subscribe(c)})}function yx(){ei.Adapter.prototype.addAll=ul,ei.Adapter.prototype.del=xl,ei.Adapter.prototype.broadcast=dl}function bx(n,i){const{size:o}=pl.statSync(i),e=pl.createReadStream(i),a=()=>!e.destroyed&&e.destroy(),t=(c)=>{throw a(),c},s=(c)=>{const l=vx(c),r=n.getWriteOffset(),[p,m]=n.tryEnd(l,o);if(!m&&!p)e.pause(),n.onWritable((T)=>{const[R,y]=n.tryEnd(l.slice(T-r),o);if(!y&&R)e.resume();return R})};n.onAborted(a),e.on("data",s).on("error",t).on("end",a)}var xx=Rn&&Rn.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Rn,"__esModule",{value:!0});Rn.serveFile=Rn.restoreAdapter=Rn.patchAdapter=void 0;var ei=jo(),pl=import.meta.require("fs"),dx=xx(q()),Oo=dx.default("socket.io:adapter-uws"),Le="\x1F",{addAll:ul,del:xl,broadcast:dl}=ei.Adapter.prototype;Rn.patchAdapter=fx;Rn.restoreAdapter=yx;var vx=(n)=>{const{buffer:i,byteOffset:o,byteLength:e}=n;return i.slice(o,o+e)};Rn.serveFile=bx});var yl=A((Nh,Tx)=>{Tx.exports={name:"socket.io",version:"4.7.5",description:"node.js realtime framework server",keywords:["realtime","framework","websocket","tcp","events","socket","io"],files:["dist/","client-dist/","wrapper.mjs","!**/*.tsbuildinfo"],directories:{doc:"docs/",example:"example/",lib:"lib/",test:"test/"},type:"commonjs",main:"./dist/index.js",exports:{types:"./dist/index.d.ts",import:"./wrapper.mjs",require:"./dist/index.js"},types:"./dist/index.d.ts",license:"MIT",repository:{type:"git",url:"git://github.com/socketio/socket.io"},scripts:{compile:"rimraf ./dist && tsc",test:"npm run format:check && npm run compile && npm run test:types && npm run test:unit","test:types":"tsd","test:unit":"nyc mocha --require ts-node/register --reporter spec --slow 200 --bail --timeout 10000 test/index.ts","format:check":"prettier --check \"lib/**/*.ts\" \"test/**/*.ts\"","format:fix":"prettier --write \"lib/**/*.ts\" \"test/**/*.ts\"",prepack:"npm run compile"},dependencies:{accepts:"~1.3.4",base64id:"~2.0.0",cors:"~2.8.5",debug:"~4.3.2","engine.io":"~6.5.2","socket.io-adapter":"~2.5.2","socket.io-parser":"~4.2.4"},devDependencies:{"@types/mocha":"^9.0.0","expect.js":"0.3.1",mocha:"^10.0.0",nyc:"^15.1.0",prettier:"^2.3.2",rimraf:"^3.0.2","socket.io-client":"4.7.5","socket.io-client-v2":"npm:socket.io-client@^2.4.0",superagent:"^8.0.0",supertest:"^6.1.6","ts-node":"^10.2.1",tsd:"^0.27.0",typescript:"^4.4.2","uWebSockets.js":"github:uNetworking/uWebSockets.js#v20.30.0"},contributors:[{name:"Guillermo Rauch",email:"rauchg@gmail.com"},{name:"Arnout Kazemier",email:"info@3rd-eden.com"},{name:"Vladimir Dronnikov",email:"dronnikov@gmail.com"},{name:"Einar Otto Stangvik",email:"einaros@gmail.com"}],engines:{node:">=10.2.0"},tsd:{directory:"test"}}});var Al=A((en,Gi)=>{var __dirname="/home/runner/work/wayforge/wayforge/node_modules/.pnpm/socket.io@4.7.5/node_modules/socket.io/dist",Sx=en&&en.__createBinding||(Object.create?function(n,i,o,e){if(e===void 0)e=o;var a=Object.getOwnPropertyDescriptor(i,o);if(!a||("get"in a?!i.__esModule:a.writable||a.configurable))a={enumerable:!0,get:function(){return i[o]}};Object.defineProperty(n,e,a)}:function(n,i,o,e){if(e===void 0)e=o;n[e]=i[o]}),wx=en&&en.__setModuleDefault||(Object.create?function(n,i){Object.defineProperty(n,"default",{enumerable:!0,value:i})}:function(n,i){n.default=i}),gx=en&&en.__importStar||function(n){if(n&&n.__esModule)return n;var i={};if(n!=null){for(var o in n)if(o!=="default"&&Object.prototype.hasOwnProperty.call(n,o))Sx(i,n,o)}return wx(i,n),i},Fl=en&&en.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(en,"__esModule",{value:!0});en.Namespace=en.Socket=en.Server=void 0;var Fx=import.meta.require("http"),hx=import.meta.require("fs"),Pe=import.meta.require("zlib"),Ax=ro(),zo=import.meta.require("stream"),vl=import.meta.require("path"),bl=dc(),Kx=zc(),Tl=import.meta.require("events"),qe=Xe();Object.defineProperty(en,"Namespace",{enumerable:!0,get:function(){return qe.Namespace}});var Rx=rl(),Sl=jo(),Mx=gx(Xi()),Jx=Fl(q()),hl=Zi();Object.defineProperty(en,"Socket",{enumerable:!0,get:function(){return hl.Socket}});var $x=Ro(),_e=fl(),jx=Fl(ze()),ln=Jx.default("socket.io:server"),wl=yl().version,gl=/\.map/;class gi extends $x.StrictEventEmitter{constructor(n,i={}){super();if(this._nsps=new Map,this.parentNsps=new Map,this.parentNamespacesFromRegExp=new Map,typeof n==="object"&&n instanceof Object&&!n.listen)i=n,n=void 0;if(this.path(i.path||"/socket.io"),this.connectTimeout(i.connectTimeout||45000),this.serveClient(i.serveClient!==!1),this._parser=i.parser||Mx,this.encoder=new this._parser.Encoder,this.opts=i,i.connectionStateRecovery)i.connectionStateRecovery=Object.assign({maxDisconnectionDuration:120000,skipMiddlewares:!0},i.connectionStateRecovery),this.adapter(i.adapter||Sl.SessionAwareAdapter);else this.adapter(i.adapter||Sl.Adapter);if(i.cleanupEmptyChildNamespaces=!!i.cleanupEmptyChildNamespaces,this.sockets=this.of("/"),n||typeof n=="number")this.attach(n);if(this.opts.cors)this._corsMiddleware=jx.default(this.opts.cors)}get _opts(){return this.opts}serveClient(n){if(!arguments.length)return this._serveClient;return this._serveClient=n,this}_checkNamespace(n,i,o){if(this.parentNsps.size===0)return o(!1);const e=this.parentNsps.keys(),a=()=>{const t=e.next();if(t.done)return o(!1);t.value(n,i,(s,c)=>{if(s||!c)return a();if(this._nsps.has(n))return ln("dynamic namespace %s already exists",n),o(this._nsps.get(n));const l=this.parentNsps.get(t.value).createChild(n);ln("dynamic namespace %s was created",n),o(l)})};a()}path(n){if(!arguments.length)return this._path;this._path=n.replace(/\/$/,"");const i=this._path.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");return this.clientPathRegex=new RegExp("^"+i+"/socket\\.io(\\.msgpack|\\.esm)?(\\.min)?\\.js(\\.map)?(?:\\?|$)"),this}connectTimeout(n){if(n===void 0)return this._connectTimeout;return this._connectTimeout=n,this}adapter(n){if(!arguments.length)return this._adapter;this._adapter=n;for(let i of this._nsps.values())i._initAdapter();return this}listen(n,i={}){return this.attach(n,i)}attach(n,i={}){if(typeof n=="function")throw new Error("You are trying to attach socket.io to an express request handler function. Please pass a http.Server instance.");if(Number(n)==n)n=Number(n);if(typeof n=="number"){ln("creating http server and binding to %d",n);const o=n;n=Fx.createServer((e,a)=>{a.writeHead(404),a.end()}),n.listen(o)}return Object.assign(i,this.opts),i.path=i.path||this._path,this.initEngine(n,i),this}attachApp(n,i={}){Object.assign(i,this.opts),i.path=i.path||this._path,ln("creating uWebSockets.js-based engine with opts %j",i);const o=new bl.uServer(i);if(o.attach(n,i),this.bind(o),this._serveClient)n.get(`${this._path}/*`,(e,a)=>{if(!this.clientPathRegex.test(a.getUrl())){a.setYield(!0);return}const t=a.getUrl().replace(this._path,"").replace(/\?.*$/,"").replace(/^\//,""),s=gl.test(t),c=s?"map":"source",l='"'+wl+'"',r="W/"+l,p=a.getHeader("if-none-match");if(p){if(l===p||r===p){ln("serve client %s 304",c),e.writeStatus("304 Not Modified"),e.end();return}}ln("serve client %s",c),e.writeHeader("cache-control","public, max-age=0"),e.writeHeader("content-type","application/"+(s?"json":"javascript")+"; charset=utf-8"),e.writeHeader("etag",l);const m=vl.join(__dirname,"../client-dist/",t);_e.serveFile(e,m)});_e.patchAdapter(n)}initEngine(n,i){if(ln("creating engine.io instance with opts %j",i),this.eio=bl.attach(n,i),this._serveClient)this.attachServe(n);this.httpServer=n,this.bind(this.eio)}attachServe(n){ln("attaching client serving req handler");const i=n.listeners("request").slice(0);n.removeAllListeners("request"),n.on("request",(o,e)=>{if(this.clientPathRegex.test(o.url))if(this._corsMiddleware)this._corsMiddleware(o,e,()=>{this.serve(o,e)});else this.serve(o,e);else for(let a=0;a<i.length;a++)i[a].call(n,o,e)})}serve(n,i){const o=n.url.replace(this._path,"").replace(/\?.*$/,""),e=gl.test(o),a=e?"map":"source",t='"'+wl+'"',s="W/"+t,c=n.headers["if-none-match"];if(c){if(t===c||s===c){ln("serve client %s 304",a),i.writeHead(304),i.end();return}}ln("serve client %s",a),i.setHeader("Cache-Control","public, max-age=0"),i.setHeader("Content-Type","application/"+(e?"json":"javascript")+"; charset=utf-8"),i.setHeader("ETag",t),gi.sendFile(o,n,i)}static sendFile(n,i,o){const e=hx.createReadStream(vl.join(__dirname,"../client-dist/",n)),a=Ax(i).encodings(["br","gzip","deflate"]),t=(s)=>{if(s)o.end()};switch(a){case"br":o.writeHead(200,{"content-encoding":"br"}),zo.pipeline(e,Pe.createBrotliCompress(),o,t);break;case"gzip":o.writeHead(200,{"content-encoding":"gzip"}),zo.pipeline(e,Pe.createGzip(),o,t);break;case"deflate":o.writeHead(200,{"content-encoding":"deflate"}),zo.pipeline(e,Pe.createDeflate(),o,t);break;default:o.writeHead(200),zo.pipeline(e,o,t)}}bind(n){return this.engine=n,this.engine.on("connection",this.onconnection.bind(this)),this}onconnection(n){ln("incoming connection with id %s",n.id);const i=new Kx.Client(this,n);if(n.protocol===3)i.connect("/");return this}of(n,i){if(typeof n==="function"||n instanceof RegExp){const e=new Rx.ParentNamespace(this);if(ln("initializing parent namespace %s",e.name),typeof n==="function")this.parentNsps.set(n,e);else this.parentNsps.set((a,t,s)=>s(null,n.test(a)),e),this.parentNamespacesFromRegExp.set(n,e);if(i)e.on("connect",i);return e}if(String(n)[0]!=="/")n="/"+n;let o=this._nsps.get(n);if(!o){for(let[e,a]of this.parentNamespacesFromRegExp)if(e.test(n))return ln("attaching namespace %s to parent namespace %s",n,e),a.createChild(n);if(ln("initializing namespace %s",n),o=new qe.Namespace(this,n),this._nsps.set(n,o),n!=="/")this.sockets.emitReserved("new_namespace",o)}if(i)o.on("connect",i);return o}close(n){if(this._nsps.forEach((i)=>{i.sockets.forEach((o)=>{o._onclose("server shutting down")}),i.adapter.close()}),this.engine.close(),_e.restoreAdapter(),this.httpServer)this.httpServer.close(n);else n&&n()}use(n){return this.sockets.use(n),this}to(n){return this.sockets.to(n)}in(n){return this.sockets.in(n)}except(n){return this.sockets.except(n)}send(...n){return this.sockets.emit("message",...n),this}write(...n){return this.sockets.emit("message",...n),this}serverSideEmit(n,...i){return this.sockets.serverSideEmit(n,...i)}serverSideEmitWithAck(n,...i){return this.sockets.serverSideEmitWithAck(n,...i)}allSockets(){return this.sockets.allSockets()}compress(n){return this.sockets.compress(n)}get volatile(){return this.sockets.volatile}get local(){return this.sockets.local}timeout(n){return this.sockets.timeout(n)}fetchSockets(){return this.sockets.fetchSockets()}socketsJoin(n){return this.sockets.socketsJoin(n)}socketsLeave(n){return this.sockets.socketsLeave(n)}disconnectSockets(n=!1){return this.sockets.disconnectSockets(n)}}en.Server=gi;var kx=Object.keys(Tl.EventEmitter.prototype).filter(function(n){return typeof Tl.EventEmitter.prototype[n]==="function"});kx.forEach(function(n){gi.prototype[n]=function(){return this.sockets[n].apply(this.sockets,arguments)}});Gi.exports=(n,i)=>new gi(n,i);Gi.exports.Server=gi;Gi.exports.Namespace=qe.Namespace;Gi.exports.Socket=hl.Socket;var Dh=Zi()});import*as jl from"http";function ai(n=Math.random){return n().toString(36).slice(2)}class Ai extends Promise{fate;resolve;reject;done=!1;constructor(n){let i,o;super((e,a)=>{i=e,o=a});this.resolve=i,this.reject=o,this.use(n instanceof Promise?n:new Promise(n))}pass(n,i){if(n===this.fate)this.resolve(i),this.done=!0}fail(n,i){if(n===this.fate)this.reject(i),this.done=!0}use(n){if(n instanceof Promise){const i=n;this.fate=i,i.then((o)=>{this.pass(i,o)},(o)=>{this.fail(i,o)})}else this.resolve(n),this.fate=void 0}}var aa=(n,i,o=J.STORE)=>{return Ki(o,{key:`${n.key}:JSON`,get:({get:e})=>i.toJson(e(n)),set:({set:e},a)=>{e(n,i.fromJson(a))}})};function f(n){while(n.child!==null)n=n.child;return n}function ta(n){while(n.parent!==null)n=n.parent;return n}class z{Subscriber;subscribers=new Map;subscribe(n,i){return this.subscribers.set(n,i),()=>{this.unsubscribe(n)}}unsubscribe(n){this.subscribers.delete(n)}next(n){const i=this.subscribers.values();for(let o of i)o(n)}}class Wo extends z{state;constructor(n){super();this.state=n}next(n){this.state=n,super.next(n)}}function Cn(n,i,o){const e={key:i.key,type:"atom_family"},a=n.families.get(i.key);if(a)n.logger.error("\u2757","atom_family",i.key,`Overwriting an existing ${Tn(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const t=new z,c=Object.assign((l)=>{const r=k(l),p={key:i.key,subKey:r},m=`${i.key}(${r})`,T=f(n),R=i.default,y={key:m,default:R instanceof Function?R(l):R};if(i.effects)y.effects=i.effects(l);const v=Wn(T,y,p);return t.next({type:"state_creation",token:v}),v},e,{subject:t,install:(l)=>Cn(l,i),internalRoles:o});return n.families.set(i.key,c),n.defaults.set(i.key,i.default),e}function sa(n,i){if("mutable"in i)return Ri(n,i);return Cn(n,i)}function In(n,i,o){const e={key:i.key,type:"readonly_selector_family"},a=n.families.get(i.key);if(a)n.logger.error("\u2757","readonly_selector_family",i.key,`Overwriting an existing ${Tn(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const t=new z,c=Object.assign((l)=>{const r=k(l),p={key:i.key,subKey:r},m=`${i.key}(${r})`,T=f(n),R=Mi(T,{key:m,get:i.get(l)},p);return t.next({type:"state_creation",token:R}),R},e,{internalRoles:o,subject:t,install:(l)=>In(l,i),default:(l)=>{return i.get(l)({get:(...p)=>E(n,...p),find:(p,m)=>I(n,p,m),seek:(p,m)=>Z(n,p,m),json:(p)=>L(n,p)})}});return n.families.set(i.key,c),e}function Io(n,i){if("set"in i)return Ji(n,i);return In(n,i)}function ti(n,i){const o=k(i),e=`${n.key}(${o})`,a=Vl[n.type],t={key:e,type:a};if(a==="molecule")Object.assign(t,{key:i,family:n});else Object.assign(t,{family:{key:n.key,subKey:o}});return Object.assign(t,{counterfeit:!0}),t}var Vl={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function xn(n){const i={key:n.key,type:n.type};if("family"in n)i.family=n.family;return i}class rn{a;b;cardinality;relations=new Map;contents=new Map;isContent;makeContentKey=(n,i)=>`${n}:${i}`;getRelatedKeys(n){return this.relations.get(n)}addRelation(n,i){let o=this.relations.get(n),e=this.relations.get(i);if(o)o.add(i);else o=new Set([i]),this.relations.set(n,o);if(e)e.add(n);else e=new Set([n]),this.relations.set(i,e)}deleteRelation(n,i){const o=this.relations.get(n);if(o){if(o.delete(i),o.size===0)this.relations.delete(n);const e=this.relations.get(i);if(e){if(e.delete(n),e.size===0)this.relations.delete(i)}}}replaceRelationsUnsafely(n,i){this.relations.set(n,new Set(i));for(let o of i){const e=new Set([n]);this.relations.set(o,e)}}replaceRelationsSafely(n,i){const o=this.relations.get(n);if(o)for(let e of o){const a=this.relations.get(e);if(a){if(a.size===1)this.relations.delete(e);else a.delete(n);this.contents.delete(this.makeContentKey(n,e))}}this.relations.set(n,new Set(i));for(let e of i){let a=this.relations.get(e);if(a)a.add(n);else a=new Set([n]),this.relations.set(e,a)}}getContentInternal(n){return this.contents.get(n)}setContent(n,i){this.contents.set(n,i)}deleteContent(n){this.contents.delete(n)}constructor(n,i){if(this.a=n.between[0],this.b=n.between[1],this.cardinality=n.cardinality,!i?.externalStore)this.relations=new Map(n.relations?.map(([o,e])=>[o,new Set(e)])),this.contents=new Map(n.contents);if(this.isContent=i?.isContent??null,i?.makeContentKey)this.makeContentKey=i.makeContentKey;if(i?.externalStore){const o=i.externalStore;if(this.has=(e,a)=>o.has(e,a),this.addRelation=(e,a)=>{o.addRelation(e,a)},this.deleteRelation=(e,a)=>{o.deleteRelation(e,a)},this.replaceRelationsSafely=(e,a)=>{o.replaceRelationsSafely(e,a)},this.replaceRelationsUnsafely=(e,a)=>{o.replaceRelationsUnsafely(e,a)},this.getRelatedKeys=(e)=>o.getRelatedKeys(e),o.getContent)this.getContentInternal=(e)=>{return o.getContent(e)},this.setContent=(e,a)=>{o.setContent(e,a)},this.deleteContent=(e)=>{o.deleteContent(e)};for(let[e,a]of n.relations??[])for(let t of a)this.addRelation(e,t);for(let[e,a]of n.contents??[])this.setContent(e,a)}}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([n,i])=>[n,[...i]]),contents:[...this.contents.entries()]}}set(n,...i){const o=typeof i[0]==="string"?i[0]:n[this.b],e=i[1]??typeof i[0]==="string"?void 0:i[0];switch(n=typeof n==="string"?n:n[this.a],this.cardinality){case"1:1":{const a=this.getRelatedKey(n);if(a&&a!==o)this.delete(a,n)}case"1:n":{const a=this.getRelatedKey(o);if(a&&a!==n)this.delete(a,o)}}if(e){const a=this.makeContentKey(n,o);this.setContent(a,e)}return this.addRelation(n,o),this}delete(n,i){i=typeof i==="string"?i:n[this.b];const o=typeof n==="string"?n:n[this.a];if(o===void 0&&typeof i==="string"){const e=this.getRelatedKeys(i);if(e)for(let a of e)this.delete(a,i)}if(typeof o==="string"&&i===void 0){const e=this.getRelatedKeys(o);if(e)for(let a of e)this.delete(o,a)}if(typeof o==="string"&&typeof i==="string"){this.deleteRelation(o,i);const e=this.makeContentKey(o,i);this.deleteContent(e)}return this}getRelatedKey(n){const i=this.getRelatedKeys(n);if(i){if(i.size>1)console.warn(`${i.size} related keys were found for key "${n}": (${[...i].map((o)=>`"${o}"`).join(", ")}). Only one related key was expected.`);for(let o of i)return o}}replaceRelations(n,i,o){const e=!Array.isArray(i),a=e?Object.keys(i):i;if(o?.reckless)this.replaceRelationsUnsafely(n,a);else this.replaceRelationsSafely(n,a);if(e)for(let t of a){const s=this.makeContentKey(n,t),c=i[t];this.setContent(s,c)}return this}getContent(n,i){const o=this.makeContentKey(n,i);return this.getContentInternal(o)}getRelationEntries(n){const i=n[this.a],o=n[this.b];if(i!==void 0&&o===void 0){const e=this.getRelatedKeys(i);if(e)return[...e].map((a)=>{return[a,this.getContent(i,a)??null]})}if(i===void 0&&o!==void 0){const e=this.getRelatedKeys(o);if(e)return[...e].map((a)=>{return[a,this.getContent(a,o)??null]})}return[]}has(n,i){if(i)return this.getRelatedKeys(n)?.has(i)??!1;return this.relations.has(n)}}function N(n){return"epoch"in n.transactionMeta}function V(n){return"phase"in n.transactionMeta}var ca=(n)=>{const i=f(n);if(!V(i)){n.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}n.logger.info("\uD83E\uDE82","transaction",i.transactionMeta.update.key,"Aborting transaction"),i.parent.child=null};function Tn(n){return n.type.split("_").map(Ul).join(" ")}var Ul=(n)=>n[0].toUpperCase()+n.slice(1);class cn extends Error{constructor(...n){const i=n[0],o=n.length===2?n[1]:n[2];if(n.length===2)super(`${Tn(i)} ${k(i.key)} not found in store "${o.config.name}".`);else{const e=n[1];super(`${Tn(i)} "${i.key}" member ${k(e)} not found in store "${o.config.name}".`)}}}function En(n,i,o){return(...e)=>{const a=M(n,o);if(a)return a.run(e,i);throw new cn(n,o)}}var Qi=(n)=>(i)=>n instanceof Function?n(i):n;var Vn=(n,i)=>{if(i.valueMap.has(n.key))return i.logger.info("\uD83D\uDCD6",n.type,n.key,"reading cached value"),la(n,i);if(n.type==="selector"||n.type==="readonly_selector")return i.logger.info("\uD83E\uDDEE",n.type,n.key,"computing value"),n.get();const o=n.default instanceof Function?n.default():n.default;return i.logger.info("\uD83D\uDC81","atom",n.key,"could not find cached value; using default",o),n.default instanceof Function?n.default():n.default};var ra=(n,i)=>{if(n.operation.open){const o=performance.now();return n.logger.info("\u2757",i.type,i.key,`deferring setState at T-${o} until setState for "${n.operation.token.key}" is done`),o}n.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:i},n.logger.info("\u2B55",i.type,i.key,`operation start in store "${n.config.name}"${!V(n)?"":` ${n.transactionMeta.phase} "${n.transactionMeta.update.key}"`}`)},pa=(n)=>{if(n.operation.open)n.logger.info("\uD83D\uDD34",n.operation.token.type,n.operation.token.key,`operation done in store "${n.config.name}"`);n.operation={open:!1},n.on.operationClose.next(n.operation)},ma=(n,i)=>{if(!n.operation.open)return n.logger.error("\uD83D\uDC1E","unknown",i,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return n.operation.done.has(i)},si=(n,i)=>{if(!n.operation.open){n.logger.error("\uD83D\uDC1E","unknown",i,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}n.operation.done.add(i)};var ua=(n,i,o)=>{switch(n.type){case"mutable_atom":o.logger.info("\uD83D\uDCE2",n.type,n.key,"is now (",i.newValue,") subscribers:",n.subject.subscribers);break;default:o.logger.info("\uD83D\uDCE2",n.type,n.key,"went (",i.oldValue,"->",i.newValue,") subscribers:",n.subject.subscribers)}n.subject.next(i)};var Eo=(n,i)=>{const o=f(i),e=o.selectorAtoms.getRelatedKeys(n.key);if(o.logger.info("\uD83E\uDDF9",n.type,n.key,e?`evicting ${e.size} states downstream:`:"no downstream states",e??"to evict"),e){if(o.operation.open)o.logger.info("\uD83E\uDDF9",n.type,n.key,`[ ${[...o.operation.done].join(", ")} ] already done`);for(let a of e){if(ma(o,a))continue;xa(a,o),si(o,a)}}};function Yl(n,i){if(fa(i.newValue))return!1;if(n.includes("\uD83D\uDD0D"))return!1;return!0}var da=(n,i,o)=>{const{key:e}=n,a=f(o);if(!V(a)||a.transactionMeta.phase!=="building"){o.logger.error("\uD83D\uDC1E","atom",e,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!Yl(e,i))return;const s={type:"atom_update",key:e,...i};if(n.family)s.family=n.family;a.transactionMeta.update.updates.push(s),o.logger.info("\uD83D\uDCC1","atom",e,"stowed (",i.oldValue,"->",i.newValue,")")};var ya=(n,i,o)=>{const e=Vn(n,o);let a=e;if(n.type==="mutable_atom"&&V(o)){const{parent:s}=o;a=$i(n,s,o)}if(a=Qi(i)(a),o.logger.info("\uD83D\uDCDD","atom",n.key,"set to",a),a=dn(n.key,a,n.subject,o),va(n.key,o))ba(n.key,o);si(o,n.key),Eo(n,o);const t={oldValue:e,newValue:a};if(N(o))ua(n,t,o);else if(o.parent){if(o.on.transactionApplying.state===null)da(n,t,o);else if(n.key.startsWith("*")){const s=n.key.slice(1),c=o.atoms.get(s);let l=o.valueMap.get(s);if(c.type==="mutable_atom"&&V(o)){const{parent:p}=o;l=$i(c,p,o)}if(l.do(t.newValue)===null)Eo(c,o)}}};var Hi=(n,i,o)=>{switch(n.type){case"atom":case"mutable_atom":ya(n,i,o);break;case"selector":n.set(i);break}};function Ni(n,i){if(i.family){const o=n.families.get(i.family.key);if(o)return o}}function U(n,...i){let o,e,a,t;if(i.length===2){if(o=i[0],t=i[1],e=Ni(n,o)??null,e)a=o.family?P(o.family.subKey):null,o=I(n,e,a)}else e=i[0],a=i[1],t=i[2],o=I(n,e,a);if("counterfeit"in o){const l=n.disposalTraces.buffer.find((r)=>r?.key===o.key);n.logger.error("\u274C",o.type,o.key,`could not be set because it was not found in the store "${n.config.name}".`,l?`This state was previously disposed:\n${l.trace}`:"No previous disposal trace was found.");return}const s=ra(n,o);if(s){const l=n.on.operationClose.subscribe(`waiting to set "${o.key}" at T-${s}`,()=>{l(),n.logger.info("\uD83D\uDFE2",o.type,o.key,`resuming deferred setState from T-${s}`),U(n,o,t)});return}const c=M(o,n);Hi(c,t,n),pa(n)}function Di(n,i,o){const{key:e,newValue:a,oldValue:t}=i,s=n==="newValue"?a:t,c={key:e,type:"atom"};if(i.family)Object.assign(c,{family:i.family});U(o,c,s)}function Ta(n,i){const o=new z,e={type:"molecule_family",key:i.key,dependsOn:i.dependsOn??"all"},a={...e,subject:o,new:i.new};return n.moleculeFamilies.set(i.key,a),e}function Sn(n,i,o){const e=Jn(o,i,n.key);n.tokens.set(e.key,e);const a=V(o)&&o.transactionMeta.phase==="building",t=o.moleculeInProgress===n.key;if(!a&&!t)n.subject.next({type:"state_creation",token:e});return e}class _ extends Set{mode="record";subject=new z;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(n,i=0){super(n);if(n instanceof _)this.parent=n,this.cacheUpdateNumber=n.cacheUpdateNumber;if(i)this.cacheLimit=i,this.cache=new Array(i),this.subscribe("auto cache",(o)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=o})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(n){const i=new _(n.members,n.cacheLimit);return i.cache=n.cache,i.cacheIdx=n.cacheIdx,i.cacheUpdateNumber=n.cacheUpdateNumber,i}add(n){const i=super.add(n);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${k(n)}`);return i}clear(){const n=this.mode==="record"?[...this]:null;if(super.clear(),n)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(n)}`)}delete(n){const i=super.delete(n);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${k(n)}`);return i}parent;child=null;transactionUpdates=null;transaction(n){this.mode="transaction",this.transactionUpdates=[],this.child=new _(this);const i=this.child._subscribe("transaction",(o)=>{this.transactionUpdates?.push(o)});try{if(n(this.child)){for(let e of this.transactionUpdates)this.doStep(e);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(o){throw console.error("Failed to apply transaction to SetRTX:",o),o}finally{i(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(n,i){return this.subject.subscribe(n,i)}subscribe(n,i){return this.subject.subscribe(n,(o)=>{i(`${this.cacheUpdateNumber}=${o}`)})}emit(n){this.subject.next(n)}doStep(n){const i=n.indexOf(":"),o=n.substring(0,i),e=n.substring(i+1);switch(o){case"add":this.add(JSON.parse(e));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(e));break;case"tx":for(let a of e.split(";"))this.doStep(a)}}getUpdateNumber(n){const i=n.indexOf("=");return Number(n.substring(0,i))}do(n){const i=n.indexOf("="),o=Number(n.substring(0,i)),e=o-this.cacheUpdateNumber;if(e>0){if(e===1){this.mode="playback";const t=n.substring(i+1);return this.doStep(t),this.mode="record",this.cacheUpdateNumber=o,null}return this.cacheUpdateNumber+1}if(Math.abs(e)<this.cacheLimit){const t=this.cacheIdx+e;if(this.cache[t]===n)return null;this.mode="playback";let c=!1;while(!c){this.cacheIdx%=this.cacheLimit;const r=this.cache[this.cacheIdx];if(this.cacheIdx--,!r)return"OUT_OF_RANGE";this.undo(r),c=this.cacheIdx===t-1}const l=n.substring(i+1);return this.doStep(l),this.mode="record",this.cacheUpdateNumber=o,null}return"OUT_OF_RANGE"}undoStep(n){const i=n.indexOf(":"),o=n.substring(0,i),e=n.substring(i+1);switch(o){case"add":this.delete(JSON.parse(e));break;case"del":this.add(JSON.parse(e));break;case"clear":{const a=JSON.parse(e);for(let t of a)this.add(t);break}case"tx":{const a=e.split(";");for(let t=a.length-1;t>=0;t--)this.undoStep(a[t])}}}undo(n){const i=n.indexOf("=");if(Number(n.substring(0,i))===this.cacheUpdateNumber){this.mode="playback";const e=n.substring(i+1);return this.undoStep(e),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function G(n){return n[0].toUpperCase()+n.slice(1)}function Li(n,i,o=J.STORE){return Vo(o).set(n.key,new Yo(n,i,o)),{key:n.key,type:"join",a:n.between[0],b:n.between[1],cardinality:n.cardinality}}function Vo(n){if("joins"in n&&n.joins instanceof Map)return n.joins;const i=new Map;return n.joins=i,i}function ji(n,i){const o=Vo(i);let e=o.get(n.key);if(e===void 0){if(e=Vo(J.STORE).get(n.key)?.in(i),e===void 0)throw new Error(`Join "${n.key}" not found in store "${i.config.name}"`);o.set(n.key,e)}return e}function ci(n,i,o){const e=ji(n,o);let a;switch(n.cardinality){case"1:1":{const t=`${n.a}KeyOf${G(n.b)}`,s=`${n.b}KeyOf${G(n.a)}`;a={get[t](){const l=e.states[t];return e.retrieve(l,i)},get[s](){const l=e.states[s];return e.retrieve(l,i)}};const c=`${n.a}EntryOf${G(n.b)}`;if(c in e.states){const l=`${n.b}EntryOf${G(n.a)}`;Object.assign(a,{get[c](){const r=e.states[c];return e.retrieve(r,i)},get[l](){const r=e.states[l];return e.retrieve(r,i)}})}break}case"1:n":{const t=`${n.a}KeyOf${G(n.b)}`,s=`${n.b}KeysOf${G(n.a)}`;a={get[t](){const l=e.states[t];return e.retrieve(l,i)},get[s](){const l=e.states[s];return e.retrieve(l,i)}};const c=`${n.a}EntryOf${G(n.b)}`;if(c in e.states){const l=`${n.b}EntriesOf${G(n.a)}`;Object.assign(a,{get[c](){const r=e.states[c];return e.retrieve(r,i)},get[l](){const r=e.states[l];return e.retrieve(r,i)}})}break}case"n:n":{const t=`${n.a}KeysOf${G(n.b)}`,s=`${n.b}KeysOf${G(n.a)}`;a={get[t](){const l=e.states[t];return e.retrieve(l,i)},get[s](){const l=e.states[s];return e.retrieve(l,i)}};const c=`${n.a}EntriesOf${G(n.b)}`;if(c in e.states){const l=`${n.b}EntriesOf${G(n.a)}`;Object.assign(a,{get[c](){const r=e.states[c];return e.retrieve(r,i)},get[l](){const r=e.states[l];return e.retrieve(r,i)}})}}}return a}function Sa(n,i){return ci(n,i,J.STORE)}function Hn(n,i,o){const e=ji(n,o),a=f(o);if(V(a)){const{toolkit:t}=a.transactionMeta;e.transact(t,({relations:s})=>{i(s)})}else i(e.relations)}function Bl(n,i){return ji(n,i).core.findRelatedKeysState}function wa(n){return Bl(n,J.STORE)}class Yo{options;defaultContent;toolkit;retrieve;molecules=new Map;relations;states;core;transact(n,i){const o=this.toolkit;this.toolkit=n,i(this),this.toolkit=o}store;alternates;[Symbol.dispose](){this.alternates.delete(this.store.config.name)}in(n){const i=n.config.name,o=this.alternates.get(i);if(o)return o;const e=new Yo(this.options,this.defaultContent,n);return this.alternates.set(i,e),e.alternates=this.alternates,e}constructor(n,i,o=J.STORE){this.store=o,this.options=n,this.defaultContent=i,this.alternates=new Map,this.alternates.set(o.config.name,this),this.store.miscResources.set(`join:${n.key}`,this),this.retrieve=(x,d)=>{const h=this.toolkit.seek(x,d);if(h)return h;const w=this.molecules.get(k(d));if(w){const g=M(x,o);return Sn(w,g,o)}if(o.config.lifespan==="immortal")throw new cn(x,d,o);return Jn(o,x,d)},this.toolkit={get:(...x)=>E(o,...x),set:(...x)=>{U(o,...x)},find:this.retrieve,seek:(...x)=>Z(o,...x),json:(x)=>L(o,x),dispose:(...x)=>{an(o,...x)}};const e=n.between[0],a=n.between[1],t=Ri(o,{key:`${n.key}/relatedKeys`,default:()=>new _,mutable:!0,fromJson:(x)=>_.fromJSON(x),toJson:(x)=>x.toJSON()},["join","relations"]);this.core={findRelatedKeysState:t};const s=({get:x},d)=>x(this.retrieve(t,d)),c=(x,d,h)=>{const{set:w}=x,g=this.retrieve(t,d),F=this.retrieve(t,h);w(g,($)=>$.add(h)),w(F,($)=>$.add(d))},l=(x,d,h)=>{const{set:w}=x,g=this.retrieve(t,d),F=this.retrieve(t,h);let $,O;w(g,(X)=>{if(X.delete(h),X.size===0)$=`"${d}"`;return X}),w(F,(X)=>{if(X.delete(d),X.size===0)O=`"${h}"`;return X})},r=(x,d,h)=>{const{get:w,set:g}=x,F=this.retrieve(t,d),$=w(F);for(let O of $){if(h.includes(O))continue;const bn=this.retrieve(t,O);g(bn,(An)=>{return An.delete(d),An})}g(F,(O)=>{return O.transaction((X)=>{X.clear();for(let bn of h){const An=s(x,bn),ia=An.has(d);if(this.relations.cardinality==="1:n"){const oa=[];for(let Fi of An){if(Fi===d)continue;const hi=s(x,Fi);if(hi.delete(bn),hi.size===0)oa.push(Fi)}if(!ia&&An.size>0)An.clear();for(let Fi of oa){const hi=[bn,Fi].sort(),Ol=`"${hi[0]}:${hi[1]}"`;this.molecules.delete(Ol)}}if(!ia)An.add(d);X.add(bn)}return!0}),O})},p=(x,d,h)=>{const{set:w}=x,g=this.retrieve(t,d);w(g,(F)=>{return F.transaction(($)=>{for(let O of h)$.add(O);return!0}),F});for(let F of h){const $=this.retrieve(t,F);w($,(O)=>{return O.add(d),O})}return!0},m=(x,d,h)=>{const w=s(x,d);return h?w.has(h):w.size>0},T={getRelatedKeys:(x)=>s(this.toolkit,x),addRelation:(x,d)=>{c(this.toolkit,x,d)},deleteRelation:(x,d)=>{l(this.toolkit,x,d)},replaceRelationsSafely:(x,d)=>{r(this.toolkit,x,d)},replaceRelationsUnsafely:(x,d)=>{p(this.toolkit,x,d)},has:(x,d)=>m(this.toolkit,x,d)};let R,y,v;if(i){y=Cn(o,{key:`${n.key}/content`,default:i},["join","content"]);const x={key:n.key,type:"join",a:n.between[0],b:n.between[1],cardinality:n.cardinality};v=Ta(o,{key:`${n.key}/content-molecules`,new:class F{O;constructor($,O){this.key=O}}});const d=({get:F},$)=>F(this.retrieve(y,$)),h=({set:F},$,O)=>{F(this.retrieve(y,$),O)},w=(F,$)=>{const O=o.molecules.get(`"${$}"`);if(O)this.toolkit.dispose(O),this.molecules.delete(`"${$}"`)};R=Object.assign(T,{getContent:(F)=>{return d(this.toolkit,F)},setContent:(F,$)=>{h(this.toolkit,F,$)},deleteContent:(F)=>{w(this.toolkit,F)}})}else R=T;const u=new rn(n,{externalStore:R,makeContentKey:(...x)=>{const d=x.sort(),h=`${d[0]}:${d[1]}`,[w,g]=d.map((F)=>this.molecules.get(k(F)));if(o.config.lifespan==="immortal"&&w&&g){const F=f(o),$=$n(F,[w,g],v,h);this.molecules.set(`"${h}"`,M($,F))}return h}}),b=()=>In(o,{key:`${n.key}/singleRelatedKey`,get:(x)=>({get:d})=>{const h=this.retrieve(t,x),w=d(h);for(let g of w)return g;return null}},["join","keys"]),S=()=>{return In(o,{key:`${n.key}/multipleRelatedKeys`,get:(x)=>({get:d})=>{const h=Uo(t,o),w=this.retrieve(h,x);return d(w).members}},["join","keys"])},K=()=>In(o,{key:`${n.key}/singleRelatedEntry`,get:(x)=>({get:d})=>{const h=this.retrieve(t,x),w=d(h);for(let g of w){const F=u.makeContentKey(x,g),$=this.retrieve(y,F),O=d($);return[g,O]}return null}},["join","entries"]),W=()=>In(o,{key:`${n.key}/multipleRelatedEntries`,get:(x)=>({get:d})=>{const h=Uo(t,o),w=this.retrieve(h,x);return d(w).members.map((F)=>{const $=u.makeContentKey(x,F),O=this.retrieve(y,$),X=d(O);return[F,X]})}},["join","entries"]);switch(n.cardinality){case"1:1":{const x=b(),d=`${e}KeyOf${G(a)}`,h=`${a}KeyOf${G(e)}`,w={[d]:x,[h]:x};let g;if(i){const F=K(),$=`${e}EntryOf${G(a)}`,O=`${a}EntryOf${G(e)}`,X={[$]:F,[O]:F};g=Object.assign(w,X)}else g=w;this.relations=u,this.states=g;break}case"1:n":{const x=b(),d=S(),h=`${e}KeyOf${G(a)}`,w=`${a}KeysOf${G(e)}`,g={[h]:x,[w]:d};let F;if(i){const $=K(),O=W(),X=`${e}EntryOf${G(a)}`,bn=`${a}EntriesOf${G(e)}`,An={[X]:$,[bn]:O};F=Object.assign(g,An)}else F=g;this.relations=u,this.states=F;break}default:{const x=S(),d=`${e}KeysOf${G(a)}`,h=`${a}KeysOf${G(e)}`,w={[d]:x,[h]:x};let g;if(i){const F=W(),$=`${e}EntriesOf${G(a)}`,O=`${a}EntriesOf${G(e)}`,X={[$]:F,[O]:F};g=Object.assign(w,X)}else g=w;this.relations=u,this.states=g}}}}function Pi(n){return{store:n}}function E(n,...i){let o,e,a;if(i.length===1){if(o=i[0],o.type!=="molecule"){if(e=Ni(n,o)??null,e)a=o.family?P(o.family.subKey):null,o=I(n,e,a)}}else{e=i[0],a=i[1];let t;if(e.type==="molecule_family")t=Z(n,e,a)??ti(e,a);else t=I(n,e,a);o=t}if("counterfeit"in o&&"family"in o){e=o.type==="molecule"?M(o.family,n):n.families.get(o.family.key);const t=o.type==="molecule"?o.key:o.family.subKey,s=n.disposalTraces.buffer.find((c)=>c?.key===o.key);switch(n.logger.error("\u274C",o.type,o.key,`could not be retrieved because it was not found in the store "${n.config.name}".`,s?`This state was previously disposed:\n${s.trace}`:"No previous disposal trace was found."),e.type){case"atom_family":case"mutable_atom_family":return n.defaults.get(e.key);case"selector_family":case"readonly_selector_family":{if(n.defaults.has(e.key))return n.defaults.get(o.family.key);const c=M(e,n).default(t);return n.defaults.set(e.key,c),c}case"molecule_family":throw new cn(e,t,n)}}switch(o.type){case"atom":case"mutable_atom":case"selector":case"readonly_selector":return Vn(M(o,n),n);case"molecule":return M(o,n).instance}}class _i{i;type="molecule";stringKey;family;subject=new z;tokens=new Map;above=new Map;below=new Map;joins=new Map;instance;constructor(n,i,o){this.key=i;if(this.stringKey=k(i),o)this.family=o;if(n)if(Array.isArray(n))for(let e of n)this.above.set(e.stringKey,e);else this.above.set(n.stringKey,n)}}function ga(n){return n[0].toUpperCase()+n.slice(1)}function $n(n,i,o,e,...a){const t=ta(n),s=f(n),c=k(e);s.moleculeInProgress=c;const l=Array.isArray(i)?i:[i],r=l.map((u)=>{if(u instanceof _i)return u;const b=k(u.key),S=n.molecules.get(b);if(!S)throw new Error(`Molecule ${b} not found in store "${n.config.name}"`);return S}),p=new _i(r,e,o);s.molecules.set(c,p);for(let u of r)u.below.set(p.stringKey,p);const m={get:(...u)=>E(f(t),...u),set:(...u)=>{U(f(t),...u)},seek:(u,b)=>Z(f(t),u,b),json:(u)=>L(f(t),u),run:(u,b=ai())=>En(u,b,f(n)),make:(u,b,S,...K)=>$n(f(t),u,b,S,...K),dispose:(u)=>{an(f(t),u)},env:()=>Pi(f(t)),bond:(u,b)=>{if(u.type==="join"){const{as:S}=b,K=ji(u,t);K.molecules.set(c,p),p.joins.set(u.key,K);const W=T.subject.subscribe(`join:${u.key}-${c}`,(F)=>{if(F.type==="molecule_disposal"&&k(F.token.key)===c)W(),K.molecules.delete(c)});if(S===null)return;const x=u.a===S?u.b:u.a,d=Sa(u,e),h=d[`${x}KeysOf${ga(S)}`],w=d[`${x}EntriesOf${ga(S)}`];let g={relatedKeys:h};if(w)g=Object.assign(g,{relatedEntries:w});return g}return Sn(p,M(u,t),f(t))},claim:(u,b)=>{const{exclusive:S}=b,K=f(n).molecules.get(k(u.key));if(K)if(S){for(let W of K.above.values())W.below.delete(K.stringKey);K.above.clear(),K.above.set(p.stringKey,p),p.below.set(K.stringKey,K)}else K.above.set(p.stringKey,p),p.below.set(K.stringKey,K)},spawn:(u,b,...S)=>$n(f(n),[p],M(u,n),b,...S)},T=M(o,n),R=T.new;p.instance=new R(m,e,...a);const y={type:"molecule",key:e,family:o},v={type:"molecule_creation",token:y,family:o,context:l,params:a};if(N(s))T.subject.next(v);else if(V(s)&&s.on.transactionApplying.state===null)s.transactionMeta.update.updates.push(v);return s.moleculeInProgress=null,y}function Bo(n,i,o){switch(i){case"newValue":{Fa(n,o);break}case"oldValue":{an(o,n.token);break}}}function Xo(n,i,o){switch(i){case"newValue":{an(o,n.token);break}case"oldValue":{Fa(n,o),o.valueMap.set(n.token.key,n.value);break}}}function Fa(n,i){const{family:o}=n.token;if(o){const e=i.families.get(o.key);if(e)I(i,e,P(o.subKey))}}function Zo(n,i,o){switch(i){case"newValue":$n(o,n.context,n.family,n.token.key,...n.params);break;case"oldValue":an(o,n.token);break}}function Go(n,i,o){switch(i){case"newValue":an(o,n.token);break;case"oldValue":{const e=$n(o,n.context,n.family,n.token.key);for(let[a,t]of n.values){const s=`${a}(${k(e.key)})`,c=M(e,o),l=c.tokens.has(s),r=o.families.get(a);if(r&&!l)Sn(c,r,o);o.valueMap.set(s,t)}}break}}function qi(n,i,o){const e=n==="newValue"?i.updates:[...i.updates].reverse();for(let a of e)switch(a.type){case"atom_update":case"selector_update":Di(n,a,o);break;case"state_creation":Bo(a,n,o);break;case"state_disposal":Xo(a,n,o);break;case"molecule_creation":Zo(a,n,o);break;case"molecule_disposal":Go(a,n,o);break;case"transaction_update":qi(n,a,o);break}}function ha(n,i,o){if(N(o)&&n)o.transactionMeta.epoch.set(n,i)}function Aa(n,i,o){if(!N(o))return;const a=o.transactionMeta.actionContinuities.getRelatedKey(n);if(a!==void 0)o.transactionMeta.epoch.set(a,i)}var Ka=(n,i)=>{const o=f(i),{parent:e}=o;if(e===null||!V(o)||o.transactionMeta?.phase!=="building"){i.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}o.transactionMeta.phase="applying",o.transactionMeta.update.output=n,e.child=null,e.on.transactionApplying.next(o.transactionMeta);const{updates:a}=o.transactionMeta.update;if(i.logger.info("\uD83D\uDEC4","transaction",o.transactionMeta.update.key,`Applying transaction with ${a.length} updates:`,a),qi("newValue",o.transactionMeta.update,e),N(e))Aa(o.transactionMeta.update.key,o.transactionMeta.update.epoch,e),M({key:o.transactionMeta.update.key,type:"transaction"},i)?.subject.next(o.transactionMeta.update),i.logger.info("\uD83D\uDEEC","transaction",o.transactionMeta.update.key,"Finished applying transaction.");else if(V(e))e.transactionMeta.update.updates.push(o.transactionMeta.update);e.on.transactionApplying.next(null)};function Ra(n,i,o){if(!N(o))return;const{epoch:a,actionContinuities:t}=o.transactionMeta;if(t.set(n,i),!a.has(n))a.set(n,-1)}class fn extends Map{n;deleted=new Set;constructor(n){super();this.source=n}get(n){if(super.has(n))return super.get(n);if(!this.deleted.has(n)&&this.source.has(n))return this.source.get(n);return}set(n,i){return this.deleted.delete(n),super.set(n,i)}hasOwn(n){return super.has(n)}has(n){return!this.deleted.has(n)&&(super.has(n)||this.source.has(n))}delete(n){return this.deleted.add(n),super.delete(n)}}var Ma=(n,i,o,e)=>{const a=f(o),t={parent:a,child:null,on:a.on,loggers:a.loggers,logger:a.logger,config:a.config,atoms:new fn(a.atoms),atomsThatAreDefault:new Set(a.atomsThatAreDefault),families:new fn(a.families),operation:{open:!1},readonlySelectors:new fn(a.readonlySelectors),timelines:new fn(a.timelines),timelineTopics:new rn(a.timelineTopics.toJSON()),trackers:new Map,transactions:new fn(a.transactions),selectorAtoms:new rn(a.selectorAtoms.toJSON()),selectorGraph:new rn(a.selectorGraph.toJSON(),{makeContentKey:(...r)=>r.sort().join(":")}),selectors:new fn(a.selectors),valueMap:new fn(a.valueMap),defaults:a.defaults,disposalTraces:o.disposalTraces.copy(),molecules:new fn(a.molecules),moleculeFamilies:new fn(a.moleculeFamilies),moleculeInProgress:a.moleculeInProgress,miscResources:new fn(a.miscResources)},s=Ja(n,o),c={phase:"building",update:{type:"transaction_update",key:n,id:e,epoch:s===void 0?Number.NaN:s+1,updates:[],params:i,output:void 0},toolkit:{get:(...r)=>E(l,...r),set:(...r)=>{U(l,...r)},run:(r,p=ai())=>En(r,p,l),find:(r,p)=>I(l,r,p),seek:(r,p)=>Z(l,r,p),json:(r)=>L(l,r),make:(r,p,m,...T)=>$n(l,r,p,m,...T),dispose:(...r)=>{an(l,...r)},env:()=>Pi(l)}},l=Object.assign(t,{transactionMeta:c});return a.child=l,o.logger.info("\uD83D\uDEEB","transaction",n,"Building transaction with params:",i),l};function Qo(n,i){const o={key:n.key,type:"transaction",run:(t,s)=>{const c=Ma(n.key,t,i,s);try{const l=f(i),{toolkit:r}=c.transactionMeta,p=n.do(r,...t);return Ka(p,l),p}catch(l){throw ca(e),i.logger.warn("\uD83D\uDCA5","transaction",n.key,"caught:",l),l}},install:(t)=>Qo(n,t),subject:new z},e=f(i);e.transactions.set(o.key,o);const a=xn(o);return i.on.transactionCreation.next(a),a}function Ja(n,i){const o=N(i),e=o?i.transactionMeta.actionContinuities.getRelatedKey(n):void 0;return o&&e!==void 0?i.transactionMeta.epoch.get(e):void 0}class no{_buffer;_index=0;constructor(n){let i;if(typeof n==="number")i=n;else i=n.length;this._buffer=Array.from({length:i})}get buffer(){return this._buffer}get index(){return this._index}add(n){this._buffer[this._index]=n,this._index=(this._index+1)%this._buffer.length}copy(){const n=new no([...this._buffer]);return n._index=this._index,n}}class $a{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new rn({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new rn({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});trackers=new Map;families=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new rn({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new rn({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new no(100);molecules=new Map;moleculeFamilies=new Map;moleculeInProgress=null;miscResources=new Map;on={atomCreation:new z,atomDisposal:new z,selectorCreation:new z,selectorDisposal:new z,timelineCreation:new z,transactionCreation:new z,transactionApplying:new Wo(null),operationClose:new z,moleculeCreationStart:new z,moleculeCreationDone:new z,moleculeDisposal:new z};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new ki("warn",(n,i,o)=>!o.includes("\uD83D\uDD0D"))];logger={error:(...n)=>{for(let i of this.loggers)i.error(...n)},info:(...n)=>{for(let i of this.loggers)i.info(...n)},warn:(...n)=>{for(let i of this.loggers)i.warn(...n)}};constructor(n,i=null){if(this.config={...i?.config,...n},i!==null){if(this.valueMap=new Map(i?.valueMap),this.operation={...i?.operation},N(i))this.transactionMeta={epoch:new Map(i?.transactionMeta.epoch),actionContinuities:new rn(i?.transactionMeta.actionContinuities.toJSON())};for(let[,e]of i.families){if(e.internalRoles?.includes("mutable")||e.internalRoles?.includes("join"))continue;e.install(this)}const o=new Set;for(let[,e]of i.atoms){if(o.has(e.key))continue;if(e.install(this),e.type==="mutable_atom"){const a=L(i,e),t=jn(e);o.add(a.key),o.add(t.key)}}for(let[,e]of i.readonlySelectors)e.install(this);for(let[,e]of i.selectors){if(o.has(e.key))continue;e.install(this)}for(let[,e]of i.transactions)e.install(this);for(let[,e]of i.timelines)e.install(this)}}}var J={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new $a({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function M(n,i){let o,e=i;while(e!==null){switch(n.type){case"atom":case"mutable_atom":o=e.atoms.get(n.key);break;case"selector":o=e.selectors.get(n.key);break;case"readonly_selector":o=e.readonlySelectors.get(n.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":o=e.families.get(n.key);break;case"timeline":o=e.timelines.get(n.key);break;case"transaction":o=e.transactions.get(n.key);break;case"molecule":o=e.molecules.get(k(n.key));break;case"molecule_family":o=e.moleculeFamilies.get(n.key);break}if(o)return o;e=e.child}throw new cn(n,i)}function io(n,i){let o;o=M(n,i);const{family:e}=n;for(let s of o.joins.values())s.relations.delete(o.key),s.molecules.delete(o.stringKey);const a=[];for(let s of o.above.values())a.push(xn(s));const t=[];for(let s of o.tokens.values()){const c=s.family;t.push([c.key,i.valueMap.get(s.key)])}if(e){const s=M(e,i),c={type:"molecule_disposal",token:n,family:e,context:a,values:t};if(n.family)c.family=n.family;for(let r of o.tokens.values())an(i,r);for(let r of o.below.values())if(r.family?.dependsOn==="all")io(r,i);else if(r.above.delete(o.stringKey),r.above.size===0)io(r,i);if(o.below.clear(),V(i)&&i.transactionMeta.phase==="building")i.transactionMeta.update.updates.push(c);else s.subject.next(c);i.molecules.delete(o.stringKey)}for(let s of o.above.values())s.below.delete(o.stringKey)}function Jn(n,i,o){const e=n.families.get(i.key);if(e===void 0)throw new cn(i,n);const a=e(o),t=f(n);if(a.family&&t.moleculeInProgress===null){if(N(t))switch(a.type){case"atom":case"mutable_atom":n.on.atomCreation.next(a);break;case"selector":case"readonly_selector":n.on.selectorCreation.next(a);break}else if(V(t)&&t.on.transactionApplying.state===null)t.transactionMeta.update.updates.push({type:"state_creation",token:a})}return a}function Z(n,i,o){const e=k(o),a=`${i.key}(${e})`,t=f(n);let s;switch(i.type){case"atom_family":case"mutable_atom_family":s=t.atoms.get(a);break;case"selector_family":s=t.selectors.get(a);break;case"readonly_selector_family":s=t.readonlySelectors.get(a);break;case"molecule_family":s=t.molecules.get(k(o))}if(s)return xn(s);return s}function I(n,i,o){let e=Z(n,i,o);if(e)return e;const a=n.molecules.get(k(o));if(a)return Sn(a,i,n);if(n.config.lifespan==="immortal"){const t=ti(i,o);return n.logger.error("\u274C",t.type,t.key,`was not found in store "${n.config.name}"; returned a counterfeit token.`),t}return e=Jn(n,i,o),e}function an(n,...i){let o,e;if(i.length===1)o=i[0],e=o.key;else{const t=i[0],s=i[1];o=t.type==="molecule_family"?Z(n,t,s)??ti(t,s):I(n,t,s)}try{M(o,n)}catch(t){const s=n.disposalTraces.buffer.find((c)=>c?.key===o.key);n.logger.error("\u274C",o.type,o.key,`could not be disposed because it was not found in the store "${n.config.name}".`,s?`\n This state was most recently disposed\n${s.trace}`:"No previous disposal trace was found.");return}switch(o.type){case"atom":case"mutable_atom":Ho(o,n);break;case"selector":case"readonly_selector":ja(o,n);break;case"molecule":io(o,n);break}const{stack:a}=new Error;if(a){const t=a?.split("\n")?.slice(3)?.join("\n");n.disposalTraces.add({key:o.key,trace:t})}}var oo=(n,i)=>f(i).atoms.has(n),Xl=(n,i)=>f(i).selectors.has(n),Zl=(n,i)=>f(i).readonlySelectors.has(n),ka=(n,i)=>oo(n,i)||Xl(n,i)||Zl(n,i);var eo=(n,i)=>{return f(i).selectorGraph.getRelationEntries({downstreamSelectorKey:n}).filter(([e,{source:a}])=>a!==n).map(([e,{source:a}])=>a).filter((e)=>ka(e,i))};var No=(n,i,o)=>{const e=[],a=eo(n,o);while(a.length>0){const t=a.shift();if(i.has(t))continue;if(i.add(t),!oo(t,o))a.push(...eo(t,o));else if(!e.includes(t))e.push(t)}return e},Oa=(n,i)=>{const o=n.key,e=eo(o,i),a=new Set;return e.flatMap((t)=>oo(t,i)?t:No(t,a,i))};var za=(n,i,o,e)=>{const a=f(e);if(i.type==="atom"||i.type==="mutable_atom")a.selectorAtoms.set({selectorKey:n,atomKey:i.key}),e.logger.info("\uD83D\uDD0D","selector",n,`discovers root atom "${i.key}"`);else{const t=No(i.key,o,e);e.logger.info("\uD83D\uDD0D","selector",n,`discovers root atoms: [ ${t.map((s)=>`"${s}"`).join(", ")} ]`);for(let s of t)a.selectorAtoms=a.selectorAtoms.set({selectorKey:n,atomKey:s})}o.add(i.key)};var ao=(n,i,o)=>({get:(...e)=>{const a=f(o);let t;if(e.length===2){const[l,r]=e;switch(l.type){case"molecule_family":return E(o,l,r);default:if(o.config.lifespan==="ephemeral")t=I(o,l,r);else{const p=Z(o,l,r);if(p)t=p;else throw new cn(l,r,o)}}}else[t]=e;if(t.type==="molecule")return E(o,t);const s=M(t,o),c=Vn(s,o);return o.logger.info("\uD83D\uDD0C","selector",n,`registers dependency ( "${t.key}" =`,c,")"),a.selectorGraph.set({upstreamSelectorKey:t.key,downstreamSelectorKey:n},{source:t.key}),za(n,t,i,o),c},set:(...e)=>{let a,t;if(e.length===2)a=e[0],t=e[1];else{const l=e[0],r=e[1];t=e[2];const p=o.config.lifespan==="ephemeral"?I(o,l,r):Z(o,l,r);if(!p)throw new cn(l,r,o);a=p}const s=f(o),c=M(a,s);Hi(c,t,s)},find:(e,a)=>I(o,e,a),seek:(e,a)=>Z(o,e,a),json:(e)=>L(o,e)});var Mi=(n,i,o)=>{const e=f(n),a=new z,t=new Set,{get:s,find:c,seek:l,json:r}=ao(i.key,t,e),p=()=>{const y=i.get({get:s,find:c,seek:l,json:r});return dn(i.key,y,a,f(n)),t.clear(),y},m={...i,subject:a,install:(y)=>Mi(y,i,o),get:p,type:"readonly_selector",...o&&{family:o}};e.readonlySelectors.set(i.key,m);const T=p();n.logger.info("\u2728",m.type,m.key,"=",T);const R={key:i.key,type:"readonly_selector"};if(o)R.family=o;return R};var Oi=(n,i,o)=>{const e=f(n),a=new z,t=new Set,s=ao(i.key,t,e),{find:c,get:l,seek:r,json:p}=s,m={find:c,get:l,seek:r,json:p},T=(b=i.get,S=f(n))=>{const K=b(m);return dn(i.key,K,a,S),t.clear(),K},y={...i,subject:a,install:(b)=>Oi(b,i,o),get:T,set:(b)=>{const S=f(n),K=T(i.get,S),W=Qi(b)(K);if(n.logger.info("\uD83D\uDCDD","selector",i.key,"set (",K,"->",W,")"),dn(i.key,W,a,S),si(S,i.key),N(S))a.next({newValue:W,oldValue:K});i.set(s,W)},type:"selector",...o&&{family:o}};e.selectors.set(i.key,y);const v=T();n.logger.info("\u2728",y.type,y.key,"=",v);const u={key:i.key,type:"selector"};if(o)u.family=o;return u};function Ki(n,i){if("set"in i){const a=Oi(n,i,void 0);return n.on.selectorCreation.next(a),a}const e=Mi(n,i,void 0);return n.on.selectorCreation.next(e),e}function ja(n,i){const o=f(i),{key:e}=n,a=M(n,o);if(!a.family)i.logger.error("\u274C","selector",e,"Standalone selectors cannot be disposed.");else{const t=o.molecules.get(a.family.subKey);if(t)t.tokens.delete(e);switch(n.type){case"selector":o.selectors.delete(e),M({key:a.family.key,type:"selector_family"},i).subject.next({type:"state_disposal",token:n});break;case"readonly_selector":o.readonlySelectors.delete(e),M({key:a.family.key,type:"readonly_selector_family"},i).subject.next({type:"state_disposal",token:n});break}if(o.valueMap.delete(e),o.selectorAtoms.delete(e),o.selectorGraph.delete(e),i.logger.info("\uD83D\uDD25",n.type,e,"deleted"),V(o)&&o.transactionMeta.phase==="building")o.transactionMeta.update.updates.push({type:"state_disposal",token:n});else i.on.selectorDisposal.next(n)}}function Ji(n,i,o){const e={key:i.key,type:"selector_family"},a=n.families.get(i.key);if(a)n.logger.error("\u2757","selector_family",i.key,`Overwriting an existing ${Tn(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const t=new z,c=Object.assign((l)=>{const r=k(l),p={key:i.key,subKey:r},m=`${i.key}(${r})`,T=f(n),R=Oi(T,{key:m,get:i.get(l),set:i.set(l)},p);return t.next({type:"state_creation",token:R}),R},e,{internalRoles:o,subject:t,install:(l)=>Ji(l,i),default:(l)=>{return i.get(l)({get:(...p)=>E(n,...p),find:(p,m)=>I(n,p,m),seek:(p,m)=>Z(n,p,m),json:(p)=>L(n,p)})}});return n.families.set(i.key,c),e}function Ca(n,i,o=J.STORE){const e=Ji(o,{key:`${n.key}:JSON`,get:(t)=>({seek:s,get:c})=>{const l=s(n,t);if(l)return i.toJson(c(l));const r=k(t),p=o.molecules.get(r);if(p){const T=Sn(p,n,o);return i.toJson(c(T))}if(o.config.lifespan==="immortal")throw new Error(`No molecule found for key "${r}"`);const m=Jn(o,n,t);return i.toJson(c(m))},set:(t)=>({seek:s,set:c},l)=>{const r=s(n,t);if(r)c(r,i.fromJson(l));else{const p=k(t),m=o.molecules.get(p);if(m){const T=Sn(m,n,o);c(T,i.fromJson(l))}else{if(o.config.lifespan==="immortal")throw new Error(`No molecule found for key "${p}"`);c(Jn(o,n,t),i.fromJson(l))}}}},["mutable","json"]);return M(n,o).subject.subscribe(`store=${o.config.name}::json-selector-family`,(t)=>{if(t.token.family)Z(o,e,P(t.token.family.subKey))}),e}var P=(n)=>JSON.parse(n),k=(n)=>JSON.stringify(n),$T=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var Wa=(n,i)=>{const o=f(i);if(o.operation.open)return o.operation.prev.get(n.key);return o.valueMap.get(n.key)};var Po=(n,i)=>{const o=f(i);return Oa(n,i).map((a)=>{const t=o.atoms.get(a);if(t===void 0)throw new Error(`Atom "${a}", a dependency of selector "${n.key}", not found in store "${i.config.name}".`);return t.subject.subscribe(`${n.type}:${n.key}`,(s)=>{i.logger.info("\uD83D\uDCE2",n.type,n.key,"root",a,"went",s.oldValue,"->",s.newValue);const c=Wa(n,o),l=Vn(n,o);i.logger.info("\u2728",n.type,n.key,"went",c,"->",l),n.subject.next({newValue:l,oldValue:c})})})};function tn(n,i,o,e){function a(m){if(e.operation.open){const T=e.on.operationClose.subscribe(`state subscription ${o}`,()=>{T(),i(m)})}else i(m)}const t=M(n,e);e.logger.info("\uD83D\uDC40",t.type,t.key,`Adding subscription "${o}"`);const s=t.type==="selector"||t.type==="readonly_selector";let c=null,l=a;if(s)c=Po(t,e),l=(m)=>{if(c)c.length=0,c.push(...Po(t,e));a(m)};const r=t.subject.subscribe(o,l);return()=>{if(e.logger.info("\uD83D\uDE48",t.type,t.key,`Removing subscription "${o}"`),r(),c)for(let m of c)m()}}var Do=(n,i,o,e)=>{const a=M(n,e);e.logger.info("\uD83D\uDC40","timeline",n.key,`Adding subscription "${o}"`);const t=a.subject.subscribe(o,i);return()=>{e.logger.info("\uD83D\uDE48","timeline",n.key,`Removing subscription "${o}" from timeline`),t()}};var Lo=(n,i,o,e)=>{const a=M(n,e);e.logger.info("\uD83D\uDC40","transaction",n.key,`Adding subscription "${o}"`);const t=a.subject.subscribe(o,i);return()=>{e.logger.info("\uD83D\uDE48","transaction",n.key,`Removing subscription "${o}"`),t()}};class Un{Update;initializeState(n,i){const o=`*${n.key}`;i.atoms.delete(o),i.valueMap.delete(o);const e=n.family?{key:`*${n.family.key}`,subKey:n.family.subKey}:void 0,a=Wn(i,{key:o,default:null},e);if(i.parent?.valueMap.has(o)){const t=i.parent.valueMap.get(o);i.valueMap.set(o,t)}return a}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(n,i,o){const e=`tracker:${o.config.name}:${V(o)?o.transactionMeta.update.key:"main"}:${n.key}`,a=E(o,n);this.unsubscribeFromInnerValue=a.subscribe(e,(t)=>{U(o,i,t)}),this.unsubscribeFromState=tn(n,(t)=>{if(t.newValue!==t.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=t.newValue.subscribe(e,(s)=>{U(o,i,s)})},e,o)}updateCore(n,i,o){const e=`tracker:${o.config.name}:${V(o)?o.transactionMeta.update.key:"main"}:${n.key}`;tn(i,({newValue:a,oldValue:t})=>{const s=o.timelineTopics.getRelatedKey(i.key);if(s){if(o.timelines.get(s)?.timeTraveling){const r=Do({key:s,type:"timeline"},(p)=>{r(),U(o,n,(m)=>{if(p==="redo"&&a)m.do(a);else if(p==="undo"&&t)m.undo(t);return m})},e,o);return}}const c=o.on.operationClose.subscribe(e,()=>{c();const l=E(o,n),r=a===null?-1:l.getUpdateNumber(a),p=r-l.cacheUpdateNumber;if(a&&p===1)U(o,n,(m)=>(m.do(a),m));else o.logger.info("\u274C","mutable_atom",n.key,`could not be updated. Expected update number ${l.cacheUpdateNumber+1}, but got ${r}`)})},e,o)}mutableState;latestUpdateState;dispose;constructor(n,i){this.mutableState=n;const o=f(i);this.latestUpdateState=this.initializeState(n,o),this.observeCore(n,this.latestUpdateState,o),this.updateCore(n,this.latestUpdateState,o),o.trackers.set(n.key,this),this.dispose=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),o.trackers.delete(n.key)}}}function zi(n,i,o){n.logger.info("\uD83D\uDD28","atom",i.key,`creating in store "${n.config.name}"`);const e=f(n),a=e.atoms.get(i.key);if(a&&a.type==="mutable_atom")return n.logger.error("\u274C","atom",i.key,"Tried to create atom, but it already exists in the store."),xn(a);const t=new z,s={...i,type:"mutable_atom",install:(r)=>{return r.logger.info("\uD83D\uDEE0\uFE0F","atom",i.key,`installing in store "${r.config.name}"`),zi(r,i,o)},subject:t};if(o)s.family=o;const c=i.default();e.atoms.set(s.key,s),to(i.key,n),dn(i.key,c,t,e);const l=xn(s);if(i.effects){let r=0;const p=[];for(let m of i.effects){const T=m({setSelf:(R)=>{U(n,l,R)},onSet:(R)=>tn(l,R,`effect[${r}]`,n)});if(T)p.push(T);++r}s.cleanup=()=>{for(let m of p)m()}}if(new Un(l,n),!o)aa(l,i,n);return l}class _o{Update;latestUpdateAtoms;mutableAtoms;constructor(n,i){const o=Cn(i,{key:`*${n.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=M(o,i),this.mutableAtoms=n,this.mutableAtoms.subject.subscribe(`store=${i.config.name}::tracker-atom-family`,(e)=>{if(e.token.family){const a=P(e.token.family.subKey);Z(i,this.latestUpdateAtoms,a),new Un(e.token,i)}}),this.latestUpdateAtoms.subject.subscribe(`store=${i.config.name}::tracker-atom-family`,(e)=>{if(e.token.family){const a=P(e.token.family.subKey),t=Z(i,this.mutableAtoms,a);if(t)new Un(t,i)}})}}function Ri(n,i,o){const e={key:i.key,type:"mutable_atom_family"},a=n.families.get(i.key);if(a)n.logger.error("\u2757","mutable_atom_family",i.key,`Overwriting an existing ${Tn(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const t=new z,c=Object.assign((l)=>{const r=k(l),p={key:i.key,subKey:r},m=`${i.key}(${r})`,T=f(n),R={key:m,default:()=>i.default(l),toJson:i.toJson,fromJson:i.fromJson,mutable:!0};if(i.effects)R.effects=i.effects(l);const y=zi(T,R,p);return t.next({type:"state_creation",token:y}),y},e,{subject:t,install:(l)=>Ri(l,i),toJson:i.toJson,fromJson:i.fromJson,internalRoles:o});return n.families.set(i.key,c),Ca(c,i,n),new _o(c,n),e}var Uo=(n,i)=>{const o=f(i),e=`${n.key}:JSON`;return o.families.get(e)};var L=(n,i)=>{if(i.family){const e=f(n),t={key:`${i.family.key}:JSON`,type:"selector_family"},s=M(t,e),c=JSON.parse(i.family.subKey);return I(n,s,c)}return{type:"selector",key:`${i.key}:JSON`}};var jn=(n)=>{const o={type:"atom",key:`*${n.key}`};if(n.family)o.family={key:`*${n.family.key}`,subKey:n.family.subKey};return o};function fa(n){return typeof n==="object"&&n!==null&&"do"in n&&"undo"in n&&"subscribe"in n}function $i(n,i,o){const e=i.valueMap.get(n.key),a=o.valueMap.get(n.key);if(e===a){if(e===void 0)return typeof n.default==="function"?n.default():n.default;i.logger.info("\uD83D\uDCC3","atom",n.key,"copying");const t=n.toJson(e),s=n.fromJson(t);return o.valueMap.set(n.key,s),new Un(n,i),s}return a}function dn(n,i,o,e){const a=e.valueMap.get(n);if(a instanceof Ai)a.use(i);if(i instanceof Promise){const t=new Ai(i);return e.valueMap.set(n,t),t.then((s)=>{dn(n,s,o,e),o.next({newValue:s,oldValue:t})}).catch((s)=>{e.logger.error("\uD83D\uDCA5","state",n,"rejected:",s)}),t}return e.valueMap.set(n,i),i}var la=(n,i)=>{let o=i.valueMap.get(n.key);if(n.type==="mutable_atom"&&V(i)){const{parent:e}=i;o=$i(n,e,i)}return o},xa=(n,i)=>{const o=i.valueMap.get(n);if(o instanceof Ai){const e=o,a=i.selectors.get(n)??i.readonlySelectors.get(n);if(a)e.use(a.get());return}if(i.operation.open)i.operation.prev.set(n,o);i.valueMap.delete(n),i.logger.info("\uD83D\uDDD1","state",n,"evicted")};var va=(n,i)=>{return f(i).atomsThatAreDefault.has(n)},to=(n,i)=>{const o=f(i);o.atomsThatAreDefault=new Set(o.atomsThatAreDefault).add(n)},ba=(n,i)=>{const o=f(i);o.atomsThatAreDefault=new Set(f(i).atomsThatAreDefault),o.atomsThatAreDefault.delete(n)};function Wn(n,i,o){n.logger.info("\uD83D\uDD28","atom",i.key,`creating in store "${n.config.name}"`);const e=f(n),a=e.atoms.get(i.key);if(a&&a.type==="atom")return n.logger.error("\u274C","atom",i.key,"Tried to create atom, but it already exists in the store."),xn(a);const t=new z,s={...i,type:"atom",install:(r)=>{return r.logger.info("\uD83D\uDEE0\uFE0F","atom",i.key,`installing in store "${r.config.name}"`),Wn(r,i,o)},subject:t};if(o)s.family=o;let c=i.default;if(i.default instanceof Function)c=i.default();e.atoms.set(s.key,s),to(i.key,n),dn(i.key,c,t,e);const l=xn(s);if(i.effects){let r=0;const p=[];for(let m of i.effects){const T=m({setSelf:(R)=>{U(n,l,R)},onSet:(R)=>tn(l,R,`effect[${r}]`,n)});if(T)p.push(T);++r}s.cleanup=()=>{for(let m of p)m()}}return l}function Ia(n,i){if("mutable"in i){const a=zi(n,i,void 0);return n.on.atomCreation.next(a),a}const e=Wn(n,i,void 0);return n.on.atomCreation.next(e),e}function Ho(n,i){const o=f(i),{key:e}=n,a=M(n,o);if(!a.family)i.logger.error("\u274C","atom",e,"Standalone atoms cannot be disposed.");else{a.cleanup?.();const t=i.valueMap.get(a.key);M({key:a.family.key,type:"atom_family"},i).subject.next({type:"state_disposal",token:n,value:t});const c=o.molecules.get(a.family.subKey);if(c)c.tokens.delete(e);if(o.atoms.delete(e),o.valueMap.delete(e),o.selectorAtoms.delete(e),o.atomsThatAreDefault.delete(e),o.timelineTopics.delete(e),n.type==="mutable_atom"){const l=jn(n);Ho(l,i),i.trackers.delete(e)}if(i.logger.info("\uD83D\uDD25","atom",e,"deleted"),V(o)&&o.transactionMeta.phase==="building")o.transactionMeta.update.updates.push({type:"state_disposal",token:n});else i.on.atomDisposal.next(n)}}function Yn(n){return Ia(J.STORE,n)}function Nn(n){return sa(J.STORE,n)}var qo=(n)=>(i,o,e,a,...t)=>{console[n](`${i} ${o} "${e}" ${a}`,...t)},Gl={error:qo("error"),info:qo("info"),warn:qo("warn")};class ki{n;i;o;constructor(n,i,o=Gl){this.logLevel=n;this.filter=i;this.logger=o}error=(...n)=>{if((this.filter?.(...n)??!0)&&this.logLevel!==null)this.logger.error(...n)};info=(...n)=>{if((this.filter?.(...n)??!0)&&this.logLevel==="info")this.logger.info(...n)};warn=(...n)=>{if((this.filter?.(...n)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...n)}}function so(n){return Io(J.STORE,n)}function Dn(n){return Qo(n,J.STORE)}class li{n;listeners;globalListeners;handleEvent(n,...i){for(let e of this.globalListeners)e(n,...i);const o=this.listeners.get(n);if(o)for(let e of o)e(...i)}id="no_id_retrieved";constructor(n){this.emit=n;this.listeners=new Map,this.globalListeners=new Set}on(n,i){const o=this.listeners.get(n);if(o)o.add(i);else this.listeners.set(n,new Set([i]));return this}onAny(n){return this.globalListeners.add(n),this}off(n,i){const o=this.listeners.get(n);if(o)if(i)o.delete(i);else this.listeners.delete(n);return this}offAny(n){return this.globalListeners.delete(n),this}}class Ci extends li{n;i;o;incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";handleLog(n){if(Array.isArray(n)){const[i,...o]=n;switch(i){case"i":this.logger.info(this.id,this.key,...o);break;case"w":this.logger.warn(this.id,this.key,...o);break;case"e":this.logger.error(this.id,this.key,...o);break}}}constructor(n,i,o=console){super((e,...a)=>{const t=JSON.stringify([e,...a])+"\x03",s=(c)=>{if(c.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",s)};return this.process.stdin.once("error",s),this.process.stdin.write(t),this});this.process=n;this.key=i;this.logger=o;if(this.process=n,this.process.stdout.on("data",(e)=>{const a=e.toString();if(a==="\u2728")return;this.unprocessedEvents.push(...a.split("\x03"));const t=this.unprocessedEvents.shift();this.incompleteData+=t??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let s=P(this.incompleteData);this.handleEvent(...s);while(this.unprocessedEvents.length>0){const c=this.unprocessedEvents.shift();if(c){if(this.unprocessedEvents.length===0)this.incompleteData=c;s=P(c),this.handleEvent(...s)}}this.incompleteData=""}catch(s){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(s)}}),this.process.stderr.on("data",(e)=>{const a=e.toString();this.unprocessedLogs.push(...a.split("\x03"));const t=this.unprocessedLogs.shift();this.incompleteLog+=t??"";try{let s=P(this.incompleteLog);this.handleLog(s);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)s=P(this.incompleteLog),this.handleLog(s)}catch(s){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(s),console.error("\u274C\u274C\u274C\uFE0F")}}),n.pid)this.id=n.pid.toString()}}class Ea extends li{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(n){super((...i)=>{return this.out.next(i),this});this.id=n,this.in=new z,this.out=new z,this.in.subscribe("socket",(i)=>{this.handleEvent(...i)})}dispose(){for(let n of this.disposalFunctions)n()}}class ne extends li{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...n){this.process.stderr.write(k(n.map((i)=>i instanceof _?`{ ${i.toJSON().members.join(" | ")} }`:i))+"\x03")}logger={info:(...n)=>{this.log("i",...n)},warn:(...n)=>{this.log("w",...n)},error:(...n)=>{this.log("e",...n)}};constructor(){super((n,...i)=>{const o=JSON.stringify([n,...i]);return this.process.stdout.write(o+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(n)=>{const i=n.toString();this.unprocessedEvents.push(...i.split("\x03"));const o=this.unprocessedEvents.shift();this.incompleteData+=o??"";try{const e=P(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",e),this.handleEvent(...e);while(this.unprocessedEvents.length>0){const a=this.unprocessedEvents.shift();if(a){if(this.unprocessedEvents.length===0)this.incompleteData=a;const t=P(a);this.handleEvent(...t)}}this.incompleteData=""}catch(e){if(e instanceof Error)this.logger.error("\u2757",e.message,e.cause,e.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(n)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${n}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(n)=>{this.logger.info("\uD83D\uDC64","user",n,"joined");const i=new Ea(`user:${n}`);this.relays.set(n,i),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let o of this.relayServices){const e=o(i);if(e)i.disposalFunctions.push(e)}this.on(`user:${n}`,(...o)=>{i.in.next(o)}),i.out.subscribe("socket",(o)=>{this.emit(...o)})}),this.on("user-leaves",(n)=>{const i=this.relays.get(n);if(this.off(`relay:${n}`),i)i.dispose(),this.relays.delete(n)}),process.stdout.write("\u2728")}relay(n){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(n)}}function Ua(n){const{key:i,config:o}=n,e=co.create(i,o),{actions:a}=e;for(let t of a)Ra(i,t.key,J.STORE);return ha(i,-1,J.STORE),e}class Va extends Map{set(n,i){if(this.has(n))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:n,value:i}),this;return super.set(n,i)}clear(){throw new Error("Cannot clear an InvariantMap")}}class co{n;type="continuity";globals=[];actions=[];perspectives=[];constructor(n){this.key=n}static existing=new Va;static create(n,i){const o=new co(n),{type:e,globals:a,actions:t,perspectives:s}=i(o),c={type:e,key:n,globals:a,actions:t,perspectives:s};return co.existing.set(n,c),c}add(...n){switch(n[0].type){case"atom":case"mutable_atom":this.globals.push(...n);break;case"transaction":this.actions.push(...n);break;case"atom_family":{const[o,e]=n;this.perspectives.push({type:"realtime_perspective",resourceAtoms:o,viewAtoms:e})}break}return this}}var Og=Yn({key:"usersInRoomIndex",mutable:!0,default:()=>new _,toJson:(n)=>n.toJSON(),fromJson:(n)=>_.fromJSON(n)}),ie=Yn({key:"roomIndex",default:()=>new _,mutable:!0,toJson:(n)=>n.toJSON(),fromJson:(n)=>_.fromJSON(n)}),Ql={enteredAtEpoch:0},Wi=Li({key:"usersInRooms",between:["room","user"],cardinality:"1:n"},Ql),zg=so({key:"usersInMyRoomView",get:(n)=>({find:i})=>{const o=wa(Wi);return[i(o,n)]}});import{spawn as Hl}from"child_process";var oe=Nn({key:"roomArguments",default:["echo",["Hello World!"]]}),Ya=so({key:"room",get:(n)=>async({get:i,find:o})=>{const e=o(oe,n),a=i(e),[t,s]=a,c=await new Promise((l)=>{const r=Hl(t,s,{env:process.env}),p=(m)=>{if(m.toString()==="\u2728")r.stdout.off("data",p),l(r)};r.stdout.on("data",p)});return new Ci(c,n)}});var Ng=Dn({key:"createRoom",do:({get:n,set:i,find:o},e,a,t)=>{const s=t?[a,t]:[a],c=o(oe,e);i(c,s),i(ie,(p)=>p.add(e));const l=o(Ya,e);return n(l)}}),Dg=Dn({key:"joinRoom",do:(n,i,o,e)=>{const a={enteredAtEpoch:e};return Hn(Wi,(t)=>{t.set({room:i,user:o},a)},n.env().store),a}}),Lg=Dn({key:"leaveRoom",do:(n,i,o)=>{Hn(Wi,(e)=>{e.delete({room:i,user:o})},n.env().store)}}),Pg=Dn({key:"destroyRoom",do:(n,i)=>{Hn(Wi,(o)=>{o.delete({room:i})},n.env().store),n.set(ie,(o)=>(o.delete(i),o))}});function ee(n,i){return i.map((o)=>{switch(o.type){case"transaction_update":{const e=ee(n,o.updates);return{...o,updates:e}}default:return o}}).filter((o)=>{switch(o.type){case"atom_update":case"selector_update":return n.includes(o.key);case"state_creation":return n.includes(o.token.key);case"molecule_creation":return!0;case"transaction_update":return!0}})}var nF=Nn({key:"transactionRedactor",default:{occlude:(n)=>n}}),Ba=Nn({key:"unacknowledgedUpdates",default:()=>[]});var Ii=Nn({key:"sockets",default:null}),ae=Yn({key:"socketsIndex",mutable:!0,default:()=>new _,toJson:(n)=>n.toJSON(),fromJson:(n)=>_.fromJSON(n)}),te=Yn({key:"usersIndex",mutable:!0,default:()=>new _,toJson:(n)=>n.toJSON(),fromJson:(n)=>_.fromJSON(n)}),Ln=Li({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1"});function Xa({socket:n,store:i=J.STORE}){return function o(e){let a=n;const t=e.key,s=ci(Ln,a.id,i).userKeyOfSocket,c=E(i,s);if(!c)return i.logger.error("\u274C","continuity",t,`Tried to create a synchronizer for a socket (${a.id}) that is not connected to a user.`),()=>{};const l=ci(Ln,c,i).socketKeyOfUser;tn(l,({newValue:b})=>{if(i.logger.info("\uD83D\uDC4B","continuity",t,`seeing ${c} on new socket ${b}`),b===null){i.logger.warn("\u274C","continuity",t,`User (${c}) is not connected to a socket, waiting for them to reappear.`);return}const S=I(i,Ii,b);a=E(i,S);for(let W of p)a?.emit(`tx-new:${t}`,W)},`sync-continuity:${t}:${c}`,i);const r=I(i,Ba,c),p=E(i,r),m=[],R=(()=>{const b=[];for(let S of e.perspectives){const{viewAtoms:K}=S,W=I(i,K,c),x=tn(W,({oldValue:d,newValue:h})=>{const w=d.map((O)=>O.key),g=h.map((O)=>O.key),F=d.filter((O)=>!g.includes(O.key)),$=h.filter((O)=>!w.includes(O.key)).flatMap((O)=>{const X=O.type==="mutable_atom"?L(i,O):O,bn=E(i,X);return[X,bn]});if(i.logger.info("\uD83D\uDC41","atom",S.resourceAtoms.key,`${c} has a new perspective`,{oldKeys:w,newKeys:g,revealed:$,concealed:F}),$.length>0)a?.emit(`reveal:${t}`,$);if(F.length>0)a?.emit(`conceal:${t}`,F)},`sync-continuity:${t}:${c}:perspective:${S.resourceAtoms.key}`,i);b.push(x)}return()=>{for(let S of b)S()}})(),y=()=>{const b=[];for(let K of e.globals){const W=K.type==="mutable_atom"?L(i,K):K,x=E(i,W);b.push(W,x)}for(let K of e.perspectives){const{viewAtoms:W,resourceAtoms:x}=K,d=I(i,W,c),h=E(i,d);i.logger.info("\uD83D\uDC41","atom",x.key,`${c} can see`,{viewAtoms:W,resourceAtoms:x,userView:h});for(let w of h){const g=w.type==="mutable_atom"?L(i,w):w,F=E(i,g);b.push(g,F)}}const S=N(i)?i.transactionMeta.epoch.get(t)??null:null;a?.emit(`continuity-init:${t}`,S,b);for(let K of e.actions){const W=Lo(K,(x)=>{try{const d=e.globals.map((g)=>{if(g.type==="atom")return g.key;return jn(g).key}).concat(e.perspectives.flatMap((g)=>{const{viewAtoms:F}=g,$=I(i,F,c);return E(i,$).map((X)=>{return X.type==="mutable_atom"?"*"+X.key:X.key})})),h=ee(d,x.updates),w={...x,updates:h};U(i,r,(g)=>{if(w)g.push(w),g.sort((F,$)=>F.epoch-$.epoch);return g}),a?.emit(`tx-new:${t}`,w)}catch(d){if(d instanceof Error)i.logger.error("\u274C","continuity",t,`failed to send update from transaction ${K.key} to ${c}`,d.message)}},`sync-continuity:${t}:${c}`,i);m.push(W)}};a.off(`get:${t}`,y),a.on(`get:${t}`,y);const v=(b)=>{i.logger.info("\uD83D\uDECE\uFE0F","continuity",t,"received",b);const{key:S,id:K}=b,W=`tx-run:${S}:${K}`,x=`${W}:start`,d=`${W}:end`;performance.mark(x);try{En({type:"transaction",key:S},K,i)(...b.params)}catch($){if($ instanceof Error)i.logger.error("\u274C","continuity",t,`failed to run transaction ${S} with update ${K}`,$.message)}performance.mark(d);const h=performance.measure(W,x,d);i?.logger.info("\uD83D\uDE80","transaction",S,K,h.duration);const w=`valuesOfCardsView("${c}")`,g=i.selectorAtoms.getRelatedKeys(w),F=i.valueMap.get(w);i.logger.info("\uD83D\uDC41","continuity",t,`seeing ${c} card values`,{valuesOfCardsViewKey:w,rootsOfCardValueView:g,myCardValueView:F})};a.off(`tx-run:${t}`,v),a.on(`tx-run:${t}`,v);const u=(b)=>{if(i.logger.info("\uD83D\uDC4D","continuity",t,`${c} acknowledged epoch ${b}`),p[0]?.epoch===b)U(i,r,(K)=>{return K.shift(),K})};return a?.on(`ack:${t}`,u),()=>{for(let b of m)b();a?.off(`ack:${t}`,u),R(),a?.off(`get:${t}`,y),a?.off(`tx-run:${t}`,v)}}}var Kl=El(Al(),1),{Server:Rl,Namespace:Lh,Socket:Ph}=Kl.default;import{spawn as zx}from"child_process";import{resolve as Cx}from"path";var{MODE:Co,FRONTEND_PORT:_h,BACKEND_PORT:qh}=process.env;function Ml(n,i){const o=Co==="development"?"ts":"js",e=i.endsWith(".bun")?"bun":"node",t=[Cx(import.meta.dir,`${i}.${o}`)];if(e==="node"&&o==="ts")t.push("--experimental-strip-types");const s=zx(e,t);return new Ci(s,i,n.logger)}var Jl=Yn({key:"count",default:0}),Wx=Dn({key:"incrementTX",do:({set:n})=>{n(Jl,(i)=>i+1)}}),$l=Ua({key:"countContinuity",config:(n)=>n.add(Jl).add(Wx)});var Mn=new ne;J.STORE.loggers[0]=new ki("warn",void 0,Mn.logger);var Ix=Ml(Mn,"backend.worker.game.bun"),kl=jl.createServer((n,i)=>i.end("Hello World!")),na=kl.listen(4444).address(),Ex=typeof na==="string"?null:na===null?null:na.port;if(Ex===null)throw new Error("Could not determine port for test server");new Rl(kl,{cors:{origin:Co==="development"?"http://localhost:3333":"https://tempest.games",methods:["GET","POST"]}}).use((n,i)=>{const{token:o,username:e}=n.handshake.auth;if(o==="test"&&n.id){const a=I(J.STORE,Ii,n.id);U(J.STORE,a,n),Hn(Ln,(t)=>{t.set(n.id,e)},J.STORE),U(J.STORE,te,(t)=>t.add(e)),U(J.STORE,ae,(t)=>t.add(n.id)),Mn.logger.info(`${e} connected on ${n.id}`),i()}else Mn.logger.info(`${e} couldn't authenticate`),i(new Error("Authentication error"))}).on("connection",(n)=>{const o=Xa({socket:n,store:J.STORE})($l);n.on("disconnect",()=>{const e=ci(Ln,n.id,J.STORE).userKeyOfSocket,a=E(J.STORE,e);if(Hn(Ln,(t)=>{t.delete(n.id)},J.STORE),a)U(J.STORE,te,(t)=>(t.delete(a),t));U(J.STORE,ae,(t)=>(t.delete(n.id),t)),an(J.STORE,Ii,n.id),Mn.logger.info(`${n.id} disconnected`),o()})});Mn.emit("alive");Mn.on("updatesReady",()=>{Mn.emit("readyToUpdate")});process.on("exit",()=>{Ix.process.kill(),Mn.logger.info("\uD83D\uDEEC backend server exiting")});Mn.logger.info("\uD83D\uDEEB backend server ready");
|
|
35
|
+
*/Oe.exports=Gm;Oe.exports.append=Is;var Xm=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/});var ze=A((yh,Vs)=>{(function(){var n=Cs(),i=Es(),o={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function e(y){return typeof y==="string"||y instanceof String}function a(y,v){if(Array.isArray(v)){for(var u=0;u<v.length;++u)if(a(y,v[u]))return!0;return!1}else if(e(v))return y===v;else if(v instanceof RegExp)return v.test(y);else return!!v}function t(y,v){var u=v.headers.origin,b=[],S;if(!y.origin||y.origin==="*")b.push([{key:"Access-Control-Allow-Origin",value:"*"}]);else if(e(y.origin))b.push([{key:"Access-Control-Allow-Origin",value:y.origin}]),b.push([{key:"Vary",value:"Origin"}]);else S=a(u,y.origin),b.push([{key:"Access-Control-Allow-Origin",value:S?u:!1}]),b.push([{key:"Vary",value:"Origin"}]);return b}function s(y){var v=y.methods;if(v.join)v=y.methods.join(",");return{key:"Access-Control-Allow-Methods",value:v}}function c(y){if(y.credentials===!0)return{key:"Access-Control-Allow-Credentials",value:"true"};return null}function l(y,v){var u=y.allowedHeaders||y.headers,b=[];if(!u)u=v.headers["access-control-request-headers"],b.push([{key:"Vary",value:"Access-Control-Request-Headers"}]);else if(u.join)u=u.join(",");if(u&&u.length)b.push([{key:"Access-Control-Allow-Headers",value:u}]);return b}function r(y){var v=y.exposedHeaders;if(!v)return null;else if(v.join)v=v.join(",");if(v&&v.length)return{key:"Access-Control-Expose-Headers",value:v};return null}function p(y){var v=(typeof y.maxAge==="number"||y.maxAge)&&y.maxAge.toString();if(v&&v.length)return{key:"Access-Control-Max-Age",value:v};return null}function m(y,v){for(var u=0,b=y.length;u<b;u++){var S=y[u];if(S){if(Array.isArray(S))m(S,v);else if(S.key==="Vary"&&S.value)i(v,S.value);else if(S.value)v.setHeader(S.key,S.value)}}}function T(y,v,u,b){var S=[],K=v.method&&v.method.toUpperCase&&v.method.toUpperCase();if(K==="OPTIONS")if(S.push(t(y,v)),S.push(c(y,v)),S.push(s(y,v)),S.push(l(y,v)),S.push(p(y,v)),S.push(r(y,v)),m(S,u),y.preflightContinue)b();else u.statusCode=y.optionsSuccessStatus,u.setHeader("Content-Length","0"),u.end();else S.push(t(y,v)),S.push(c(y,v)),S.push(r(y,v)),m(S,u),b()}function R(y){var v=null;if(typeof y==="function")v=y;else v=function(u,b){b(null,y)};return function u(b,S,K){v(b,function(W,x){if(W)K(W);else{var d=n({},o,x),h=null;if(d.origin&&typeof d.origin==="function")h=d.origin;else if(d.origin)h=function(w,g){g(null,d.origin)};if(h)h(b.headers.origin,function(w,g){if(w||!g)K(w);else d.origin=g,T(d,b,S,K)});else K()}})}}Vs.exports=R})()});var Ce=A((Qs)=>{function _m(n){try{const i=JSON.parse(n);if(typeof i.sid==="string")return i.sid}catch(i){}}function Xs(n,i,o){const e=i===B.errors.FORBIDDEN?403:400,a=o&&o.message?o.message:B.errorMessages[i];n.writeHead(e,{"Content-Type":"application/json"}),n.end(JSON.stringify({code:i,message:a}))}function Gs(n,i,o={}){if(n.on("error",()=>{C("ignoring error from closed connection")}),n.writable){const e=o.message||B.errorMessages[i],a=Buffer.byteLength(e);n.write("HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-type: text/html\r\nContent-Length: "+a+"\r\n\r\n"+e)}n.destroy()}function qm(n){if(n+="",n.length<1)return!1;if(!Yi[n.charCodeAt(0)])return C('invalid header, index 0, char "%s"',n.charCodeAt(0)),!0;if(n.length<2)return!1;if(!Yi[n.charCodeAt(1)])return C('invalid header, index 1, char "%s"',n.charCodeAt(1)),!0;if(n.length<3)return!1;if(!Yi[n.charCodeAt(2)])return C('invalid header, index 2, char "%s"',n.charCodeAt(2)),!0;if(n.length<4)return!1;if(!Yi[n.charCodeAt(3)])return C('invalid header, index 3, char "%s"',n.charCodeAt(3)),!0;for(let i=4;i<n.length;++i)if(!Yi[n.charCodeAt(i)])return C('invalid header, index "%i", char "%s"',i,n.charCodeAt(i)),!0;return!1}Object.defineProperty(Qs,"__esModule",{value:!0});Qs.Server=Qs.BaseServer=void 0;var Zm=import.meta.require("querystring"),Qm=import.meta.require("url"),Us=de(),ho=je(),Hm=import.meta.require("events"),Ys=ke(),Nm=q(),Dm=ks(),Lm=import.meta.require("ws"),Bs=$e(),Pm=Vi(),C=Nm.default("engine"),yi=Symbol("responseHeaders");class Bi extends Hm.EventEmitter{constructor(n={}){super();if(this.middlewares=[],this.clients={},this.clientsCount=0,this.opts=Object.assign({wsEngine:Lm.Server,pingTimeout:20000,pingInterval:25000,upgradeTimeout:1e4,maxHttpBufferSize:1e6,transports:["polling","websocket"],allowUpgrades:!0,httpCompression:{threshold:1024},cors:!1,allowEIO3:!1},n),n.cookie)this.opts.cookie=Object.assign({name:"io",path:"/",httpOnly:n.cookie.path!==!1,sameSite:"lax"},n.cookie);if(this.opts.cors)this.use(ze()(this.opts.cors));if(n.perMessageDeflate)this.opts.perMessageDeflate=Object.assign({threshold:1024},n.perMessageDeflate);this.init()}_computePath(n){let i=(n.path||"/engine.io").replace(/\/$/,"");if(n.addTrailingSlash!==!1)i+="/";return i}upgrades(n){if(!this.opts.allowUpgrades)return[];return ho.default[n].upgradesTo||[]}verify(n,i,o){const e=n._query.transport;if(!~this.opts.transports.indexOf(e)||e==="webtransport")return C('unknown transport "%s"',e),o(B.errors.UNKNOWN_TRANSPORT,{transport:e});if(qm(n.headers.origin)){const s=n.headers.origin;return n.headers.origin=null,C("origin header invalid"),o(B.errors.BAD_REQUEST,{name:"INVALID_ORIGIN",origin:s})}const t=n._query.sid;if(t){if(!this.clients.hasOwnProperty(t))return C('unknown sid "%s"',t),o(B.errors.UNKNOWN_SID,{sid:t});const s=this.clients[t].transport.name;if(!i&&s!==e)return C("bad request: unexpected transport without upgrade"),o(B.errors.BAD_REQUEST,{name:"TRANSPORT_MISMATCH",transport:e,previousTransport:s})}else{if(n.method!=="GET")return o(B.errors.BAD_HANDSHAKE_METHOD,{method:n.method});if(e==="websocket"&&!i)return C("invalid transport upgrade"),o(B.errors.BAD_REQUEST,{name:"TRANSPORT_HANDSHAKE_ERROR"});if(!this.opts.allowRequest)return o();return this.opts.allowRequest(n,(s,c)=>{if(!c)return o(B.errors.FORBIDDEN,{message:s});o()})}o()}use(n){this.middlewares.push(n)}_applyMiddlewares(n,i,o){if(this.middlewares.length===0)return C("no middleware to apply, skipping"),o();const e=(a)=>{C("applying middleware n\xB0%d",a+1),this.middlewares[a](n,i,(t)=>{if(t)return o(t);if(a+1<this.middlewares.length)e(a+1);else o()})};e(0)}close(){C("closing all open clients");for(let n in this.clients)if(this.clients.hasOwnProperty(n))this.clients[n].close(!0);return this.cleanup(),this}generateId(n){return Us.generateId()}async handshake(n,i,o){const e=i._query.EIO==="4"?4:3;if(e===3&&!this.opts.allowEIO3){C("unsupported protocol version"),this.emit("connection_error",{req:i,code:B.errors.UNSUPPORTED_PROTOCOL_VERSION,message:B.errorMessages[B.errors.UNSUPPORTED_PROTOCOL_VERSION],context:{protocol:e}}),o(B.errors.UNSUPPORTED_PROTOCOL_VERSION);return}let a;try{a=await this.generateId(i)}catch(c){C("error while generating an id"),this.emit("connection_error",{req:i,code:B.errors.BAD_REQUEST,message:B.errorMessages[B.errors.BAD_REQUEST],context:{name:"ID_GENERATION_ERROR",error:c}}),o(B.errors.BAD_REQUEST);return}C('handshaking client "%s"',a);try{var t=this.createTransport(n,i);if(n==="polling")t.maxHttpBufferSize=this.opts.maxHttpBufferSize,t.httpCompression=this.opts.httpCompression;else if(n==="websocket")t.perMessageDeflate=this.opts.perMessageDeflate}catch(c){C('error handshaking to transport "%s"',n),this.emit("connection_error",{req:i,code:B.errors.BAD_REQUEST,message:B.errorMessages[B.errors.BAD_REQUEST],context:{name:"TRANSPORT_HANDSHAKE_ERROR",error:c}}),o(B.errors.BAD_REQUEST);return}const s=new Ys.Socket(a,this,t,i,e);return t.on("headers",(c,l)=>{if(!l._query.sid){if(this.opts.cookie)c["Set-Cookie"]=[Dm.serialize(this.opts.cookie.name,a,this.opts.cookie)];this.emit("initial_headers",c,l)}this.emit("headers",c,l)}),t.onRequest(i),this.clients[a]=s,this.clientsCount++,s.once("close",()=>{delete this.clients[a],this.clientsCount--}),this.emit("connection",s),t}async onWebTransportSession(n){const i=setTimeout(()=>{C("the client failed to establish a bidirectional stream in the given period"),n.close()},this.opts.upgradeTimeout),e=await n.incomingBidirectionalStreams.getReader().read();if(e.done){C("session is closed");return}const a=e.value,t=Pm.createPacketDecoderStream(this.opts.maxHttpBufferSize,"nodebuffer"),s=a.readable.pipeThrough(t).getReader(),{value:c,done:l}=await s.read();if(l){C("stream is closed");return}if(clearTimeout(i),c.type!=="open")return C("invalid WebTransport handshake"),n.close();if(c.data===void 0){const m=new Bs.WebTransport(n,a,s),T=Us.generateId();C('handshaking client "%s" (WebTransport)',T);const R=new Ys.Socket(T,this,m,null,4);this.clients[T]=R,this.clientsCount++,R.once("close",()=>{delete this.clients[T],this.clientsCount--}),this.emit("connection",R);return}const r=_m(c.data);if(!r)return C("invalid WebTransport handshake"),n.close();const p=this.clients[r];if(!p)C("upgrade attempt for closed client"),n.close();else if(p.upgrading)C("transport has already been trying to upgrade"),n.close();else if(p.upgraded)C("transport had already been upgraded"),n.close();else{C("upgrading existing transport");const m=new Bs.WebTransport(n,a,s);p.maybeUpgrade(m)}}}Qs.BaseServer=Bi;Bi.errors={UNKNOWN_TRANSPORT:0,UNKNOWN_SID:1,BAD_HANDSHAKE_METHOD:2,BAD_REQUEST:3,FORBIDDEN:4,UNSUPPORTED_PROTOCOL_VERSION:5};Bi.errorMessages={0:"Transport unknown",1:"Session ID unknown",2:"Bad handshake method",3:"Bad request",4:"Forbidden",5:"Unsupported protocol version"};class Zs{constructor(n,i){this.req=n,this.socket=i,n[yi]={}}setHeader(n,i){this.req[yi][n]=i}getHeader(n){return this.req[yi][n]}removeHeader(n){delete this.req[yi][n]}write(){}writeHead(){}end(){this.socket.destroy()}}class B extends Bi{init(){if(!~this.opts.transports.indexOf("websocket"))return;if(this.ws)this.ws.close();if(this.ws=new this.opts.wsEngine({noServer:!0,clientTracking:!1,perMessageDeflate:this.opts.perMessageDeflate,maxPayload:this.opts.maxHttpBufferSize}),typeof this.ws.on==="function")this.ws.on("headers",(n,i)=>{const o=i[yi]||{};if(delete i[yi],!i._query.sid)this.emit("initial_headers",o,i);this.emit("headers",o,i),C("writing headers: %j",o),Object.keys(o).forEach((a)=>{n.push(`${a}: ${o[a]}`)})})}cleanup(){if(this.ws)C("closing webSocketServer"),this.ws.close()}prepare(n){if(!n._query)n._query=~n.url.indexOf("?")?Zm.parse(Qm.parse(n.url).query):{}}createTransport(n,i){return new ho.default[n](i)}handleRequest(n,i){C('handling "%s" http request "%s"',n.method,n.url),this.prepare(n),n.res=i;const o=(e,a)=>{if(e!==void 0){this.emit("connection_error",{req:n,code:e,message:B.errorMessages[e],context:a}),Xs(i,e,a);return}if(n._query.sid)C("setting new request for existing client"),this.clients[n._query.sid].transport.onRequest(n);else{const t=(s,c)=>Xs(i,s,c);this.handshake(n._query.transport,n,t)}};this._applyMiddlewares(n,i,(e)=>{if(e)o(B.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(n,!1,o)})}handleUpgrade(n,i,o){this.prepare(n);const e=new Zs(n,i),a=(t,s)=>{if(t!==void 0){this.emit("connection_error",{req:n,code:t,message:B.errorMessages[t],context:s}),Gs(i,t,s);return}const c=Buffer.from(o);o=null,e.writeHead(),this.ws.handleUpgrade(n,i,c,(l)=>{this.onWebSocket(n,i,l)})};this._applyMiddlewares(n,e,(t)=>{if(t)a(B.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(n,!0,a)})}onWebSocket(n,i,o){if(o.on("error",a),ho.default[n._query.transport]!==void 0&&!ho.default[n._query.transport].prototype.handlesUpgrades){C("transport doesnt handle upgraded requests"),o.close();return}const e=n._query.sid;if(n.websocket=o,e){const t=this.clients[e];if(!t)C("upgrade attempt for closed client"),o.close();else if(t.upgrading)C("transport has already been trying to upgrade"),o.close();else if(t.upgraded)C("transport had already been upgraded"),o.close();else{C("upgrading existing transport"),o.removeListener("error",a);const s=this.createTransport(n._query.transport,n);s.perMessageDeflate=this.opts.perMessageDeflate,t.maybeUpgrade(s)}}else{const t=(s,c)=>Gs(i,s,c);this.handshake(n._query.transport,n,t)}function a(){C("websocket error before upgrade")}}attach(n,i={}){const o=this._computePath(i),e=i.destroyUpgradeTimeout||1000;function a(s){return o===s.url.slice(0,o.length)}const t=n.listeners("request").slice(0);if(n.removeAllListeners("request"),n.on("close",this.close.bind(this)),n.on("listening",this.init.bind(this)),n.on("request",(s,c)=>{if(a(s))C('intercepting request for path "%s"',o),this.handleRequest(s,c);else{let l=0;const r=t.length;for(;l<r;l++)t[l].call(n,s,c)}}),~this.opts.transports.indexOf("websocket"))n.on("upgrade",(s,c,l)=>{if(a(s))this.handleUpgrade(s,c,l);else if(i.destroyUpgrade!==!1)setTimeout(function(){if(c.writable&&c.bytesWritten<=0)return c.on("error",(r)=>{C("error while destroying upgrade: %s",r.message)}),c.end()},e)})}}Qs.Server=B;var Yi=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]});var _s=A((Ls)=>{Object.defineProperty(Ls,"__esModule",{value:!0});Ls.Polling=void 0;var iu=qn(),Ns=import.meta.require("zlib"),ou=ro(),eu=q(),vn=eu.default("engine:polling"),au={gzip:Ns.createGzip,deflate:Ns.createDeflate};class Ds extends iu.Transport{constructor(n){super(n);this.closeTimeout=30000}get name(){return"polling"}get supportsFraming(){return!1}onRequest(n){const i=n.res;if(n.res=null,n.getMethod()==="get")this.onPollRequest(n,i);else if(n.getMethod()==="post")this.onDataRequest(n,i);else i.writeStatus("500 Internal Server Error"),i.end()}onPollRequest(n,i){if(this.req){vn("request overlap"),this.onError("overlap from client"),i.writeStatus("500 Internal Server Error"),i.end();return}vn("setting request"),this.req=n,this.res=i;const o=()=>{this.writable=!1,this.onError("poll connection closed prematurely")},e=()=>{this.req=this.res=null};if(n.cleanup=e,i.onAborted(o),this.writable=!0,this.emit("drain"),this.writable&&this.shouldClose)vn("triggering empty send to append close packet"),this.send([{type:"noop"}])}onDataRequest(n,i){if(this.dataReq){this.onError("data request overlap from client"),i.writeStatus("500 Internal Server Error"),i.end();return}const o=Number(n.headers["content-length"]);if(!o){this.onError("content-length header required"),i.writeStatus("411 Length Required").end();return}if(o>this.maxHttpBufferSize){this.onError("payload too large"),i.writeStatus("413 Payload Too Large").end();return}if(n.headers["content-type"]==="application/octet-stream"&&this.protocol===4)return this.onError("invalid content");this.dataReq=n,this.dataRes=i;let a,t=0;const s={"Content-Type":"text/html"};this.headers(n,s);for(let l in s)i.writeHeader(l,String(s[l]));const c=(l)=>{this.onData(l.toString()),this.onDataRequestCleanup(),i.cork(()=>{i.end("ok")})};i.onAborted(()=>{this.onDataRequestCleanup(),this.onError("data request connection closed prematurely")}),i.onData((l,r)=>{const p=t+l.byteLength;if(p>o){this.onError("content-length mismatch"),i.close();return}if(!a){if(r){c(Buffer.from(l));return}a=Buffer.allocUnsafe(o)}if(Buffer.from(l).copy(a,t),r){if(p!=o){this.onError("content-length mismatch"),i.writeStatus("400 Content-Length Mismatch").end(),this.onDataRequestCleanup();return}c(a);return}t=p})}onDataRequestCleanup(){this.dataReq=this.dataRes=null}onData(n){vn('received "%s"',n);const i=(o)=>{if(o.type==="close")return vn("got xhr close packet"),this.onClose(),!1;this.onPacket(o)};if(this.protocol===3)this.parser.decodePayload(n,i);else this.parser.decodePayload(n).forEach(i)}onClose(){if(this.writable)this.send([{type:"noop"}]);super.onClose()}send(n){if(this.writable=!1,this.shouldClose)vn("appending close packet to payload"),n.push({type:"close"}),this.shouldClose(),this.shouldClose=null;const i=(o)=>{const e=n.some((a)=>{return a.options&&a.options.compress});this.write(o,{compress:e})};if(this.protocol===3)this.parser.encodePayload(n,this.supportsBinary,i);else this.parser.encodePayload(n,i)}write(n,i){vn('writing "%s"',n),this.doWrite(n,i,()=>{this.req.cleanup()})}doWrite(n,i,o){const e=typeof n==="string",t={"Content-Type":e?"text/plain; charset=UTF-8":"application/octet-stream"},s=(r)=>{this.headers(this.req,t),this.res.cork(()=>{Object.keys(t).forEach((p)=>{this.res.writeHeader(p,String(t[p]))}),this.res.end(r)}),o()};if(!this.httpCompression||!i.compress){s(n);return}if((e?Buffer.byteLength(n):n.length)<this.httpCompression.threshold){s(n);return}const l=ou(this.req).encodings(["gzip","deflate"]);if(!l){s(n);return}this.compress(n,l,(r,p)=>{if(r){this.res.writeStatus("500 Internal Server Error"),this.res.end(),o(r);return}t["Content-Encoding"]=l,s(p)})}compress(n,i,o){vn("compressing");const e=[];let a=0;au[i](this.httpCompression).on("error",o).on("data",function(t){e.push(t),a+=t.length}).on("end",function(){o(null,Buffer.concat(e,a))}).end(n)}doClose(n){vn("closing");let i;const o=()=>{clearTimeout(i),n(),this.onClose()};if(this.writable)vn("transport writable - closing right away"),this.send([{type:"close"}]),o();else if(this.discarded)vn("transport discarded - closing right away"),o();else vn("transport not writable - buffering orderly close"),this.shouldClose=o,i=setTimeout(o,this.closeTimeout)}headers(n,i){i=i||{};const o=n.headers["user-agent"];if(o&&(~o.indexOf(";MSIE")||~o.indexOf("Trident/")))i["X-XSS-Protection"]="0";return i["cache-control"]="no-store",this.emit("headers",i,n),i}}Ls.Polling=Ds});var ec=A((ic)=>{Object.defineProperty(ic,"__esModule",{value:!0});ic.WebSocket=void 0;var tu=qn(),su=q(),qs=su.default("engine:ws");class nc extends tu.Transport{constructor(n){super(n);this.writable=!1,this.perMessageDeflate=null}get name(){return"websocket"}get handlesUpgrades(){return!0}get supportsFraming(){return!0}send(n){this.writable=!1;for(let i=0;i<n.length;i++){const o=n[i],e=i+1===n.length,a=(t)=>{const s=typeof t!=="string",c=this.perMessageDeflate&&Buffer.byteLength(t)>this.perMessageDeflate.threshold;if(qs('writing "%s"',t),this.socket.send(t,s,c),e)this.writable=!0,this.emit("drain")};if(o.options&&typeof o.options.wsPreEncoded==="string")a(o.options.wsPreEncoded);else this.parser.encodePacket(o,this.supportsBinary,a)}}doClose(n){qs("closing"),n&&n(),this.socket.end()}}ic.WebSocket=nc});var tc=A((ac)=>{Object.defineProperty(ac,"__esModule",{value:!0});var cu=_s(),lu=ec();ac.default={polling:cu.Polling,websocket:lu.WebSocket}});var pc=A((lc)=>{Object.defineProperty(lc,"__esModule",{value:!0});lc.uServer=void 0;var pu=q(),ni=Ce(),mu=tc(),Zn=pu.default("engine:uws");class sc extends ni.BaseServer{init(){}cleanup(){}prepare(n,i){n.method=n.getMethod().toUpperCase(),n.url=n.getUrl();const o=new URLSearchParams(n.getQuery());n._query=Object.fromEntries(o.entries()),n.headers={},n.forEach((e,a)=>{n.headers[e]=a}),n.connection={remoteAddress:Buffer.from(i.getRemoteAddressAsText()).toString()},i.onAborted(()=>{Zn("response has been aborted")})}createTransport(n,i){return new mu.default[n](i)}attach(n,i={}){const o=this._computePath(i);n.any(o,this.handleRequest.bind(this)).ws(o,{compression:i.compression,idleTimeout:i.idleTimeout,maxBackpressure:i.maxBackpressure,maxPayloadLength:this.opts.maxHttpBufferSize,upgrade:this.handleUpgrade.bind(this),open:(e)=>{const a=e.getUserData().transport;a.socket=e,a.writable=!0,a.emit("drain")},message:(e,a,t)=>{e.getUserData().transport.onData(t?a:Buffer.from(a).toString())},close:(e,a,t)=>{e.getUserData().transport.onClose(a,t)}})}_applyMiddlewares(n,i,o){if(this.middlewares.length===0)return o();n.res=new cc(i),super._applyMiddlewares(n,n.res,(e)=>{n.res.writeHead(),o(e)})}handleRequest(n,i){Zn('handling "%s" http request "%s"',i.getMethod(),i.getUrl()),this.prepare(i,n),i.res=n;const o=(e,a)=>{if(e!==void 0){this.emit("connection_error",{req:i,code:e,message:ni.Server.errorMessages[e],context:a}),this.abortRequest(i.res,e,a);return}if(i._query.sid)Zn("setting new request for existing client"),this.clients[i._query.sid].transport.onRequest(i);else{const t=(s,c)=>this.abortRequest(n,s,c);this.handshake(i._query.transport,i,t)}};this._applyMiddlewares(i,n,(e)=>{if(e)o(ni.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(i,!1,o)})}handleUpgrade(n,i,o){Zn("on upgrade"),this.prepare(i,n),i.res=n;const e=async(a,t)=>{if(a!==void 0){this.emit("connection_error",{req:i,code:a,message:ni.Server.errorMessages[a],context:t}),this.abortRequest(n,a,t);return}const s=i._query.sid;let c;if(s){const l=this.clients[s];if(!l)Zn("upgrade attempt for closed client"),n.close();else if(l.upgrading)Zn("transport has already been trying to upgrade"),n.close();else if(l.upgraded)Zn("transport had already been upgraded"),n.close();else Zn("upgrading existing transport"),c=this.createTransport(i._query.transport,i),l.maybeUpgrade(c)}else if(c=await this.handshake(i._query.transport,i,(l,r)=>this.abortRequest(n,l,r)),!c)return;i.res.writeStatus("101 Switching Protocols"),n.upgrade({transport:c},i.getHeader("sec-websocket-key"),i.getHeader("sec-websocket-protocol"),i.getHeader("sec-websocket-extensions"),o)};this._applyMiddlewares(i,n,(a)=>{if(a)e(ni.Server.errors.BAD_REQUEST,{name:"MIDDLEWARE_FAILURE"});else this.verify(i,!0,e)})}abortRequest(n,i,o){const e=i===ni.Server.errors.FORBIDDEN?"403 Forbidden":"400 Bad Request",a=o&&o.message?o.message:ni.Server.errorMessages[i];n.writeStatus(e),n.writeHeader("Content-Type","application/json"),n.end(JSON.stringify({code:i,message:a}))}}lc.uServer=sc;class cc{constructor(n){this.res=n,this.statusWritten=!1,this.headers=[],this.isAborted=!1}set statusCode(n){if(!n)return;this.writeStatus(n===200?"200 OK":"204 No Content")}writeHead(n){this.statusCode=n}setHeader(n,i){if(Array.isArray(i))i.forEach((o)=>{this.writeHeader(n,o)});else this.writeHeader(n,i)}removeHeader(){}getHeader(){}writeStatus(n){if(this.isAborted)return;return this.res.writeStatus(n),this.statusWritten=!0,this.writeBufferedHeaders(),this}writeHeader(n,i){if(this.isAborted)return;if(n==="Content-Length")return;if(this.statusWritten)this.res.writeHeader(n,i);else this.headers.push([n,i])}writeBufferedHeaders(){this.headers.forEach(([n,i])=>{this.res.writeHeader(n,i)})}end(n){if(this.isAborted)return;this.res.cork(()=>{if(!this.statusWritten)this.writeBufferedHeaders();this.res.end(n)})}onData(n){if(this.isAborted)return;this.res.onData(n)}onAborted(n){if(this.isAborted)return;this.res.onAborted(()=>{this.isAborted=!0,n()})}cork(n){if(this.isAborted)return;this.res.cork(n)}}});var fc=A((vi)=>{function vu(n,i,o){if(typeof i==="function")o=i,i={};const e=uu.createServer(function(t,s){s.writeHead(501),s.end("Not Implemented")}),a=xc(e,i);return a.httpServer=e,e.listen(n,o),a}function xc(n,i){const o=new mc.Server(i);return o.attach(n,i),o}Object.defineProperty(vi,"__esModule",{value:!0});vi.protocol=vi.Transport=vi.Socket=vi.uServer=vi.parser=vi.attach=vi.listen=vi.transports=vi.Server=void 0;var uu=import.meta.require("http"),mc=Ce();Object.defineProperty(vi,"Server",{enumerable:!0,get:function(){return mc.Server}});var xu=je();vi.transports=xu.default;var uc=Vi();vi.parser=uc;var du=pc();Object.defineProperty(vi,"uServer",{enumerable:!0,get:function(){return du.uServer}});var fu=ke();Object.defineProperty(vi,"Socket",{enumerable:!0,get:function(){return fu.Socket}});var yu=qn();Object.defineProperty(vi,"Transport",{enumerable:!0,get:function(){return yu.Transport}});vi.protocol=uc.protocol;vi.listen=vu;vi.attach=xc});var yc=A((Fu)=>{function sn(n){if(n)return gu(n)}function gu(n){for(var i in sn.prototype)n[i]=sn.prototype[i];return n}Fu.Emitter=sn;sn.prototype.on=sn.prototype.addEventListener=function(n,i){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(i),this};sn.prototype.once=function(n,i){function o(){this.off(n,o),i.apply(this,arguments)}return o.fn=i,this.on(n,o),this};sn.prototype.off=sn.prototype.removeListener=sn.prototype.removeAllListeners=sn.prototype.removeEventListener=function(n,i){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var o=this._callbacks["$"+n];if(!o)return this;if(arguments.length==1)return delete this._callbacks["$"+n],this;var e;for(var a=0;a<o.length;a++)if(e=o[a],e===i||e.fn===i){o.splice(a,1);break}if(o.length===0)delete this._callbacks["$"+n];return this};sn.prototype.emit=function(n){this._callbacks=this._callbacks||{};var i=new Array(arguments.length-1),o=this._callbacks["$"+n];for(var e=1;e<arguments.length;e++)i[e-1]=arguments[e];if(o){o=o.slice(0);for(var e=0,a=o.length;e<a;++e)o[e].apply(this,i)}return this};sn.prototype.emitReserved=sn.prototype.emit;sn.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};sn.prototype.hasListeners=function(n){return!!this.listeners(n).length}});var We=A((Tc)=>{function bc(n){return Au&&(n instanceof ArrayBuffer||Ku(n))||Ru&&n instanceof Blob||Mu&&n instanceof File}function Ao(n,i){if(!n||typeof n!=="object")return!1;if(Array.isArray(n)){for(let o=0,e=n.length;o<e;o++)if(Ao(n[o]))return!0;return!1}if(bc(n))return!0;if(n.toJSON&&typeof n.toJSON==="function"&&arguments.length===1)return Ao(n.toJSON(),!0);for(let o in n)if(Object.prototype.hasOwnProperty.call(n,o)&&Ao(n[o]))return!0;return!1}Object.defineProperty(Tc,"__esModule",{value:!0});Tc.hasBinary=Tc.isBinary=void 0;var Au=typeof ArrayBuffer==="function",Ku=(n)=>{return typeof ArrayBuffer.isView==="function"?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer},vc=Object.prototype.toString,Ru=typeof Blob==="function"||typeof Blob!=="undefined"&&vc.call(Blob)==="[object BlobConstructor]",Mu=typeof File==="function"||typeof File!=="undefined"&&vc.call(File)==="[object FileConstructor]";Tc.isBinary=bc;Tc.hasBinary=Ao});var Fc=A((wc)=>{function ju(n){const i=[],o=n.data,e=n;return e.data=Ie(o,i),e.attachments=i.length,{packet:e,buffers:i}}function Ie(n,i){if(!n)return n;if($u.isBinary(n)){const o={_placeholder:!0,num:i.length};return i.push(n),o}else if(Array.isArray(n)){const o=new Array(n.length);for(let e=0;e<n.length;e++)o[e]=Ie(n[e],i);return o}else if(typeof n==="object"&&!(n instanceof Date)){const o={};for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e))o[e]=Ie(n[e],i);return o}return n}function ku(n,i){return n.data=Ee(n.data,i),delete n.attachments,n}function Ee(n,i){if(!n)return n;if(n&&n._placeholder===!0)if(typeof n.num==="number"&&n.num>=0&&n.num<i.length)return i[n.num];else throw new Error("illegal attachments");else if(Array.isArray(n))for(let o=0;o<n.length;o++)n[o]=Ee(n[o],i);else if(typeof n==="object"){for(let o in n)if(Object.prototype.hasOwnProperty.call(n,o))n[o]=Ee(n[o],i)}return n}Object.defineProperty(wc,"__esModule",{value:!0});wc.reconstructPacket=wc.deconstructPacket=void 0;var $u=We();wc.deconstructPacket=ju;wc.reconstructPacket=ku});var Xi=A(($c)=>{function hc(n){return Object.prototype.toString.call(n)==="[object Object]"}Object.defineProperty($c,"__esModule",{value:!0});$c.Decoder=$c.Encoder=$c.PacketType=$c.protocol=void 0;var zu=yc(),Kc=Fc(),Rc=We(),Cu=q(),Ve=Cu.default("socket.io-parser"),Wu=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];$c.protocol=5;var H;(function(n){n[n.CONNECT=0]="CONNECT",n[n.DISCONNECT=1]="DISCONNECT",n[n.EVENT=2]="EVENT",n[n.ACK=3]="ACK",n[n.CONNECT_ERROR=4]="CONNECT_ERROR",n[n.BINARY_EVENT=5]="BINARY_EVENT",n[n.BINARY_ACK=6]="BINARY_ACK"})(H=$c.PacketType||($c.PacketType={}));class Mc{constructor(n){this.replacer=n}encode(n){if(Ve("encoding packet %j",n),n.type===H.EVENT||n.type===H.ACK){if(Rc.hasBinary(n))return this.encodeAsBinary({type:n.type===H.EVENT?H.BINARY_EVENT:H.BINARY_ACK,nsp:n.nsp,data:n.data,id:n.id})}return[this.encodeAsString(n)]}encodeAsString(n){let i=""+n.type;if(n.type===H.BINARY_EVENT||n.type===H.BINARY_ACK)i+=n.attachments+"-";if(n.nsp&&n.nsp!=="/")i+=n.nsp+",";if(n.id!=null)i+=n.id;if(n.data!=null)i+=JSON.stringify(n.data,this.replacer);return Ve("encoded %j as %s",n,i),i}encodeAsBinary(n){const i=Kc.deconstructPacket(n),o=this.encodeAsString(i.packet),e=i.buffers;return e.unshift(o),e}}$c.Encoder=Mc;class Ue extends zu.Emitter{constructor(n){super();this.reviver=n}add(n){let i;if(typeof n==="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");i=this.decodeString(n);const o=i.type===H.BINARY_EVENT;if(o||i.type===H.BINARY_ACK){if(i.type=o?H.EVENT:H.ACK,this.reconstructor=new Jc(i),i.attachments===0)super.emitReserved("decoded",i)}else super.emitReserved("decoded",i)}else if(Rc.isBinary(n)||n.base64){if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");else if(i=this.reconstructor.takeBinaryData(n),i)this.reconstructor=null,super.emitReserved("decoded",i)}else throw new Error("Unknown type: "+n)}decodeString(n){let i=0;const o={type:Number(n.charAt(0))};if(H[o.type]===void 0)throw new Error("unknown packet type "+o.type);if(o.type===H.BINARY_EVENT||o.type===H.BINARY_ACK){const a=i+1;while(n.charAt(++i)!=="-"&&i!=n.length);const t=n.substring(a,i);if(t!=Number(t)||n.charAt(i)!=="-")throw new Error("Illegal attachments");o.attachments=Number(t)}if(n.charAt(i+1)==="/"){const a=i+1;while(++i){if(n.charAt(i)===",")break;if(i===n.length)break}o.nsp=n.substring(a,i)}else o.nsp="/";const e=n.charAt(i+1);if(e!==""&&Number(e)==e){const a=i+1;while(++i){const t=n.charAt(i);if(t==null||Number(t)!=t){--i;break}if(i===n.length)break}o.id=Number(n.substring(a,i+1))}if(n.charAt(++i)){const a=this.tryParse(n.substr(i));if(Ue.isPayloadValid(o.type,a))o.data=a;else throw new Error("invalid payload")}return Ve("decoded %s as %j",n,o),o}tryParse(n){try{return JSON.parse(n,this.reviver)}catch(i){return!1}}static isPayloadValid(n,i){switch(n){case H.CONNECT:return hc(i);case H.DISCONNECT:return i===void 0;case H.CONNECT_ERROR:return typeof i==="string"||hc(i);case H.EVENT:case H.BINARY_EVENT:return Array.isArray(i)&&(typeof i[0]==="number"||typeof i[0]==="string"&&Wu.indexOf(i[0])===-1);case H.ACK:case H.BINARY_ACK:return Array.isArray(i)}}destroy(){if(this.reconstructor)this.reconstructor.finishedReconstruction(),this.reconstructor=null}}$c.Decoder=Ue;class Jc{constructor(n){this.packet=n,this.buffers=[],this.reconPack=n}takeBinaryData(n){if(this.buffers.push(n),this.buffers.length===this.reconPack.attachments){const i=Kc.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),i}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}});var Cc=A((Oc)=>{Object.defineProperty(Oc,"__esModule",{value:!0});Oc.Client=void 0;var Ko=Xi(),Vu=q(),Uu=import.meta.require("url"),hn=Vu("socket.io:client");class kc{constructor(n,i){this.sockets=new Map,this.nsps=new Map,this.server=n,this.conn=i,this.encoder=n.encoder,this.decoder=new n._parser.Decoder,this.id=i.id,this.setup()}get request(){return this.conn.request}setup(){this.onclose=this.onclose.bind(this),this.ondata=this.ondata.bind(this),this.onerror=this.onerror.bind(this),this.ondecoded=this.ondecoded.bind(this),this.decoder.on("decoded",this.ondecoded),this.conn.on("data",this.ondata),this.conn.on("error",this.onerror),this.conn.on("close",this.onclose),this.connectTimeout=setTimeout(()=>{if(this.nsps.size===0)hn("no namespace joined yet, close the client"),this.close();else hn("the client has already joined a namespace, nothing to do")},this.server._connectTimeout)}connect(n,i={}){if(this.server._nsps.has(n))return hn("connecting to namespace %s",n),this.doConnect(n,i);this.server._checkNamespace(n,i,(o)=>{if(o)this.doConnect(n,i);else hn("creation of namespace %s was denied",n),this._packet({type:Ko.PacketType.CONNECT_ERROR,nsp:n,data:{message:"Invalid namespace"}})})}doConnect(n,i){const o=this.server.of(n);o._add(this,i,(e)=>{if(this.sockets.set(e.id,e),this.nsps.set(o.name,e),this.connectTimeout)clearTimeout(this.connectTimeout),this.connectTimeout=void 0})}_disconnect(){for(let n of this.sockets.values())n.disconnect();this.sockets.clear(),this.close()}_remove(n){if(this.sockets.has(n.id)){const i=this.sockets.get(n.id).nsp.name;this.sockets.delete(n.id),this.nsps.delete(i)}else hn("ignoring remove for %s",n.id)}close(){if(this.conn.readyState==="open")hn("forcing transport close"),this.conn.close(),this.onclose("forced server close")}_packet(n,i={}){if(this.conn.readyState!=="open"){hn("ignoring packet write %j",n);return}const o=i.preEncoded?n:this.encoder.encode(n);this.writeToEngine(o,i)}writeToEngine(n,i){if(i.volatile&&!this.conn.transport.writable){hn("volatile packet is discarded since the transport is not currently writable");return}const o=Array.isArray(n)?n:[n];for(let e of o)this.conn.write(e,i)}ondata(n){try{this.decoder.add(n)}catch(i){hn("invalid packet format"),this.onerror(i)}}ondecoded(n){let i,o;if(this.conn.protocol===3){const a=Uu.parse(n.nsp,!0);i=a.pathname,o=a.query}else i=n.nsp,o=n.data;const e=this.nsps.get(i);if(!e&&n.type===Ko.PacketType.CONNECT)this.connect(i,o);else if(e&&n.type!==Ko.PacketType.CONNECT&&n.type!==Ko.PacketType.CONNECT_ERROR)process.nextTick(function(){e._onpacket(n)});else hn("invalid state (packet type: %s)",n.type),this.close()}onerror(n){for(let i of this.sockets.values())i._onerror(n);this.conn.close()}onclose(n,i){hn("client close with reason %s",n),this.destroy();for(let o of this.sockets.values())o._onclose(n,i);this.sockets.clear(),this.decoder.destroy()}destroy(){if(this.conn.removeListener("data",this.ondata),this.conn.removeListener("error",this.onerror),this.conn.removeListener("close",this.onclose),this.decoder.removeListener("decoded",this.ondecoded),this.connectTimeout)clearTimeout(this.connectTimeout),this.connectTimeout=void 0}}Oc.Client=kc});var Ro=A((Ic)=>{Object.defineProperty(Ic,"__esModule",{value:!0});Ic.StrictEventEmitter=void 0;var Yu=import.meta.require("events");class Wc extends Yu.EventEmitter{on(n,i){return super.on(n,i)}once(n,i){return super.once(n,i)}emit(n,...i){return super.emit(n,...i)}emitReserved(n,...i){return super.emit(n,...i)}emitUntyped(n,...i){return super.emit(n,...i)}listeners(n){return super.listeners(n)}}Ic.StrictEventEmitter=Wc});var Be=A((Uc)=>{Object.defineProperty(Uc,"__esModule",{value:!0});Uc.RemoteSocket=Uc.BroadcastOperator=void 0;var Vc=Gi(),Bu=Xi();class kn{constructor(n,i=new Set,o=new Set,e={}){this.adapter=n,this.rooms=i,this.exceptRooms=o,this.flags=e}to(n){const i=new Set(this.rooms);if(Array.isArray(n))n.forEach((o)=>i.add(o));else i.add(n);return new kn(this.adapter,i,this.exceptRooms,this.flags)}in(n){return this.to(n)}except(n){const i=new Set(this.exceptRooms);if(Array.isArray(n))n.forEach((o)=>i.add(o));else i.add(n);return new kn(this.adapter,this.rooms,i,this.flags)}compress(n){const i=Object.assign({},this.flags,{compress:n});return new kn(this.adapter,this.rooms,this.exceptRooms,i)}get volatile(){const n=Object.assign({},this.flags,{volatile:!0});return new kn(this.adapter,this.rooms,this.exceptRooms,n)}get local(){const n=Object.assign({},this.flags,{local:!0});return new kn(this.adapter,this.rooms,this.exceptRooms,n)}timeout(n){const i=Object.assign({},this.flags,{timeout:n});return new kn(this.adapter,this.rooms,this.exceptRooms,i)}emit(n,...i){if(Vc.RESERVED_EVENTS.has(n))throw new Error(`"${String(n)}" is a reserved event name`);const o=[n,...i],e={type:Bu.PacketType.EVENT,data:o};if(typeof o[o.length-1]!=="function")return this.adapter.broadcast(e,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags}),!0;const t=o.pop();let s=!1,c=[];const l=setTimeout(()=>{s=!0,t.apply(this,[new Error("operation has timed out"),this.flags.expectSingleResponse?null:c])},this.flags.timeout);let r=-1,p=0,m=0;const T=()=>{if(!s&&r===p&&c.length===m)clearTimeout(l),t.apply(this,[null,this.flags.expectSingleResponse?c[0]:c])};return this.adapter.broadcastWithAck(e,{rooms:this.rooms,except:this.exceptRooms,flags:this.flags},(R)=>{m+=R,p++,T()},(R)=>{c.push(R),T()}),this.adapter.serverCount().then((R)=>{r=R,T()}),!0}emitWithAck(n,...i){return new Promise((o,e)=>{i.push((a,t)=>{if(a)return a.responses=t,e(a);else return o(t)}),this.emit(n,...i)})}allSockets(){if(!this.adapter)throw new Error("No adapter for this namespace, are you trying to get the list of clients of a dynamic namespace?");return this.adapter.sockets(this.rooms)}fetchSockets(){return this.adapter.fetchSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags}).then((n)=>{return n.map((i)=>{if(i instanceof Vc.Socket)return i;else return new Ye(this.adapter,i)})})}socketsJoin(n){this.adapter.addSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(n)?n:[n])}socketsLeave(n){this.adapter.delSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},Array.isArray(n)?n:[n])}disconnectSockets(n=!1){this.adapter.disconnectSockets({rooms:this.rooms,except:this.exceptRooms,flags:this.flags},n)}}Uc.BroadcastOperator=kn;class Ye{constructor(n,i){this.id=i.id,this.handshake=i.handshake,this.rooms=new Set(i.rooms),this.data=i.data,this.operator=new kn(n,new Set([this.id]),new Set,{expectSingleResponse:!0})}timeout(n){return this.operator.timeout(n)}emit(n,...i){return this.operator.emit(n,...i)}join(n){return this.operator.socketsJoin(n)}leave(n){return this.operator.socketsLeave(n)}disconnect(n=!1){return this.operator.disconnectSockets(n),this}}Uc.RemoteSocket=Ye});var Gi=A((On)=>{function Xc(){}var Gc=On&&On.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(On,"__esModule",{value:!0});On.Socket=On.RESERVED_EVENTS=void 0;var bn=Xi(),Gu=Gc(q()),Zu=Ro(),Bc=Gc(de()),Qu=Be(),on=Gu.default("socket.io:socket"),Hu=new Set(["transport error","transport close","forced close","ping timeout","server shutting down","forced server close"]);On.RESERVED_EVENTS=new Set(["connect","connect_error","disconnect","disconnecting","newListener","removeListener"]);class Zc extends Zu.StrictEventEmitter{constructor(n,i,o,e){super();if(this.nsp=n,this.client=i,this.recovered=!1,this.data={},this.connected=!1,this.acks=new Map,this.fns=[],this.flags={},this.server=n.server,this.adapter=this.nsp.adapter,e)this.id=e.sid,this.pid=e.pid,e.rooms.forEach((a)=>this.join(a)),this.data=e.data,e.missedPackets.forEach((a)=>{this.packet({type:bn.PacketType.EVENT,data:a})}),this.recovered=!0;else{if(i.conn.protocol===3)this.id=n.name!=="/"?n.name+"#"+i.id:i.id;else this.id=Bc.default.generateId();if(this.server._opts.connectionStateRecovery)this.pid=Bc.default.generateId()}this.handshake=this.buildHandshake(o),this.on("error",Xc)}buildHandshake(n){var i,o,e,a;return{headers:((i=this.request)===null||i===void 0?void 0:i.headers)||{},time:new Date+"",address:this.conn.remoteAddress,xdomain:!!((o=this.request)===null||o===void 0?void 0:o.headers.origin),secure:!this.request||!!this.request.connection.encrypted,issued:+new Date,url:(e=this.request)===null||e===void 0?void 0:e.url,query:((a=this.request)===null||a===void 0?void 0:a._query)||{},auth:n}}emit(n,...i){if(On.RESERVED_EVENTS.has(n))throw new Error(`"${String(n)}" is a reserved event name`);const o=[n,...i],e={type:bn.PacketType.EVENT,data:o};if(typeof o[o.length-1]==="function"){const t=this.nsp._ids++;on("emitting packet with ack id %d",t),this.registerAckCallback(t,o.pop()),e.id=t}const a=Object.assign({},this.flags);if(this.flags={},this.nsp.server.opts.connectionStateRecovery)this.adapter.broadcast(e,{rooms:new Set([this.id]),except:new Set,flags:a});else this.notifyOutgoingListeners(e),this.packet(e,a);return!0}emitWithAck(n,...i){const o=this.flags.timeout!==void 0;return new Promise((e,a)=>{i.push((t,s)=>{if(o)return t?a(t):e(s);else return e(t)}),this.emit(n,...i)})}registerAckCallback(n,i){const o=this.flags.timeout;if(o===void 0){this.acks.set(n,i);return}const e=setTimeout(()=>{on("event with ack id %d has timed out after %d ms",n,o),this.acks.delete(n),i.call(this,new Error("operation has timed out"))},o);this.acks.set(n,(...a)=>{clearTimeout(e),i.apply(this,[null,...a])})}to(n){return this.newBroadcastOperator().to(n)}in(n){return this.newBroadcastOperator().in(n)}except(n){return this.newBroadcastOperator().except(n)}send(...n){return this.emit("message",...n),this}write(...n){return this.emit("message",...n),this}packet(n,i={}){n.nsp=this.nsp.name,i.compress=i.compress!==!1,this.client._packet(n,i)}join(n){return on("join room %s",n),this.adapter.addAll(this.id,new Set(Array.isArray(n)?n:[n]))}leave(n){return on("leave room %s",n),this.adapter.del(this.id,n)}leaveAll(){this.adapter.delAll(this.id)}_onconnect(){if(on("socket connected - writing packet"),this.connected=!0,this.join(this.id),this.conn.protocol===3)this.packet({type:bn.PacketType.CONNECT});else this.packet({type:bn.PacketType.CONNECT,data:{sid:this.id,pid:this.pid}})}_onpacket(n){switch(on("got packet %j",n),n.type){case bn.PacketType.EVENT:this.onevent(n);break;case bn.PacketType.BINARY_EVENT:this.onevent(n);break;case bn.PacketType.ACK:this.onack(n);break;case bn.PacketType.BINARY_ACK:this.onack(n);break;case bn.PacketType.DISCONNECT:this.ondisconnect();break}}onevent(n){const i=n.data||[];if(on("emitting event %j",i),n.id!=null)on("attaching ack callback to event"),i.push(this.ack(n.id));if(this._anyListeners&&this._anyListeners.length){const o=this._anyListeners.slice();for(let e of o)e.apply(this,i)}this.dispatch(i)}ack(n){const i=this;let o=!1;return function(){if(o)return;const e=Array.prototype.slice.call(arguments);on("sending ack %j",e),i.packet({id:n,type:bn.PacketType.ACK,data:e}),o=!0}}onack(n){const i=this.acks.get(n.id);if(typeof i=="function")on("calling ack %s with %j",n.id,n.data),i.apply(this,n.data),this.acks.delete(n.id);else on("bad ack %s",n.id)}ondisconnect(){on("got disconnect packet"),this._onclose("client namespace disconnect")}_onerror(n){this.emitReserved("error",n)}_onclose(n,i){if(!this.connected)return this;if(on("closing socket - reason %s",n),this.emitReserved("disconnecting",n,i),this.server._opts.connectionStateRecovery&&Hu.has(n))on("connection state recovery is enabled for sid %s",this.id),this.adapter.persistSession({sid:this.id,pid:this.pid,rooms:[...this.rooms],data:this.data});this._cleanup(),this.client._remove(this),this.connected=!1,this.emitReserved("disconnect",n,i);return}_cleanup(){this.leaveAll(),this.nsp._remove(this),this.join=Xc}_error(n){this.packet({type:bn.PacketType.CONNECT_ERROR,data:n})}disconnect(n=!1){if(!this.connected)return this;if(n)this.client._disconnect();else this.packet({type:bn.PacketType.DISCONNECT}),this._onclose("server namespace disconnect");return this}compress(n){return this.flags.compress=n,this}get volatile(){return this.flags.volatile=!0,this}get broadcast(){return this.newBroadcastOperator()}get local(){return this.newBroadcastOperator().local}timeout(n){return this.flags.timeout=n,this}dispatch(n){on("dispatching an event %j",n),this.run(n,(i)=>{process.nextTick(()=>{if(i)return this._onerror(i);if(this.connected)super.emitUntyped.apply(this,n);else on("ignore packet received after disconnection")})})}use(n){return this.fns.push(n),this}run(n,i){const o=this.fns.slice(0);if(!o.length)return i(null);function e(a){o[a](n,function(t){if(t)return i(t);if(!o[a+1])return i(null);e(a+1)})}e(0)}get disconnected(){return!this.connected}get request(){return this.client.request}get conn(){return this.client.conn}get rooms(){return this.adapter.socketRooms(this.id)||new Set}onAny(n){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(n),this}prependAny(n){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(n),this}offAny(n){if(!this._anyListeners)return this;if(n){const i=this._anyListeners;for(let o=0;o<i.length;o++)if(n===i[o])return i.splice(o,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(n){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(n),this}prependAnyOutgoing(n){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(n),this}offAnyOutgoing(n){if(!this._anyOutgoingListeners)return this;if(n){const i=this._anyOutgoingListeners;for(let o=0;o<i.length;o++)if(n===i[o])return i.splice(o,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(n){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const i=this._anyOutgoingListeners.slice();for(let o of i)o.apply(this,n.data)}}newBroadcastOperator(){const n=Object.assign({},this.flags);return this.flags={},new Qu.BroadcastOperator(this.adapter,new Set,new Set([this.id]),n)}}On.Socket=Zc});var Xe=A((zn)=>{var Nu=zn&&zn.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(zn,"__esModule",{value:!0});zn.Namespace=zn.RESERVED_EVENTS=void 0;var Qc=Gi(),Du=Ro(),Lu=Nu(q()),xn=Be(),bi=Lu.default("socket.io:namespace");zn.RESERVED_EVENTS=new Set(["connect","connection","new_namespace"]);class Hc extends Du.StrictEventEmitter{constructor(n,i){super();this.sockets=new Map,this._fns=[],this._ids=0,this.server=n,this.name=i,this._initAdapter()}_initAdapter(){this.adapter=new(this.server.adapter())(this)}use(n){return this._fns.push(n),this}run(n,i){const o=this._fns.slice(0);if(!o.length)return i(null);function e(a){o[a](n,function(t){if(t)return i(t);if(!o[a+1])return i(null);e(a+1)})}e(0)}to(n){return new xn.BroadcastOperator(this.adapter).to(n)}in(n){return new xn.BroadcastOperator(this.adapter).in(n)}except(n){return new xn.BroadcastOperator(this.adapter).except(n)}async _add(n,i,o){var e;bi("adding socket to nsp %s",this.name);const a=await this._createSocket(n,i);if(((e=this.server.opts.connectionStateRecovery)===null||e===void 0?void 0:e.skipMiddlewares)&&a.recovered&&n.conn.readyState==="open")return this._doConnect(a,o);this.run(a,(t)=>{process.nextTick(()=>{if(n.conn.readyState!=="open"){bi("next called after client was closed - ignoring socket"),a._cleanup();return}if(t)if(bi("middleware error, sending CONNECT_ERROR packet to the client"),a._cleanup(),n.conn.protocol===3)return a._error(t.data||t.message);else return a._error({message:t.message,data:t.data});this._doConnect(a,o)})})}async _createSocket(n,i){const{pid:o,offset:e}=i;if(this.server.opts.connectionStateRecovery&&typeof o==="string"&&typeof e==="string"){let a;try{a=await this.adapter.restoreSession(o,e)}catch(t){bi("error while restoring session: %s",t)}if(a)return bi("connection state recovered for sid %s",a.sid),new Qc.Socket(this,n,i,a)}return new Qc.Socket(this,n,i)}_doConnect(n,i){if(this.sockets.set(n.id,n),n._onconnect(),i)i(n);this.emitReserved("connect",n),this.emitReserved("connection",n)}_remove(n){if(this.sockets.has(n.id))this.sockets.delete(n.id);else bi("ignoring remove for %s",n.id)}emit(n,...i){return new xn.BroadcastOperator(this.adapter).emit(n,...i)}send(...n){return this.emit("message",...n),this}write(...n){return this.emit("message",...n),this}serverSideEmit(n,...i){if(zn.RESERVED_EVENTS.has(n))throw new Error(`"${String(n)}" is a reserved event name`);return i.unshift(n),this.adapter.serverSideEmit(i),!0}serverSideEmitWithAck(n,...i){return new Promise((o,e)=>{i.push((a,t)=>{if(a)return a.responses=t,e(a);else return o(t)}),this.serverSideEmit(n,...i)})}_onServerSideEmit(n){super.emitUntyped.apply(this,n)}allSockets(){return new xn.BroadcastOperator(this.adapter).allSockets()}compress(n){return new xn.BroadcastOperator(this.adapter).compress(n)}get volatile(){return new xn.BroadcastOperator(this.adapter).volatile}get local(){return new xn.BroadcastOperator(this.adapter).local}timeout(n){return new xn.BroadcastOperator(this.adapter).timeout(n)}fetchSockets(){return new xn.BroadcastOperator(this.adapter).fetchSockets()}socketsJoin(n){return new xn.BroadcastOperator(this.adapter).socketsJoin(n)}socketsLeave(n){return new xn.BroadcastOperator(this.adapter).socketsLeave(n)}disconnectSockets(n=!1){return new xn.BroadcastOperator(this.adapter).disconnectSockets(n)}}zn.Namespace=Hc});var nl=A((_c)=>{function Ge(n){let i="";do i=Lc[n%Mo]+i,n=Math.floor(n/Mo);while(n>0);return i}function Pu(n){let i=0;for(Qn=0;Qn<n.length;Qn++)i=i*Mo+Pc[n.charAt(Qn)];return i}function _u(){const n=Ge(+new Date);if(n!==Dc)return Nc=0,Dc=n;return n+"."+Ge(Nc++)}Object.defineProperty(_c,"__esModule",{value:!0});_c.yeast=_c.decode=_c.encode=void 0;var Lc="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Mo=64,Pc={},Nc=0,Qn=0,Dc;_c.encode=Ge;_c.decode=Pu;_c.yeast=_u;for(;Qn<Mo;Qn++)Pc[Lc[Qn]]=Qn});var He=A((ol)=>{function ax(n,i){const o=i.rooms.size===0||n.some((a)=>i.rooms.has(a)),e=n.every((a)=>!i.except.has(a));return o&&e}var Ze;Object.defineProperty(ol,"__esModule",{value:!0});ol.SessionAwareAdapter=ol.Adapter=void 0;var ix=import.meta.require("events"),ox=nl(),Jo=import.meta.require("ws"),ex=typeof((Ze=Jo===null||Jo===void 0?void 0:Jo.Sender)===null||Ze===void 0?void 0:Ze.frame)==="function";class Qe extends ix.EventEmitter{constructor(n){super();this.nsp=n,this.rooms=new Map,this.sids=new Map,this.encoder=n.server.encoder}init(){}close(){}serverCount(){return Promise.resolve(1)}addAll(n,i){if(!this.sids.has(n))this.sids.set(n,new Set);for(let o of i){if(this.sids.get(n).add(o),!this.rooms.has(o))this.rooms.set(o,new Set),this.emit("create-room",o);if(!this.rooms.get(o).has(n))this.rooms.get(o).add(n),this.emit("join-room",o,n)}}del(n,i){if(this.sids.has(n))this.sids.get(n).delete(i);this._del(i,n)}_del(n,i){const o=this.rooms.get(n);if(o!=null){if(o.delete(i))this.emit("leave-room",n,i);if(o.size===0&&this.rooms.delete(n))this.emit("delete-room",n)}}delAll(n){if(!this.sids.has(n))return;for(let i of this.sids.get(n))this._del(i,n);this.sids.delete(n)}broadcast(n,i){const o=i.flags||{},e={preEncoded:!0,volatile:o.volatile,compress:o.compress};n.nsp=this.nsp.name;const a=this._encode(n,e);this.apply(i,(t)=>{if(typeof t.notifyOutgoingListeners==="function")t.notifyOutgoingListeners(n);t.client.writeToEngine(a,e)})}broadcastWithAck(n,i,o,e){const a=i.flags||{},t={preEncoded:!0,volatile:a.volatile,compress:a.compress};n.nsp=this.nsp.name,n.id=this.nsp._ids++;const s=this._encode(n,t);let c=0;this.apply(i,(l)=>{if(c++,l.acks.set(n.id,e),typeof l.notifyOutgoingListeners==="function")l.notifyOutgoingListeners(n);l.client.writeToEngine(s,t)}),o(c)}_encode(n,i){const o=this.encoder.encode(n);if(ex&&o.length===1&&typeof o[0]==="string"){const e=Buffer.from("4"+o[0]);i.wsPreEncodedFrame=Jo.Sender.frame(e,{readOnly:!1,mask:!1,rsv1:!1,opcode:1,fin:!0})}return o}sockets(n){const i=new Set;return this.apply({rooms:n},(o)=>{i.add(o.id)}),Promise.resolve(i)}socketRooms(n){return this.sids.get(n)}fetchSockets(n){const i=[];return this.apply(n,(o)=>{i.push(o)}),Promise.resolve(i)}addSockets(n,i){this.apply(n,(o)=>{o.join(i)})}delSockets(n,i){this.apply(n,(o)=>{i.forEach((e)=>o.leave(e))})}disconnectSockets(n,i){this.apply(n,(o)=>{o.disconnect(i)})}apply(n,i){const o=n.rooms,e=this.computeExceptSids(n.except);if(o.size){const a=new Set;for(let t of o){if(!this.rooms.has(t))continue;for(let s of this.rooms.get(t)){if(a.has(s)||e.has(s))continue;const c=this.nsp.sockets.get(s);if(c)i(c),a.add(s)}}}else for(let[a]of this.sids){if(e.has(a))continue;const t=this.nsp.sockets.get(a);if(t)i(t)}}computeExceptSids(n){const i=new Set;if(n&&n.size>0){for(let o of n)if(this.rooms.has(o))this.rooms.get(o).forEach((e)=>i.add(e))}return i}serverSideEmit(n){console.warn("this adapter does not support the serverSideEmit() functionality")}persistSession(n){}restoreSession(n,i){return null}}ol.Adapter=Qe;class il extends Qe{constructor(n){super(n);this.nsp=n,this.sessions=new Map,this.packets=[],this.maxDisconnectionDuration=n.server.opts.connectionStateRecovery.maxDisconnectionDuration,setInterval(()=>{const o=Date.now()-this.maxDisconnectionDuration;this.sessions.forEach((e,a)=>{if(e.disconnectedAt<o)this.sessions.delete(a)});for(let e=this.packets.length-1;e>=0;e--)if(this.packets[e].emittedAt<o){this.packets.splice(0,e+1);break}},60000).unref()}persistSession(n){n.disconnectedAt=Date.now(),this.sessions.set(n.pid,n)}restoreSession(n,i){const o=this.sessions.get(n);if(!o)return null;if(o.disconnectedAt+this.maxDisconnectionDuration<Date.now())return this.sessions.delete(n),null;const a=this.packets.findIndex((s)=>s.id===i);if(a===-1)return null;const t=[];for(let s=a+1;s<this.packets.length;s++){const c=this.packets[s];if(ax(o.rooms,c.opts))t.push(c.data)}return Promise.resolve(Object.assign(Object.assign({},o),{missedPackets:t}))}broadcast(n,i){var o;const e=n.type===2,a=n.id===void 0,t=((o=i.flags)===null||o===void 0?void 0:o.volatile)===void 0;if(e&&a&&t){const s=ox.yeast();n.data.push(s),this.packets.push({id:s,opts:i,data:n.data,emittedAt:Date.now()})}super.broadcast(n,i)}}ol.SessionAwareAdapter=il});var tl=A((An)=>{function Si(){return rx.randomBytes(8).toString("hex")}function ii(n){return{rooms:[...n.rooms],except:[...n.except],flags:n.flags}}function Ti(n){return{rooms:new Set(n.rooms),except:new Set(n.except),flags:n.flags}}var sx=An&&An.__rest||function(n,i){var o={};for(var e in n)if(Object.prototype.hasOwnProperty.call(n,e)&&i.indexOf(e)<0)o[e]=n[e];if(n!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var a=0,e=Object.getOwnPropertySymbols(n);a<e.length;a++)if(i.indexOf(e[a])<0&&Object.prototype.propertyIsEnumerable.call(n,e[a]))o[e[a]]=n[e[a]]}return o};Object.defineProperty(An,"__esModule",{value:!0});An.ClusterAdapterWithHeartbeat=An.ClusterAdapter=An.MessageType=void 0;var cx=He(),lx=q(),rx=import.meta.require("crypto"),D=lx.debug("socket.io-adapter"),px="emitter",$o=5000,j;(function(n){n[n.INITIAL_HEARTBEAT=1]="INITIAL_HEARTBEAT",n[n.HEARTBEAT=2]="HEARTBEAT",n[n.BROADCAST=3]="BROADCAST",n[n.SOCKETS_JOIN=4]="SOCKETS_JOIN",n[n.SOCKETS_LEAVE=5]="SOCKETS_LEAVE",n[n.DISCONNECT_SOCKETS=6]="DISCONNECT_SOCKETS",n[n.FETCH_SOCKETS=7]="FETCH_SOCKETS",n[n.FETCH_SOCKETS_RESPONSE=8]="FETCH_SOCKETS_RESPONSE",n[n.SERVER_SIDE_EMIT=9]="SERVER_SIDE_EMIT",n[n.SERVER_SIDE_EMIT_RESPONSE=10]="SERVER_SIDE_EMIT_RESPONSE",n[n.BROADCAST_CLIENT_COUNT=11]="BROADCAST_CLIENT_COUNT",n[n.BROADCAST_ACK=12]="BROADCAST_ACK",n[n.ADAPTER_CLOSE=13]="ADAPTER_CLOSE"})(j=An.MessageType||(An.MessageType={}));class Ne extends cx.Adapter{constructor(n){super(n);this.requests=new Map,this.ackRequests=new Map,this.uid=Si()}onMessage(n,i){if(n.uid===this.uid)return D("[%s] ignore message from self",this.uid);switch(D("[%s] new event of type %d from %s",this.uid,n.type,n.uid),n.type){case j.BROADCAST:{if(n.data.requestId!==void 0)super.broadcastWithAck(n.data.packet,Ti(n.data.opts),(e)=>{D("[%s] waiting for %d client acknowledgements",this.uid,e),this.publishResponse(n.uid,{type:j.BROADCAST_CLIENT_COUNT,data:{requestId:n.data.requestId,clientCount:e}})},(e)=>{D("[%s] received acknowledgement with value %j",this.uid,e),this.publishResponse(n.uid,{type:j.BROADCAST_ACK,data:{requestId:n.data.requestId,packet:e}})});else{const e=n.data.packet,a=Ti(n.data.opts);this.addOffsetIfNecessary(e,a,i),super.broadcast(e,a)}break}case j.SOCKETS_JOIN:super.addSockets(Ti(n.data.opts),n.data.rooms);break;case j.SOCKETS_LEAVE:super.delSockets(Ti(n.data.opts),n.data.rooms);break;case j.DISCONNECT_SOCKETS:super.disconnectSockets(Ti(n.data.opts),n.data.close);break;case j.FETCH_SOCKETS:{D("[%s] calling fetchSockets with opts %j",this.uid,n.data.opts),super.fetchSockets(Ti(n.data.opts)).then((o)=>{this.publishResponse(n.uid,{type:j.FETCH_SOCKETS_RESPONSE,data:{requestId:n.data.requestId,sockets:o.map((e)=>{const a=e.handshake,{sessionStore:t}=a,s=sx(a,["sessionStore"]);return{id:e.id,handshake:s,rooms:[...e.rooms],data:e.data}})}})});break}case j.SERVER_SIDE_EMIT:{const o=n.data.packet;if(n.data.requestId===void 0){this.nsp._onServerSideEmit(o);return}let a=!1;const t=(s)=>{if(a)return;a=!0,D("[%s] calling acknowledgement with %j",this.uid,s),this.publishResponse(n.uid,{type:j.SERVER_SIDE_EMIT_RESPONSE,data:{requestId:n.data.requestId,packet:s}})};this.nsp._onServerSideEmit([...o,t]);break}case j.BROADCAST_CLIENT_COUNT:case j.BROADCAST_ACK:case j.FETCH_SOCKETS_RESPONSE:case j.SERVER_SIDE_EMIT_RESPONSE:this.onResponse(n);break;default:D("[%s] unknown message type: %s",this.uid,n.type)}}onResponse(n){var i,o;const e=n.data.requestId;switch(D("[%s] received response %s to request %s",this.uid,n.type,e),n.type){case j.BROADCAST_CLIENT_COUNT:{(i=this.ackRequests.get(e))===null||i===void 0||i.clientCountCallback(n.data.clientCount);break}case j.BROADCAST_ACK:{(o=this.ackRequests.get(e))===null||o===void 0||o.ack(n.data.packet);break}case j.FETCH_SOCKETS_RESPONSE:{const a=this.requests.get(e);if(!a)return;if(a.current++,n.data.sockets.forEach((t)=>a.responses.push(t)),a.current===a.expected)clearTimeout(a.timeout),a.resolve(a.responses),this.requests.delete(e);break}case j.SERVER_SIDE_EMIT_RESPONSE:{const a=this.requests.get(e);if(!a)return;if(a.current++,a.responses.push(n.data.packet),a.current===a.expected)clearTimeout(a.timeout),a.resolve(null,a.responses),this.requests.delete(e);break}default:D("[%s] unknown response type: %s",this.uid,n.type)}}async broadcast(n,i){var o;if(!((o=i.flags)===null||o===void 0?void 0:o.local))try{const a=await this.publishAndReturnOffset({type:j.BROADCAST,data:{packet:n,opts:ii(i)}});this.addOffsetIfNecessary(n,i,a)}catch(a){return D("[%s] error while broadcasting message: %s",this.uid,a.message)}super.broadcast(n,i)}addOffsetIfNecessary(n,i,o){var e;if(!this.nsp.server.opts.connectionStateRecovery)return;const a=n.type===2,t=n.id===void 0,s=((e=i.flags)===null||e===void 0?void 0:e.volatile)===void 0;if(a&&t&&s)n.data.push(o)}broadcastWithAck(n,i,o,e){var a;if(!((a=i===null||i===void 0?void 0:i.flags)===null||a===void 0?void 0:a.local)){const s=Si();this.ackRequests.set(s,{clientCountCallback:o,ack:e}),this.publish({type:j.BROADCAST,data:{packet:n,requestId:s,opts:ii(i)}}),setTimeout(()=>{this.ackRequests.delete(s)},i.flags.timeout)}super.broadcastWithAck(n,i,o,e)}async addSockets(n,i){var o;if(!((o=n.flags)===null||o===void 0?void 0:o.local))try{await this.publishAndReturnOffset({type:j.SOCKETS_JOIN,data:{opts:ii(n),rooms:i}})}catch(a){D("[%s] error while publishing message: %s",this.uid,a.message)}super.addSockets(n,i)}async delSockets(n,i){var o;if(!((o=n.flags)===null||o===void 0?void 0:o.local))try{await this.publishAndReturnOffset({type:j.SOCKETS_LEAVE,data:{opts:ii(n),rooms:i}})}catch(a){D("[%s] error while publishing message: %s",this.uid,a.message)}super.delSockets(n,i)}async disconnectSockets(n,i){var o;if(!((o=n.flags)===null||o===void 0?void 0:o.local))try{await this.publishAndReturnOffset({type:j.DISCONNECT_SOCKETS,data:{opts:ii(n),close:i}})}catch(a){D("[%s] error while publishing message: %s",this.uid,a.message)}super.disconnectSockets(n,i)}async fetchSockets(n){var i;const[o,e]=await Promise.all([super.fetchSockets(n),this.serverCount()]),a=e-1;if(((i=n.flags)===null||i===void 0?void 0:i.local)||a<=0)return o;const t=Si();return new Promise((s,c)=>{const l=setTimeout(()=>{const p=this.requests.get(t);if(p)c(new Error(`timeout reached: only ${p.current} responses received out of ${p.expected}`)),this.requests.delete(t)},n.flags.timeout||$o),r={type:j.FETCH_SOCKETS,resolve:s,timeout:l,current:0,expected:a,responses:o};this.requests.set(t,r),this.publish({type:j.FETCH_SOCKETS,data:{opts:ii(n),requestId:t}})})}async serverSideEmit(n){if(typeof n[n.length-1]!=="function")return this.publish({type:j.SERVER_SIDE_EMIT,data:{packet:n}});const o=n.pop(),e=await this.serverCount()-1;if(D('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,e),e<=0)return o(null,[]);const a=Si(),t=setTimeout(()=>{const c=this.requests.get(a);if(c)o(new Error(`timeout reached: only ${c.current} responses received out of ${c.expected}`),c.responses),this.requests.delete(a)},$o),s={type:j.SERVER_SIDE_EMIT,resolve:o,timeout:t,current:0,expected:e,responses:[]};this.requests.set(a,s),this.publish({type:j.SERVER_SIDE_EMIT,data:{requestId:a,packet:n}})}publish(n){this.publishAndReturnOffset(n).catch((i)=>{D("[%s] error while publishing message: %s",this.uid,i)})}publishAndReturnOffset(n){return n.uid=this.uid,n.nsp=this.nsp.name,this.doPublish(n)}publishResponse(n,i){i.uid=this.uid,i.nsp=this.nsp.name,this.doPublishResponse(n,i).catch((o)=>{D("[%s] error while publishing response: %s",this.uid,o)})}}An.ClusterAdapter=Ne;class al extends Ne{constructor(n,i){super(n);this.nodesMap=new Map,this.customRequests=new Map,this._opts=Object.assign({heartbeatInterval:5000,heartbeatTimeout:1e4},i),this.cleanupTimer=setInterval(()=>{const o=Date.now();this.nodesMap.forEach((e,a)=>{if(o-e>this._opts.heartbeatTimeout)D("[%s] node %s seems down",this.uid,a),this.removeNode(a)})},1000)}init(){this.publish({type:j.INITIAL_HEARTBEAT})}scheduleHeartbeat(){if(this.heartbeatTimer)this.heartbeatTimer.refresh();else this.heartbeatTimer=setTimeout(()=>{this.publish({type:j.HEARTBEAT})},this._opts.heartbeatInterval)}close(){if(this.publish({type:j.ADAPTER_CLOSE}),clearTimeout(this.heartbeatTimer),this.cleanupTimer)clearInterval(this.cleanupTimer)}onMessage(n,i){if(n.uid===this.uid)return D("[%s] ignore message from self",this.uid);if(n.uid&&n.uid!==px)this.nodesMap.set(n.uid,Date.now());switch(D("[%s] new event of type %d from %s",this.uid,n.type,n.uid),n.type){case j.INITIAL_HEARTBEAT:this.publish({type:j.HEARTBEAT});break;case j.HEARTBEAT:break;case j.ADAPTER_CLOSE:this.removeNode(n.uid);break;default:super.onMessage(n,i)}}serverCount(){return Promise.resolve(1+this.nodesMap.size)}publish(n){return this.scheduleHeartbeat(),super.publish(n)}async serverSideEmit(n){if(typeof n[n.length-1]!=="function")return this.publish({type:j.SERVER_SIDE_EMIT,data:{packet:n}});const o=n.pop(),e=this.nodesMap.size;if(D('[%s] waiting for %d responses to "serverSideEmit" request',this.uid,e),e<=0)return o(null,[]);const a=Si(),t=setTimeout(()=>{const c=this.customRequests.get(a);if(c)o(new Error(`timeout reached: missing ${c.missingUids.size} responses`),c.responses),this.customRequests.delete(a)},$o),s={type:j.SERVER_SIDE_EMIT,resolve:o,timeout:t,missingUids:new Set([...this.nodesMap.keys()]),responses:[]};this.customRequests.set(a,s),this.publish({type:j.SERVER_SIDE_EMIT,data:{requestId:a,packet:n}})}async fetchSockets(n){var i;const[o,e]=await Promise.all([super.fetchSockets({rooms:n.rooms,except:n.except,flags:{local:!0}}),this.serverCount()]),a=e-1;if(((i=n.flags)===null||i===void 0?void 0:i.local)||a<=0)return o;const t=Si();return new Promise((s,c)=>{const l=setTimeout(()=>{const p=this.customRequests.get(t);if(p)c(new Error(`timeout reached: missing ${p.missingUids.size} responses`)),this.customRequests.delete(t)},n.flags.timeout||$o),r={type:j.FETCH_SOCKETS,resolve:s,timeout:l,missingUids:new Set([...this.nodesMap.keys()]),responses:o};this.customRequests.set(t,r),this.publish({type:j.FETCH_SOCKETS,data:{opts:ii(n),requestId:t}})})}onResponse(n){const i=n.data.requestId;switch(D("[%s] received response %s to request %s",this.uid,n.type,i),n.type){case j.FETCH_SOCKETS_RESPONSE:{const o=this.customRequests.get(i);if(!o)return;if(n.data.sockets.forEach((e)=>o.responses.push(e)),o.missingUids.delete(n.uid),o.missingUids.size===0)clearTimeout(o.timeout),o.resolve(o.responses),this.customRequests.delete(i);break}case j.SERVER_SIDE_EMIT_RESPONSE:{const o=this.customRequests.get(i);if(!o)return;if(o.responses.push(n.data.packet),o.missingUids.delete(n.uid),o.missingUids.size===0)clearTimeout(o.timeout),o.resolve(null,o.responses),this.customRequests.delete(i);break}default:super.onResponse(n)}}removeNode(n){this.customRequests.forEach((i,o)=>{if(i.missingUids.delete(n),i.missingUids.size===0){if(clearTimeout(i.timeout),i.type===j.FETCH_SOCKETS)i.resolve(i.responses);else if(i.type===j.SERVER_SIDE_EMIT)i.resolve(null,i.responses);this.customRequests.delete(o)}}),this.nodesMap.delete(n)}}An.ClusterAdapterWithHeartbeat=al});var jo=A((oi)=>{Object.defineProperty(oi,"__esModule",{value:!0});oi.MessageType=oi.ClusterAdapterWithHeartbeat=oi.ClusterAdapter=oi.SessionAwareAdapter=oi.Adapter=void 0;var sl=He();Object.defineProperty(oi,"Adapter",{enumerable:!0,get:function(){return sl.Adapter}});Object.defineProperty(oi,"SessionAwareAdapter",{enumerable:!0,get:function(){return sl.SessionAwareAdapter}});var De=tl();Object.defineProperty(oi,"ClusterAdapter",{enumerable:!0,get:function(){return De.ClusterAdapter}});Object.defineProperty(oi,"ClusterAdapterWithHeartbeat",{enumerable:!0,get:function(){return De.ClusterAdapterWithHeartbeat}});Object.defineProperty(oi,"MessageType",{enumerable:!0,get:function(){return De.MessageType}})});var pl=A((wi)=>{var ux=wi&&wi.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(wi,"__esModule",{value:!0});wi.ParentNamespace=void 0;var cl=Xe(),xx=jo(),dx=ux(q()),ll=dx.default("socket.io:parent-namespace");class ko extends cl.Namespace{constructor(n){super(n,"/_"+ko.count++);this.children=new Set}_initAdapter(){this.adapter=new rl(this,this.children)}emit(n,...i){return this.children.forEach((o)=>{o.emit(n,...i)}),!0}createChild(n){ll("creating child namespace %s",n);const i=new cl.Namespace(this.server,n);if(i._fns=this._fns.slice(0),this.listeners("connect").forEach((o)=>i.on("connect",o)),this.listeners("connection").forEach((o)=>i.on("connection",o)),this.children.add(i),this.server._opts.cleanupEmptyChildNamespaces){const o=i._remove;i._remove=(e)=>{if(o.call(i,e),i.sockets.size===0)ll("closing child namespace %s",n),i.adapter.close(),this.server._nsps.delete(i.name),this.children.delete(i)}}return this.server._nsps.set(n,i),this.server.sockets.emitReserved("new_namespace",i),i}fetchSockets(){throw new Error("fetchSockets() is not supported on parent namespaces")}}wi.ParentNamespace=ko;ko.count=0;class rl extends xx.Adapter{constructor(n,i){super(n);this.children=i}broadcast(n,i){this.children.forEach((o)=>{o.adapter.broadcast(n,i)})}}});var yl=A((Mn)=>{function vx(n){ei.Adapter.prototype.addAll=function(i,o){const e=!this.sids.has(i);xl.call(this,i,o);const a=this.nsp.sockets.get(i);if(!a)return;if(a.conn.transport.name==="websocket"){ul(this.nsp.name,a,e,o);return}if(e)a.conn.on("upgrade",()=>{const t=this.sids.get(i);if(t)ul(this.nsp.name,a,e,t)})},ei.Adapter.prototype.del=function(i,o){dl.call(this,i,o);const e=this.nsp.sockets.get(i);if(e&&e.conn.transport.name==="websocket"){const a=e.conn.id,t=e.conn.transport.socket,s=`${this.nsp.name}${Le}${o}`;Oo("unsubscribe connection %s from topic %s",a,s),t.unsubscribe(s)}},ei.Adapter.prototype.broadcast=function(i,o){if(!(o.rooms.size<=1&&o.except.size===0)){fl.call(this,i,o);return}const a=o.flags||{},t={preEncoded:!0,volatile:a.volatile,compress:a.compress};i.nsp=this.nsp.name;const s=this.encoder.encode(i),c=o.rooms.size===0?this.nsp.name:`${this.nsp.name}${Le}${o.rooms.keys().next().value}`;Oo("fast publish to %s",c),s.forEach((l)=>{const r=typeof l!=="string";n.publish(c,r?l:"4"+l,r)}),this.apply(o,(l)=>{if(l.conn.transport.name!=="websocket")l.client.writeToEngine(s,t)})}}function ul(n,i,o,e){const a=i.conn.id,t=i.conn.transport.socket;if(o)Oo("subscribe connection %s to topic %s",a,n),t.subscribe(n);e.forEach((s)=>{const c=`${n}${Le}${s}`;Oo("subscribe connection %s to topic %s",a,c),t.subscribe(c)})}function bx(){ei.Adapter.prototype.addAll=xl,ei.Adapter.prototype.del=dl,ei.Adapter.prototype.broadcast=fl}function Sx(n,i){const{size:o}=ml.statSync(i),e=ml.createReadStream(i),a=()=>!e.destroyed&&e.destroy(),t=(c)=>{throw a(),c},s=(c)=>{const l=Tx(c),r=n.getWriteOffset(),[p,m]=n.tryEnd(l,o);if(!m&&!p)e.pause(),n.onWritable((T)=>{const[R,y]=n.tryEnd(l.slice(T-r),o);if(!y&&R)e.resume();return R})};n.onAborted(a),e.on("data",s).on("error",t).on("end",a)}var fx=Mn&&Mn.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Mn,"__esModule",{value:!0});Mn.serveFile=Mn.restoreAdapter=Mn.patchAdapter=void 0;var ei=jo(),ml=import.meta.require("fs"),yx=fx(q()),Oo=yx.default("socket.io:adapter-uws"),Le="\x1F",{addAll:xl,del:dl,broadcast:fl}=ei.Adapter.prototype;Mn.patchAdapter=vx;Mn.restoreAdapter=bx;var Tx=(n)=>{const{buffer:i,byteOffset:o,byteLength:e}=n;return i.slice(o,o+e)};Mn.serveFile=Sx});var vl=A((Qh,wx)=>{wx.exports={name:"socket.io",version:"4.7.5",description:"node.js realtime framework server",keywords:["realtime","framework","websocket","tcp","events","socket","io"],files:["dist/","client-dist/","wrapper.mjs","!**/*.tsbuildinfo"],directories:{doc:"docs/",example:"example/",lib:"lib/",test:"test/"},type:"commonjs",main:"./dist/index.js",exports:{types:"./dist/index.d.ts",import:"./wrapper.mjs",require:"./dist/index.js"},types:"./dist/index.d.ts",license:"MIT",repository:{type:"git",url:"git://github.com/socketio/socket.io"},scripts:{compile:"rimraf ./dist && tsc",test:"npm run format:check && npm run compile && npm run test:types && npm run test:unit","test:types":"tsd","test:unit":"nyc mocha --require ts-node/register --reporter spec --slow 200 --bail --timeout 10000 test/index.ts","format:check":"prettier --check \"lib/**/*.ts\" \"test/**/*.ts\"","format:fix":"prettier --write \"lib/**/*.ts\" \"test/**/*.ts\"",prepack:"npm run compile"},dependencies:{accepts:"~1.3.4",base64id:"~2.0.0",cors:"~2.8.5",debug:"~4.3.2","engine.io":"~6.5.2","socket.io-adapter":"~2.5.2","socket.io-parser":"~4.2.4"},devDependencies:{"@types/mocha":"^9.0.0","expect.js":"0.3.1",mocha:"^10.0.0",nyc:"^15.1.0",prettier:"^2.3.2",rimraf:"^3.0.2","socket.io-client":"4.7.5","socket.io-client-v2":"npm:socket.io-client@^2.4.0",superagent:"^8.0.0",supertest:"^6.1.6","ts-node":"^10.2.1",tsd:"^0.27.0",typescript:"^4.4.2","uWebSockets.js":"github:uNetworking/uWebSockets.js#v20.30.0"},contributors:[{name:"Guillermo Rauch",email:"rauchg@gmail.com"},{name:"Arnout Kazemier",email:"info@3rd-eden.com"},{name:"Vladimir Dronnikov",email:"dronnikov@gmail.com"},{name:"Einar Otto Stangvik",email:"einaros@gmail.com"}],engines:{node:">=10.2.0"},tsd:{directory:"test"}}});var Kl=A((en,Zi)=>{var __dirname="/home/runner/work/wayforge/wayforge/node_modules/.pnpm/socket.io@4.7.5/node_modules/socket.io/dist",gx=en&&en.__createBinding||(Object.create?function(n,i,o,e){if(e===void 0)e=o;var a=Object.getOwnPropertyDescriptor(i,o);if(!a||("get"in a?!i.__esModule:a.writable||a.configurable))a={enumerable:!0,get:function(){return i[o]}};Object.defineProperty(n,e,a)}:function(n,i,o,e){if(e===void 0)e=o;n[e]=i[o]}),Fx=en&&en.__setModuleDefault||(Object.create?function(n,i){Object.defineProperty(n,"default",{enumerable:!0,value:i})}:function(n,i){n.default=i}),hx=en&&en.__importStar||function(n){if(n&&n.__esModule)return n;var i={};if(n!=null){for(var o in n)if(o!=="default"&&Object.prototype.hasOwnProperty.call(n,o))gx(i,n,o)}return Fx(i,n),i},hl=en&&en.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(en,"__esModule",{value:!0});en.Namespace=en.Socket=en.Server=void 0;var Ax=import.meta.require("http"),Kx=import.meta.require("fs"),Pe=import.meta.require("zlib"),Rx=ro(),zo=import.meta.require("stream"),bl=import.meta.require("path"),Tl=fc(),Mx=Cc(),Sl=import.meta.require("events"),qe=Xe();Object.defineProperty(en,"Namespace",{enumerable:!0,get:function(){return qe.Namespace}});var Jx=pl(),wl=jo(),$x=hx(Xi()),jx=hl(q()),Al=Gi();Object.defineProperty(en,"Socket",{enumerable:!0,get:function(){return Al.Socket}});var kx=Ro(),_e=yl(),Ox=hl(ze()),ln=jx.default("socket.io:server"),gl=vl().version,Fl=/\.map/;class gi extends kx.StrictEventEmitter{constructor(n,i={}){super();if(this._nsps=new Map,this.parentNsps=new Map,this.parentNamespacesFromRegExp=new Map,typeof n==="object"&&n instanceof Object&&!n.listen)i=n,n=void 0;if(this.path(i.path||"/socket.io"),this.connectTimeout(i.connectTimeout||45000),this.serveClient(i.serveClient!==!1),this._parser=i.parser||$x,this.encoder=new this._parser.Encoder,this.opts=i,i.connectionStateRecovery)i.connectionStateRecovery=Object.assign({maxDisconnectionDuration:120000,skipMiddlewares:!0},i.connectionStateRecovery),this.adapter(i.adapter||wl.SessionAwareAdapter);else this.adapter(i.adapter||wl.Adapter);if(i.cleanupEmptyChildNamespaces=!!i.cleanupEmptyChildNamespaces,this.sockets=this.of("/"),n||typeof n=="number")this.attach(n);if(this.opts.cors)this._corsMiddleware=Ox.default(this.opts.cors)}get _opts(){return this.opts}serveClient(n){if(!arguments.length)return this._serveClient;return this._serveClient=n,this}_checkNamespace(n,i,o){if(this.parentNsps.size===0)return o(!1);const e=this.parentNsps.keys(),a=()=>{const t=e.next();if(t.done)return o(!1);t.value(n,i,(s,c)=>{if(s||!c)return a();if(this._nsps.has(n))return ln("dynamic namespace %s already exists",n),o(this._nsps.get(n));const l=this.parentNsps.get(t.value).createChild(n);ln("dynamic namespace %s was created",n),o(l)})};a()}path(n){if(!arguments.length)return this._path;this._path=n.replace(/\/$/,"");const i=this._path.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");return this.clientPathRegex=new RegExp("^"+i+"/socket\\.io(\\.msgpack|\\.esm)?(\\.min)?\\.js(\\.map)?(?:\\?|$)"),this}connectTimeout(n){if(n===void 0)return this._connectTimeout;return this._connectTimeout=n,this}adapter(n){if(!arguments.length)return this._adapter;this._adapter=n;for(let i of this._nsps.values())i._initAdapter();return this}listen(n,i={}){return this.attach(n,i)}attach(n,i={}){if(typeof n=="function")throw new Error("You are trying to attach socket.io to an express request handler function. Please pass a http.Server instance.");if(Number(n)==n)n=Number(n);if(typeof n=="number"){ln("creating http server and binding to %d",n);const o=n;n=Ax.createServer((e,a)=>{a.writeHead(404),a.end()}),n.listen(o)}return Object.assign(i,this.opts),i.path=i.path||this._path,this.initEngine(n,i),this}attachApp(n,i={}){Object.assign(i,this.opts),i.path=i.path||this._path,ln("creating uWebSockets.js-based engine with opts %j",i);const o=new Tl.uServer(i);if(o.attach(n,i),this.bind(o),this._serveClient)n.get(`${this._path}/*`,(e,a)=>{if(!this.clientPathRegex.test(a.getUrl())){a.setYield(!0);return}const t=a.getUrl().replace(this._path,"").replace(/\?.*$/,"").replace(/^\//,""),s=Fl.test(t),c=s?"map":"source",l='"'+gl+'"',r="W/"+l,p=a.getHeader("if-none-match");if(p){if(l===p||r===p){ln("serve client %s 304",c),e.writeStatus("304 Not Modified"),e.end();return}}ln("serve client %s",c),e.writeHeader("cache-control","public, max-age=0"),e.writeHeader("content-type","application/"+(s?"json":"javascript")+"; charset=utf-8"),e.writeHeader("etag",l);const m=bl.join(__dirname,"../client-dist/",t);_e.serveFile(e,m)});_e.patchAdapter(n)}initEngine(n,i){if(ln("creating engine.io instance with opts %j",i),this.eio=Tl.attach(n,i),this._serveClient)this.attachServe(n);this.httpServer=n,this.bind(this.eio)}attachServe(n){ln("attaching client serving req handler");const i=n.listeners("request").slice(0);n.removeAllListeners("request"),n.on("request",(o,e)=>{if(this.clientPathRegex.test(o.url))if(this._corsMiddleware)this._corsMiddleware(o,e,()=>{this.serve(o,e)});else this.serve(o,e);else for(let a=0;a<i.length;a++)i[a].call(n,o,e)})}serve(n,i){const o=n.url.replace(this._path,"").replace(/\?.*$/,""),e=Fl.test(o),a=e?"map":"source",t='"'+gl+'"',s="W/"+t,c=n.headers["if-none-match"];if(c){if(t===c||s===c){ln("serve client %s 304",a),i.writeHead(304),i.end();return}}ln("serve client %s",a),i.setHeader("Cache-Control","public, max-age=0"),i.setHeader("Content-Type","application/"+(e?"json":"javascript")+"; charset=utf-8"),i.setHeader("ETag",t),gi.sendFile(o,n,i)}static sendFile(n,i,o){const e=Kx.createReadStream(bl.join(__dirname,"../client-dist/",n)),a=Rx(i).encodings(["br","gzip","deflate"]),t=(s)=>{if(s)o.end()};switch(a){case"br":o.writeHead(200,{"content-encoding":"br"}),zo.pipeline(e,Pe.createBrotliCompress(),o,t);break;case"gzip":o.writeHead(200,{"content-encoding":"gzip"}),zo.pipeline(e,Pe.createGzip(),o,t);break;case"deflate":o.writeHead(200,{"content-encoding":"deflate"}),zo.pipeline(e,Pe.createDeflate(),o,t);break;default:o.writeHead(200),zo.pipeline(e,o,t)}}bind(n){return this.engine=n,this.engine.on("connection",this.onconnection.bind(this)),this}onconnection(n){ln("incoming connection with id %s",n.id);const i=new Mx.Client(this,n);if(n.protocol===3)i.connect("/");return this}of(n,i){if(typeof n==="function"||n instanceof RegExp){const e=new Jx.ParentNamespace(this);if(ln("initializing parent namespace %s",e.name),typeof n==="function")this.parentNsps.set(n,e);else this.parentNsps.set((a,t,s)=>s(null,n.test(a)),e),this.parentNamespacesFromRegExp.set(n,e);if(i)e.on("connect",i);return e}if(String(n)[0]!=="/")n="/"+n;let o=this._nsps.get(n);if(!o){for(let[e,a]of this.parentNamespacesFromRegExp)if(e.test(n))return ln("attaching namespace %s to parent namespace %s",n,e),a.createChild(n);if(ln("initializing namespace %s",n),o=new qe.Namespace(this,n),this._nsps.set(n,o),n!=="/")this.sockets.emitReserved("new_namespace",o)}if(i)o.on("connect",i);return o}close(n){if(this._nsps.forEach((i)=>{i.sockets.forEach((o)=>{o._onclose("server shutting down")}),i.adapter.close()}),this.engine.close(),_e.restoreAdapter(),this.httpServer)this.httpServer.close(n);else n&&n()}use(n){return this.sockets.use(n),this}to(n){return this.sockets.to(n)}in(n){return this.sockets.in(n)}except(n){return this.sockets.except(n)}send(...n){return this.sockets.emit("message",...n),this}write(...n){return this.sockets.emit("message",...n),this}serverSideEmit(n,...i){return this.sockets.serverSideEmit(n,...i)}serverSideEmitWithAck(n,...i){return this.sockets.serverSideEmitWithAck(n,...i)}allSockets(){return this.sockets.allSockets()}compress(n){return this.sockets.compress(n)}get volatile(){return this.sockets.volatile}get local(){return this.sockets.local}timeout(n){return this.sockets.timeout(n)}fetchSockets(){return this.sockets.fetchSockets()}socketsJoin(n){return this.sockets.socketsJoin(n)}socketsLeave(n){return this.sockets.socketsLeave(n)}disconnectSockets(n=!1){return this.sockets.disconnectSockets(n)}}en.Server=gi;var zx=Object.keys(Sl.EventEmitter.prototype).filter(function(n){return typeof Sl.EventEmitter.prototype[n]==="function"});zx.forEach(function(n){gi.prototype[n]=function(){return this.sockets[n].apply(this.sockets,arguments)}});Zi.exports=(n,i)=>new gi(n,i);Zi.exports.Server=gi;Zi.exports.Namespace=qe.Namespace;Zi.exports.Socket=Al.Socket;var Hh=Gi()});import*as Ol from"http";function ai(n=Math.random){return n().toString(36).slice(2)}class Ai extends Promise{fate;resolve;reject;done=!1;constructor(n){let i,o;super((e,a)=>{i=e,o=a});this.resolve=i,this.reject=o,this.use(n instanceof Promise?n:new Promise(n))}pass(n,i){if(n===this.fate)this.resolve(i),this.done=!0}fail(n,i){if(n===this.fate)this.reject(i),this.done=!0}use(n){if(n instanceof Promise){const i=n;this.fate=i,i.then((o)=>{this.pass(i,o)},(o)=>{this.fail(i,o)})}else this.resolve(n),this.fate=void 0}}var ta=(n,i,o=J.STORE)=>{return Ki(o,{key:`${n.key}:JSON`,get:({get:e})=>i.toJson(e(n)),set:({set:e},a)=>{e(n,i.fromJson(a))}})};function f(n){while(n.child!==null)n=n.child;return n}function sa(n){while(n.parent!==null)n=n.parent;return n}class z{Subscriber;subscribers=new Map;subscribe(n,i){return this.subscribers.set(n,i),()=>{this.unsubscribe(n)}}unsubscribe(n){this.subscribers.delete(n)}next(n){const i=this.subscribers.values();for(let o of i)o(n)}}class Wo extends z{state;constructor(n){super();this.state=n}next(n){this.state=n,super.next(n)}}function Cn(n,i,o){const e={key:i.key,type:"atom_family"},a=n.families.get(i.key);if(a)n.logger.error("\u2757","atom_family",i.key,`Overwriting an existing ${Sn(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const t=new z,c=Object.assign((l)=>{const r=k(l),p={key:i.key,subKey:r},m=`${i.key}(${r})`,T=f(n),R=i.default,y={key:m,default:R instanceof Function?R(l):R};if(i.effects)y.effects=i.effects(l);const v=Wn(T,y,p);return t.next({type:"state_creation",token:v}),v},e,{subject:t,install:(l)=>Cn(l,i),internalRoles:o});return n.families.set(i.key,c),n.defaults.set(i.key,i.default),e}function ca(n,i){if("mutable"in i)return Ri(n,i);return Cn(n,i)}function In(n,i,o){const e={key:i.key,type:"readonly_selector_family"},a=n.families.get(i.key);if(a)n.logger.error("\u2757","readonly_selector_family",i.key,`Overwriting an existing ${Sn(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const t=new z,c=Object.assign((l)=>{const r=k(l),p={key:i.key,subKey:r},m=`${i.key}(${r})`,T=f(n),R=Mi(T,{key:m,get:i.get(l)},p);return t.next({type:"state_creation",token:R}),R},e,{internalRoles:o,subject:t,install:(l)=>In(l,i),default:(l)=>{return i.get(l)({get:(...p)=>E(n,...p),find:(p,m)=>I(n,p,m),seek:(p,m)=>G(n,p,m),json:(p)=>L(n,p)})}});return n.families.set(i.key,c),e}function Io(n,i){if("set"in i)return Ji(n,i);return In(n,i)}function ti(n,i){const o=k(i),e=`${n.key}(${o})`,a=Yl[n.type],t={key:e,type:a};if(a==="molecule")Object.assign(t,{key:i,family:n});else Object.assign(t,{family:{key:n.key,subKey:o}});return Object.assign(t,{counterfeit:!0}),t}var Yl={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function dn(n){const i={key:n.key,type:n.type};if("family"in n)i.family=n.family;return i}class pn{a;b;cardinality;relations=new Map;contents=new Map;isContent;makeContentKey=(n,i)=>`${n}:${i}`;warn;getRelatedKeys(n){return this.relations.get(n)}addRelation(n,i){let o=this.relations.get(n),e=this.relations.get(i);if(o)o.add(i);else o=new Set([i]),this.relations.set(n,o);if(e)e.add(n);else e=new Set([n]),this.relations.set(i,e)}deleteRelation(n,i){const o=this.relations.get(n);if(o){if(o.delete(i),o.size===0)this.relations.delete(n);const e=this.relations.get(i);if(e){if(e.delete(n),e.size===0)this.relations.delete(i)}}}replaceRelationsUnsafely(n,i){this.relations.set(n,new Set(i));for(let o of i){const e=new Set([n]);this.relations.set(o,e)}}replaceRelationsSafely(n,i){const o=this.relations.get(n);if(o)for(let e of o){const a=this.relations.get(e);if(a){if(a.size===1)this.relations.delete(e);else a.delete(n);this.contents.delete(this.makeContentKey(n,e))}}this.relations.set(n,new Set(i));for(let e of i){let a=this.relations.get(e);if(a)a.add(n);else a=new Set([n]),this.relations.set(e,a)}}getContentInternal(n){return this.contents.get(n)}setContent(n,i){this.contents.set(n,i)}deleteContent(n){this.contents.delete(n)}constructor(n,i){if(this.a=n.between[0],this.b=n.between[1],this.cardinality=n.cardinality,!i?.externalStore)this.relations=new Map(n.relations?.map(([o,e])=>[o,new Set(e)])),this.contents=new Map(n.contents);if(this.isContent=i?.isContent??null,i?.makeContentKey)this.makeContentKey=i.makeContentKey;if(i?.externalStore){const o=i.externalStore;if(this.has=(e,a)=>o.has(e,a),this.addRelation=(e,a)=>{o.addRelation(e,a)},this.deleteRelation=(e,a)=>{o.deleteRelation(e,a)},this.replaceRelationsSafely=(e,a)=>{o.replaceRelationsSafely(e,a)},this.replaceRelationsUnsafely=(e,a)=>{o.replaceRelationsUnsafely(e,a)},this.getRelatedKeys=(e)=>o.getRelatedKeys(e),o.getContent)this.getContentInternal=(e)=>{return o.getContent(e)},this.setContent=(e,a)=>{o.setContent(e,a)},this.deleteContent=(e)=>{o.deleteContent(e)};for(let[e,a]of n.relations??[])for(let t of a)this.addRelation(e,t);for(let[e,a]of n.contents??[])this.setContent(e,a)}if(i?.warn)this.warn=i.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([n,i])=>[n,[...i]]),contents:[...this.contents.entries()]}}set(n,...i){const o=typeof i[0]==="string"?i[0]:n[this.b],e=i[1]??typeof i[0]==="string"?void 0:i[0];switch(n=typeof n==="string"?n:n[this.a],this.cardinality){case"1:1":{const a=this.getRelatedKey(n);if(a&&a!==o)this.delete(a,n)}case"1:n":{const a=this.getRelatedKey(o);if(a&&a!==n)this.delete(a,o)}}if(e){const a=this.makeContentKey(n,o);this.setContent(a,e)}return this.addRelation(n,o),this}delete(n,i){i=typeof i==="string"?i:n[this.b];const o=typeof n==="string"?n:n[this.a];if(o===void 0&&typeof i==="string"){const e=this.getRelatedKeys(i);if(e)for(let a of e)this.delete(a,i)}if(typeof o==="string"&&i===void 0){const e=this.getRelatedKeys(o);if(e)for(let a of e)this.delete(o,a)}if(typeof o==="string"&&typeof i==="string"){this.deleteRelation(o,i);const e=this.makeContentKey(o,i);this.deleteContent(e)}return this}getRelatedKey(n){const i=this.getRelatedKeys(n);if(i){if(i.size>1)this.warn?.(`${i.size} related keys were found for key "${n}": (${[...i].map((o)=>`"${o}"`).join(", ")}). Only one related key was expected.`);for(let o of i)return o}}replaceRelations(n,i,o){const e=!Array.isArray(i),a=e?Object.keys(i):i;if(o?.reckless)this.replaceRelationsUnsafely(n,a);else this.replaceRelationsSafely(n,a);if(e)for(let t of a){const s=this.makeContentKey(n,t),c=i[t];this.setContent(s,c)}return this}getContent(n,i){const o=this.makeContentKey(n,i);return this.getContentInternal(o)}getRelationEntries(n){const i=n[this.a],o=n[this.b];if(i!==void 0&&o===void 0){const e=this.getRelatedKeys(i);if(e)return[...e].map((a)=>{return[a,this.getContent(i,a)??null]})}if(i===void 0&&o!==void 0){const e=this.getRelatedKeys(o);if(e)return[...e].map((a)=>{return[a,this.getContent(a,o)??null]})}return[]}has(n,i){if(i)return this.getRelatedKeys(n)?.has(i)??!1;return this.relations.has(n)}}function N(n){return"epoch"in n.transactionMeta}function V(n){return"phase"in n.transactionMeta}var la=(n)=>{const i=f(n);if(!V(i)){n.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}n.logger.info("\uD83E\uDE82","transaction",i.transactionMeta.update.key,"Aborting transaction"),i.parent.child=null};function Sn(n){return n.type.split("_").map(Bl).join(" ")}var Bl=(n)=>n[0].toUpperCase()+n.slice(1);class cn extends Error{constructor(...n){const i=n[0],o=n.length===2?n[1]:n[2];if(n.length===2)super(`${Sn(i)} ${k(i.key)} not found in store "${o.config.name}".`);else{const e=n[1];super(`${Sn(i)} "${i.key}" member ${k(e)} not found in store "${o.config.name}".`)}}}function En(n,i,o){return(...e)=>{const a=M(n,o);if(a)return a.run(e,i);throw new cn(n,o)}}var Qi=(n)=>(i)=>n instanceof Function?n(i):n;var Vn=(n,i)=>{if(i.valueMap.has(n.key))return i.logger.info("\uD83D\uDCD6",n.type,n.key,"reading cached value"),ra(n,i);if(n.type==="selector"||n.type==="readonly_selector")return i.logger.info("\uD83E\uDDEE",n.type,n.key,"computing value"),n.get();const o=n.default instanceof Function?n.default():n.default;return i.logger.info("\uD83D\uDC81","atom",n.key,"could not find cached value; using default",o),n.default instanceof Function?n.default():n.default};var pa=(n,i)=>{if(n.operation.open){const o=performance.now();return n.logger.info("\u2757",i.type,i.key,`deferring setState at T-${o} until setState for "${n.operation.token.key}" is done`),o}n.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:i},n.logger.info("\u2B55",i.type,i.key,`operation start in store "${n.config.name}"${!V(n)?"":` ${n.transactionMeta.phase} "${n.transactionMeta.update.key}"`}`)},ma=(n)=>{if(n.operation.open)n.logger.info("\uD83D\uDD34",n.operation.token.type,n.operation.token.key,`operation done in store "${n.config.name}"`);n.operation={open:!1},n.on.operationClose.next(n.operation)},ua=(n,i)=>{if(!n.operation.open)return n.logger.error("\uD83D\uDC1E","unknown",i,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return n.operation.done.has(i)},si=(n,i)=>{if(!n.operation.open){n.logger.error("\uD83D\uDC1E","unknown",i,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}n.operation.done.add(i)};var xa=(n,i,o)=>{switch(n.type){case"mutable_atom":o.logger.info("\uD83D\uDCE2",n.type,n.key,"is now (",i.newValue,") subscribers:",n.subject.subscribers);break;default:o.logger.info("\uD83D\uDCE2",n.type,n.key,"went (",i.oldValue,"->",i.newValue,") subscribers:",n.subject.subscribers)}n.subject.next(i)};var Eo=(n,i)=>{const o=f(i),e=o.selectorAtoms.getRelatedKeys(n.key);if(o.logger.info("\uD83E\uDDF9",n.type,n.key,e?`evicting ${e.size} states downstream:`:"no downstream states",e??"to evict"),e){if(o.operation.open)o.logger.info("\uD83E\uDDF9",n.type,n.key,`[ ${[...o.operation.done].join(", ")} ] already done`);for(let a of e){if(ua(o,a))continue;da(a,o),si(o,a)}}};function Xl(n,i){if(ya(i.newValue))return!1;if(n.includes("\uD83D\uDD0D"))return!1;return!0}var fa=(n,i,o)=>{const{key:e}=n,a=f(o);if(!V(a)||a.transactionMeta.phase!=="building"){o.logger.error("\uD83D\uDC1E","atom",e,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!Xl(e,i))return;const s={type:"atom_update",key:e,...i};if(n.family)s.family=n.family;a.transactionMeta.update.updates.push(s),o.logger.info("\uD83D\uDCC1","atom",e,"stowed (",i.oldValue,"->",i.newValue,")")};var va=(n,i,o)=>{const e=Vn(n,o);let a=e;if(n.type==="mutable_atom"&&V(o)){const{parent:s}=o;a=$i(n,s,o)}if(a=Qi(i)(a),o.logger.info("\uD83D\uDCDD","atom",n.key,"set to",a),a=fn(n.key,a,n.subject,o),ba(n.key,o))Ta(n.key,o);si(o,n.key),Eo(n,o);const t={oldValue:e,newValue:a};if(N(o))xa(n,t,o);else if(o.parent){if(o.on.transactionApplying.state===null)fa(n,t,o);else if(n.key.startsWith("*")){const s=n.key.slice(1),c=o.atoms.get(s);let l=o.valueMap.get(s);if(c.type==="mutable_atom"&&V(o)){const{parent:p}=o;l=$i(c,p,o)}if(l.do(t.newValue)===null)Eo(c,o)}}};var Hi=(n,i,o)=>{switch(n.type){case"atom":case"mutable_atom":va(n,i,o);break;case"selector":n.set(i);break}};function Ni(n,i){if(i.family){const o=n.families.get(i.family.key);if(o)return o}}function U(n,...i){let o,e,a,t;if(i.length===2){if(o=i[0],t=i[1],e=Ni(n,o)??null,e)a=o.family?P(o.family.subKey):null,o=I(n,e,a)}else e=i[0],a=i[1],t=i[2],o=I(n,e,a);if("counterfeit"in o){const l=n.disposalTraces.buffer.find((r)=>r?.key===o.key);n.logger.error("\u274C",o.type,o.key,`could not be set because it was not found in the store "${n.config.name}".`,l?`This state was previously disposed:\n${l.trace}`:"No previous disposal trace was found.");return}const s=pa(n,o);if(s){const l=n.on.operationClose.subscribe(`waiting to set "${o.key}" at T-${s}`,()=>{l(),n.logger.info("\uD83D\uDFE2",o.type,o.key,`resuming deferred setState from T-${s}`),U(n,o,t)});return}const c=M(o,n);Hi(c,t,n),ma(n)}function Di(n,i,o){const{key:e,newValue:a,oldValue:t}=i,s=n==="newValue"?a:t,c={key:e,type:"atom"};if(i.family)Object.assign(c,{family:i.family});U(o,c,s)}function Sa(n,i){const o=new z,e={type:"molecule_family",key:i.key,dependsOn:i.dependsOn??"all"},a={...e,subject:o,new:i.new};return n.moleculeFamilies.set(i.key,a),e}function wn(n,i,o){const e=Jn(o,i,n.key);n.tokens.set(e.key,e);const a=V(o)&&o.transactionMeta.phase==="building",t=o.moleculeInProgress===n.key;if(!a&&!t)n.subject.next({type:"state_creation",token:e});return e}class _ extends Set{mode="record";subject=new z;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(n,i=0){super(n);if(n instanceof _)this.parent=n,this.cacheUpdateNumber=n.cacheUpdateNumber;if(i)this.cacheLimit=i,this.cache=new Array(i),this.subscribe("auto cache",(o)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=o})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(n){const i=new _(n.members,n.cacheLimit);return i.cache=n.cache,i.cacheIdx=n.cacheIdx,i.cacheUpdateNumber=n.cacheUpdateNumber,i}add(n){const i=super.add(n);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${k(n)}`);return i}clear(){const n=this.mode==="record"?[...this]:null;if(super.clear(),n)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(n)}`)}delete(n){const i=super.delete(n);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${k(n)}`);return i}parent;child=null;transactionUpdates=null;transaction(n){this.mode="transaction",this.transactionUpdates=[],this.child=new _(this);const i=this.child._subscribe("transaction",(o)=>{this.transactionUpdates?.push(o)});try{if(n(this.child)){for(let e of this.transactionUpdates)this.doStep(e);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(o){throw console.error("Failed to apply transaction to SetRTX:",o),o}finally{i(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(n,i){return this.subject.subscribe(n,i)}subscribe(n,i){return this.subject.subscribe(n,(o)=>{i(`${this.cacheUpdateNumber}=${o}`)})}emit(n){this.subject.next(n)}doStep(n){const i=n.indexOf(":"),o=n.substring(0,i),e=n.substring(i+1);switch(o){case"add":this.add(JSON.parse(e));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(e));break;case"tx":for(let a of e.split(";"))this.doStep(a)}}getUpdateNumber(n){const i=n.indexOf("=");return Number(n.substring(0,i))}do(n){const i=n.indexOf("="),o=Number(n.substring(0,i)),e=o-this.cacheUpdateNumber;if(e>0){if(e===1){this.mode="playback";const t=n.substring(i+1);return this.doStep(t),this.mode="record",this.cacheUpdateNumber=o,null}return this.cacheUpdateNumber+1}if(Math.abs(e)<this.cacheLimit){const t=this.cacheIdx+e;if(this.cache[t]===n)return null;this.mode="playback";let c=!1;while(!c){this.cacheIdx%=this.cacheLimit;const r=this.cache[this.cacheIdx];if(this.cacheIdx--,!r)return"OUT_OF_RANGE";this.undo(r),c=this.cacheIdx===t-1}const l=n.substring(i+1);return this.doStep(l),this.mode="record",this.cacheUpdateNumber=o,null}return"OUT_OF_RANGE"}undoStep(n){const i=n.indexOf(":"),o=n.substring(0,i),e=n.substring(i+1);switch(o){case"add":this.delete(JSON.parse(e));break;case"del":this.add(JSON.parse(e));break;case"clear":{const a=JSON.parse(e);for(let t of a)this.add(t);break}case"tx":{const a=e.split(";");for(let t=a.length-1;t>=0;t--)this.undoStep(a[t])}}}undo(n){const i=n.indexOf("=");if(Number(n.substring(0,i))===this.cacheUpdateNumber){this.mode="playback";const e=n.substring(i+1);return this.undoStep(e),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function Z(n){return n[0].toUpperCase()+n.slice(1)}function Li(n,i,o=J.STORE){return Vo(o).set(n.key,new Yo(n,i,o)),{key:n.key,type:"join",a:n.between[0],b:n.between[1],cardinality:n.cardinality}}function Vo(n){if("joins"in n&&n.joins instanceof Map)return n.joins;const i=new Map;return n.joins=i,i}function ji(n,i){const o=Vo(i);let e=o.get(n.key);if(e===void 0){if(e=Vo(J.STORE).get(n.key)?.in(i),e===void 0)throw new Error(`Join "${n.key}" not found in store "${i.config.name}"`);o.set(n.key,e)}return e}function ci(n,i,o){const e=ji(n,o);let a;switch(n.cardinality){case"1:1":{const t=`${n.a}KeyOf${Z(n.b)}`,s=`${n.b}KeyOf${Z(n.a)}`;a={get[t](){const l=e.states[t];return e.retrieve(l,i)},get[s](){const l=e.states[s];return e.retrieve(l,i)}};const c=`${n.a}EntryOf${Z(n.b)}`;if(c in e.states){const l=`${n.b}EntryOf${Z(n.a)}`;Object.assign(a,{get[c](){const r=e.states[c];return e.retrieve(r,i)},get[l](){const r=e.states[l];return e.retrieve(r,i)}})}break}case"1:n":{const t=`${n.a}KeyOf${Z(n.b)}`,s=`${n.b}KeysOf${Z(n.a)}`;a={get[t](){const l=e.states[t];return e.retrieve(l,i)},get[s](){const l=e.states[s];return e.retrieve(l,i)}};const c=`${n.a}EntryOf${Z(n.b)}`;if(c in e.states){const l=`${n.b}EntriesOf${Z(n.a)}`;Object.assign(a,{get[c](){const r=e.states[c];return e.retrieve(r,i)},get[l](){const r=e.states[l];return e.retrieve(r,i)}})}break}case"n:n":{const t=`${n.a}KeysOf${Z(n.b)}`,s=`${n.b}KeysOf${Z(n.a)}`;a={get[t](){const l=e.states[t];return e.retrieve(l,i)},get[s](){const l=e.states[s];return e.retrieve(l,i)}};const c=`${n.a}EntriesOf${Z(n.b)}`;if(c in e.states){const l=`${n.b}EntriesOf${Z(n.a)}`;Object.assign(a,{get[c](){const r=e.states[c];return e.retrieve(r,i)},get[l](){const r=e.states[l];return e.retrieve(r,i)}})}}}return a}function wa(n,i){return ci(n,i,J.STORE)}function Hn(n,i,o){const e=ji(n,o),a=f(o);if(V(a)){const{toolkit:t}=a.transactionMeta;e.transact(t,({relations:s})=>{i(s)})}else i(e.relations)}function Gl(n,i){return ji(n,i).core.findRelatedKeysState}function ga(n){return Gl(n,J.STORE)}class Yo{options;defaultContent;toolkit;retrieve;molecules=new Map;relations;states;core;transact(n,i){const o=this.toolkit;this.toolkit=n,i(this),this.toolkit=o}store;alternates;[Symbol.dispose](){this.alternates.delete(this.store.config.name)}in(n){const i=n.config.name,o=this.alternates.get(i);if(o)return o;const e=new Yo(this.options,this.defaultContent,n);return this.alternates.set(i,e),e.alternates=this.alternates,e}constructor(n,i,o=J.STORE){this.store=o,this.options=n,this.defaultContent=i,this.alternates=new Map,this.alternates.set(o.config.name,this),this.store.miscResources.set(`join:${n.key}`,this),this.retrieve=(x,d)=>{const h=this.toolkit.seek(x,d);if(h)return h;const w=this.molecules.get(k(d));if(w){const g=M(x,o);return wn(w,g,o)}if(o.config.lifespan==="immortal")throw new cn(x,d,o);return Jn(o,x,d)},this.toolkit={get:(...x)=>E(o,...x),set:(...x)=>{U(o,...x)},find:this.retrieve,seek:(...x)=>G(o,...x),json:(x)=>L(o,x),dispose:(...x)=>{an(o,...x)}};const e=n.between[0],a=n.between[1],t=Ri(o,{key:`${n.key}/relatedKeys`,default:()=>new _,mutable:!0,fromJson:(x)=>_.fromJSON(x),toJson:(x)=>x.toJSON()},["join","relations"]);this.core={findRelatedKeysState:t};const s=({get:x},d)=>x(this.retrieve(t,d)),c=(x,d,h)=>{const{set:w}=x,g=this.retrieve(t,d),F=this.retrieve(t,h);w(g,($)=>$.add(h)),w(F,($)=>$.add(d))},l=(x,d,h)=>{const{set:w}=x,g=this.retrieve(t,d),F=this.retrieve(t,h);let $,O;w(g,(X)=>{if(X.delete(h),X.size===0)$=`"${d}"`;return X}),w(F,(X)=>{if(X.delete(d),X.size===0)O=`"${h}"`;return X})},r=(x,d,h)=>{const{get:w,set:g}=x,F=this.retrieve(t,d),$=w(F);for(let O of $){if(h.includes(O))continue;const Tn=this.retrieve(t,O);g(Tn,(Kn)=>{return Kn.delete(d),Kn})}g(F,(O)=>{return O.transaction((X)=>{X.clear();for(let Tn of h){const Kn=s(x,Tn),oa=Kn.has(d);if(this.relations.cardinality==="1:n"){const ea=[];for(let Fi of Kn){if(Fi===d)continue;const hi=s(x,Fi);if(hi.delete(Tn),hi.size===0)ea.push(Fi)}if(!oa&&Kn.size>0)Kn.clear();for(let Fi of ea){const hi=[Tn,Fi].sort(),Cl=`"${hi[0]}:${hi[1]}"`;this.molecules.delete(Cl)}}if(!oa)Kn.add(d);X.add(Tn)}return!0}),O})},p=(x,d,h)=>{const{set:w}=x,g=this.retrieve(t,d);w(g,(F)=>{return F.transaction(($)=>{for(let O of h)$.add(O);return!0}),F});for(let F of h){const $=this.retrieve(t,F);w($,(O)=>{return O.add(d),O})}return!0},m=(x,d,h)=>{const w=s(x,d);return h?w.has(h):w.size>0},T={getRelatedKeys:(x)=>s(this.toolkit,x),addRelation:(x,d)=>{c(this.toolkit,x,d)},deleteRelation:(x,d)=>{l(this.toolkit,x,d)},replaceRelationsSafely:(x,d)=>{r(this.toolkit,x,d)},replaceRelationsUnsafely:(x,d)=>{p(this.toolkit,x,d)},has:(x,d)=>m(this.toolkit,x,d)};let R,y,v;if(i){y=Cn(o,{key:`${n.key}/content`,default:i},["join","content"]);const x={key:n.key,type:"join",a:n.between[0],b:n.between[1],cardinality:n.cardinality};v=Sa(o,{key:`${n.key}/content-molecules`,new:class F{O;constructor($,O){this.key=O}}});const d=({get:F},$)=>F(this.retrieve(y,$)),h=({set:F},$,O)=>{F(this.retrieve(y,$),O)},w=(F,$)=>{const O=o.molecules.get(`"${$}"`);if(O)this.toolkit.dispose(O),this.molecules.delete(`"${$}"`)};R=Object.assign(T,{getContent:(F)=>{return d(this.toolkit,F)},setContent:(F,$)=>{h(this.toolkit,F,$)},deleteContent:(F)=>{w(this.toolkit,F)}})}else R=T;const u=new pn(n,{externalStore:R,makeContentKey:(...x)=>{const d=x.sort(),h=`${d[0]}:${d[1]}`,[w,g]=d.map((F)=>this.molecules.get(k(F)));if(o.config.lifespan==="immortal"&&w&&g){const F=f(o),$=$n(F,[w,g],v,h);this.molecules.set(`"${h}"`,M($,F))}return h}}),b=()=>In(o,{key:`${n.key}/singleRelatedKey`,get:(x)=>({get:d})=>{const h=this.retrieve(t,x),w=d(h);for(let g of w)return g;return null}},["join","keys"]),S=()=>{return In(o,{key:`${n.key}/multipleRelatedKeys`,get:(x)=>({get:d})=>{const h=Uo(t,o),w=this.retrieve(h,x);return d(w).members}},["join","keys"])},K=()=>In(o,{key:`${n.key}/singleRelatedEntry`,get:(x)=>({get:d})=>{const h=this.retrieve(t,x),w=d(h);for(let g of w){const F=u.makeContentKey(x,g),$=this.retrieve(y,F),O=d($);return[g,O]}return null}},["join","entries"]),W=()=>In(o,{key:`${n.key}/multipleRelatedEntries`,get:(x)=>({get:d})=>{const h=Uo(t,o),w=this.retrieve(h,x);return d(w).members.map((F)=>{const $=u.makeContentKey(x,F),O=this.retrieve(y,$),X=d(O);return[F,X]})}},["join","entries"]);switch(n.cardinality){case"1:1":{const x=b(),d=`${e}KeyOf${Z(a)}`,h=`${a}KeyOf${Z(e)}`,w={[d]:x,[h]:x};let g;if(i){const F=K(),$=`${e}EntryOf${Z(a)}`,O=`${a}EntryOf${Z(e)}`,X={[$]:F,[O]:F};g=Object.assign(w,X)}else g=w;this.relations=u,this.states=g;break}case"1:n":{const x=b(),d=S(),h=`${e}KeyOf${Z(a)}`,w=`${a}KeysOf${Z(e)}`,g={[h]:x,[w]:d};let F;if(i){const $=K(),O=W(),X=`${e}EntryOf${Z(a)}`,Tn=`${a}EntriesOf${Z(e)}`,Kn={[X]:$,[Tn]:O};F=Object.assign(g,Kn)}else F=g;this.relations=u,this.states=F;break}default:{const x=S(),d=`${e}KeysOf${Z(a)}`,h=`${a}KeysOf${Z(e)}`,w={[d]:x,[h]:x};let g;if(i){const F=W(),$=`${e}EntriesOf${Z(a)}`,O=`${a}EntriesOf${Z(e)}`,X={[$]:F,[O]:F};g=Object.assign(w,X)}else g=w;this.relations=u,this.states=g}}}}function Pi(n){return{store:n}}function E(n,...i){let o,e,a;if(i.length===1){if(o=i[0],o.type!=="molecule"){if(e=Ni(n,o)??null,e)a=o.family?P(o.family.subKey):null,o=I(n,e,a)}}else{e=i[0],a=i[1];let t;if(e.type==="molecule_family")t=G(n,e,a)??ti(e,a);else t=I(n,e,a);o=t}if("counterfeit"in o&&"family"in o){e=o.type==="molecule"?M(o.family,n):n.families.get(o.family.key);const t=o.type==="molecule"?o.key:o.family.subKey,s=n.disposalTraces.buffer.find((c)=>c?.key===o.key);switch(n.logger.error("\u274C",o.type,o.key,`could not be retrieved because it was not found in the store "${n.config.name}".`,s?`This state was previously disposed:\n${s.trace}`:"No previous disposal trace was found."),e.type){case"atom_family":case"mutable_atom_family":return n.defaults.get(e.key);case"selector_family":case"readonly_selector_family":{if(n.defaults.has(e.key))return n.defaults.get(o.family.key);const c=M(e,n).default(t);return n.defaults.set(e.key,c),c}case"molecule_family":throw new cn(e,t,n)}}switch(o.type){case"atom":case"mutable_atom":case"selector":case"readonly_selector":return Vn(M(o,n),n);case"molecule":return M(o,n).instance}}class _i{i;type="molecule";stringKey;family;subject=new z;tokens=new Map;above=new Map;below=new Map;joins=new Map;instance;constructor(n,i,o){this.key=i;if(this.stringKey=k(i),o)this.family=o;if(n)if(Array.isArray(n))for(let e of n)this.above.set(e.stringKey,e);else this.above.set(n.stringKey,n)}}function Fa(n){return n[0].toUpperCase()+n.slice(1)}function $n(n,i,o,e,...a){const t=sa(n),s=f(n),c=k(e);s.moleculeInProgress=c;const l=Array.isArray(i)?i:[i],r=l.map((u)=>{if(u instanceof _i)return u;const b=k(u.key),S=n.molecules.get(b);if(!S)throw new Error(`Molecule ${b} not found in store "${n.config.name}"`);return S}),p=new _i(r,e,o);s.molecules.set(c,p);for(let u of r)u.below.set(p.stringKey,p);const m={get:(...u)=>E(f(t),...u),set:(...u)=>{U(f(t),...u)},seek:(u,b)=>G(f(t),u,b),json:(u)=>L(f(t),u),run:(u,b=ai())=>En(u,b,f(n)),make:(u,b,S,...K)=>$n(f(t),u,b,S,...K),dispose:(u)=>{an(f(t),u)},env:()=>Pi(f(t)),bond:(u,b)=>{if(u.type==="join"){const{as:S}=b,K=ji(u,t);K.molecules.set(c,p),p.joins.set(u.key,K);const W=T.subject.subscribe(`join:${u.key}-${c}`,(F)=>{if(F.type==="molecule_disposal"&&k(F.token.key)===c)W(),K.molecules.delete(c)});if(S===null)return;const x=u.a===S?u.b:u.a,d=wa(u,e),h=d[`${x}KeysOf${Fa(S)}`],w=d[`${x}EntriesOf${Fa(S)}`];let g={relatedKeys:h};if(w)g=Object.assign(g,{relatedEntries:w});return g}return wn(p,M(u,t),f(t))},claim:(u,b)=>{const{exclusive:S}=b,K=f(n).molecules.get(k(u.key));if(K)if(S){for(let W of K.above.values())W.below.delete(K.stringKey);K.above.clear(),K.above.set(p.stringKey,p),p.below.set(K.stringKey,K)}else K.above.set(p.stringKey,p),p.below.set(K.stringKey,K)},spawn:(u,b,...S)=>$n(f(n),[p],M(u,n),b,...S)},T=M(o,n),R=T.new;p.instance=new R(m,e,...a);const y={type:"molecule",key:e,family:o},v={type:"molecule_creation",token:y,family:o,context:l,params:a};if(N(s))T.subject.next(v);else if(V(s)&&s.on.transactionApplying.state===null)s.transactionMeta.update.updates.push(v);return s.moleculeInProgress=null,y}function Bo(n,i,o){switch(i){case"newValue":{ha(n,o);break}case"oldValue":{an(o,n.token);break}}}function Xo(n,i,o){switch(i){case"newValue":{an(o,n.token);break}case"oldValue":{ha(n,o),o.valueMap.set(n.token.key,n.value);break}}}function ha(n,i){const{family:o}=n.token;if(o){const e=i.families.get(o.key);if(e)I(i,e,P(o.subKey))}}function Go(n,i,o){switch(i){case"newValue":$n(o,n.context,n.family,n.token.key,...n.params);break;case"oldValue":an(o,n.token);break}}function Zo(n,i,o){switch(i){case"newValue":an(o,n.token);break;case"oldValue":{const e=$n(o,n.context,n.family,n.token.key);for(let[a,t]of n.values){const s=`${a}(${k(e.key)})`,c=M(e,o),l=c.tokens.has(s),r=o.families.get(a);if(r&&!l)wn(c,r,o);o.valueMap.set(s,t)}}break}}function qi(n,i,o){const e=n==="newValue"?i.updates:[...i.updates].reverse();for(let a of e)switch(a.type){case"atom_update":case"selector_update":Di(n,a,o);break;case"state_creation":Bo(a,n,o);break;case"state_disposal":Xo(a,n,o);break;case"molecule_creation":Go(a,n,o);break;case"molecule_disposal":Zo(a,n,o);break;case"transaction_update":qi(n,a,o);break}}function Aa(n,i,o){if(N(o)&&n)o.transactionMeta.epoch.set(n,i)}function Ka(n,i,o){if(!N(o))return;const a=o.transactionMeta.actionContinuities.getRelatedKey(n);if(a!==void 0)o.transactionMeta.epoch.set(a,i)}var Ra=(n,i)=>{const o=f(i),{parent:e}=o;if(e===null||!V(o)||o.transactionMeta?.phase!=="building"){i.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}o.transactionMeta.phase="applying",o.transactionMeta.update.output=n,e.child=null,e.on.transactionApplying.next(o.transactionMeta);const{updates:a}=o.transactionMeta.update;if(i.logger.info("\uD83D\uDEC4","transaction",o.transactionMeta.update.key,`Applying transaction with ${a.length} updates:`,a),qi("newValue",o.transactionMeta.update,e),N(e))Ka(o.transactionMeta.update.key,o.transactionMeta.update.epoch,e),M({key:o.transactionMeta.update.key,type:"transaction"},i)?.subject.next(o.transactionMeta.update),i.logger.info("\uD83D\uDEEC","transaction",o.transactionMeta.update.key,"Finished applying transaction.");else if(V(e))e.transactionMeta.update.updates.push(o.transactionMeta.update);e.on.transactionApplying.next(null)};function Ma(n,i,o){if(!N(o))return;const{epoch:a,actionContinuities:t}=o.transactionMeta;if(t.set(n,i),!a.has(n))a.set(n,-1)}class yn extends Map{n;deleted=new Set;constructor(n){super();this.source=n}get(n){if(super.has(n))return super.get(n);if(!this.deleted.has(n)&&this.source.has(n))return this.source.get(n);return}set(n,i){return this.deleted.delete(n),super.set(n,i)}hasOwn(n){return super.has(n)}has(n){return!this.deleted.has(n)&&(super.has(n)||this.source.has(n))}delete(n){return this.deleted.add(n),super.delete(n)}}var Ja=(n,i,o,e)=>{const a=f(o),t={parent:a,child:null,on:a.on,loggers:a.loggers,logger:a.logger,config:a.config,atoms:new yn(a.atoms),atomsThatAreDefault:new Set(a.atomsThatAreDefault),families:new yn(a.families),operation:{open:!1},readonlySelectors:new yn(a.readonlySelectors),timelines:new yn(a.timelines),timelineTopics:new pn(a.timelineTopics.toJSON()),trackers:new Map,transactions:new yn(a.transactions),selectorAtoms:new pn(a.selectorAtoms.toJSON()),selectorGraph:new pn(a.selectorGraph.toJSON(),{makeContentKey:(...r)=>r.sort().join(":")}),selectors:new yn(a.selectors),valueMap:new yn(a.valueMap),defaults:a.defaults,disposalTraces:o.disposalTraces.copy(),molecules:new yn(a.molecules),moleculeFamilies:new yn(a.moleculeFamilies),moleculeInProgress:a.moleculeInProgress,miscResources:new yn(a.miscResources)},s=$a(n,o),c={phase:"building",update:{type:"transaction_update",key:n,id:e,epoch:s===void 0?Number.NaN:s+1,updates:[],params:i,output:void 0},toolkit:{get:(...r)=>E(l,...r),set:(...r)=>{U(l,...r)},run:(r,p=ai())=>En(r,p,l),find:(r,p)=>I(l,r,p),seek:(r,p)=>G(l,r,p),json:(r)=>L(l,r),make:(r,p,m,...T)=>$n(l,r,p,m,...T),dispose:(...r)=>{an(l,...r)},env:()=>Pi(l)}},l=Object.assign(t,{transactionMeta:c});return a.child=l,o.logger.info("\uD83D\uDEEB","transaction",n,"Building transaction with params:",i),l};function Qo(n,i){const o={key:n.key,type:"transaction",run:(t,s)=>{const c=Ja(n.key,t,i,s);try{const l=f(i),{toolkit:r}=c.transactionMeta,p=n.do(r,...t);return Ra(p,l),p}catch(l){throw la(e),i.logger.warn("\uD83D\uDCA5","transaction",n.key,"caught:",l),l}},install:(t)=>Qo(n,t),subject:new z},e=f(i);e.transactions.set(o.key,o);const a=dn(o);return i.on.transactionCreation.next(a),a}function $a(n,i){const o=N(i),e=o?i.transactionMeta.actionContinuities.getRelatedKey(n):void 0;return o&&e!==void 0?i.transactionMeta.epoch.get(e):void 0}class no{_buffer;_index=0;constructor(n){let i;if(typeof n==="number")i=n;else i=n.length;this._buffer=Array.from({length:i})}get buffer(){return this._buffer}get index(){return this._index}add(n){this._buffer[this._index]=n,this._index=(this._index+1)%this._buffer.length}copy(){const n=new no([...this._buffer]);return n._index=this._index,n}}class ja{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new pn({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new pn({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...n)=>n.sort().join(":")});trackers=new Map;families=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new pn({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new pn({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new no(100);molecules=new Map;moleculeFamilies=new Map;moleculeInProgress=null;miscResources=new Map;on={atomCreation:new z,atomDisposal:new z,selectorCreation:new z,selectorDisposal:new z,timelineCreation:new z,transactionCreation:new z,transactionApplying:new Wo(null),operationClose:new z,moleculeCreationStart:new z,moleculeCreationDone:new z,moleculeDisposal:new z};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new ki("warn",(n,i,o)=>!o.includes("\uD83D\uDD0D"))];logger={error:(...n)=>{for(let i of this.loggers)i.error(...n)},info:(...n)=>{for(let i of this.loggers)i.info(...n)},warn:(...n)=>{for(let i of this.loggers)i.warn(...n)}};constructor(n,i=null){if(this.config={...i?.config,...n},i!==null){if(this.valueMap=new Map(i?.valueMap),this.operation={...i?.operation},N(i))this.transactionMeta={epoch:new Map(i?.transactionMeta.epoch),actionContinuities:new pn(i?.transactionMeta.actionContinuities.toJSON())};for(let[,e]of i.families){if(e.internalRoles?.includes("mutable")||e.internalRoles?.includes("join"))continue;e.install(this)}const o=new Set;for(let[,e]of i.atoms){if(o.has(e.key))continue;if(e.install(this),e.type==="mutable_atom"){const a=L(i,e),t=jn(e);o.add(a.key),o.add(t.key)}}for(let[,e]of i.readonlySelectors)e.install(this);for(let[,e]of i.selectors){if(o.has(e.key))continue;e.install(this)}for(let[,e]of i.transactions)e.install(this);for(let[,e]of i.timelines)e.install(this)}}}var J={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new ja({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function M(n,i){let o,e=i;while(e!==null){switch(n.type){case"atom":case"mutable_atom":o=e.atoms.get(n.key);break;case"selector":o=e.selectors.get(n.key);break;case"readonly_selector":o=e.readonlySelectors.get(n.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":o=e.families.get(n.key);break;case"timeline":o=e.timelines.get(n.key);break;case"transaction":o=e.transactions.get(n.key);break;case"molecule":o=e.molecules.get(k(n.key));break;case"molecule_family":o=e.moleculeFamilies.get(n.key);break}if(o)return o;e=e.child}throw new cn(n,i)}function io(n,i){let o;o=M(n,i);const{family:e}=n;for(let s of o.joins.values())s.relations.delete(o.key),s.molecules.delete(o.stringKey);const a=[];for(let s of o.above.values())a.push(dn(s));const t=[];for(let s of o.tokens.values()){const c=s.family;t.push([c.key,i.valueMap.get(s.key)])}if(e){const s=M(e,i),c={type:"molecule_disposal",token:n,family:e,context:a,values:t};if(n.family)c.family=n.family;for(let r of o.tokens.values())an(i,r);for(let r of o.below.values())if(r.family?.dependsOn==="all")io(r,i);else if(r.above.delete(o.stringKey),r.above.size===0)io(r,i);if(o.below.clear(),V(i)&&i.transactionMeta.phase==="building")i.transactionMeta.update.updates.push(c);else s.subject.next(c);i.molecules.delete(o.stringKey)}for(let s of o.above.values())s.below.delete(o.stringKey)}function Jn(n,i,o){const e=n.families.get(i.key);if(e===void 0)throw new cn(i,n);const a=e(o),t=f(n);if(a.family&&t.moleculeInProgress===null){if(N(t))switch(a.type){case"atom":case"mutable_atom":n.on.atomCreation.next(a);break;case"selector":case"readonly_selector":n.on.selectorCreation.next(a);break}else if(V(t)&&t.on.transactionApplying.state===null)t.transactionMeta.update.updates.push({type:"state_creation",token:a})}return a}function G(n,i,o){const e=k(o),a=`${i.key}(${e})`,t=f(n);let s;switch(i.type){case"atom_family":case"mutable_atom_family":s=t.atoms.get(a);break;case"selector_family":s=t.selectors.get(a);break;case"readonly_selector_family":s=t.readonlySelectors.get(a);break;case"molecule_family":s=t.molecules.get(k(o))}if(s)return dn(s);return s}function I(n,i,o){let e=G(n,i,o);if(e)return e;const a=n.molecules.get(k(o));if(a)return wn(a,i,n);if(n.config.lifespan==="immortal"){const t=ti(i,o);return n.logger.error("\u274C",t.type,t.key,`was not found in store "${n.config.name}"; returned a counterfeit token.`),t}return e=Jn(n,i,o),e}function an(n,...i){let o,e;if(i.length===1)o=i[0],e=o.key;else{const t=i[0],s=i[1];o=t.type==="molecule_family"?G(n,t,s)??ti(t,s):I(n,t,s)}try{M(o,n)}catch(t){const s=n.disposalTraces.buffer.find((c)=>c?.key===o.key);n.logger.error("\u274C",o.type,o.key,`could not be disposed because it was not found in the store "${n.config.name}".`,s?`\n This state was most recently disposed\n${s.trace}`:"No previous disposal trace was found.");return}switch(o.type){case"atom":case"mutable_atom":Ho(o,n);break;case"selector":case"readonly_selector":ka(o,n);break;case"molecule":io(o,n);break}const{stack:a}=new Error;if(a){const t=a?.split("\n")?.slice(3)?.join("\n");n.disposalTraces.add({key:o.key,trace:t})}}var oo=(n,i)=>f(i).atoms.has(n),Zl=(n,i)=>f(i).selectors.has(n),Ql=(n,i)=>f(i).readonlySelectors.has(n),Oa=(n,i)=>oo(n,i)||Zl(n,i)||Ql(n,i);var eo=(n,i)=>{return f(i).selectorGraph.getRelationEntries({downstreamSelectorKey:n}).filter(([e,{source:a}])=>a!==n).map(([e,{source:a}])=>a).filter((e)=>Oa(e,i))};var No=(n,i,o)=>{const e=[],a=eo(n,o);while(a.length>0){const t=a.shift();if(i.has(t))continue;if(i.add(t),!oo(t,o))a.push(...eo(t,o));else if(!e.includes(t))e.push(t)}return e},za=(n,i)=>{const o=n.key,e=eo(o,i),a=new Set;return e.flatMap((t)=>oo(t,i)?t:No(t,a,i))};var Ca=(n,i,o,e)=>{const a=f(e);if(i.type==="atom"||i.type==="mutable_atom")a.selectorAtoms.set({selectorKey:n,atomKey:i.key}),e.logger.info("\uD83D\uDD0D","selector",n,`discovers root atom "${i.key}"`);else{const t=No(i.key,o,e);e.logger.info("\uD83D\uDD0D","selector",n,`discovers root atoms: [ ${t.map((s)=>`"${s}"`).join(", ")} ]`);for(let s of t)a.selectorAtoms=a.selectorAtoms.set({selectorKey:n,atomKey:s})}o.add(i.key)};var ao=(n,i,o)=>({get:(...e)=>{const a=f(o);let t;if(e.length===2){const[l,r]=e;switch(l.type){case"molecule_family":return E(o,l,r);default:if(o.config.lifespan==="ephemeral")t=I(o,l,r);else{const p=G(o,l,r);if(p)t=p;else throw new cn(l,r,o)}}}else[t]=e;if(t.type==="molecule")return E(o,t);const s=M(t,o),c=Vn(s,o);return o.logger.info("\uD83D\uDD0C","selector",n,`registers dependency ( "${t.key}" =`,c,")"),a.selectorGraph.set({upstreamSelectorKey:t.key,downstreamSelectorKey:n},{source:t.key}),Ca(n,t,i,o),c},set:(...e)=>{let a,t;if(e.length===2)a=e[0],t=e[1];else{const l=e[0],r=e[1];t=e[2];const p=o.config.lifespan==="ephemeral"?I(o,l,r):G(o,l,r);if(!p)throw new cn(l,r,o);a=p}const s=f(o),c=M(a,s);Hi(c,t,s)},find:(e,a)=>I(o,e,a),seek:(e,a)=>G(o,e,a),json:(e)=>L(o,e)});var Mi=(n,i,o)=>{const e=f(n),a=new z,t=new Set,{get:s,find:c,seek:l,json:r}=ao(i.key,t,e),p=()=>{const y=i.get({get:s,find:c,seek:l,json:r});return fn(i.key,y,a,f(n)),t.clear(),y},m={...i,subject:a,install:(y)=>Mi(y,i,o),get:p,type:"readonly_selector",...o&&{family:o}};e.readonlySelectors.set(i.key,m);const T=p();n.logger.info("\u2728",m.type,m.key,"=",T);const R={key:i.key,type:"readonly_selector"};if(o)R.family=o;return R};var Oi=(n,i,o)=>{const e=f(n),a=new z,t=new Set,s=ao(i.key,t,e),{find:c,get:l,seek:r,json:p}=s,m={find:c,get:l,seek:r,json:p},T=(b=i.get,S=f(n))=>{const K=b(m);return fn(i.key,K,a,S),t.clear(),K},y={...i,subject:a,install:(b)=>Oi(b,i,o),get:T,set:(b)=>{const S=f(n),K=T(i.get,S),W=Qi(b)(K);if(n.logger.info("\uD83D\uDCDD","selector",i.key,"set (",K,"->",W,")"),fn(i.key,W,a,S),si(S,i.key),N(S))a.next({newValue:W,oldValue:K});i.set(s,W)},type:"selector",...o&&{family:o}};e.selectors.set(i.key,y);const v=T();n.logger.info("\u2728",y.type,y.key,"=",v);const u={key:i.key,type:"selector"};if(o)u.family=o;return u};function Ki(n,i){if("set"in i){const a=Oi(n,i,void 0);return n.on.selectorCreation.next(a),a}const e=Mi(n,i,void 0);return n.on.selectorCreation.next(e),e}function ka(n,i){const o=f(i),{key:e}=n,a=M(n,o);if(!a.family)i.logger.error("\u274C","selector",e,"Standalone selectors cannot be disposed.");else{const t=o.molecules.get(a.family.subKey);if(t)t.tokens.delete(e);switch(n.type){case"selector":o.selectors.delete(e),M({key:a.family.key,type:"selector_family"},i).subject.next({type:"state_disposal",token:n});break;case"readonly_selector":o.readonlySelectors.delete(e),M({key:a.family.key,type:"readonly_selector_family"},i).subject.next({type:"state_disposal",token:n});break}if(o.valueMap.delete(e),o.selectorAtoms.delete(e),o.selectorGraph.delete(e),i.logger.info("\uD83D\uDD25",n.type,e,"deleted"),V(o)&&o.transactionMeta.phase==="building")o.transactionMeta.update.updates.push({type:"state_disposal",token:n});else i.on.selectorDisposal.next(n)}}function Ji(n,i,o){const e={key:i.key,type:"selector_family"},a=n.families.get(i.key);if(a)n.logger.error("\u2757","selector_family",i.key,`Overwriting an existing ${Sn(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const t=new z,c=Object.assign((l)=>{const r=k(l),p={key:i.key,subKey:r},m=`${i.key}(${r})`,T=f(n),R=Oi(T,{key:m,get:i.get(l),set:i.set(l)},p);return t.next({type:"state_creation",token:R}),R},e,{internalRoles:o,subject:t,install:(l)=>Ji(l,i),default:(l)=>{return i.get(l)({get:(...p)=>E(n,...p),find:(p,m)=>I(n,p,m),seek:(p,m)=>G(n,p,m),json:(p)=>L(n,p)})}});return n.families.set(i.key,c),e}function Wa(n,i,o=J.STORE){const e=Ji(o,{key:`${n.key}:JSON`,get:(t)=>({seek:s,get:c})=>{const l=s(n,t);if(l)return i.toJson(c(l));const r=k(t),p=o.molecules.get(r);if(p){const T=wn(p,n,o);return i.toJson(c(T))}if(o.config.lifespan==="immortal")throw new Error(`No molecule found for key "${r}"`);const m=Jn(o,n,t);return i.toJson(c(m))},set:(t)=>({seek:s,set:c},l)=>{const r=s(n,t);if(r)c(r,i.fromJson(l));else{const p=k(t),m=o.molecules.get(p);if(m){const T=wn(m,n,o);c(T,i.fromJson(l))}else{if(o.config.lifespan==="immortal")throw new Error(`No molecule found for key "${p}"`);c(Jn(o,n,t),i.fromJson(l))}}}},["mutable","json"]);return M(n,o).subject.subscribe(`store=${o.config.name}::json-selector-family`,(t)=>{if(t.token.family)G(o,e,P(t.token.family.subKey))}),e}var P=(n)=>JSON.parse(n),k=(n)=>JSON.stringify(n),RT=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var Ia=(n,i)=>{const o=f(i);if(o.operation.open)return o.operation.prev.get(n.key);return o.valueMap.get(n.key)};var Po=(n,i)=>{const o=f(i);return za(n,i).map((a)=>{const t=o.atoms.get(a);if(t===void 0)throw new Error(`Atom "${a}", a dependency of selector "${n.key}", not found in store "${i.config.name}".`);return t.subject.subscribe(`${n.type}:${n.key}`,(s)=>{i.logger.info("\uD83D\uDCE2",n.type,n.key,"root",a,"went",s.oldValue,"->",s.newValue);const c=Ia(n,o),l=Vn(n,o);i.logger.info("\u2728",n.type,n.key,"went",c,"->",l),n.subject.next({newValue:l,oldValue:c})})})};function tn(n,i,o,e){function a(m){if(e.operation.open){const T=e.on.operationClose.subscribe(`state subscription ${o}`,()=>{T(),i(m)})}else i(m)}const t=M(n,e);e.logger.info("\uD83D\uDC40",t.type,t.key,`Adding subscription "${o}"`);const s=t.type==="selector"||t.type==="readonly_selector";let c=null,l=a;if(s)c=Po(t,e),l=(m)=>{if(c)c.length=0,c.push(...Po(t,e));a(m)};const r=t.subject.subscribe(o,l);return()=>{if(e.logger.info("\uD83D\uDE48",t.type,t.key,`Removing subscription "${o}"`),r(),c)for(let m of c)m()}}var Do=(n,i,o,e)=>{const a=M(n,e);e.logger.info("\uD83D\uDC40","timeline",n.key,`Adding subscription "${o}"`);const t=a.subject.subscribe(o,i);return()=>{e.logger.info("\uD83D\uDE48","timeline",n.key,`Removing subscription "${o}" from timeline`),t()}};var Lo=(n,i,o,e)=>{const a=M(n,e);e.logger.info("\uD83D\uDC40","transaction",n.key,`Adding subscription "${o}"`);const t=a.subject.subscribe(o,i);return()=>{e.logger.info("\uD83D\uDE48","transaction",n.key,`Removing subscription "${o}"`),t()}};class Un{Update;initializeState(n,i){const o=`*${n.key}`;i.atoms.delete(o),i.valueMap.delete(o);const e=n.family?{key:`*${n.family.key}`,subKey:n.family.subKey}:void 0,a=Wn(i,{key:o,default:null},e);if(i.parent?.valueMap.has(o)){const t=i.parent.valueMap.get(o);i.valueMap.set(o,t)}return a}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(n,i,o){const e=`tracker:${o.config.name}:${V(o)?o.transactionMeta.update.key:"main"}:${n.key}`,a=E(o,n);this.unsubscribeFromInnerValue=a.subscribe(e,(t)=>{U(o,i,t)}),this.unsubscribeFromState=tn(n,(t)=>{if(t.newValue!==t.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=t.newValue.subscribe(e,(s)=>{U(o,i,s)})},e,o)}updateCore(n,i,o){const e=`tracker:${o.config.name}:${V(o)?o.transactionMeta.update.key:"main"}:${n.key}`;tn(i,({newValue:a,oldValue:t})=>{const s=o.timelineTopics.getRelatedKey(i.key);if(s){if(o.timelines.get(s)?.timeTraveling){const r=Do({key:s,type:"timeline"},(p)=>{r(),U(o,n,(m)=>{if(p==="redo"&&a)m.do(a);else if(p==="undo"&&t)m.undo(t);return m})},e,o);return}}const c=o.on.operationClose.subscribe(e,()=>{c();const l=E(o,n),r=a===null?-1:l.getUpdateNumber(a),p=r-l.cacheUpdateNumber;if(a&&p===1)U(o,n,(m)=>(m.do(a),m));else o.logger.info("\u274C","mutable_atom",n.key,`could not be updated. Expected update number ${l.cacheUpdateNumber+1}, but got ${r}`)})},e,o)}mutableState;latestUpdateState;dispose;constructor(n,i){this.mutableState=n;const o=f(i);this.latestUpdateState=this.initializeState(n,o),this.observeCore(n,this.latestUpdateState,o),this.updateCore(n,this.latestUpdateState,o),o.trackers.set(n.key,this),this.dispose=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),o.trackers.delete(n.key)}}}function zi(n,i,o){n.logger.info("\uD83D\uDD28","atom",i.key,`creating in store "${n.config.name}"`);const e=f(n),a=e.atoms.get(i.key);if(a&&a.type==="mutable_atom")return n.logger.error("\u274C","atom",i.key,"Tried to create atom, but it already exists in the store."),dn(a);const t=new z,s={...i,type:"mutable_atom",install:(r)=>{return r.logger.info("\uD83D\uDEE0\uFE0F","atom",i.key,`installing in store "${r.config.name}"`),zi(r,i,o)},subject:t};if(o)s.family=o;const c=i.default();e.atoms.set(s.key,s),to(i.key,n),fn(i.key,c,t,e);const l=dn(s);if(i.effects){let r=0;const p=[];for(let m of i.effects){const T=m({setSelf:(R)=>{U(n,l,R)},onSet:(R)=>tn(l,R,`effect[${r}]`,n)});if(T)p.push(T);++r}s.cleanup=()=>{for(let m of p)m()}}if(new Un(l,n),!o)ta(l,i,n);return l}class _o{Update;latestUpdateAtoms;mutableAtoms;constructor(n,i){const o=Cn(i,{key:`*${n.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=M(o,i),this.mutableAtoms=n,this.mutableAtoms.subject.subscribe(`store=${i.config.name}::tracker-atom-family`,(e)=>{if(e.token.family){const a=P(e.token.family.subKey);G(i,this.latestUpdateAtoms,a),new Un(e.token,i)}}),this.latestUpdateAtoms.subject.subscribe(`store=${i.config.name}::tracker-atom-family`,(e)=>{if(e.token.family){const a=P(e.token.family.subKey),t=G(i,this.mutableAtoms,a);if(t)new Un(t,i)}})}}function Ri(n,i,o){const e={key:i.key,type:"mutable_atom_family"},a=n.families.get(i.key);if(a)n.logger.error("\u2757","mutable_atom_family",i.key,`Overwriting an existing ${Sn(a)} "${a.key}" in store "${n.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const t=new z,c=Object.assign((l)=>{const r=k(l),p={key:i.key,subKey:r},m=`${i.key}(${r})`,T=f(n),R={key:m,default:()=>i.default(l),toJson:i.toJson,fromJson:i.fromJson,mutable:!0};if(i.effects)R.effects=i.effects(l);const y=zi(T,R,p);return t.next({type:"state_creation",token:y}),y},e,{subject:t,install:(l)=>Ri(l,i),toJson:i.toJson,fromJson:i.fromJson,internalRoles:o});return n.families.set(i.key,c),Wa(c,i,n),new _o(c,n),e}var Uo=(n,i)=>{const o=f(i),e=`${n.key}:JSON`;return o.families.get(e)};var L=(n,i)=>{if(i.family){const e=f(n),t={key:`${i.family.key}:JSON`,type:"selector_family"},s=M(t,e),c=JSON.parse(i.family.subKey);return I(n,s,c)}return{type:"selector",key:`${i.key}:JSON`}};var jn=(n)=>{const o={type:"atom",key:`*${n.key}`};if(n.family)o.family={key:`*${n.family.key}`,subKey:n.family.subKey};return o};function ya(n){return typeof n==="object"&&n!==null&&"do"in n&&"undo"in n&&"subscribe"in n}function $i(n,i,o){const e=i.valueMap.get(n.key),a=o.valueMap.get(n.key);if(e===a){if(e===void 0)return typeof n.default==="function"?n.default():n.default;i.logger.info("\uD83D\uDCC3","atom",n.key,"copying");const t=n.toJson(e),s=n.fromJson(t);return o.valueMap.set(n.key,s),new Un(n,i),s}return a}function fn(n,i,o,e){const a=e.valueMap.get(n);if(a instanceof Ai)a.use(i);if(i instanceof Promise){const t=new Ai(i);return e.valueMap.set(n,t),t.then((s)=>{fn(n,s,o,e),o.next({newValue:s,oldValue:t})}).catch((s)=>{e.logger.error("\uD83D\uDCA5","state",n,"rejected:",s)}),t}return e.valueMap.set(n,i),i}var ra=(n,i)=>{let o=i.valueMap.get(n.key);if(n.type==="mutable_atom"&&V(i)){const{parent:e}=i;o=$i(n,e,i)}return o},da=(n,i)=>{const o=i.valueMap.get(n);if(o instanceof Ai){const e=o,a=i.selectors.get(n)??i.readonlySelectors.get(n);if(a)e.use(a.get());return}if(i.operation.open)i.operation.prev.set(n,o);i.valueMap.delete(n),i.logger.info("\uD83D\uDDD1","state",n,"evicted")};var ba=(n,i)=>{return f(i).atomsThatAreDefault.has(n)},to=(n,i)=>{const o=f(i);o.atomsThatAreDefault=new Set(o.atomsThatAreDefault).add(n)},Ta=(n,i)=>{const o=f(i);o.atomsThatAreDefault=new Set(f(i).atomsThatAreDefault),o.atomsThatAreDefault.delete(n)};function Wn(n,i,o){n.logger.info("\uD83D\uDD28","atom",i.key,`creating in store "${n.config.name}"`);const e=f(n),a=e.atoms.get(i.key);if(a&&a.type==="atom")return n.logger.error("\u274C","atom",i.key,"Tried to create atom, but it already exists in the store."),dn(a);const t=new z,s={...i,type:"atom",install:(r)=>{return r.logger.info("\uD83D\uDEE0\uFE0F","atom",i.key,`installing in store "${r.config.name}"`),Wn(r,i,o)},subject:t};if(o)s.family=o;let c=i.default;if(i.default instanceof Function)c=i.default();e.atoms.set(s.key,s),to(i.key,n),fn(i.key,c,t,e);const l=dn(s);if(i.effects){let r=0;const p=[];for(let m of i.effects){const T=m({setSelf:(R)=>{U(n,l,R)},onSet:(R)=>tn(l,R,`effect[${r}]`,n)});if(T)p.push(T);++r}s.cleanup=()=>{for(let m of p)m()}}return l}function Ea(n,i){if("mutable"in i){const a=zi(n,i,void 0);return n.on.atomCreation.next(a),a}const e=Wn(n,i,void 0);return n.on.atomCreation.next(e),e}function Ho(n,i){const o=f(i),{key:e}=n,a=M(n,o);if(!a.family)i.logger.error("\u274C","atom",e,"Standalone atoms cannot be disposed.");else{a.cleanup?.();const t=i.valueMap.get(a.key);M({key:a.family.key,type:"atom_family"},i).subject.next({type:"state_disposal",token:n,value:t});const c=o.molecules.get(a.family.subKey);if(c)c.tokens.delete(e);if(o.atoms.delete(e),o.valueMap.delete(e),o.selectorAtoms.delete(e),o.atomsThatAreDefault.delete(e),o.timelineTopics.delete(e),n.type==="mutable_atom"){const l=jn(n);Ho(l,i),i.trackers.delete(e)}if(i.logger.info("\uD83D\uDD25","atom",e,"deleted"),V(o)&&o.transactionMeta.phase==="building")o.transactionMeta.update.updates.push({type:"state_disposal",token:n});else i.on.atomDisposal.next(n)}}function Yn(n){return Ea(J.STORE,n)}function Nn(n){return ca(J.STORE,n)}var qo=(n)=>(i,o,e,a,...t)=>{console[n](`${i} ${o} "${e}" ${a}`,...t)},Hl={error:qo("error"),info:qo("info"),warn:qo("warn")};class ki{n;i;o;constructor(n,i,o=Hl){this.logLevel=n;this.filter=i;this.logger=o}error=(...n)=>{if((this.filter?.(...n)??!0)&&this.logLevel!==null)this.logger.error(...n)};info=(...n)=>{if((this.filter?.(...n)??!0)&&this.logLevel==="info")this.logger.info(...n)};warn=(...n)=>{if((this.filter?.(...n)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...n)}}function so(n){return Io(J.STORE,n)}function Dn(n){return Qo(n,J.STORE)}class li{n;listeners;globalListeners;handleEvent(n,...i){for(let e of this.globalListeners)e(n,...i);const o=this.listeners.get(n);if(o)for(let e of o)e(...i)}id="no_id_retrieved";constructor(n){this.emit=n;this.listeners=new Map,this.globalListeners=new Set}on(n,i){const o=this.listeners.get(n);if(o)o.add(i);else this.listeners.set(n,new Set([i]));return this}onAny(n){return this.globalListeners.add(n),this}off(n,i){const o=this.listeners.get(n);if(o)if(i)o.delete(i);else this.listeners.delete(n);return this}offAny(n){return this.globalListeners.delete(n),this}}class Ci extends li{n;i;o;incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";handleLog(n){if(Array.isArray(n)){const[i,...o]=n;switch(i){case"i":this.logger.info(this.id,this.key,...o);break;case"w":this.logger.warn(this.id,this.key,...o);break;case"e":this.logger.error(this.id,this.key,...o);break}}}constructor(n,i,o=console){super((e,...a)=>{const t=JSON.stringify([e,...a])+"\x03",s=(c)=>{if(c.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",s)};return this.process.stdin.once("error",s),this.process.stdin.write(t),this});this.process=n;this.key=i;this.logger=o;if(this.process=n,this.process.stdout.on("data",(e)=>{const a=e.toString();if(a==="\u2728")return;this.unprocessedEvents.push(...a.split("\x03"));const t=this.unprocessedEvents.shift();this.incompleteData+=t??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let s=P(this.incompleteData);this.handleEvent(...s);while(this.unprocessedEvents.length>0){const c=this.unprocessedEvents.shift();if(c){if(this.unprocessedEvents.length===0)this.incompleteData=c;s=P(c),this.handleEvent(...s)}}this.incompleteData=""}catch(s){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(s)}}),this.process.stderr.on("data",(e)=>{const a=e.toString();this.unprocessedLogs.push(...a.split("\x03"));const t=this.unprocessedLogs.shift();this.incompleteLog+=t??"";try{let s=P(this.incompleteLog);this.handleLog(s);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)s=P(this.incompleteLog),this.handleLog(s)}catch(s){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(s),console.error("\u274C\u274C\u274C\uFE0F")}}),n.pid)this.id=n.pid.toString()}}class Va extends li{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(n){super((...i)=>{return this.out.next(i),this});this.id=n,this.in=new z,this.out=new z,this.in.subscribe("socket",(i)=>{this.handleEvent(...i)})}dispose(){for(let n of this.disposalFunctions)n()}}class ne extends li{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...n){this.process.stderr.write(k(n.map((i)=>i instanceof _?`{ ${i.toJSON().members.join(" | ")} }`:i))+"\x03")}logger={info:(...n)=>{this.log("i",...n)},warn:(...n)=>{this.log("w",...n)},error:(...n)=>{this.log("e",...n)}};constructor(){super((n,...i)=>{const o=JSON.stringify([n,...i]);return this.process.stdout.write(o+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(n)=>{const i=n.toString();this.unprocessedEvents.push(...i.split("\x03"));const o=this.unprocessedEvents.shift();this.incompleteData+=o??"";try{const e=P(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",e),this.handleEvent(...e);while(this.unprocessedEvents.length>0){const a=this.unprocessedEvents.shift();if(a){if(this.unprocessedEvents.length===0)this.incompleteData=a;const t=P(a);this.handleEvent(...t)}}this.incompleteData=""}catch(e){if(e instanceof Error)this.logger.error("\u2757",e.message,e.cause,e.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(n)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${n}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(n)=>{this.logger.info("\uD83D\uDC64","user",n,"joined");const i=new Va(`user:${n}`);this.relays.set(n,i),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let o of this.relayServices){const e=o(i);if(e)i.disposalFunctions.push(e)}this.on(`user:${n}`,(...o)=>{i.in.next(o)}),i.out.subscribe("socket",(o)=>{this.emit(...o)})}),this.on("user-leaves",(n)=>{const i=this.relays.get(n);if(this.off(`relay:${n}`),i)i.dispose(),this.relays.delete(n)}),process.stdout.write("\u2728")}relay(n){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(n)}}function Ya(n){const{key:i,config:o}=n,e=co.create(i,o),{actions:a}=e;for(let t of a)Ma(i,t.key,J.STORE);return Aa(i,-1,J.STORE),e}class Ua extends Map{set(n,i){if(this.has(n))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:n,value:i}),this;return super.set(n,i)}clear(){throw new Error("Cannot clear an InvariantMap")}}class co{n;type="continuity";globals=[];actions=[];perspectives=[];constructor(n){this.key=n}static existing=new Ua;static create(n,i){const o=new co(n),{type:e,globals:a,actions:t,perspectives:s}=i(o),c={type:e,key:n,globals:a,actions:t,perspectives:s};return co.existing.set(n,c),c}add(...n){switch(n[0].type){case"atom":case"mutable_atom":this.globals.push(...n);break;case"transaction":this.actions.push(...n);break;case"atom_family":{const[o,e]=n;this.perspectives.push({type:"realtime_perspective",resourceAtoms:o,viewAtoms:e})}break}return this}}var jg=Yn({key:"usersInRoomIndex",mutable:!0,default:()=>new _,toJson:(n)=>n.toJSON(),fromJson:(n)=>_.fromJSON(n)}),ie=Yn({key:"roomIndex",default:()=>new _,mutable:!0,toJson:(n)=>n.toJSON(),fromJson:(n)=>_.fromJSON(n)}),Nl={enteredAtEpoch:0},Wi=Li({key:"usersInRooms",between:["room","user"],cardinality:"1:n"},Nl),kg=so({key:"usersInMyRoomView",get:(n)=>({find:i})=>{const o=ga(Wi);return[i(o,n)]}});import{spawn as Dl}from"child_process";var oe=Nn({key:"roomArguments",default:["echo",["Hello World!"]]}),Ba=so({key:"room",get:(n)=>async({get:i,find:o})=>{const e=o(oe,n),a=i(e),[t,s]=a,c=await new Promise((l)=>{const r=Dl(t,s,{env:process.env}),p=(m)=>{if(m.toString()==="\u2728")r.stdout.off("data",p),l(r)};r.stdout.on("data",p)});return new Ci(c,n)}});var Qg=Dn({key:"createRoom",do:({get:n,set:i,find:o},e,a,t)=>{const s=t?[a,t]:[a],c=o(oe,e);i(c,s),i(ie,(p)=>p.add(e));const l=o(Ba,e);return n(l)}}),Hg=Dn({key:"joinRoom",do:(n,i,o,e)=>{const a={enteredAtEpoch:e};return Hn(Wi,(t)=>{t.set({room:i,user:o},a)},n.env().store),a}}),Ng=Dn({key:"leaveRoom",do:(n,i,o)=>{Hn(Wi,(e)=>{e.delete({room:i,user:o})},n.env().store)}}),Dg=Dn({key:"destroyRoom",do:(n,i)=>{Hn(Wi,(o)=>{o.delete({room:i})},n.env().store),n.set(ie,(o)=>(o.delete(i),o))}});function ee(n,i){return i.map((o)=>{switch(o.type){case"transaction_update":{const e=ee(n,o.updates);return{...o,updates:e}}default:return o}}).filter((o)=>{switch(o.type){case"atom_update":case"selector_update":return n.includes(o.key);case"state_creation":return n.includes(o.token.key);case"molecule_creation":return!0;case"transaction_update":return!0}})}var _g=Nn({key:"transactionRedactor",default:{occlude:(n)=>n}}),Xa=Nn({key:"unacknowledgedUpdates",default:()=>[]});var Ii=Nn({key:"sockets",default:null}),ae=Yn({key:"socketsIndex",mutable:!0,default:()=>new _,toJson:(n)=>n.toJSON(),fromJson:(n)=>_.fromJSON(n)}),te=Yn({key:"usersIndex",mutable:!0,default:()=>new _,toJson:(n)=>n.toJSON(),fromJson:(n)=>_.fromJSON(n)}),Ln=Li({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1"});function Ga({socket:n,store:i=J.STORE}){return function o(e){let a=n;const t=e.key,s=ci(Ln,a.id,i).userKeyOfSocket,c=E(i,s);if(!c)return i.logger.error("\u274C","continuity",t,`Tried to create a synchronizer for a socket (${a.id}) that is not connected to a user.`),()=>{};const l=ci(Ln,c,i).socketKeyOfUser;tn(l,({newValue:b})=>{if(i.logger.info("\uD83D\uDC4B","continuity",t,`seeing ${c} on new socket ${b}`),b===null){i.logger.warn("\u274C","continuity",t,`User (${c}) is not connected to a socket, waiting for them to reappear.`);return}const S=I(i,Ii,b);a=E(i,S);for(let W of p)a?.emit(`tx-new:${t}`,W)},`sync-continuity:${t}:${c}`,i);const r=I(i,Xa,c),p=E(i,r),m=[],R=(()=>{const b=[];for(let S of e.perspectives){const{viewAtoms:K}=S,W=I(i,K,c),x=tn(W,({oldValue:d,newValue:h})=>{const w=d.map((O)=>O.key),g=h.map((O)=>O.key),F=d.filter((O)=>!g.includes(O.key)),$=h.filter((O)=>!w.includes(O.key)).flatMap((O)=>{const X=O.type==="mutable_atom"?L(i,O):O,Tn=E(i,X);return[X,Tn]});if(i.logger.info("\uD83D\uDC41","atom",S.resourceAtoms.key,`${c} has a new perspective`,{oldKeys:w,newKeys:g,revealed:$,concealed:F}),$.length>0)a?.emit(`reveal:${t}`,$);if(F.length>0)a?.emit(`conceal:${t}`,F)},`sync-continuity:${t}:${c}:perspective:${S.resourceAtoms.key}`,i);b.push(x)}return()=>{for(let S of b)S()}})(),y=()=>{const b=[];for(let K of e.globals){const W=K.type==="mutable_atom"?L(i,K):K,x=E(i,W);b.push(W,x)}for(let K of e.perspectives){const{viewAtoms:W,resourceAtoms:x}=K,d=I(i,W,c),h=E(i,d);i.logger.info("\uD83D\uDC41","atom",x.key,`${c} can see`,{viewAtoms:W,resourceAtoms:x,userView:h});for(let w of h){const g=w.type==="mutable_atom"?L(i,w):w,F=E(i,g);b.push(g,F)}}const S=N(i)?i.transactionMeta.epoch.get(t)??null:null;a?.emit(`continuity-init:${t}`,S,b);for(let K of e.actions){const W=Lo(K,(x)=>{try{const d=e.globals.map((g)=>{if(g.type==="atom")return g.key;return jn(g).key}).concat(e.perspectives.flatMap((g)=>{const{viewAtoms:F}=g,$=I(i,F,c);return E(i,$).map((X)=>{return X.type==="mutable_atom"?"*"+X.key:X.key})})),h=ee(d,x.updates),w={...x,updates:h};U(i,r,(g)=>{if(w)g.push(w),g.sort((F,$)=>F.epoch-$.epoch);return g}),a?.emit(`tx-new:${t}`,w)}catch(d){if(d instanceof Error)i.logger.error("\u274C","continuity",t,`failed to send update from transaction ${K.key} to ${c}`,d.message)}},`sync-continuity:${t}:${c}`,i);m.push(W)}};a.off(`get:${t}`,y),a.on(`get:${t}`,y);const v=(b)=>{i.logger.info("\uD83D\uDECE\uFE0F","continuity",t,"received",b);const{key:S,id:K}=b,W=`tx-run:${S}:${K}`,x=`${W}:start`,d=`${W}:end`;performance.mark(x);try{En({type:"transaction",key:S},K,i)(...b.params)}catch($){if($ instanceof Error)i.logger.error("\u274C","continuity",t,`failed to run transaction ${S} with update ${K}`,$.message)}performance.mark(d);const h=performance.measure(W,x,d);i?.logger.info("\uD83D\uDE80","transaction",S,K,h.duration);const w=`valuesOfCardsView("${c}")`,g=i.selectorAtoms.getRelatedKeys(w),F=i.valueMap.get(w);i.logger.info("\uD83D\uDC41","continuity",t,`seeing ${c} card values`,{valuesOfCardsViewKey:w,rootsOfCardValueView:g,myCardValueView:F})};a.off(`tx-run:${t}`,v),a.on(`tx-run:${t}`,v);const u=(b)=>{if(i.logger.info("\uD83D\uDC4D","continuity",t,`${c} acknowledged epoch ${b}`),p[0]?.epoch===b)U(i,r,(K)=>{return K.shift(),K})};return a?.on(`ack:${t}`,u),()=>{for(let b of m)b();a?.off(`ack:${t}`,u),R(),a?.off(`get:${t}`,y),a?.off(`tx-run:${t}`,v)}}}var Rl=Ul(Kl(),1),{Server:Ml,Namespace:Nh,Socket:Dh}=Rl.default;import{spawn as Wx}from"child_process";import{resolve as Ix}from"path";var{MODE:Co,FRONTEND_PORT:Lh,BACKEND_PORT:Ph}=process.env;function Jl(n,i){const o=Co==="development"?"ts":"js",e=i.endsWith(".bun")?"bun":"node",t=[Ix(import.meta.dir,`${i}.${o}`)];if(e==="node"&&o==="ts")t.push("--experimental-strip-types");const s=Wx(e,t);return new Ci(s,i,n.logger)}var $l=Yn({key:"count",default:0}),Ex=Dn({key:"incrementTX",do:({set:n})=>{n($l,(i)=>i+1)}}),jl=Ya({key:"countContinuity",config:(n)=>n.add($l).add(Ex)});async function ia(){rn.logger.info("\uD83E\uDDF9 dispatching SIGINT to workers"),kl.process.kill("SIGINT"),await new Promise((n)=>kl.process.once("exit",n)),rn.logger.info("\uD83D\uDEEC backend server exiting"),process.exit(0)}var rn=new ne;J.STORE.loggers[0]=new ki("warn",void 0,rn.logger);var kl=Jl(rn,"backend.worker.game.bun"),zl=Ol.createServer((n,i)=>i.end("Hello World!")),na=zl.listen(4444).address(),Vx=typeof na==="string"?null:na===null?null:na.port;if(Vx===null)throw new Error("Could not determine port for test server");new Ml(zl,{cors:{origin:Co==="development"?"http://localhost:3333":"https://tempest.games",methods:["GET","POST"]}}).use((n,i)=>{const{token:o,username:e}=n.handshake.auth;if(o==="test"&&n.id){const a=I(J.STORE,Ii,n.id);U(J.STORE,a,n),Hn(Ln,(t)=>{t.set(n.id,e)},J.STORE),U(J.STORE,te,(t)=>t.add(e)),U(J.STORE,ae,(t)=>t.add(n.id)),rn.logger.info(`${e} connected on ${n.id}`),i()}else rn.logger.info(`${e} couldn't authenticate`),i(new Error("Authentication error"))}).on("connection",(n)=>{const o=Ga({socket:n,store:J.STORE})(jl);n.on("disconnect",()=>{const e=ci(Ln,n.id,J.STORE).userKeyOfSocket,a=E(J.STORE,e);if(Hn(Ln,(t)=>{t.delete(n.id)},J.STORE),a)U(J.STORE,te,(t)=>(t.delete(a),t));U(J.STORE,ae,(t)=>(t.delete(n.id),t)),an(J.STORE,Ii,n.id),rn.logger.info(`${n.id} disconnected`),o()})});rn.emit("alive");rn.on("updatesReady",()=>{rn.emit("readyToUpdate")});process.on("SIGINT",async()=>{rn.logger.info("\u2757 received SIGINT; exiting gracefully"),await ia()});process.on("SIGTERM",async()=>{rn.logger.info("\u2757 received SIGTERM; exiting gracefully"),await ia()});process.on("exit",async()=>{rn.logger.info("\u2757 received exit; exiting gracefully"),await ia()});rn.logger.info("\uD83D\uDEEB backend server ready");
|