brs-js 2.1.3 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +271 -190
- package/dist/dist.js +6 -1
- package/dist/dist.js.map +1 -1
- package/dist/dist.mjs +7393 -0
- package/dist/dist.mjs.map +1 -0
- package/dist/dist.node.js +6 -1
- package/dist/dist.node.js.map +1 -1
- package/dist/dist.web.js +6 -1
- package/dist/dist.web.js.map +1 -1
- package/dist/src/brdb/bits.d.ts +13 -0
- package/dist/src/brdb/bits.d.ts.map +1 -0
- package/dist/src/brdb/brdb.d.ts +131 -0
- package/dist/src/brdb/brdb.d.ts.map +1 -0
- package/dist/src/brdb/brz.d.ts +51 -0
- package/dist/src/brdb/brz.d.ts.map +1 -0
- package/dist/src/brdb/bytes.d.ts +56 -0
- package/dist/src/brdb/bytes.d.ts.map +1 -0
- package/dist/src/brdb/catalog.d.ts +5 -0
- package/dist/src/brdb/catalog.d.ts.map +1 -0
- package/dist/src/brdb/componentDb.d.ts +8 -0
- package/dist/src/brdb/componentDb.d.ts.map +1 -0
- package/dist/src/brdb/fs.d.ts +16 -0
- package/dist/src/brdb/fs.d.ts.map +1 -0
- package/dist/src/brdb/guid.d.ts +11 -0
- package/dist/src/brdb/guid.d.ts.map +1 -0
- package/dist/src/brdb/index.d.ts +21 -0
- package/dist/src/brdb/index.d.ts.map +1 -0
- package/dist/src/brdb/msgpack.d.ts +23 -0
- package/dist/src/brdb/msgpack.d.ts.map +1 -0
- package/dist/src/brdb/pending.d.ts +11 -0
- package/dist/src/brdb/pending.d.ts.map +1 -0
- package/dist/src/brdb/reader.d.ts +176 -0
- package/dist/src/brdb/reader.d.ts.map +1 -0
- package/dist/src/brdb/schema.d.ts +73 -0
- package/dist/src/brdb/schema.d.ts.map +1 -0
- package/dist/src/brdb/schemaText.d.ts +8 -0
- package/dist/src/brdb/schemaText.d.ts.map +1 -0
- package/dist/src/brdb/schemas.d.ts +4 -0
- package/dist/src/brdb/schemas.d.ts.map +1 -0
- package/dist/src/brdb/world.d.ts +80 -0
- package/dist/src/brdb/world.d.ts.map +1 -0
- package/dist/src/{constants.d.ts → brs/constants.d.ts} +1 -1
- package/dist/src/brs/constants.d.ts.map +1 -0
- package/dist/src/brs/read.d.ts.map +1 -0
- package/dist/src/brs/read.v1.d.ts.map +1 -0
- package/dist/src/brs/read.v10.d.ts.map +1 -0
- package/dist/src/brs/read.v14.d.ts.map +1 -0
- package/dist/src/brs/read.v2.d.ts.map +1 -0
- package/dist/src/brs/read.v3.d.ts.map +1 -0
- package/dist/src/brs/read.v4.d.ts.map +1 -0
- package/dist/src/brs/read.v8.d.ts.map +1 -0
- package/dist/src/brs/read.v9.d.ts.map +1 -0
- package/dist/src/{types.d.ts → brs/types.d.ts} +35 -35
- package/dist/src/brs/types.d.ts.map +1 -0
- package/dist/src/{utils.d.ts → brs/utils.d.ts} +4 -9
- package/dist/src/brs/utils.d.ts.map +1 -0
- package/dist/src/{write.d.ts → brs/write.d.ts} +1 -1
- package/dist/src/brs/write.d.ts.map +1 -0
- package/dist/src/index.d.ts +10 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/uuid.d.ts +1 -1
- package/dist/src/uuid.d.ts.map +1 -1
- package/package.json +42 -18
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/read.d.ts.map +0 -1
- package/dist/src/read.v1.d.ts.map +0 -1
- package/dist/src/read.v10.d.ts.map +0 -1
- package/dist/src/read.v14.d.ts.map +0 -1
- package/dist/src/read.v2.d.ts.map +0 -1
- package/dist/src/read.v3.d.ts.map +0 -1
- package/dist/src/read.v4.d.ts.map +0 -1
- package/dist/src/read.v8.d.ts.map +0 -1
- package/dist/src/read.v9.d.ts.map +0 -1
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/write.d.ts.map +0 -1
- /package/dist/src/{read.d.ts → brs/read.d.ts} +0 -0
- /package/dist/src/{read.v1.d.ts → brs/read.v1.d.ts} +0 -0
- /package/dist/src/{read.v10.d.ts → brs/read.v10.d.ts} +0 -0
- /package/dist/src/{read.v14.d.ts → brs/read.v14.d.ts} +0 -0
- /package/dist/src/{read.v2.d.ts → brs/read.v2.d.ts} +0 -0
- /package/dist/src/{read.v3.d.ts → brs/read.v3.d.ts} +0 -0
- /package/dist/src/{read.v4.d.ts → brs/read.v4.d.ts} +0 -0
- /package/dist/src/{read.v8.d.ts → brs/read.v8.d.ts} +0 -0
- /package/dist/src/{read.v9.d.ts → brs/read.v9.d.ts} +0 -0
package/dist/dist.node.js
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
(()=>{"use strict";var t={83:(t,e,r)=>{var i=r(447),n=r(805),a=r(996),s=r(681),o=r(674),h=r(442),l=r(414),c=Object.prototype.toString;function d(t){if(!(this instanceof d))return new d(t);this.options=n.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(15&e.windowBits||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new h,this.strm.avail_out=0;var r=i.inflateInit2(this.strm,e.windowBits);if(r!==s.Z_OK)throw new Error(o[r]);if(this.header=new l,i.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=a.string2buf(e.dictionary):"[object ArrayBuffer]"===c.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=i.inflateSetDictionary(this.strm,e.dictionary))!==s.Z_OK))throw new Error(o[r])}function u(t,e){var r=new d(e);if(r.push(t,!0),r.err)throw r.msg||o[r.err];return r.result}d.prototype.push=function(t,e){var r,o,h,l,d,u=this.strm,p=this.options.chunkSize,f=this.options.dictionary,_=!1;if(this.ended)return!1;o=e===~~e?e:!0===e?s.Z_FINISH:s.Z_NO_FLUSH,"string"==typeof t?u.input=a.binstring2buf(t):"[object ArrayBuffer]"===c.call(t)?u.input=new Uint8Array(t):u.input=t,u.next_in=0,u.avail_in=u.input.length;do{if(0===u.avail_out&&(u.output=new n.Buf8(p),u.next_out=0,u.avail_out=p),(r=i.inflate(u,s.Z_NO_FLUSH))===s.Z_NEED_DICT&&f&&(r=i.inflateSetDictionary(this.strm,f)),r===s.Z_BUF_ERROR&&!0===_&&(r=s.Z_OK,_=!1),r!==s.Z_STREAM_END&&r!==s.Z_OK)return this.onEnd(r),this.ended=!0,!1;u.next_out&&(0!==u.avail_out&&r!==s.Z_STREAM_END&&(0!==u.avail_in||o!==s.Z_FINISH&&o!==s.Z_SYNC_FLUSH)||("string"===this.options.to?(h=a.utf8border(u.output,u.next_out),l=u.next_out-h,d=a.buf2string(u.output,h),u.next_out=l,u.avail_out=p-l,l&&n.arraySet(u.output,u.output,h,l,0),this.onData(d)):this.onData(n.shrinkBuf(u.output,u.next_out)))),0===u.avail_in&&0===u.avail_out&&(_=!0)}while((u.avail_in>0||0===u.avail_out)&&r!==s.Z_STREAM_END);return r===s.Z_STREAM_END&&(o=s.Z_FINISH),o===s.Z_FINISH?(r=i.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===s.Z_OK):o!==s.Z_SYNC_FLUSH||(this.onEnd(s.Z_OK),u.avail_out=0,!0)},d.prototype.onData=function(t){this.chunks.push(t)},d.prototype.onEnd=function(t){t===s.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=d,e.inflate=u,e.inflateRaw=function(t,e){return(e=e||{}).raw=!0,u(t,e)},e.ungzip=u},269:t=>{t.exports=function(t,e,r,i){for(var n=65535&t,a=t>>>16&65535,s=0;0!==r;){r-=s=r>2e3?2e3:r;do{a=a+(n=n+e[i++]|0)|0}while(--s);n%=65521,a%=65521}return n|a<<16}},293:t=>{t.exports=function(t,e){var r,i,n,a,s,o,h,l,c,d,u,p,f,_,b,g,m,w,y,k,v,x,B,A,E;r=t.state,i=t.next_in,A=t.input,n=i+(t.avail_in-5),a=t.next_out,E=t.output,s=a-(e-t.avail_out),o=a+(t.avail_out-257),h=r.dmax,l=r.wsize,c=r.whave,d=r.wnext,u=r.window,p=r.hold,f=r.bits,_=r.lencode,b=r.distcode,g=(1<<r.lenbits)-1,m=(1<<r.distbits)-1;t:do{f<15&&(p+=A[i++]<<f,f+=8,p+=A[i++]<<f,f+=8),w=_[p&g];e:for(;;){if(p>>>=y=w>>>24,f-=y,0==(y=w>>>16&255))E[a++]=65535&w;else{if(!(16&y)){if(64&y){if(32&y){r.mode=12;break t}t.msg="invalid literal/length code",r.mode=30;break t}w=_[(65535&w)+(p&(1<<y)-1)];continue e}for(k=65535&w,(y&=15)&&(f<y&&(p+=A[i++]<<f,f+=8),k+=p&(1<<y)-1,p>>>=y,f-=y),f<15&&(p+=A[i++]<<f,f+=8,p+=A[i++]<<f,f+=8),w=b[p&m];;){if(p>>>=y=w>>>24,f-=y,16&(y=w>>>16&255)){if(v=65535&w,f<(y&=15)&&(p+=A[i++]<<f,(f+=8)<y&&(p+=A[i++]<<f,f+=8)),(v+=p&(1<<y)-1)>h){t.msg="invalid distance too far back",r.mode=30;break t}if(p>>>=y,f-=y,v>(y=a-s)){if((y=v-y)>c&&r.sane){t.msg="invalid distance too far back",r.mode=30;break t}if(x=0,B=u,0===d){if(x+=l-y,y<k){k-=y;do{E[a++]=u[x++]}while(--y);x=a-v,B=E}}else if(d<y){if(x+=l+d-y,(y-=d)<k){k-=y;do{E[a++]=u[x++]}while(--y);if(x=0,d<k){k-=y=d;do{E[a++]=u[x++]}while(--y);x=a-v,B=E}}}else if(x+=d-y,y<k){k-=y;do{E[a++]=u[x++]}while(--y);x=a-v,B=E}for(;k>2;)E[a++]=B[x++],E[a++]=B[x++],E[a++]=B[x++],k-=3;k&&(E[a++]=B[x++],k>1&&(E[a++]=B[x++]))}else{x=a-v;do{E[a++]=E[x++],E[a++]=E[x++],E[a++]=E[x++],k-=3}while(k>2);k&&(E[a++]=E[x++],k>1&&(E[a++]=E[x++]))}break}if(64&y){t.msg="invalid distance code",r.mode=30;break t}w=b[(65535&w)+(p&(1<<y)-1)]}}break}}while(i<n&&a<o);i-=k=f>>3,p&=(1<<(f-=k<<3))-1,t.next_in=i,t.next_out=a,t.avail_in=i<n?n-i+5:5-(i-n),t.avail_out=a<o?o-a+257:257-(a-o),r.hold=p,r.bits=f}},303:(t,e,r)=>{var i=r(411),n=r(805),a=r(996),s=r(674),o=r(442),h=Object.prototype.toString;function l(t){if(!(this instanceof l))return new l(t);this.options=n.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var r=i.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==r)throw new Error(s[r]);if(e.header&&i.deflateSetHeader(this.strm,e.header),e.dictionary){var c;if(c="string"==typeof e.dictionary?a.string2buf(e.dictionary):"[object ArrayBuffer]"===h.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(r=i.deflateSetDictionary(this.strm,c)))throw new Error(s[r]);this._dict_set=!0}}function c(t,e){var r=new l(e);if(r.push(t,!0),r.err)throw r.msg||s[r.err];return r.result}l.prototype.push=function(t,e){var r,s,o=this.strm,l=this.options.chunkSize;if(this.ended)return!1;s=e===~~e?e:!0===e?4:0,"string"==typeof t?o.input=a.string2buf(t):"[object ArrayBuffer]"===h.call(t)?o.input=new Uint8Array(t):o.input=t,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new n.Buf8(l),o.next_out=0,o.avail_out=l),1!==(r=i.deflate(o,s))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==o.avail_out&&(0!==o.avail_in||4!==s&&2!==s)||("string"===this.options.to?this.onData(a.buf2binstring(n.shrinkBuf(o.output,o.next_out))):this.onData(n.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==r);return 4===s?(r=i.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==s||(this.onEnd(0),o.avail_out=0,!0)},l.prototype.onData=function(t){this.chunks.push(t)},l.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Deflate=l,e.deflate=c,e.deflateRaw=function(t,e){return(e=e||{}).raw=!0,c(t,e)},e.gzip=function(t,e){return(e=e||{}).gzip=!0,c(t,e)}},411:(t,e,r)=>{var i,n=r(805),a=r(665),s=r(269),o=r(823),h=r(674),l=-2,c=258,d=262,u=103,p=113,f=666;function _(t,e){return t.msg=h[e],e}function b(t){return(t<<1)-(t>4?9:0)}function g(t){for(var e=t.length;--e>=0;)t[e]=0}function m(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),0!==r&&(n.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function w(t,e){a._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,m(t.strm)}function y(t,e){t.pending_buf[t.pending++]=e}function k(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function v(t,e,r,i){var a=t.avail_in;return a>i&&(a=i),0===a?0:(t.avail_in-=a,n.arraySet(e,t.input,t.next_in,a,r),1===t.state.wrap?t.adler=s(t.adler,e,a,r):2===t.state.wrap&&(t.adler=o(t.adler,e,a,r)),t.next_in+=a,t.total_in+=a,a)}function x(t,e){var r,i,n=t.max_chain_length,a=t.strstart,s=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-d?t.strstart-(t.w_size-d):0,l=t.window,u=t.w_mask,p=t.prev,f=t.strstart+c,_=l[a+s-1],b=l[a+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(l[(r=e)+s]===b&&l[r+s-1]===_&&l[r]===l[a]&&l[++r]===l[a+1]){a+=2,r++;do{}while(l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&l[++a]===l[++r]&&a<f);if(i=c-(f-a),a=f-c,i>s){if(t.match_start=e,s=i,i>=o)break;_=l[a+s-1],b=l[a+s]}}}while((e=p[e&u])>h&&0!==--n);return s<=t.lookahead?s:t.lookahead}function B(t){var e,r,i,a,s,o=t.w_size;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=o+(o-d)){n.arraySet(t.window,t.window,o,o,0),t.match_start-=o,t.strstart-=o,t.block_start-=o,e=r=t.hash_size;do{i=t.head[--e],t.head[e]=i>=o?i-o:0}while(--r);e=r=o;do{i=t.prev[--e],t.prev[e]=i>=o?i-o:0}while(--r);a+=o}if(0===t.strm.avail_in)break;if(r=v(t.strm,t.window,t.strstart+t.lookahead,a),t.lookahead+=r,t.lookahead+t.insert>=3)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+3-1])&t.hash_mask,t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<d&&0!==t.strm.avail_in)}function A(t,e){for(var r,i;;){if(t.lookahead<d){if(B(t),t.lookahead<d&&0===e)return 1;if(0===t.lookahead)break}if(r=0,t.lookahead>=3&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==r&&t.strstart-r<=t.w_size-d&&(t.match_length=x(t,r)),t.match_length>=3)if(i=a._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!==--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else i=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(w(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,4===e?(w(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(w(t,!1),0===t.strm.avail_out)?1:2}function E(t,e){for(var r,i,n;;){if(t.lookahead<d){if(B(t),t.lookahead<d&&0===e)return 1;if(0===t.lookahead)break}if(r=0,t.lookahead>=3&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==r&&t.prev_length<t.max_lazy_match&&t.strstart-r<=t.w_size-d&&(t.match_length=x(t,r),t.match_length<=5&&(1===t.strategy||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=a._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,r=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!==--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(w(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if((i=a._tr_tally(t,0,t.window[t.strstart-1]))&&w(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=a._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,4===e?(w(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(w(t,!1),0===t.strm.avail_out)?1:2}function I(t,e,r,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=r,this.max_chain=i,this.func=n}function z(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new n.Buf16(1146),this.dyn_dtree=new n.Buf16(122),this.bl_tree=new n.Buf16(78),g(this.dyn_ltree),g(this.dyn_dtree),g(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new n.Buf16(16),this.heap=new n.Buf16(573),g(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new n.Buf16(573),g(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function C(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=2,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:p,t.adler=2===e.wrap?0:1,e.last_flush=0,a._tr_init(e),0):_(t,l)}function S(t){var e,r=C(t);return 0===r&&((e=t.state).window_size=2*e.w_size,g(e.head),e.max_lazy_match=i[e.level].max_lazy,e.good_match=i[e.level].good_length,e.nice_match=i[e.level].nice_length,e.max_chain_length=i[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0),r}function M(t,e,r,i,a,s){if(!t)return l;var o=1;if(-1===e&&(e=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),a<1||a>9||8!==r||i<8||i>15||e<0||e>9||s<0||s>4)return _(t,l);8===i&&(i=9);var h=new z;return t.state=h,h.strm=t,h.wrap=o,h.gzhead=null,h.w_bits=i,h.w_size=1<<h.w_bits,h.w_mask=h.w_size-1,h.hash_bits=a+7,h.hash_size=1<<h.hash_bits,h.hash_mask=h.hash_size-1,h.hash_shift=~~((h.hash_bits+3-1)/3),h.window=new n.Buf8(2*h.w_size),h.head=new n.Buf16(h.hash_size),h.prev=new n.Buf16(h.w_size),h.lit_bufsize=1<<a+6,h.pending_buf_size=4*h.lit_bufsize,h.pending_buf=new n.Buf8(h.pending_buf_size),h.d_buf=1*h.lit_bufsize,h.l_buf=3*h.lit_bufsize,h.level=e,h.strategy=s,h.method=r,S(t)}i=[new I(0,0,0,0,function(t,e){var r=65535;for(r>t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(B(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,w(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-d&&(w(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(w(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(w(t,!1),t.strm.avail_out),1)}),new I(4,4,8,4,A),new I(4,5,16,8,A),new I(4,6,32,32,A),new I(4,4,16,16,E),new I(8,16,32,32,E),new I(8,16,128,128,E),new I(8,32,128,256,E),new I(32,128,258,1024,E),new I(32,258,258,4096,E)],e.deflateInit=function(t,e){return M(t,e,8,15,8,0)},e.deflateInit2=M,e.deflateReset=S,e.deflateResetKeep=C,e.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?l:(t.state.gzhead=e,0):l},e.deflate=function(t,e){var r,n,s,h;if(!t||!t.state||e>5||e<0)return t?_(t,l):l;if(n=t.state,!t.output||!t.input&&0!==t.avail_in||n.status===f&&4!==e)return _(t,0===t.avail_out?-5:l);if(n.strm=t,r=n.last_flush,n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,y(n,31),y(n,139),y(n,8),n.gzhead?(y(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),y(n,255&n.gzhead.time),y(n,n.gzhead.time>>8&255),y(n,n.gzhead.time>>16&255),y(n,n.gzhead.time>>24&255),y(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),y(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(y(n,255&n.gzhead.extra.length),y(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=o(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(y(n,0),y(n,0),y(n,0),y(n,0),y(n,0),y(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),y(n,3),n.status=p);else{var d=8+(n.w_bits-8<<4)<<8;d|=(n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(d|=32),d+=31-d%31,n.status=p,k(n,d),0!==n.strstart&&(k(n,t.adler>>>16),k(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(s=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),m(t),s=n.pending,n.pending!==n.pending_buf_size));)y(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){s=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),m(t),s=n.pending,n.pending===n.pending_buf_size)){h=1;break}h=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,y(n,h)}while(0!==h);n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),0===h&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){s=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),m(t),s=n.pending,n.pending===n.pending_buf_size)){h=1;break}h=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,y(n,h)}while(0!==h);n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),0===h&&(n.status=u)}else n.status=u;if(n.status===u&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&m(t),n.pending+2<=n.pending_buf_size&&(y(n,255&t.adler),y(n,t.adler>>8&255),t.adler=0,n.status=p)):n.status=p),0!==n.pending){if(m(t),0===t.avail_out)return n.last_flush=-1,0}else if(0===t.avail_in&&b(e)<=b(r)&&4!==e)return _(t,-5);if(n.status===f&&0!==t.avail_in)return _(t,-5);if(0!==t.avail_in||0!==n.lookahead||0!==e&&n.status!==f){var v=2===n.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(B(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,r=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(w(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(w(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(w(t,!1),0===t.strm.avail_out)?1:2}(n,e):3===n.strategy?function(t,e){for(var r,i,n,s,o=t.window;;){if(t.lookahead<=c){if(B(t),t.lookahead<=c&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(i=o[n=t.strstart-1])===o[++n]&&i===o[++n]&&i===o[++n]){s=t.strstart+c;do{}while(i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&i===o[++n]&&n<s);t.match_length=c-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(r=a._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(w(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(w(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(w(t,!1),0===t.strm.avail_out)?1:2}(n,e):i[n.level].func(n,e);if(3!==v&&4!==v||(n.status=f),1===v||3===v)return 0===t.avail_out&&(n.last_flush=-1),0;if(2===v&&(1===e?a._tr_align(n):5!==e&&(a._tr_stored_block(n,0,0,!1),3===e&&(g(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),m(t),0===t.avail_out))return n.last_flush=-1,0}return 4!==e?0:n.wrap<=0?1:(2===n.wrap?(y(n,255&t.adler),y(n,t.adler>>8&255),y(n,t.adler>>16&255),y(n,t.adler>>24&255),y(n,255&t.total_in),y(n,t.total_in>>8&255),y(n,t.total_in>>16&255),y(n,t.total_in>>24&255)):(k(n,t.adler>>>16),k(n,65535&t.adler)),m(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?0:1)},e.deflateEnd=function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&e!==u&&e!==p&&e!==f?_(t,l):(t.state=null,e===p?_(t,-3):0):l},e.deflateSetDictionary=function(t,e){var r,i,a,o,h,c,d,u,p=e.length;if(!t||!t.state)return l;if(2===(o=(r=t.state).wrap)||1===o&&42!==r.status||r.lookahead)return l;for(1===o&&(t.adler=s(t.adler,e,p,0)),r.wrap=0,p>=r.w_size&&(0===o&&(g(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new n.Buf8(r.w_size),n.arraySet(u,e,p-r.w_size,r.w_size,0),e=u,p=r.w_size),h=t.avail_in,c=t.next_in,d=t.input,t.avail_in=p,t.next_in=0,t.input=e,B(r);r.lookahead>=3;){i=r.strstart,a=r.lookahead-2;do{r.ins_h=(r.ins_h<<r.hash_shift^r.window[i+3-1])&r.hash_mask,r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++}while(--a);r.strstart=i,r.lookahead=2,B(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,t.next_in=c,t.input=d,t.avail_in=h,r.wrap=o,0},e.deflateInfo="pako deflate (from Nodeca project)"},414:t=>{t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},442:t=>{t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},447:(t,e,r)=>{var i=r(805),n=r(269),a=r(823),s=r(293),o=r(998),h=-2,l=12,c=30;function d(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function u(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function p(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new i.Buf32(852),e.distcode=e.distdyn=new i.Buf32(592),e.sane=1,e.back=-1,0):h}function f(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,p(t)):h}function _(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?h:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=r,i.wbits=e,f(t))):h}function b(t,e){var r,i;return t?(i=new u,t.state=i,i.window=null,0!==(r=_(t,e))&&(t.state=null),r):h}var g,m,w=!0;function y(t){if(w){var e;for(g=new i.Buf32(512),m=new i.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(o(1,t.lens,0,288,g,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;o(2,t.lens,0,32,m,0,t.work,{bits:5}),w=!1}t.lencode=g,t.lenbits=9,t.distcode=m,t.distbits=5}function k(t,e,r,n){var a,s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new i.Buf8(s.wsize)),n>=s.wsize?(i.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):((a=s.wsize-s.wnext)>n&&(a=n),i.arraySet(s.window,e,r-n,a,s.wnext),(n-=a)?(i.arraySet(s.window,e,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=a,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=a))),0}e.inflateReset=f,e.inflateReset2=_,e.inflateResetKeep=p,e.inflateInit=function(t){return b(t,15)},e.inflateInit2=b,e.inflate=function(t,e){var r,u,p,f,_,b,g,m,w,v,x,B,A,E,I,z,C,S,M,G,W,O,U,T,P=0,D=new i.Buf8(4),R=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return h;(r=t.state).mode===l&&(r.mode=13),_=t.next_out,p=t.output,g=t.avail_out,f=t.next_in,u=t.input,b=t.avail_in,m=r.hold,w=r.bits,v=b,x=g,O=0;t:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;w<16;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if(2&r.wrap&&35615===m){r.check=0,D[0]=255&m,D[1]=m>>>8&255,r.check=a(r.check,D,2,0),m=0,w=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&m)<<8)+(m>>8))%31){t.msg="incorrect header check",r.mode=c;break}if(8!=(15&m)){t.msg="unknown compression method",r.mode=c;break}if(w-=4,W=8+(15&(m>>>=4)),0===r.wbits)r.wbits=W;else if(W>r.wbits){t.msg="invalid window size",r.mode=c;break}r.dmax=1<<W,t.adler=r.check=1,r.mode=512&m?10:l,m=0,w=0;break;case 2:for(;w<16;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if(r.flags=m,8!=(255&r.flags)){t.msg="unknown compression method",r.mode=c;break}if(57344&r.flags){t.msg="unknown header flags set",r.mode=c;break}r.head&&(r.head.text=m>>8&1),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,r.check=a(r.check,D,2,0)),m=0,w=0,r.mode=3;case 3:for(;w<32;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}r.head&&(r.head.time=m),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,D[2]=m>>>16&255,D[3]=m>>>24&255,r.check=a(r.check,D,4,0)),m=0,w=0,r.mode=4;case 4:for(;w<16;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}r.head&&(r.head.xflags=255&m,r.head.os=m>>8),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,r.check=a(r.check,D,2,0)),m=0,w=0,r.mode=5;case 5:if(1024&r.flags){for(;w<16;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}r.length=m,r.head&&(r.head.extra_len=m),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,r.check=a(r.check,D,2,0)),m=0,w=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((B=r.length)>b&&(B=b),B&&(r.head&&(W=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),i.arraySet(r.head.extra,u,f,B,W)),512&r.flags&&(r.check=a(r.check,u,B,f)),b-=B,f+=B,r.length-=B),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===b)break t;B=0;do{W=u[f+B++],r.head&&W&&r.length<65536&&(r.head.name+=String.fromCharCode(W))}while(W&&B<b);if(512&r.flags&&(r.check=a(r.check,u,B,f)),b-=B,f+=B,W)break t}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===b)break t;B=0;do{W=u[f+B++],r.head&&W&&r.length<65536&&(r.head.comment+=String.fromCharCode(W))}while(W&&B<b);if(512&r.flags&&(r.check=a(r.check,u,B,f)),b-=B,f+=B,W)break t}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;w<16;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if(m!==(65535&r.check)){t.msg="header crc mismatch",r.mode=c;break}m=0,w=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=l;break;case 10:for(;w<32;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}t.adler=r.check=d(m),m=0,w=0,r.mode=11;case 11:if(0===r.havedict)return t.next_out=_,t.avail_out=g,t.next_in=f,t.avail_in=b,r.hold=m,r.bits=w,2;t.adler=r.check=1,r.mode=l;case l:if(5===e||6===e)break t;case 13:if(r.last){m>>>=7&w,w-=7&w,r.mode=27;break}for(;w<3;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}switch(r.last=1&m,w-=1,3&(m>>>=1)){case 0:r.mode=14;break;case 1:if(y(r),r.mode=20,6===e){m>>>=2,w-=2;break t}break;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=c}m>>>=2,w-=2;break;case 14:for(m>>>=7&w,w-=7&w;w<32;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if((65535&m)!=(m>>>16^65535)){t.msg="invalid stored block lengths",r.mode=c;break}if(r.length=65535&m,m=0,w=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(B=r.length){if(B>b&&(B=b),B>g&&(B=g),0===B)break t;i.arraySet(p,u,f,B,_),b-=B,f+=B,g-=B,_+=B,r.length-=B;break}r.mode=l;break;case 17:for(;w<14;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if(r.nlen=257+(31&m),m>>>=5,w-=5,r.ndist=1+(31&m),m>>>=5,w-=5,r.ncode=4+(15&m),m>>>=4,w-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=c;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;w<3;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}r.lens[R[r.have++]]=7&m,m>>>=3,w-=3}for(;r.have<19;)r.lens[R[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,U={bits:r.lenbits},O=o(0,r.lens,0,19,r.lencode,0,r.work,U),r.lenbits=U.bits,O){t.msg="invalid code lengths set",r.mode=c;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;z=(P=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,C=65535&P,!((I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if(C<16)m>>>=I,w-=I,r.lens[r.have++]=C;else{if(16===C){for(T=I+2;w<T;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if(m>>>=I,w-=I,0===r.have){t.msg="invalid bit length repeat",r.mode=c;break}W=r.lens[r.have-1],B=3+(3&m),m>>>=2,w-=2}else if(17===C){for(T=I+3;w<T;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}w-=I,W=0,B=3+(7&(m>>>=I)),m>>>=3,w-=3}else{for(T=I+7;w<T;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}w-=I,W=0,B=11+(127&(m>>>=I)),m>>>=7,w-=7}if(r.have+B>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=c;break}for(;B--;)r.lens[r.have++]=W}}if(r.mode===c)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=c;break}if(r.lenbits=9,U={bits:r.lenbits},O=o(1,r.lens,0,r.nlen,r.lencode,0,r.work,U),r.lenbits=U.bits,O){t.msg="invalid literal/lengths set",r.mode=c;break}if(r.distbits=6,r.distcode=r.distdyn,U={bits:r.distbits},O=o(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,U),r.distbits=U.bits,O){t.msg="invalid distances set",r.mode=c;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(b>=6&&g>=258){t.next_out=_,t.avail_out=g,t.next_in=f,t.avail_in=b,r.hold=m,r.bits=w,s(t,x),_=t.next_out,p=t.output,g=t.avail_out,f=t.next_in,u=t.input,b=t.avail_in,m=r.hold,w=r.bits,r.mode===l&&(r.back=-1);break}for(r.back=0;z=(P=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,C=65535&P,!((I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if(z&&!(240&z)){for(S=I,M=z,G=C;z=(P=r.lencode[G+((m&(1<<S+M)-1)>>S)])>>>16&255,C=65535&P,!(S+(I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}m>>>=S,w-=S,r.back+=S}if(m>>>=I,w-=I,r.back+=I,r.length=C,0===z){r.mode=26;break}if(32&z){r.back=-1,r.mode=l;break}if(64&z){t.msg="invalid literal/length code",r.mode=c;break}r.extra=15&z,r.mode=22;case 22:if(r.extra){for(T=r.extra;w<T;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}r.length+=m&(1<<r.extra)-1,m>>>=r.extra,w-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;z=(P=r.distcode[m&(1<<r.distbits)-1])>>>16&255,C=65535&P,!((I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if(!(240&z)){for(S=I,M=z,G=C;z=(P=r.distcode[G+((m&(1<<S+M)-1)>>S)])>>>16&255,C=65535&P,!(S+(I=P>>>24)<=w);){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}m>>>=S,w-=S,r.back+=S}if(m>>>=I,w-=I,r.back+=I,64&z){t.msg="invalid distance code",r.mode=c;break}r.offset=C,r.extra=15&z,r.mode=24;case 24:if(r.extra){for(T=r.extra;w<T;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}r.offset+=m&(1<<r.extra)-1,m>>>=r.extra,w-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=c;break}r.mode=25;case 25:if(0===g)break t;if(B=x-g,r.offset>B){if((B=r.offset-B)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=c;break}B>r.wnext?(B-=r.wnext,A=r.wsize-B):A=r.wnext-B,B>r.length&&(B=r.length),E=r.window}else E=p,A=_-r.offset,B=r.length;B>g&&(B=g),g-=B,r.length-=B;do{p[_++]=E[A++]}while(--B);0===r.length&&(r.mode=21);break;case 26:if(0===g)break t;p[_++]=r.length,g--,r.mode=21;break;case 27:if(r.wrap){for(;w<32;){if(0===b)break t;b--,m|=u[f++]<<w,w+=8}if(x-=g,t.total_out+=x,r.total+=x,x&&(t.adler=r.check=r.flags?a(r.check,p,x,_-x):n(r.check,p,x,_-x)),x=g,(r.flags?m:d(m))!==r.check){t.msg="incorrect data check",r.mode=c;break}m=0,w=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;w<32;){if(0===b)break t;b--,m+=u[f++]<<w,w+=8}if(m!==(4294967295&r.total)){t.msg="incorrect length check",r.mode=c;break}m=0,w=0}r.mode=29;case 29:O=1;break t;case c:O=-3;break t;case 31:return-4;default:return h}return t.next_out=_,t.avail_out=g,t.next_in=f,t.avail_in=b,r.hold=m,r.bits=w,(r.wsize||x!==t.avail_out&&r.mode<c&&(r.mode<27||4!==e))&&k(t,t.output,t.next_out,x-t.avail_out)?(r.mode=31,-4):(v-=t.avail_in,x-=t.avail_out,t.total_in+=v,t.total_out+=x,r.total+=x,r.wrap&&x&&(t.adler=r.check=r.flags?a(r.check,p,x,t.next_out-x):n(r.check,p,x,t.next_out-x)),t.data_type=r.bits+(r.last?64:0)+(r.mode===l?128:0)+(20===r.mode||15===r.mode?256:0),(0===v&&0===x||4===e)&&0===O&&(O=-5),O)},e.inflateEnd=function(t){if(!t||!t.state)return h;var e=t.state;return e.window&&(e.window=null),t.state=null,0},e.inflateGetHeader=function(t,e){var r;return t&&t.state&&2&(r=t.state).wrap?(r.head=e,e.done=!1,0):h},e.inflateSetDictionary=function(t,e){var r,i=e.length;return t&&t.state?0!==(r=t.state).wrap&&11!==r.mode?h:11===r.mode&&n(1,e,i,0)!==r.check?-3:k(t,e,i,i)?(r.mode=31,-4):(r.havedict=1,0):h},e.inflateInfo="pako inflate (from Nodeca project)"},665:(t,e,r)=>{var i=r(805);function n(t){for(var e=t.length;--e>=0;)t[e]=0}var a=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],s=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],h=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],l=new Array(576);n(l);var c=new Array(60);n(c);var d=new Array(512);n(d);var u=new Array(256);n(u);var p=new Array(29);n(p);var f,_,b,g=new Array(30);function m(t,e,r,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function w(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function y(t){return t<256?d[t]:d[256+(t>>>7)]}function k(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function v(t,e,r){t.bi_valid>16-r?(t.bi_buf|=e<<t.bi_valid&65535,k(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=r-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=r)}function x(t,e,r){v(t,r[2*e],r[2*e+1])}function B(t,e){var r=0;do{r|=1&t,t>>>=1,r<<=1}while(--e>0);return r>>>1}function A(t,e,r){var i,n,a=new Array(16),s=0;for(i=1;i<=15;i++)a[i]=s=s+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=B(a[o]++,o))}}function E(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function I(t){t.bi_valid>8?k(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function z(t,e,r,i){var n=2*e,a=2*r;return t[n]<t[a]||t[n]===t[a]&&i[e]<=i[r]}function C(t,e,r){for(var i=t.heap[r],n=r<<1;n<=t.heap_len&&(n<t.heap_len&&z(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!z(e,i,t.heap[n],t.depth));)t.heap[r]=t.heap[n],r=n,n<<=1;t.heap[r]=i}function S(t,e,r){var i,n,o,h,l=0;if(0!==t.last_lit)do{i=t.pending_buf[t.d_buf+2*l]<<8|t.pending_buf[t.d_buf+2*l+1],n=t.pending_buf[t.l_buf+l],l++,0===i?x(t,n,e):(x(t,(o=u[n])+256+1,e),0!==(h=a[o])&&v(t,n-=p[o],h),x(t,o=y(--i),r),0!==(h=s[o])&&v(t,i-=g[o],h))}while(l<t.last_lit);x(t,256,e)}function M(t,e){var r,i,n,a=e.dyn_tree,s=e.stat_desc.static_tree,o=e.stat_desc.has_stree,h=e.stat_desc.elems,l=-1;for(t.heap_len=0,t.heap_max=573,r=0;r<h;r++)0!==a[2*r]?(t.heap[++t.heap_len]=l=r,t.depth[r]=0):a[2*r+1]=0;for(;t.heap_len<2;)a[2*(n=t.heap[++t.heap_len]=l<2?++l:0)]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=s[2*n+1]);for(e.max_code=l,r=t.heap_len>>1;r>=1;r--)C(t,a,r);n=h;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],C(t,a,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,a[2*n]=a[2*r]+a[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,a[2*r+1]=a[2*i+1]=n,t.heap[1]=n++,C(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,a,s,o,h=e.dyn_tree,l=e.max_code,c=e.stat_desc.static_tree,d=e.stat_desc.has_stree,u=e.stat_desc.extra_bits,p=e.stat_desc.extra_base,f=e.stat_desc.max_length,_=0;for(a=0;a<=15;a++)t.bl_count[a]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<573;r++)(a=h[2*h[2*(i=t.heap[r])+1]+1]+1)>f&&(a=f,_++),h[2*i+1]=a,i>l||(t.bl_count[a]++,s=0,i>=p&&(s=u[i-p]),o=h[2*i],t.opt_len+=o*(a+s),d&&(t.static_len+=o*(c[2*i+1]+s)));if(0!==_){do{for(a=f-1;0===t.bl_count[a];)a--;t.bl_count[a]--,t.bl_count[a+1]+=2,t.bl_count[f]--,_-=2}while(_>0);for(a=f;0!==a;a--)for(i=t.bl_count[a];0!==i;)(n=t.heap[--r])>l||(h[2*n+1]!==a&&(t.opt_len+=(a-h[2*n+1])*h[2*n],h[2*n+1]=a),i--)}}(t,e),A(a,l,t.bl_count)}function G(t,e,r){var i,n,a=-1,s=e[1],o=0,h=7,l=4;for(0===s&&(h=138,l=3),e[2*(r+1)+1]=65535,i=0;i<=r;i++)n=s,s=e[2*(i+1)+1],++o<h&&n===s||(o<l?t.bl_tree[2*n]+=o:0!==n?(n!==a&&t.bl_tree[2*n]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,a=n,0===s?(h=138,l=3):n===s?(h=6,l=3):(h=7,l=4))}function W(t,e,r){var i,n,a=-1,s=e[1],o=0,h=7,l=4;for(0===s&&(h=138,l=3),i=0;i<=r;i++)if(n=s,s=e[2*(i+1)+1],!(++o<h&&n===s)){if(o<l)do{x(t,n,t.bl_tree)}while(0!==--o);else 0!==n?(n!==a&&(x(t,n,t.bl_tree),o--),x(t,16,t.bl_tree),v(t,o-3,2)):o<=10?(x(t,17,t.bl_tree),v(t,o-3,3)):(x(t,18,t.bl_tree),v(t,o-11,7));o=0,a=n,0===s?(h=138,l=3):n===s?(h=6,l=3):(h=7,l=4)}}n(g);var O=!1;function U(t,e,r,n){v(t,0+(n?1:0),3),function(t,e,r){I(t),k(t,r),k(t,~r),i.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}(t,e,r)}e._tr_init=function(t){O||(function(){var t,e,r,i,n,h=new Array(16);for(r=0,i=0;i<28;i++)for(p[i]=r,t=0;t<1<<a[i];t++)u[r++]=i;for(u[r-1]=i,n=0,i=0;i<16;i++)for(g[i]=n,t=0;t<1<<s[i];t++)d[n++]=i;for(n>>=7;i<30;i++)for(g[i]=n<<7,t=0;t<1<<s[i]-7;t++)d[256+n++]=i;for(e=0;e<=15;e++)h[e]=0;for(t=0;t<=143;)l[2*t+1]=8,t++,h[8]++;for(;t<=255;)l[2*t+1]=9,t++,h[9]++;for(;t<=279;)l[2*t+1]=7,t++,h[7]++;for(;t<=287;)l[2*t+1]=8,t++,h[8]++;for(A(l,287,h),t=0;t<30;t++)c[2*t+1]=5,c[2*t]=B(t,5);f=new m(l,a,257,286,15),_=new m(c,s,0,30,15),b=new m(new Array(0),o,0,19,7)}(),O=!0),t.l_desc=new w(t.dyn_ltree,f),t.d_desc=new w(t.dyn_dtree,_),t.bl_desc=new w(t.bl_tree,b),t.bi_buf=0,t.bi_valid=0,E(t)},e._tr_stored_block=U,e._tr_flush_block=function(t,e,r,i){var n,a,s=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,r=4093624447;for(e=0;e<=31;e++,r>>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),M(t,t.l_desc),M(t,t.d_desc),s=function(t){var e;for(G(t,t.dyn_ltree,t.l_desc.max_code),G(t,t.dyn_dtree,t.d_desc.max_code),M(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*h[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(a=t.static_len+3+7>>>3)<=n&&(n=a)):n=a=r+5,r+4<=n&&-1!==e?U(t,e,r,i):4===t.strategy||a===n?(v(t,2+(i?1:0),3),S(t,l,c)):(v(t,4+(i?1:0),3),function(t,e,r,i){var n;for(v(t,e-257,5),v(t,r-1,5),v(t,i-4,4),n=0;n<i;n++)v(t,t.bl_tree[2*h[n]+1],3);W(t,t.dyn_ltree,e-1),W(t,t.dyn_dtree,r-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),S(t,t.dyn_ltree,t.dyn_dtree)),E(t),i&&I(t)},e._tr_tally=function(t,e,r){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(u[r]+256+1)]++,t.dyn_dtree[2*y(e)]++),t.last_lit===t.lit_bufsize-1},e._tr_align=function(t){v(t,2,3),x(t,256,l),function(t){16===t.bi_valid?(k(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},668:(t,e,r)=>{var i={};(0,r(805).assign)(i,r(303),r(83),r(681)),t.exports=i},674:t=>{t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},681:t=>{t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},805:(t,e)=>{var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function i(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var r=e.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(var n in r)i(r,n)&&(t[n]=r[n])}}return t},e.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,r,i,n){if(e.subarray&&t.subarray)t.set(e.subarray(r,r+i),n);else for(var a=0;a<i;a++)t[n+a]=e[r+a]},flattenChunks:function(t){var e,r,i,n,a,s;for(i=0,e=0,r=t.length;e<r;e++)i+=t[e].length;for(s=new Uint8Array(i),n=0,e=0,r=t.length;e<r;e++)a=t[e],s.set(a,n),n+=a.length;return s}},a={arraySet:function(t,e,r,i,n){for(var a=0;a<i;a++)t[n+a]=e[r+a]},flattenChunks:function(t){return[].concat.apply([],t)}};e.setTyped=function(t){t?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,n)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,a))},e.setTyped(r)},823:t=>{var e=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();t.exports=function(t,r,i,n){var a=e,s=n+i;t^=-1;for(var o=n;o<s;o++)t=t>>>8^a[255&(t^r[o])];return-1^t}},996:(t,e,r)=>{var i=r(805),n=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(t){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){a=!1}for(var s=new i.Buf8(256),o=0;o<256;o++)s[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;function h(t,e){if(e<65534&&(t.subarray&&a||!t.subarray&&n))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var r="",s=0;s<e;s++)r+=String.fromCharCode(t[s]);return r}s[254]=s[254]=1,e.string2buf=function(t){var e,r,n,a,s,o=t.length,h=0;for(a=0;a<o;a++)55296==(64512&(r=t.charCodeAt(a)))&&a+1<o&&56320==(64512&(n=t.charCodeAt(a+1)))&&(r=65536+(r-55296<<10)+(n-56320),a++),h+=r<128?1:r<2048?2:r<65536?3:4;for(e=new i.Buf8(h),s=0,a=0;s<h;a++)55296==(64512&(r=t.charCodeAt(a)))&&a+1<o&&56320==(64512&(n=t.charCodeAt(a+1)))&&(r=65536+(r-55296<<10)+(n-56320),a++),r<128?e[s++]=r:r<2048?(e[s++]=192|r>>>6,e[s++]=128|63&r):r<65536?(e[s++]=224|r>>>12,e[s++]=128|r>>>6&63,e[s++]=128|63&r):(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63,e[s++]=128|r>>>6&63,e[s++]=128|63&r);return e},e.buf2binstring=function(t){return h(t,t.length)},e.binstring2buf=function(t){for(var e=new i.Buf8(t.length),r=0,n=e.length;r<n;r++)e[r]=t.charCodeAt(r);return e},e.buf2string=function(t,e){var r,i,n,a,o=e||t.length,l=new Array(2*o);for(i=0,r=0;r<o;)if((n=t[r++])<128)l[i++]=n;else if((a=s[n])>4)l[i++]=65533,r+=a-1;else{for(n&=2===a?31:3===a?15:7;a>1&&r<o;)n=n<<6|63&t[r++],a--;a>1?l[i++]=65533:n<65536?l[i++]=n:(n-=65536,l[i++]=55296|n>>10&1023,l[i++]=56320|1023&n)}return h(l,i)},e.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+s[t[r]]>e?r:e}},998:(t,e,r)=>{var i=r(805),n=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],a=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],s=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],o=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(t,e,r,h,l,c,d,u){var p,f,_,b,g,m,w,y,k,v=u.bits,x=0,B=0,A=0,E=0,I=0,z=0,C=0,S=0,M=0,G=0,W=null,O=0,U=new i.Buf16(16),T=new i.Buf16(16),P=null,D=0;for(x=0;x<=15;x++)U[x]=0;for(B=0;B<h;B++)U[e[r+B]]++;for(I=v,E=15;E>=1&&0===U[E];E--);if(I>E&&(I=E),0===E)return l[c++]=20971520,l[c++]=20971520,u.bits=1,0;for(A=1;A<E&&0===U[A];A++);for(I<A&&(I=A),S=1,x=1;x<=15;x++)if(S<<=1,(S-=U[x])<0)return-1;if(S>0&&(0===t||1!==E))return-1;for(T[1]=0,x=1;x<15;x++)T[x+1]=T[x]+U[x];for(B=0;B<h;B++)0!==e[r+B]&&(d[T[e[r+B]]++]=B);if(0===t?(W=P=d,m=19):1===t?(W=n,O-=257,P=a,D-=257,m=256):(W=s,P=o,m=-1),G=0,B=0,x=A,g=c,z=I,C=0,_=-1,b=(M=1<<I)-1,1===t&&M>852||2===t&&M>592)return 1;for(;;){w=x-C,d[B]<m?(y=0,k=d[B]):d[B]>m?(y=P[D+d[B]],k=W[O+d[B]]):(y=96,k=0),p=1<<x-C,A=f=1<<z;do{l[g+(G>>C)+(f-=p)]=w<<24|y<<16|k}while(0!==f);for(p=1<<x-1;G&p;)p>>=1;if(0!==p?(G&=p-1,G+=p):G=0,B++,0===--U[x]){if(x===E)break;x=e[r+d[B]]}if(x>I&&(G&b)!==_){for(0===C&&(C=I),g+=A,S=1<<(z=x-C);z+C<E&&!((S-=U[z+C])<=0);)z++,S<<=1;if(M+=1<<z,1===t&&M>852||2===t&&M>592)return 1;l[_=G&b]=I<<24|z<<16|g-c}}return 0!==G&&(l[g+G]=x-C<<24|64<<16),u.bits=I,0}}},e={};function r(i){var n=e[i];if(void 0!==n)return n.exports;var a=e[i]={exports:{}};return t[i](a,a.exports,r),a.exports}r.d=(t,e)=>{for(var i in e)r.o(e,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};r.r(i),r.d(i,{Direction:()=>G,Rotation:()=>W,constants:()=>n,default:()=>U,read:()=>z,types:()=>s,utils:()=>a,write:()=>M});var n={};r.r(n),r.d(n,{DEFAULT_UUID:()=>c,LATEST_VERSION:()=>h,MAGIC:()=>o,MAX_INT:()=>l});var a={};r.r(a),r.d(a,{BitReader:()=>x,BitWriter:()=>B,bgra:()=>p,chunk:()=>g,concat:()=>A,isEqual:()=>f,read:()=>E,subarray:()=>b,write:()=>I});var s={};r.r(s),r.d(s,{Direction:()=>G,Rotation:()=>W});const o=new Uint8Array([66,82,83]),h=14,l=~(1<<31),c="00000000-0000-0000-0000-000000000000";var d=r(668);const u=Array.from({length:256}).map((t,e)=>(e+256).toString(16).substr(1)),p=([t,e,r,i])=>[r,e,t,i];function f(t,e){return t.length===e.length&&t.every((t,r)=>e[r]===t)}function _(t){return void 0!==t.brsOffset}function b(t,e,r=!1){if(!(t instanceof Uint8Array))throw new Error(`Invalid data type in bytes reader (${typeof t})`);let i;_(t)?i=t:(i=t,i.brsOffset=0);const n=i[r?"slice":"subarray"](i.brsOffset,i.brsOffset+e);return i.brsOffset+=e,n}function g(t,e){const r=t.length-(_(t)?t.brsOffset:0),i=Array(Math.floor(r/e));for(let n=0;n<r/e;n++)i[n]=b(t,e,!0);return i}function m(t,e=!0){const[r,i]=b(t,2);return e?i<<8|r:r<<8|i}function w(t,e=!0){const[r,i,n,a]=b(t,4);return e?a<<24|n<<16|i<<8|r:r<<24|i<<16|n<<8|a}function y(t,e=!0){const r=new Uint8Array([255&t,t>>8&255,t>>16&255,t>>24&255]);return e?r:r.reverse()}function k(t){const e=w(t),r=e<0,i=r?2*-e:e;if(r){if(i%2!=0)throw new Error("Invalid UCS-2 data size");return String.fromCodePoint(...g(b(t,i),2).map(t=>m(t)))}{const e=b(t,i).subarray(0,-1);return String.fromCharCode.apply(null,e)}}function v(t){return/^[\x00-\x7F]*$/.test(t)?A(y(t.length+1),new Uint8Array(t.split("").map(t=>t.charCodeAt(0))),new Uint8Array([0])):A(y(-t.length),new Uint8Array(t.split("").flatMap(t=>[255&t.charCodeAt(0),t.charCodeAt(0)>>8])))}class x{constructor(t){this.pos=0,this.buffer=t}empty(){return this.pos>=8*this.buffer.length}bit(){const t=!!(this.buffer[this.pos>>3]&1<<(7&this.pos));return this.pos++,t}align(){this.pos=this.pos+7&-8}int(t){let e=0,r=1;for(;e+r<t&&0!==r;)this.bit()&&(e|=r),r<<=1;return e}uint_packed(){let t=0;for(let e=0;e<5;e++){const r=this.bit();let i=0;for(let t=0;t<7;t++)i|=(this.bit()?1:0)<<t;if(t|=i<<7*e,!r)break}return t}int_packed(){const t=this.uint_packed();return(t>>1)*(1&t?1:-1)}bits(t){const e=[];for(let r=0;r<t;r++){const t=7&r;e[r>>3]=e[r>>3]&~(1<<t)|(this.bit()?1:0)<<t}return e}bytes(t){return new Uint8Array(this.bytesArr(t))}bytesArr(t){return this.bits(8*t)}array(t){const e=w(this.bytes(4)),r=Array(e);for(let i=0;i<e;i++)r[i]=t(this);return r}each(t){const e=w(this.bytes(4));for(let r=0;r<e;r++)t(this)}string(){const t=this.bytesArr(4);let e=w(new Uint8Array(t));return e<0&&(e=2*-e),k(new Uint8Array(t.concat(this.bytesArr(e))))}float(){const t=new DataView(new ArrayBuffer(4));return t.setUint16(2,m(this.bytes(2))),t.setUint16(0,m(this.bytes(2))),t.getFloat32(0)}integer(){const t=new DataView(new ArrayBuffer(4));return t.setUint16(2,m(this.bytes(2))),t.setUint16(0,m(this.bytes(2))),t.getInt32(0)}int64(){const t=new DataView(new ArrayBuffer(8));t.setUint16(6,m(this.bytes(2))),t.setUint16(4,m(this.bytes(2))),t.setUint16(2,m(this.bytes(2))),t.setUint16(0,m(this.bytes(2)));const e=t.getBigInt64(0);if(e<=1n<<64n)return Number(e);throw new Error(`Cannot read 64-bit integer ${e} as a JavaScript number...`)}double(){const t=new DataView(new ArrayBuffer(8));return t.setUint16(6,m(this.bytes(2))),t.setUint16(4,m(this.bytes(2))),t.setUint16(2,m(this.bytes(2))),t.setUint16(0,m(this.bytes(2))),t.getFloat64(0)}wireGraphVariant(){const t=this.bytes(1)[0];switch(t){case 0:return{number:this.double()};case 1:return{integer:this.int64()};case 2:return{bool:0!==this.bytes(1)[0]};case 3:return{exec:!0};case 4:return{object:!0};default:throw new Error(`Unknown wire graph variant type ${t}`)}}unreal(t){switch(t){case"String":case"Class":case"Object":case"BRInventoryEntryPlan":return this.string();case"Boolean":return!!w(this.bytes(4));case"Integer":return this.integer();case"Integer64":return this.int64();case"Float":return this.float();case"Double":return this.double();case"Color":return p(this.bytesArr(4));case"Byte":return this.bytes(1)[0];case"Rotator":case"Rotator3d":case"Vector3d":return[this.float(),this.float(),this.float()];case"IntVector":return[this.integer(),this.integer(),this.integer()];case"WireGraphVariant":case"WireGraphPrimMathVariant":return this.wireGraphVariant()}throw new Error("Unknown unreal type "+t)}}class B{constructor(){this.buffer=[],this.cur=0,this.bitNum=0}bit(t){this.cur|=(t?1:0)<<this.bitNum,this.bitNum++,this.bitNum>=8&&this.align()}bits(t,e){for(let r=0;r<e;r++)this.bit(!!(t[r>>3]&1<<(7&r)))}bytes(t){this.bits(t,8*t.length)}align(){this.bitNum>0&&(this.buffer.push(this.cur),this.cur=0,this.bitNum=0)}int(t,e){if(e<2)throw new Error(`Invalid input (BitWriter) -- max (${e}) must be at least 2`);if(t>=e)throw new Error(`Invalid input (BitWriter) -- value (${t}) is larger than max (${e})`);let r=0,i=1;for(;r+i<e&&0!==i;)this.bit(0!==(t&i)),0!==(t&i)&&(r|=i),i<<=1}uint_packed(t){do{const e=127&t;t>>=7,this.bit(0!==t),this.bits([e],7)}while(0!==t)}int_packed(t){this.uint_packed(Math.abs(t)<<1|(t>=0?1:0))}finish(){return this.align(),new Uint8Array(this.buffer)}finishSection(){return this.align(),A(y(this.buffer.length),new Uint8Array(this.buffer))}string(t){this.bytes(v(t))}float(t){const e=new Float32Array(1);e[0]=t;const r=new Int8Array(e.buffer);this.bytes([r[0],r[1],r[2],r[3]])}integer(t){const e=new Int32Array(1);e[0]=t;const r=new Int8Array(e.buffer);this.bytes([r[0],r[1],r[2],r[3]])}int64(t){const e=new DataView(new ArrayBuffer(8));e.setBigInt64(0,"bigint"==typeof t?t:BigInt(t),!0),this.bytes(new Uint8Array(e.buffer))}double(t){const e=new Float64Array(1);e[0]=t;const r=new Int8Array(e.buffer);this.bytes([r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7]])}wireGraphVariant(t){if("number"in t)this.bytes([0]),this.double(t.number);else if("integer"in t)this.bytes([1]),this.int64(t.integer);else if("bool"in t)this.bytes([2,t.bool?1:0]);else if("exec"in t)this.bytes([3]);else{if(!("object"in t))throw new Error(`Unknown wire graph variant type ${JSON.stringify(t)}`);this.bytes([4])}}self(t){return t.bind(this)(),this}array(t,e){return this.bytes(y(t.length)),t.forEach(e.bind(this)),this}each(t,e){return t.forEach(e.bind(this)),this}unreal(t,e){switch(t){case"Class":if("string"!=typeof e)throw new Error(`writing unreal type Class, did not receive string (${e})`);return void this.string(e);case"String":if("string"!=typeof e)throw new Error(`writing unreal type String, did not receive string (${e})`);return void this.string(e);case"Object":if("string"!=typeof e)throw new Error(`writing unreal type Object, did not receive string (${e})`);return void this.string(e);case"Boolean":if("boolean"!=typeof e)throw new Error(`writing unreal type Boolean, did not receive boolean (${e})`);return void this.bytes(y(e?1:0));case"Float":if("number"!=typeof e)throw new Error(`writing unreal type Float, did not receive float (${e})`);return void this.float(e);case"Byte":if("number"!=typeof e)throw new Error(`writing unreal type Byte, did not receive Byte (${e})`);return void this.bytes([255&e]);case"Color":if(!Array.isArray(e)||4!==e.length)throw new Error(`writing unreal type Color, did not receive Array (${e})`);return void this.bytes(p(e));case"Rotator":case"Rotator3d":if(!Array.isArray(e)||3!==e.length)throw new Error(`writing unreal type Rotator, did not receive Array (${e})`);return this.float(e[0]),this.float(e[1]),void this.float(e[2]);case"Vector3d":if(!Array.isArray(e)||3!==e.length)throw new Error(`writing unreal type Vector3d, did not receive Array (${e})`);return this.float(e[0]),this.float(e[1]),void this.float(e[2]);case"IntVector":if(!Array.isArray(e)||3!==e.length)throw new Error(`writing unreal type IntVector, did not receive Array (${e})`);return this.integer(e[0]),this.integer(e[1]),void this.integer(e[2]);case"Integer":if("number"!=typeof e)throw new Error(`writing unreal type Integer, did not receive integer (${e})`);return void this.integer(e);case"Integer64":if("number"!=typeof e)throw new Error(`writing unreal type Integer64, did not receive integer (${e})`);return void this.int64(e);case"Double":if("number"!=typeof e)throw new Error(`writing unreal type Double, did not receive double (${e})`);return void this.double(e);case"WireGraphVariant":if("object"!=typeof e)throw new Error(`writing unreal type WireGraphVariant, did not receive object (${e})`);return void this.wireGraphVariant(e);case"WireGraphPrimMathVariant":if("object"!=typeof e)throw new Error(`writing unreal type WireGraphPrimMathVariant, did not receive object (${e})`);return void this.wireGraphVariant(e);case"BRInventoryEntryPlan":if("string"!=typeof e)throw new Error(`writing unreal type BRInventoryEntryPlan, did not receive string (${e})`);return void this.string(e)}throw new Error("Unknown unreal type "+t)}}function A(...t){const e=t.reduce((t,e)=>t+e.length,0),r=new Uint8Array(e);let i=0;for(const e of t)r.set(e,i),i+=e.length;return r}const E={bytes:b,u16:m,i32:w,compressed:function(t){const e=w(t),r=w(t);if(r<0||e<0||r>=e)throw new Error(`Invalid compressed section size (comp: ${r}, uncomp: ${e})`);if(0===r)return b(t,e);{const e=b(t,r);return(0,d.inflate)(e)}},string:k,uuid:function(t){return e=g(b(t,16),4).flatMap(([t,e,r,i])=>[i,r,e,t]),(u[e[0]]+u[e[1]]+u[e[2]]+u[e[3]]+"-"+u[e[4]]+u[e[5]]+"-"+u[e[6]]+u[e[7]]+"-"+u[e[8]]+u[e[9]]+"-"+u[e[10]]+u[e[11]]+u[e[12]]+u[e[13]]+u[e[14]]+u[e[15]]).toLowerCase();var e},array:function(t,e){const r=w(t),i=Array(r);for(let n=0;n<r;n++)i[n]=e(t);return i},each:function(t,e){const r=w(t);for(let i=0;i<r;i++)e(t)},bits:t=>new x(t)},I={u16:function(t,e=!0){const r=[255&t,t>>8&255];return new Uint8Array(e?r:r.reverse())},i32:y,compressed:function(...t){const e=A(...t),r=(0,d.deflate)(e),i=e.length,n=r.length;if(i>l)throw new Error(`uncompressedSize (${i}) out of range`);if(n>l)throw new Error(`compressedSize (${n}) out of range`);const a=n>=i;return A(y(i),y(a?0:n),a?e:r)},uncompressed:function(...t){const e=A(...t);return A(y(e.length),y(0),e)},string:v,uuid:function(t){return A(...g(function(t){let e;const r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=255&e,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=255&e,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=255&e,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=255&e,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=255&e,r}(t),4).map(([t,e,r,i])=>new Uint8Array([i,r,e,t])))},array:function(t,e){return A(y(t.length),...t.map(t=>e(t)))},bits:()=>new B};function z(t,e={}){if("object"!=typeof e)throw new Error("Invalid options");if("boolean"!=typeof e.bricks&&(e.bricks=!0),"boolean"!=typeof e.preview&&(e.preview=!1),t[0]!==o[0]||t[1]!==o[1]||t[2]!==o[2])throw new Error("Invalid starting bytes");const r=t;r.brsOffset=3;const i=E.u16(r);switch(i){case 1:return function(t,e={}){const r=E.compressed(t),i=E.compressed(t),n=E.string(r),a=E.string(r),s=E.string(r),o=E.uuid(r),h=E.i32(r),l=E.array(i,E.string),c=E.array(i,E.string),d=E.array(i,t=>p(Array.from(E.bytes(t,4))));let u=[];const f=Math.max(c.length,2);if(e.bricks){u=Array(h);const e=E.compressed(t),r=E.bits(e);for(let t=0;!r.empty()&&t<h;t++){r.align();const e=r.int(f),i=r.bit()?[r.uint_packed(),r.uint_packed(),r.uint_packed()]:[0,0,0],n=[r.int_packed(),r.int_packed(),r.int_packed()],a=r.int(24),s=(a>>2)%6,o=3&a,h=r.bit(),l=r.bit(),c=r.bit()?p(r.bytesArr(4)):r.int(d.length);u[t]={asset_name_index:e,size:i,collision:h,position:n,direction:s,rotation:o,visibility:l,color:c}}}return{version:1,map:n,description:s,author:{id:o,name:a},mods:l,brick_assets:c,colors:d,bricks:u,brick_count:h}}(r,e);case 2:return function(t,e={}){const r=E.compressed(t),i=E.compressed(t),n=E.string(r),a=E.string(r),s=E.string(r),o=E.uuid(r),h=E.i32(r),l=E.array(i,E.string),c=E.array(i,E.string),d=E.array(i,t=>p(Array.from(E.bytes(t,4)))),u=E.array(i,E.string);let f=[];const _=Math.max(c.length,2);if(e.bricks){f=Array(h);const e=E.compressed(t),r=E.bits(e);for(let t=0;!r.empty()&&t<h;t++){r.align();const e=r.int(_),i=r.bit()?[r.uint_packed(),r.uint_packed(),r.uint_packed()]:[0,0,0],n=[r.int_packed(),r.int_packed(),r.int_packed()],a=r.int(24),s=(a>>2)%6,o=3&a,h=r.bit(),l=r.bit(),c=r.bit()?r.uint_packed():1,u=r.bit()?p(r.bytesArr(4)):r.int(d.length);f[t]={asset_name_index:e,size:i,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,color:u}}}return{version:2,map:n,description:s,author:{id:o,name:a},mods:l,brick_assets:c,colors:d,materials:u,bricks:f,brick_count:h}}(r,e);case 3:return function(t,e={}){const r=E.compressed(t),i=E.compressed(t),n=E.string(r),a=E.string(r),s=E.string(r),o=E.uuid(r),h=E.i32(r),l=E.array(i,E.string),c=E.array(i,E.string),d=E.array(i,t=>p(Array.from(E.bytes(t,4)))),u=E.array(i,E.string),f=E.array(i,t=>({id:E.uuid(t),name:E.string(t)}));let _=[];const b=Math.max(c.length,2);if(e.bricks){_=Array(h);const e=E.compressed(t),r=E.bits(e);for(let t=0;!r.empty()&&t<h;t++){r.align();const e=r.int(b),i=r.bit()?[r.uint_packed(),r.uint_packed(),r.uint_packed()]:[0,0,0],n=[r.int_packed(),r.int_packed(),r.int_packed()],a=r.int(24),s=(a>>2)%6,o=3&a,h=r.bit(),l=r.bit(),c=r.bit()?r.uint_packed():1,u=r.bit()?p(r.bytesArr(4)):r.int(d.length),f=r.uint_packed();_[t]={asset_name_index:e,size:i,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,color:u,owner_index:f}}}return{version:3,map:n,description:s,author:{id:o,name:a},mods:l,brick_assets:c,colors:d,materials:u,brick_owners:f,bricks:_,brick_count:h}}(r,e);case 4:return function(t,e={}){const r=E.compressed(t),i=E.compressed(t),n=E.string(r),a=E.string(r),s=E.string(r),o=E.uuid(r),h=E.bytes(r,8),l=E.i32(r),c=E.array(i,E.string),d=E.array(i,E.string),u=E.array(i,t=>p(Array.from(E.bytes(t,4)))),f=E.array(i,E.string),_=E.array(i,t=>({id:E.uuid(t),name:E.string(t)}));let b=[];const g=Math.max(d.length,2);if(e.bricks){b=Array(l);const e=E.compressed(t),r=E.bits(e);for(let t=0;!r.empty()&&t<l;t++){r.align();const e=r.int(g),i=r.bit()?[r.uint_packed(),r.uint_packed(),r.uint_packed()]:[0,0,0],n=[r.int_packed(),r.int_packed(),r.int_packed()],a=r.int(24),s=(a>>2)%6,o=3&a,h=r.bit(),l=r.bit(),c=r.bit()?r.uint_packed():1,d=r.bit()?p(r.bytesArr(4)):r.int(u.length),f=r.uint_packed();b[t]={asset_name_index:e,size:i,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,color:d,owner_index:f}}}return{version:4,map:n,description:s,author:{id:o,name:a},mods:c,brick_assets:d,colors:u,materials:f,brick_owners:_,bricks:b,brick_count:l,save_time:h}}(r,e);case 8:return function(t,e={}){const r=E.i32(t),i=E.compressed(t),n=E.compressed(t),a=E.string(i),s=E.string(i),o=E.string(i),h=E.uuid(i),l={name:E.string(i),id:E.uuid(i)},c=E.bytes(i,8),d=E.i32(i),u=E.array(n,E.string),f=E.array(n,E.string),_=E.array(n,t=>p(Array.from(E.bytes(t,4)))),b=E.array(n,E.string),g=E.array(n,t=>({id:E.uuid(t),name:E.string(t),bricks:E.i32(t)}));let m=null;if(E.bytes(t,1)[0]){const r=E.i32(t);e.preview?m=E.bytes(t,r):t.brsOffset+=r}let w=[];const y={},k=Math.max(b.length,2),v=Math.max(f.length,2);if(e.bricks){w=Array(d);const e=E.compressed(t),r=E.bits(e);for(let t=0;!r.empty()&&t<d;t++){r.align();const e=r.int(v),i=r.bit()?[r.uint_packed(),r.uint_packed(),r.uint_packed()]:[0,0,0],n=[r.int_packed(),r.int_packed(),r.int_packed()],a=r.int(24),s=(a>>2)%6,o=3&a,h=r.bit(),l=r.bit(),c=r.int(k),d=r.bit()?p(r.bytesArr(4)):r.int(_.length),u=r.uint_packed();w[t]={asset_name_index:e,size:i,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,color:d,owner_index:u,components:{}}}const i=E.compressed(t),n=Math.max(w.length,2);E.each(i,t=>{const e=E.string(t),r=E.bits(E.bytes(t,E.i32(t))),i=E.i32(r.bytes(4)),a=r.array(()=>r.int(n)),s=r.array(()=>[r.string(),r.string()]);for(const t of a){const i={};for(const[t,e]of s)i[t]=r.unreal(e);w[t].components[e]=i}y[e]={version:i,brick_indices:a,properties:Object.fromEntries(s)}})}return{version:8,game_version:r,map:a,description:o,author:{id:h,name:s},host:l,mods:u,brick_assets:f,colors:_,materials:b,brick_owners:g,preview:m,bricks:w,brick_count:d,save_time:c,components:y}}(r,e);case 9:return function(t,e={}){const r=E.i32(t),i=E.compressed(t),n=E.compressed(t),a=E.string(i),s=E.string(i),o=E.string(i),h=E.uuid(i),l={name:E.string(i),id:E.uuid(i)},c=E.bytes(i,8),d=E.i32(i),u=E.array(n,E.string),f=E.array(n,E.string),_=E.array(n,t=>p(Array.from(E.bytes(t,4)))),b=E.array(n,E.string),g=E.array(n,t=>({id:E.uuid(t),name:E.string(t),bricks:E.i32(t)})),m=E.array(n,E.string);let w=null;if(E.bytes(t,1)[0]){const r=E.i32(t);e.preview?w=E.bytes(t,r):t.brsOffset+=r}let y=[];const k={},v=Math.max(m.length,2),x=Math.max(b.length,2),B=Math.max(f.length,2);if(e.bricks){y=Array(d);const e=E.compressed(t),r=E.bits(e);for(let t=0;!r.empty()&&t<d;t++){r.align();const e=r.int(B),i=r.bit()?[r.uint_packed(),r.uint_packed(),r.uint_packed()]:[0,0,0],n=[r.int_packed(),r.int_packed(),r.int_packed()],a=r.int(24),s=(a>>2)%6,o=3&a,h=r.bit(),l=r.bit(),c=r.int(x),d=r.int(v),u=r.int(11),p=r.bit()?r.bytesArr(3):r.int(_.length),f=r.uint_packed();y[t]={asset_name_index:e,size:i,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,physical_index:d,material_intensity:u,color:p,owner_index:f,components:{}}}const i=E.compressed(t),n=Math.max(y.length,2);E.each(i,t=>{const e=E.string(t),r=E.bits(E.bytes(t,E.i32(t))),i=E.i32(r.bytes(4)),a=r.array(()=>r.int(n)),s=r.array(()=>[r.string(),r.string()]);for(const t of a){const i={};for(const[t,e]of s)i[t]=r.unreal(e);y[t].components[e]=i}k[e]={version:i,brick_indices:a,properties:Object.fromEntries(s)}})}return{version:9,game_version:r,map:a,description:o,author:{id:h,name:s},host:l,mods:u,brick_assets:f,colors:_,materials:b,brick_owners:g,physical_materials:m,preview:w,bricks:y,brick_count:d,save_time:c,components:k}}(r,e);case 10:return function(t,e={}){const r=E.i32(t),i=E.compressed(t),n=E.compressed(t),a=E.string(i),s=E.string(i),o=E.string(i),h=E.uuid(i),l={name:E.string(i),id:E.uuid(i)},c=E.bytes(i,8),d=E.i32(i),u=E.array(n,E.string),f=E.array(n,E.string),_=E.array(n,t=>p(Array.from(E.bytes(t,4)))),b=E.array(n,E.string),g=E.array(n,t=>({id:E.uuid(t),name:E.string(t),bricks:E.i32(t)})),m=E.array(n,E.string);let w=null;if(E.bytes(t,1)[0]){const r=E.i32(t);e.preview?w=E.bytes(t,r):t.brsOffset+=r}let y=[];const k={},v=Math.max(m.length,2),x=Math.max(b.length,2),B=Math.max(f.length,2);if(e.bricks){y=Array(d);const e=E.compressed(t),r=E.bits(e);for(let t=0;!r.empty()&&t<d;t++){r.align();const e=r.int(B),i=r.bit()?[r.uint_packed(),r.uint_packed(),r.uint_packed()]:[0,0,0],n=[r.int_packed(),r.int_packed(),r.int_packed()],a=r.int(24),s=(a>>2)%6,o=3&a,h={player:r.bit(),weapon:r.bit(),interaction:r.bit(),tool:r.bit(),physics:!1},l=r.bit(),c=r.int(x),d=r.int(v),u=r.int(11),p=r.bit()?r.bytesArr(3):r.int(_.length),f=r.uint_packed();y[t]={asset_name_index:e,size:i,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,physical_index:d,material_intensity:u,color:p,owner_index:f,components:{}}}const i=E.compressed(t),n=Math.max(y.length,2);E.each(i,t=>{const e=E.string(t),r=E.bits(E.bytes(t,E.i32(t))),i=E.i32(r.bytes(4)),a=r.array(()=>r.int(n)),s=r.array(()=>[r.string(),r.string()]);for(const t of a){const i={};for(const[t,e]of s)i[t]=r.unreal(e);y[t].components[e]=i}k[e]={version:i,brick_indices:a,properties:Object.fromEntries(s)}})}return{version:10,game_version:r,map:a,description:o,author:{id:h,name:s},host:l,mods:u,brick_assets:f,colors:_,materials:b,brick_owners:g,physical_materials:m,preview:w,bricks:y,brick_count:d,save_time:c,components:k}}(r,e);case 14:return function(t,e={}){const r=E.i32(t),i=E.compressed(t),n=E.compressed(t),a=E.string(i),s=E.string(i),o=E.string(i),h=E.uuid(i),l={name:E.string(i),id:E.uuid(i)},c=E.bytes(i,8),d=E.i32(i),u=E.array(n,E.string),f=E.array(n,E.string),_=E.array(n,t=>p(Array.from(E.bytes(t,4)))),b=E.array(n,E.string),g=E.array(n,t=>({id:E.uuid(t),name:E.string(t),display_name:E.string(t),bricks:E.i32(t)})),m=E.array(n,E.string);let w=null;if(E.bytes(t,1)[0]){const r=E.i32(t);e.preview?w=E.bytes(t,r):t.brsOffset+=r}let y=[];const k={},v=[],x=Math.max(m.length,2),B=Math.max(b.length,2),A=Math.max(f.length,2);if(e.bricks){y=Array(d);const e=E.compressed(t),r=E.bits(e);for(let t=0;!r.empty()&&t<d;t++){r.align();const e=r.int(A),i=r.bit()?[r.uint_packed(),r.uint_packed(),r.uint_packed()]:[0,0,0],n=[r.int_packed(),r.int_packed(),r.int_packed()],a=r.int(24),s=(a>>2)%6,o=3&a,h={player:r.bit(),weapon:r.bit(),interaction:r.bit(),tool:r.bit(),physics:r.bit()},l=r.bit(),c=r.int(B),d=r.int(x),u=r.int(11),p=r.bit()?r.bytesArr(3):r.int(_.length),f=r.uint_packed();y[t]={asset_name_index:e,size:i,position:n,direction:s,rotation:o,collision:h,visibility:l,material_index:c,physical_index:d,material_intensity:u,color:p,owner_index:f,components:{}}}const i=E.compressed(t),n=E.compressed(t),a=Math.max(y.length,2),s=[];E.each(i,t=>{const e=E.string(t),r=E.bits(E.bytes(t,E.i32(t))),i=E.i32(r.bytes(4)),n=r.array(()=>r.int(a)),o=r.array(()=>[r.string(),r.string()]);for(const t of n){const i={};for(const[t,e]of o)i[t]=r.unreal(e);y[t].components[e]=i}e in k||s.push(e),k[e]={version:i,brick_indices:n,properties:Object.fromEntries(o)}});const o=Math.max(s.length,2);{const t=E.bits(n),e=t.int(4294967295);for(let r=0;r<e;r++){const e=t.int(a),r=t.int(o),i=t.string(),n=t.int(a),h=t.int(o),l=t.string();t.bit(),t.align(),v.push({source:{brick_index:e,component:s[r],port:i},target:{brick_index:n,component:s[h],port:l}})}}}return{version:14,game_version:r,map:a,description:o,author:{id:h,name:s},host:l,mods:u,brick_assets:f,colors:_,materials:b,brick_owners:g,physical_materials:m,preview:w,bricks:y,brick_count:d,save_time:c,components:k,wires:v}}(r,e);default:throw new Error("Unsupported version "+i)}}const C=new Uint8Array([]),S={BCD_SpotLight:{version:1,properties:{Rotation:"Rotator",InnerConeAngle:"Float",OuterConeAngle:"Float",Brightness:"Float",Radius:"Float",Color:"Color",bUseBrickColor:"Boolean",bCastShadows:"Boolean"}},BCD_PointLight:{version:1,properties:{bMatchBrickShape:"Boolean",Brightness:"Float",Radius:"Float",Color:"Color",bUseBrickColor:"Boolean",bCastShadows:"Boolean"}},BCD_ItemSpawn:{version:1,properties:{PickupClass:"Class",bPickupEnabled:"Boolean",bPickupRespawnOnMinigameReset:"Boolean",PickupMinigameResetRespawnDelay:"Float",bPickupAutoDisableOnPickup:"Boolean",PickupRespawnTime:"Float",PickupOffsetDirection:"Byte",PickupOffsetDistance:"Float",PickupRotation:"Rotator",PickupScale:"Float",bPickupAnimationEnabled:"Boolean",PickupAnimationAxis:"Byte",bPickupAnimationAxisLocal:"Boolean",PickupSpinSpeed:"Float",PickupBobSpeed:"Float",PickupBobHeight:"Float",PickupAnimationPhase:"Float"}},BCD_Interact:{version:1,properties:{bPlayInteractSound:"Boolean",Message:"String",ConsoleTag:"String"}},BCD_AudioEmitter:{version:1,properties:{AudioDescriptor:"Object",VolumeMultiplier:"Float",PitchMultiplier:"Float",InnerRadius:"Float",MaxDistance:"Float",bSpatialization:"Boolean"}},Component_Internal_Rerouter:{version:1,properties:{}},BrickComponentType_Internal_ReadBrickGrid:{version:1,properties:{}},BrickComponentType_WireGraphPseudo_BufferSeconds:{version:1,properties:{SecondsToWait:"Float",ZeroSecondsToWait:"Float",CurrentTime:"Float",Input:"WireGraphVariant",Output:"WireGraphVariant",Buffered:"WireGraphVariant",Queued:"WireGraphVariant",bHasQueued:"Boolean"}},BrickComponentType_WireGraphPseudo_BufferTicks:{version:1,properties:{TicksToWait:"Integer",ZeroTicksToWait:"Integer",CurrentTicks:"Integer",Input:"WireGraphVariant",Output:"WireGraphVariant",Buffered:"WireGraphVariant",Queued:"WireGraphVariant",bHasQueued:"Boolean"}},BrickComponentType_WireGraphPseudo_Const:{version:1,properties:{Value:"WireGraphVariant"}},BrickComponentType_WireGraph_Expr_BitwiseAND:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseNAND:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseNOR:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseNOT:{version:1,properties:{Input:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseOR:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseShiftLeft:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseShiftRight:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_BitwiseXOR:{version:1,properties:{InputA:"Integer64",InputB:"Integer64"}},BrickComponentType_WireGraph_Expr_Ceil:{version:1,properties:{Input:"Double"}},BrickComponentType_WireGraph_Expr_CompareEqual:{version:1,properties:{InputA:"WireGraphVariant",InputB:"WireGraphVariant"}},BrickComponentType_WireGraph_Expr_CompareGreater:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_CompareGreaterOrEqual:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_CompareLess:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_CompareLessOrEqual:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_CompareNotEqual:{version:1,properties:{InputA:"WireGraphVariant",InputB:"WireGraphVariant"}},BrickComponentType_WireGraph_Expr_Floor:{version:1,properties:{Input:"Double"}},BrickComponentType_WireGraph_Expr_LogicalAND:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalNAND:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalNOR:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalNOT:{version:1,properties:{bInput:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalOR:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_LogicalXOR:{version:1,properties:{bInputA:"Boolean",bInputB:"Boolean"}},BrickComponentType_WireGraph_Expr_MathAdd:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathBlend:{version:1,properties:{Blend:"Double",InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathDivide:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathModulo:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathModuloFloored:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathMultiply:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponentType_WireGraph_Expr_MathSubtract:{version:1,properties:{InputA:"WireGraphPrimMathVariant",InputB:"WireGraphPrimMathVariant"}},BrickComponent_WireGraph_Expr_EdgeDetector:{version:1,properties:{Input:"Double",bPulseOnRisingEdge:"Boolean",bPulseOnFallingEdge:"Boolean"}}};function M(t,e={}){if("object"!=typeof t)throw new Error("Expected save to be an object");if(!Array.isArray(t.bricks)||0===t.bricks.length)throw new Error("Expected save to have bricks field");if(t.bricks.length>l)throw new Error("Brick count out of range");const r=e.compress?I.compressed:I.uncompressed,i={},n=Math.max(t.colors?.length??0,2),a=Math.max(t.brick_assets?.length??0,2),s=Math.max(t.materials?.length??0,2),d=Math.max(t.physical_materials?.length??0,2);if(t.preview&&!Array.isArray(t.preview))throw new Error("Expected preview to be an array");let u={},p=0;return A(o,I.u16(h),I.i32(t.game_version??0),r(I.string(t.map??"Unknown"),I.string(t.author?.name??"Unknown"),I.string(t.description??""),I.uuid(t.author?.id??c),A(I.string(t.host?.name??"Unknown"),I.uuid(t.host?.id??c)),new Uint8Array(t.save_time&&(Array.isArray(t.save_time)||t.save_time instanceof Uint8Array)&&8===t.save_time.length?t.save_time:[0,0,0,0,0,0,0,0]),I.i32(t.bricks.length)),r(I.array(t.mods??[],I.string),I.array(t.brick_assets??["PB_DefaultBrick"],I.string),I.array(t.colors??[],([t,e,r,i])=>new Uint8Array([r,e,t,i])),I.array(t.materials??["BMC_Plastic"],I.string),I.array(t.brick_owners??[],({id:t=c,name:e="Unknown",display_name:r="Unknown",bricks:i=0})=>A(I.uuid(t),I.string(e),I.string(r),I.i32(i))),I.array(t.physical_materials??["BPMC_Default"],I.string)),A(new Uint8Array([t.preview?1:0]),t.preview?I.i32(t.preview.length):C,t.preview??C),r(I.bits().each(t.bricks,function(t,e){if("object"!=typeof t)throw new Error(`Expected save.bricks[${e}] to be an object`);if(!Array.isArray(t.size)||3!==t.size.length)throw new Error(`Expected save.bricks[${e}].size to be an array of length 3`);if(!Array.isArray(t.position)||3!==t.position.length)throw new Error(`Expected save.bricks[${e}].position to be an array of length 3`);this.align(),this.int(t.asset_name_index??0,a);const r=null===t.size||f(t.size,[0,0,0]);if(this.bit(!r),r||t.size.map(t=>this.uint_packed(t>=0?t:1)),t.position.map(t=>this.int_packed(t)),this.int((t.direction??4)<<2|(t.rotation??0),24),"boolean"==typeof t.collision?(this.bit(t.collision),this.bit(t.collision),this.bit(t.collision),this.bit(!0),this.bit(t.collision)):(this.bit(t.collision?.player??!0),this.bit(t.collision?.weapon??!0),this.bit(t.collision?.interaction??!0),this.bit(t.collision?.tool??!0),this.bit(t.collision?.physics??!0)),this.bit(t.visibility??!0),this.int(t.material_index??0,s),this.int(t.physical_index??0,d),this.int(t.material_intensity??5,11),"number"==typeof t.color)this.bit(!1),this.int(t.color,n);else{if(this.bit(!0),t.color&&(!Array.isArray(t.color)||t.color.length<3))throw new Error(`Expected save.bricks[${e}].color to be an array of at least length 3`);this.bytes(new Uint8Array(t.color?.slice(0,3)??[255,255,255]))}this.uint_packed(t.owner_index>=0?t.owner_index:0);for(const r in t.components??{})i[r]??(i[r]=[]),i[r].push(e)}).finish()),r(I.array(Object.keys(t.components??S).filter(t=>i[t]),e=>A(I.string(e),I.bits().self(function(){const r=t.components?.[e]??S[e],n=i[e],a=Object.entries(r.properties);e in u||(u[e]=p,p++),this.bytes(I.i32(r.version)),this.array(n,e=>{this.int(e,Math.max(t.bricks.length,2))}),this.array(a,([t,e])=>{this.string(t),this.string(e)});for(const r of n)for(const[i,n]of a){if(!(i in(t.bricks[r].components?.[e]??{})))throw new Error(`Expected save.bricks[${r}].components[${e}] to have property '${i}' of type '${n}'`);this.unreal(n,t.bricks[r].components[e][i])}this.align()}).finishSection()))),r(I.bits().self(function(){const e=4294967295;if(t.wires&&Array.isArray(t.wires)&&0!==t.wires.length){this.int(t.wires.length,e);for(const e of t.wires){if("object"!=typeof e)throw new Error("Expected save.wires to be an array of objects");if(!e.source||"object"!=typeof e.source||"number"!=typeof e.source.brick_index||"string"!=typeof e.source.component||"string"!=typeof e.source.port)throw new Error("Expected save.wires[i].source to be an object with brick_index, component, and port properties");if(!e.target||"object"!=typeof e.target||"number"!=typeof e.target.brick_index||"string"!=typeof e.target.component||"string"!=typeof e.target.port)throw new Error("Expected save.wires[i].target to be an object with brick_index, component, and port properties");if(!(e.source.component in u))throw new Error(`Unknown component '${e.source.component}' in wire source`);if(!(e.target.component in u))throw new Error(`Unknown component '${e.target.component}' in wire target`);this.int(e.source.brick_index,t.bricks.length),this.int(u[e.source.component],p),this.string(e.source.port),this.int(e.target.brick_index,t.bricks.length),this.int(u[e.target.component],p),this.string(e.target.port),this.bit(!1),this.align()}}else this.int(0,e)}).finish()))}var G,W;!function(t){t[t.XPositive=0]="XPositive",t[t.XNegative=1]="XNegative",t[t.YPositive=2]="YPositive",t[t.YNegative=3]="YNegative",t[t.ZPositive=4]="ZPositive",t[t.ZNegative=5]="ZNegative"}(G||(G={})),function(t){t[t.Deg0=0]="Deg0",t[t.Deg90=1]="Deg90",t[t.Deg180=2]="Deg180",t[t.Deg270=3]="Deg270"}(W||(W={}));const O={read:z,write:M,utils:a,constants:n,types:s},U=O;"undefined"!=typeof window&&(window.BRS=O),module.exports=i})();
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=t({DEFAULT_UUID:()=>a,LATEST_VERSION:()=>14,MAGIC:()=>r,MAX_INT:()=>i}),r=new Uint8Array([66,82,83]),i=2147483647,a=`00000000-0000-0000-0000-000000000000`;function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=4,d=0,f=1,p=2;function m(e){let t=e.length;for(;--t>=0;)e[t]=0}var h=0,g=1,_=2,v=29,y=256,b=286,x=30,S=19,C=573,w=15,T=16,E=7,D=256,O=16,k=17,A=18,j=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),M=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),ee=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),te=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ne=512,re=Array(288*2);m(re);var ie=Array(x*2);m(ie);var ae=Array(ne);m(ae);var oe=Array(256);m(oe);var se=Array(v);m(se);var ce=Array(x);m(ce);var le=class{constructor(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}},ue,de,fe,pe=class{constructor(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}},me=e=>e<256?ae[e]:ae[256+(e>>>7)],he=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},N=(e,t,n)=>{e.bi_valid>T-n?(e.bi_buf|=t<<e.bi_valid&65535,he(e,e.bi_buf),e.bi_buf=t>>T-e.bi_valid,e.bi_valid+=n-T):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},ge=(e,t,n)=>{N(e,n[t*2],n[t*2+1])},_e=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},ve=e=>{e.bi_valid===16?(he(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},ye=(e,t)=>{let n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,u,d,f,p,m,h=0;for(f=0;f<=w;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<C;l++)u=e.heap[l],f=n[n[u*2+1]*2+1]+1,f>c&&(f=c,h++),n[u*2+1]=f,!(u>r)&&(e.bl_count[f]++,p=0,u>=s&&(p=o[u-s]),m=n[u*2],e.opt_len+=m*(f+p),a&&(e.static_len+=m*(i[u*2+1]+p)));if(h!==0){do{for(f=c-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[c]--,h-=2}while(h>0);for(f=c;f!==0;f--)for(u=e.bl_count[f];u!==0;)d=e.heap[--l],!(d>r)&&(n[d*2+1]!==f&&(e.opt_len+=(f-n[d*2+1])*n[d*2],n[d*2+1]=f),u--)}},be=(e,t,n)=>{let r=Array(16),i=0,a,o;for(a=1;a<=w;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=t;o++){let t=e[o*2+1];t!==0&&(e[o*2]=_e(r[t]++,t))}},xe=()=>{let e,t,n,r,i,a=Array(16);for(n=0,r=0;r<v-1;r++)for(se[r]=n,e=0;e<1<<j[r];e++)oe[n++]=r;for(oe[n-1]=r,i=0,r=0;r<16;r++)for(ce[r]=i,e=0;e<1<<M[r];e++)ae[i++]=r;for(i>>=7;r<x;r++)for(ce[r]=i<<7,e=0;e<1<<M[r]-7;e++)ae[256+i++]=r;for(t=0;t<=w;t++)a[t]=0;for(e=0;e<=143;)re[e*2+1]=8,e++,a[8]++;for(;e<=255;)re[e*2+1]=9,e++,a[9]++;for(;e<=279;)re[e*2+1]=7,e++,a[7]++;for(;e<=287;)re[e*2+1]=8,e++,a[8]++;for(be(re,287,a),e=0;e<x;e++)ie[e*2+1]=5,ie[e*2]=_e(e,5);ue=new le(re,j,257,b,w),de=new le(ie,M,0,x,w),fe=new le([],ee,0,S,E)},Se=e=>{let t;for(t=0;t<b;t++)e.dyn_ltree[t*2]=0;for(t=0;t<x;t++)e.dyn_dtree[t*2]=0;for(t=0;t<S;t++)e.bl_tree[t*2]=0;e.dyn_ltree[D*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Ce=e=>{e.bi_valid>8?he(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},we=(e,t,n,r)=>{let i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]},Te=(e,t,n)=>{let r=e.heap[n],i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&we(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!we(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},Ee=(e,t,n)=>{let r,i,a=0,o,s;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+a++]&255,r+=(e.pending_buf[e.sym_buf+a++]&255)<<8,i=e.pending_buf[e.sym_buf+a++],r===0?ge(e,i,t):(o=oe[i],ge(e,o+y+1,t),s=j[o],s!==0&&(i-=se[o],N(e,i,s)),r--,o=me(r),ge(e,o,n),s=M[o],s!==0&&(r-=ce[o],N(e,r,s)));while(a<e.sym_next);ge(e,D,t)},De=(e,t)=>{let n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,c=-1,l;for(e.heap_len=0,e.heap_max=C,o=0;o<a;o++)n[o*2]===0?n[o*2+1]=0:(e.heap[++e.heap_len]=c=o,e.depth[o]=0);for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=c,o=e.heap_len>>1;o>=1;o--)Te(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Te(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,Te(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ye(e,t),be(n,c,e.bl_count)},Oe=(e,t,n)=>{let r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a===0?s<=10?e.bl_tree[k*2]++:e.bl_tree[A*2]++:(a!==i&&e.bl_tree[a*2]++,e.bl_tree[O*2]++),s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4))},ke=(e,t,n)=>{let r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)){if(s<l)do ge(e,a,e.bl_tree);while(--s!==0);else a===0?s<=10?(ge(e,k,e.bl_tree),N(e,s-3,3)):(ge(e,A,e.bl_tree),N(e,s-11,7)):(a!==i&&(ge(e,a,e.bl_tree),s--),ge(e,O,e.bl_tree),N(e,s-3,2));s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4)}},Ae=e=>{let t;for(Oe(e,e.dyn_ltree,e.l_desc.max_code),Oe(e,e.dyn_dtree,e.d_desc.max_code),De(e,e.bl_desc),t=S-1;t>=3&&e.bl_tree[te[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},je=(e,t,n,r)=>{let i;for(N(e,t-257,5),N(e,n-1,5),N(e,r-4,4),i=0;i<r;i++)N(e,e.bl_tree[te[i]*2+1],3);ke(e,e.dyn_ltree,t-1),ke(e,e.dyn_dtree,n-1)},Me=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return d;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return f;for(n=32;n<y;n++)if(e.dyn_ltree[n*2]!==0)return f;return d},Ne=!1,Pe=e=>{Ne||(xe(),Ne=!0),e.l_desc=new pe(e.dyn_ltree,ue),e.d_desc=new pe(e.dyn_dtree,de),e.bl_desc=new pe(e.bl_tree,fe),e.bi_buf=0,e.bi_valid=0,Se(e)},Fe=(e,t,n,r)=>{N(e,(h<<1)+ +!!r,3),Ce(e),he(e,n),he(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},Ie=e=>{N(e,g<<1,3),ge(e,D,re),ve(e)},Le=(e,t,n,r)=>{let i,a,o=0;e.level>0?(e.strm.data_type===p&&(e.strm.data_type=Me(e)),De(e,e.l_desc),De(e,e.d_desc),o=Ae(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?Fe(e,t,n,r):e.strategy===u||a===i?(N(e,(g<<1)+ +!!r,3),Ee(e,re,ie)):(N(e,(_<<1)+ +!!r,3),je(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),Ee(e,e.dyn_ltree,e.dyn_dtree)),Se(e),r&&Ce(e)},Re=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(oe[n]+y+1)*2]++,e.dyn_dtree[me(t)*2]++),e.sym_next===e.sym_end),ze=(e,t,n,r)=>{let i=e&65535|0,a=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0},Be=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t})()),P=(e,t,n,r)=>{let i=Be,a=r+n;e^=-1;for(let n=r;n<a;n++)e=e>>>8^i[(e^t[n])&255];return e^-1},Ve={2:`need dictionary`,1:`stream end`,0:``,"-1":`file error`,"-2":`stream error`,"-3":`data error`,"-4":`insufficient memory`,"-5":`buffer error`,"-6":`incompatible version`},He=9,Ue=573,F=3,We=258,Ge=262,Ke=32,qe=42,Je=57,Ye=69,Xe=73,Ze=91,Qe=103,$e=113,et=666,I=1,tt=2,nt=3,rt=4,it=3,at=(e,t)=>(e.msg=Ve[t],t),ot=e=>e*2-(e>4?9:0),st=e=>{let t=e.length;for(;--t>=0;)e[t]=0},ct=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)},lt=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,ut=(e,t)=>{let n;if(e.legacy_hash)n=e.ins_h=lt(e,e.ins_h,e.window[t+F-1]);else{let r=e.window,i=r[t]|r[t+1]<<8|r[t+2]<<16|r[t+3]<<24;n=e.ins_h=Math.imul(i,66521)+66521>>>16&e.hash_mask}let r=e.prev[t&e.w_mask]=e.head[n];return e.head[n]=t,r},L=e=>{let t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},R=(e,t)=>{Le(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,L(e.strm)},z=(e,t)=>{e.pending_buf[e.pending++]=t},dt=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},ft=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=ze(e.adler,t,i,n):e.state.wrap===2&&(e.adler=P(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},pt=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-Ge?e.strstart-(e.w_size-Ge):0,l=e.window,u=e.w_mask,d=e.prev,f=e.strstart+We,p=l[r+o-1],m=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do{if(i=t,l[i+o]!==m||l[i+o-1]!==p||l[i]!==l[r]||l[++i]!==l[r+1])continue;r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<f);if(a=We-(f-r),r=f-We,a>o){if(e.match_start=t,o=a,a>=s)break;p=l[r+o-1],m=l[r+o]}}while((t=d[t&u])>c&&--n!==0);return o<=e.lookahead?o:e.lookahead},mt=e=>{let t=e.w_size,n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ge)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),ct(e),r+=t),e.strm.avail_in===0)break;if(n=ft(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,!e.legacy_hash){if(e.lookahead+e.insert>F)for(i=e.strstart-e.insert;e.insert&&(ut(e,i),i++,e.insert--,!(e.lookahead+e.insert<=F)););}else if(e.lookahead+e.insert>=F)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=lt(e,e.ins_h,e.window[i+1]);e.insert&&(ut(e,i),i++,e.insert--,!(e.lookahead+e.insert<F)););}while(e.lookahead<Ge&&e.strm.avail_in!==0)},ht=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,a,o=0,s=e.strm.avail_in;do{if(r=65535,a=e.bi_valid+42>>3,e.strm.avail_out<a||(a=e.strm.avail_out-a,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&t!==4||t===0||r!==i+e.strm.avail_in)))break;o=+(t===4&&r===i+e.strm.avail_in),Fe(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,L(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(ft(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return s-=e.strm.avail_in,s&&(s>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=s&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-s,e.strm.next_in),e.strstart),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?rt:t!==0&&t!==4&&e.strm.avail_in===0&&e.strstart===e.block_start?tt:(a=e.window_size-e.strstart,e.strm.avail_in>a&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,a+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),a>e.strm.avail_in&&(a=e.strm.avail_in),a&&(ft(e.strm,e.window,e.strstart,a),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.high_water<e.strstart&&(e.high_water=e.strstart),a=e.bi_valid+42>>3,a=e.pending_buf_size-a>65535?65535:e.pending_buf_size-a,n=a>e.w_size?e.w_size:a,i=e.strstart-e.block_start,(i>=n||(i||t===4)&&t!==0&&e.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=+(t===4&&e.strm.avail_in===0&&r===i),Fe(e,e.block_start,r,o),e.block_start+=r,L(e.strm)),o?nt:I)},gt=(e,t)=>{let n,r;for(;;){if(e.lookahead<Ge){if(mt(e),e.lookahead<Ge&&t===0)return I;if(e.lookahead===0)break}if(n=0,e.lookahead>=F&&(n=ut(e,e.strstart)),n!==0&&e.strstart-n<=e.w_size-Ge&&(e.match_length=pt(e,n)),e.match_length>=F)if(r=Re(e,e.strstart-e.match_start,e.match_length-F),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=F){e.match_length--;do e.strstart++,n=ut(e,e.strstart);while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.legacy_hash&&(e.ins_h=e.window[e.strstart],e.ins_h=lt(e,e.ins_h,e.window[e.strstart+1]));else r=Re(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(R(e,!1),e.strm.avail_out===0))return I}return e.insert=e.strstart<F-1?e.strstart:F-1,t===4?(R(e,!0),e.strm.avail_out===0?nt:rt):e.sym_next&&(R(e,!1),e.strm.avail_out===0)?I:tt},_t=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Ge){if(mt(e),e.lookahead<Ge&&t===0)return I;if(e.lookahead===0)break}if(n=0,e.lookahead>=F&&(n=ut(e,e.strstart)),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=F-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Ge&&(e.match_length=pt(e,n),e.match_length<=5&&(e.strategy===1||e.match_length===F&&e.strstart-e.match_start>4096)&&(e.match_length=F-1)),e.prev_length>=F&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-F,r=Re(e,e.strstart-1-e.prev_match,e.prev_length-F),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(n=ut(e,e.strstart));while(--e.prev_length!==0);if(e.match_available=0,e.match_length=F-1,e.strstart++,r&&(R(e,!1),e.strm.avail_out===0))return I}else if(e.match_available){if(r=Re(e,0,e.window[e.strstart-1]),r&&R(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return I}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Re(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<F-1?e.strstart:F-1,t===4?(R(e,!0),e.strm.avail_out===0?nt:rt):e.sym_next&&(R(e,!1),e.strm.avail_out===0)?I:tt},vt=(e,t)=>{let n,r,i,a,o=e.window;for(;;){if(e.lookahead<=We){if(mt(e),e.lookahead<=We&&t===0)return I;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=F&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+We;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=We-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=F?(n=Re(e,1,e.match_length-F),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Re(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(R(e,!1),e.strm.avail_out===0))return I}return e.insert=0,t===4?(R(e,!0),e.strm.avail_out===0?nt:rt):e.sym_next&&(R(e,!1),e.strm.avail_out===0)?I:tt},yt=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(mt(e),e.lookahead===0)){if(t===0)return I;break}if(e.match_length=0,n=Re(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(R(e,!1),e.strm.avail_out===0))return I}return e.insert=0,t===4?(R(e,!0),e.strm.avail_out===0?nt:rt):e.sym_next&&(R(e,!1),e.strm.avail_out===0)?I:tt},bt=class{constructor(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}},xt=[new bt(0,0,0,0,ht),new bt(4,4,8,4,gt),new bt(4,5,16,8,gt),new bt(4,6,32,32,gt),new bt(4,4,16,16,_t),new bt(8,16,32,32,_t),new bt(8,16,128,128,_t),new bt(8,32,128,256,_t),new bt(32,128,258,1024,_t),new bt(32,258,258,4096,_t)],St=e=>{e.window_size=2*e.w_size,st(e.head),e.max_lazy_match=xt[e.level].max_lazy,e.good_match=xt[e.level].good_length,e.nice_match=xt[e.level].nice_length,e.max_chain_length=xt[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=F-1,e.match_available=0,e.ins_h=0},Ct=class{constructor(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.legacy_hash=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Ue*2),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),st(this.dyn_ltree),st(this.dyn_dtree),st(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),st(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),st(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}},wt=e=>{if(!e)return 1;let t=e.state;return+(!t||t.strm!==e||t.status!==qe&&t.status!==Je&&t.status!==Ye&&t.status!==Xe&&t.status!==Ze&&t.status!==Qe&&t.status!==$e&&t.status!==et)},Tt=e=>{if(wt(e))return at(e,-2);e.total_in=e.total_out=0,e.data_type=2;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Je:t.wrap?qe:$e,e.adler=t.wrap===2?0:1,t.last_flush=-2,Pe(t),0},Et=e=>{let t=Tt(e);return t===0&&St(e.state),t},Dt=(e,t,n,r,i,a,o)=>{if(!e)return-2;let s=1;if(t===-1&&(t=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),i<1||i>He||n!==8||r<8||r>15||t<0||t>9||a<0||a>4||r===8&&s!==1)return at(e,-2);r===8&&(r=9);let c=new Ct;return e.state=c,c.strm=e,c.status=qe,c.wrap=s,c.gzhead=null,c.w_bits=r,c.w_size=1<<c.w_bits,c.w_mask=c.w_size-1,c.legacy_hash=+!!o,c.hash_bits=i+7,!c.legacy_hash&&c.hash_bits<15&&(c.hash_bits=15),c.hash_size=1<<c.hash_bits,c.hash_mask=c.hash_size-1,c.hash_shift=~~((c.hash_bits+F-1)/F),c.window=new Uint8Array(c.w_size*2),c.head=new Uint16Array(c.hash_size),c.prev=new Uint16Array(c.w_size),c.lit_bufsize=1<<i+6,c.pending_buf_size=c.lit_bufsize*4,c.pending_buf=new Uint8Array(c.pending_buf_size),c.sym_buf=c.lit_bufsize,c.sym_end=(c.lit_bufsize-1)*3,c.level=t,c.strategy=a,c.method=n,Et(e)},Ot=(e,t)=>{if(wt(e)||t>5||t<0)return e?at(e,-2):-2;let n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===et&&t!==4)return at(e,e.avail_out===0?-5:-2);let r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(L(e),e.avail_out===0)return n.last_flush=-1,0}else if(e.avail_in===0&&ot(t)<=ot(r)&&t!==4)return at(e,-5);if(n.status===et&&e.avail_in!==0)return at(e,-5);if(n.status===qe&&n.wrap===0&&(n.status=$e),n.status===qe){let t=8+(n.w_bits-8<<4)<<8,r=-1;if(r=n.strategy>=2||n.level<2?0:n.level<6?1:n.level===6?2:3,t|=r<<6,n.strstart!==0&&(t|=Ke),t+=31-t%31,dt(n,t),n.strstart!==0&&(dt(n,e.adler>>>16),dt(n,e.adler&65535)),e.adler=1,n.status=$e,L(e),n.pending!==0)return n.last_flush=-1,0}if(n.status===Je){if(e.adler=0,z(n,31),z(n,139),z(n,8),n.gzhead)z(n,+!!n.gzhead.text+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),z(n,n.gzhead.time&255),z(n,n.gzhead.time>>8&255),z(n,n.gzhead.time>>16&255),z(n,n.gzhead.time>>24&255),z(n,n.level===9?2:n.strategy>=2||n.level<2?4:0),z(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(z(n,n.gzhead.extra.length&255),z(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=P(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Ye;else if(z(n,0),z(n,0),z(n,0),z(n,0),z(n,0),z(n,n.level===9?2:n.strategy>=2||n.level<2?4:0),z(n,it),n.status=$e,L(e),n.pending!==0)return n.last_flush=-1,0}if(n.status===Ye){if(n.gzhead.extra){let t=n.pending,r=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+r>n.pending_buf_size;){let i=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+i),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex+=i,L(e),n.pending!==0)return n.last_flush=-1,0;t=0,r-=i}let i=new Uint8Array(n.gzhead.extra);n.pending_buf.set(i.subarray(n.gzindex,n.gzindex+r),n.pending),n.pending+=r,n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=Xe}if(n.status===Xe){if(n.gzhead.name){let t=n.pending,r;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),L(e),n.pending!==0)return n.last_flush=-1,0;t=0}r=n.gzindex<n.gzhead.name.length?n.gzhead.name.charCodeAt(n.gzindex++)&255:0,z(n,r)}while(r!==0);n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=Ze}if(n.status===Ze){if(n.gzhead.comment){let t=n.pending,r;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t)),L(e),n.pending!==0)return n.last_flush=-1,0;t=0}r=n.gzindex<n.gzhead.comment.length?n.gzhead.comment.charCodeAt(n.gzindex++)&255:0,z(n,r)}while(r!==0);n.gzhead.hcrc&&n.pending>t&&(e.adler=P(e.adler,n.pending_buf,n.pending-t,t))}n.status=Qe}if(n.status===Qe){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(L(e),n.pending!==0))return n.last_flush=-1,0;z(n,e.adler&255),z(n,e.adler>>8&255),e.adler=0}if(n.status=$e,L(e),n.pending!==0)return n.last_flush=-1,0}if(e.avail_in!==0||n.lookahead!==0||t!==0&&n.status!==et){let r=n.level===0?ht(n,t):n.strategy===2?yt(n,t):n.strategy===3?vt(n,t):xt[n.level].func(n,t);if((r===nt||r===rt)&&(n.status=et),r===I||r===nt)return e.avail_out===0&&(n.last_flush=-1),0;if(r===tt&&(t===1?Ie(n):t!==5&&(Fe(n,0,0,!1),t===3&&(st(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),L(e),e.avail_out===0))return n.last_flush=-1,0}return t===4?n.wrap<=0?1:(n.wrap===2?(z(n,e.adler&255),z(n,e.adler>>8&255),z(n,e.adler>>16&255),z(n,e.adler>>24&255),z(n,e.total_in&255),z(n,e.total_in>>8&255),z(n,e.total_in>>16&255),z(n,e.total_in>>24&255)):(dt(n,e.adler>>>16),dt(n,e.adler&65535)),L(e),n.wrap>0&&(n.wrap=-n.wrap),+(n.pending===0)):0},kt=e=>{if(wt(e))return-2;let t=e.state.status;return e.state=null,t===$e?at(e,-3):0},At=(e,t)=>{let n=t.length;if(wt(e))return-2;let r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==qe||r.lookahead)return-2;if(i===1&&(e.adler=ze(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(st(r.head),r.strstart=0,r.block_start=0,r.insert=0);let e=new Uint8Array(r.w_size);e.set(t.subarray(n-r.w_size,n),0),t=e,n=r.w_size}let a=e.avail_in,o=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,mt(r);r.lookahead>=F;){let e=r.strstart,t=r.lookahead-(F-1);do ut(r,e),e++;while(--t);r.strstart=e,r.lookahead=F-1,mt(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=F-1,r.match_available=0,e.next_in=o,e.input=s,e.avail_in=a,r.wrap=i,0},jt=16209,Mt=16191;function Nt(e,t){let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E=e.state;n=e.next_in,w=e.input,r=n+(e.avail_in-5),i=e.next_out,T=e.output,a=i-(t-e.avail_out),o=i+(e.avail_out-257),s=E.dmax,c=E.wsize,l=E.whave,u=E.wnext,d=E.window,f=E.hold,p=E.bits,m=E.lencode,h=E.distcode,g=(1<<E.lenbits)-1,_=(1<<E.distbits)-1;top:do{p<15&&(f+=w[n++]<<p,p+=8,f+=w[n++]<<p,p+=8),v=m[f&g];dolen:for(;;){if(y=v>>>24,f>>>=y,p-=y,y=v>>>16&255,y===0)T[i++]=v&65535;else if(y&16){b=v&65535,y&=15,y&&(p<y&&(f+=w[n++]<<p,p+=8),b+=f&(1<<y)-1,f>>>=y,p-=y),p<15&&(f+=w[n++]<<p,p+=8,f+=w[n++]<<p,p+=8),v=h[f&_];dodist:for(;;){if(y=v>>>24,f>>>=y,p-=y,y=v>>>16&255,y&16){if(x=v&65535,y&=15,p<y&&(f+=w[n++]<<p,p+=8,p<y&&(f+=w[n++]<<p,p+=8)),x+=f&(1<<y)-1,x>s){e.msg=`invalid distance too far back`,E.mode=jt;break top}if(f>>>=y,p-=y,y=i-a,x>y){if(y=x-y,y>l&&E.sane){e.msg=`invalid distance too far back`,E.mode=jt;break top}if(S=0,C=d,u===0){if(S+=c-y,y<b){b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}}else if(u<y){if(S+=c+u-y,y-=u,y<b){b-=y;do T[i++]=d[S++];while(--y);if(S=0,u<b){y=u,b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}}}else if(S+=u-y,y<b){b-=y;do T[i++]=d[S++];while(--y);S=i-x,C=T}for(;b>2;)T[i++]=C[S++],T[i++]=C[S++],T[i++]=C[S++],b-=3;b&&(T[i++]=C[S++],b>1&&(T[i++]=C[S++]))}else{S=i-x;do T[i++]=T[S++],T[i++]=T[S++],T[i++]=T[S++],b-=3;while(b>2);b&&(T[i++]=T[S++],b>1&&(T[i++]=T[S++]))}}else if(y&64){e.msg=`invalid distance code`,E.mode=jt;break top}else{v=h[(v&65535)+(f&(1<<y)-1)];continue dodist}break}}else if(!(y&64)){v=m[(v&65535)+(f&(1<<y)-1)];continue dolen}else if(y&32){E.mode=Mt;break top}else{e.msg=`invalid literal/length code`,E.mode=jt;break top}break}}while(n<r&&i<o);b=p>>3,n-=b,p-=b<<3,f&=(1<<p)-1,e.next_in=n,e.next_out=i,e.avail_in=n<r?5+(r-n):5-(n-r),e.avail_out=i<o?257+(o-i):257-(i-o),E.hold=f,E.bits=p}var Pt=15,Ft=852,It=592,Lt=0,Rt=1,zt=2,Bt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Vt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,199,75]),Ht=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Ut=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Wt=(e,t,n,r,i,a,o,s)=>{let c=s.bits,l=0,u=0,d=0,f=0,p=0,m=0,h=0,g=0,_=0,v=0,y,b,x,S,C,w=null,T,E=new Uint16Array(16),D=new Uint16Array(16),O=null,k,A,j;for(l=0;l<=Pt;l++)E[l]=0;for(u=0;u<r;u++)E[t[n+u]]++;for(p=c,f=Pt;f>=1&&E[f]===0;f--);if(p>f&&(p=f),f===0)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(d=1;d<f&&E[d]===0;d++);for(p<d&&(p=d),g=1,l=1;l<=Pt;l++)if(g<<=1,g-=E[l],g<0)return-1;if(g>0&&(e===Lt||f!==1))return-1;for(D[1]=0,l=1;l<Pt;l++)D[l+1]=D[l]+E[l];for(u=0;u<r;u++)t[n+u]!==0&&(o[D[t[n+u]]++]=u);if(e===Lt?(w=O=o,T=20):e===Rt?(w=Bt,O=Vt,T=257):(w=Ht,O=Ut,T=0),v=0,u=0,l=d,C=a,m=p,h=0,x=-1,_=1<<p,S=_-1,e===Rt&&_>Ft||e===zt&&_>It)return 1;for(;;){k=l-h,o[u]+1<T?(A=0,j=o[u]):o[u]>=T?(A=O[o[u]-T],j=w[o[u]-T]):(A=96,j=0),y=1<<l-h,b=1<<m,d=b;do b-=y,i[C+(v>>h)+b]=k<<24|A<<16|j|0;while(b!==0);for(y=1<<l-1;v&y;)y>>=1;if(y===0?v=0:(v&=y-1,v+=y),u++,--E[l]===0){if(l===f)break;l=t[n+o[u]]}if(l>p&&(v&S)!==x){for(h===0&&(h=p),C+=d,m=l-h,g=1<<m;m+h<f&&(g-=E[m+h],!(g<=0));)m++,g<<=1;if(_+=1<<m,e===Rt&&_>Ft||e===zt&&_>It)return 1;x=v&S,i[x]=p<<24|m<<16|C-a|0}}return v!==0&&(i[C+v]=l-h<<24|4194304),s.bits=p,0},Gt=0,Kt=1,qt=2,Jt=16180,Yt=16181,Xt=16182,Zt=16183,Qt=16184,$t=16185,en=16186,tn=16187,nn=16188,rn=16189,an=16190,on=16191,sn=16192,cn=16193,ln=16194,un=16195,dn=16196,fn=16197,pn=16198,mn=16199,hn=16200,gn=16201,_n=16202,vn=16203,yn=16204,bn=16205,xn=16206,Sn=16207,Cn=16208,B=16209,wn=16210,Tn=16211,En=852,Dn=592,On=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24),kn=class{constructor(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}},An=e=>{if(!e)return 1;let t=e.state;return+(!t||t.strm!==e||t.mode<Jt||t.mode>Tn)},jn=e=>{if(An(e))return-2;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg=``,t.wrap&&(e.adler=t.wrap&1),t.mode=Jt,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(En),t.distcode=t.distdyn=new Int32Array(Dn),t.sane=1,t.back=-1,0},Mn=e=>{if(An(e))return-2;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,jn(e)},Nn=(e,t)=>{let n;if(An(e))return-2;let r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?-2:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,Mn(e))},Pn=(e,t)=>{if(!e)return-2;let n=new kn;e.state=n,n.strm=e,n.window=null,n.mode=Jt;let r=Nn(e,t);return r!==0&&(e.state=null),r},Fn=!0,In,Ln,Rn=e=>{if(Fn){In=new Int32Array(512),Ln=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Wt(Kt,e.lens,0,288,In,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Wt(qt,e.lens,0,32,Ln,0,e.work,{bits:5}),Fn=!1}e.lencode=In,e.lenbits=9,e.distcode=Ln,e.distbits=5},zn=(e,t,n,r)=>{let i,a=e.state;return a.window===null&&(a.window=new Uint8Array(1<<a.wbits)),a.wsize===0&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(t.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},Bn=(e,t)=>{let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g=0,_,v,y,b,x,S,C,w,T=new Uint8Array(4),E,D,O=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(An(e)||!e.output||!e.input&&e.avail_in!==0)return-2;n=e.state,n.mode===on&&(n.mode=sn),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,d=s,f=c,w=0;inf_leave:for(;;)switch(n.mode){case Jt:if(n.wrap===0){n.mode=sn;break}for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&2&&l===35615){n.wbits===0&&(n.wbits=15),n.check=0,T[0]=l&255,T[1]=l>>>8&255,n.check=P(n.check,T,2,0),l=0,u=0,n.mode=Yt;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg=`incorrect header check`,n.mode=B;break}if((l&15)!=8){e.msg=`unknown compression method`,n.mode=B;break}if(l>>>=4,u-=4,C=(l&15)+8,n.wbits===0&&(n.wbits=C),C>15||C>n.wbits){e.msg=`invalid window size`,n.mode=B;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=l&512?rn:on,l=0,u=0;break;case Yt:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.flags=l,(n.flags&255)!=8){e.msg=`unknown compression method`,n.mode=B;break}if(n.flags&57344){e.msg=`unknown header flags set`,n.mode=B;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=P(n.check,T,2,0)),l=0,u=0,n.mode=Xt;case Xt:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.time=l),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,T[2]=l>>>16&255,T[3]=l>>>24&255,n.check=P(n.check,T,4,0)),l=0,u=0,n.mode=Zt;case Zt:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=P(n.check,T,2,0)),l=0,u=0,n.mode=Qt;case Qt:if(n.flags&1024){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&n.wrap&4&&(T[0]=l&255,T[1]=l>>>8&255,n.check=P(n.check,T,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=$t;case $t:if(n.flags&1024&&(p=n.length,p>s&&(p=s),p&&(n.head&&(C=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+p),C)),n.flags&512&&n.wrap&4&&(n.check=P(n.check,r,p,a)),s-=p,a+=p,n.length-=p),n.length))break inf_leave;n.length=0,n.mode=en;case en:if(n.flags&2048){if(s===0)break inf_leave;p=0;do C=r[a+p++],n.head&&C&&n.length<65536&&(n.head.name+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=P(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.name=null);n.length=0,n.mode=tn;case tn:if(n.flags&4096){if(s===0)break inf_leave;p=0;do C=r[a+p++],n.head&&C&&n.length<65536&&(n.head.comment+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=P(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.comment=null);n.mode=nn;case nn:if(n.flags&512){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.check&65535)){e.msg=`header crc mismatch`,n.mode=B;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=on;break;case rn:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}e.adler=n.check=On(l),l=0,u=0,n.mode=an;case an:if(n.havedict===0)return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,2;e.adler=n.check=1,n.mode=on;case on:if(t===5||t===6)break inf_leave;case sn:if(n.last){l>>>=u&7,u-=u&7,n.mode=xn;break}for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}switch(n.last=l&1,l>>>=1,--u,l&3){case 0:n.mode=cn;break;case 1:if(Rn(n),n.mode=mn,t===6){l>>>=2,u-=2;break inf_leave}break;case 2:n.mode=dn;break;case 3:e.msg=`invalid block type`,n.mode=B}l>>>=2,u-=2;break;case cn:for(l>>>=u&7,u-=u&7;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if((l&65535)!=(l>>>16^65535)){e.msg=`invalid stored block lengths`,n.mode=B;break}if(n.length=l&65535,l=0,u=0,n.mode=ln,t===6)break inf_leave;case ln:n.mode=un;case un:if(p=n.length,p){if(p>s&&(p=s),p>c&&(p=c),p===0)break inf_leave;i.set(r.subarray(a,a+p),o),s-=p,a+=p,c-=p,o+=p,n.length-=p;break}n.mode=on;break;case dn:for(;u<14;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.nlen=(l&31)+257,l>>>=5,u-=5,n.ndist=(l&31)+1,l>>>=5,u-=5,n.ncode=(l&15)+4,l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg=`too many length or distance symbols`,n.mode=B;break}n.have=0,n.mode=fn;case fn:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.lens[O[n.have++]]=l&7,l>>>=3,u-=3}for(;n.have<19;)n.lens[O[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,E={bits:n.lenbits},w=Wt(Gt,n.lens,0,19,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid code lengths set`,n.mode=B;break}n.have=0,n.mode=pn;case pn:for(;n.have<n.nlen+n.ndist;){for(;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(y<16)l>>>=_,u-=_,n.lens[n.have++]=y;else{if(y===16){for(D=_+2;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(l>>>=_,u-=_,n.have===0){e.msg=`invalid bit length repeat`,n.mode=B;break}C=n.lens[n.have-1],p=3+(l&3),l>>>=2,u-=2}else if(y===17){for(D=_+3;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=3+(l&7),l>>>=3,u-=3}else{for(D=_+7;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=11+(l&127),l>>>=7,u-=7}if(n.have+p>n.nlen+n.ndist){e.msg=`invalid bit length repeat`,n.mode=B;break}for(;p--;)n.lens[n.have++]=C}}if(n.mode===B)break;if(n.lens[256]===0){e.msg=`invalid code -- missing end-of-block`,n.mode=B;break}if(n.lenbits=9,E={bits:n.lenbits},w=Wt(Kt,n.lens,0,n.nlen,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid literal/lengths set`,n.mode=B;break}if(n.distbits=6,n.distcode=n.distdyn,E={bits:n.distbits},w=Wt(qt,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,E),n.distbits=E.bits,w){e.msg=`invalid distances set`,n.mode=B;break}if(n.mode=mn,t===6)break inf_leave;case mn:n.mode=hn;case hn:if(s>=6&&c>=258){e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,Nt(e,f),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===on&&(n.back=-1);break}for(n.back=0;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(v&&!(v&240)){for(b=_,x=v,S=y;g=n.lencode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,n.length=y,v===0){n.mode=bn;break}if(v&32){n.back=-1,n.mode=on;break}if(v&64){e.msg=`invalid literal/length code`,n.mode=B;break}n.extra=v&15,n.mode=gn;case gn:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=_n;case _n:for(;g=n.distcode[l&(1<<n.distbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(!(v&240)){for(b=_,x=v,S=y;g=n.distcode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,v&64){e.msg=`invalid distance code`,n.mode=B;break}n.offset=y,n.extra=v&15,n.mode=vn;case vn:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg=`invalid distance too far back`,n.mode=B;break}n.mode=yn;case yn:if(c===0)break inf_leave;if(p=f-c,n.offset>p){if(p=n.offset-p,p>n.whave&&n.sane){e.msg=`invalid distance too far back`,n.mode=B;break}p>n.wnext?(p-=n.wnext,m=n.wsize-p):m=n.wnext-p,p>n.length&&(p=n.length),h=n.window}else h=i,m=o-n.offset,p=n.length;p>c&&(p=c),c-=p,n.length-=p;do i[o++]=h[m++];while(--p);n.length===0&&(n.mode=hn);break;case bn:if(c===0)break inf_leave;i[o++]=n.length,c--,n.mode=hn;break;case xn:if(n.wrap){for(;u<32;){if(s===0)break inf_leave;s--,l|=r[a++]<<u,u+=8}if(f-=c,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?P(n.check,i,f,o-f):ze(n.check,i,f,o-f)),f=c,n.wrap&4&&(n.flags?l:On(l))!==n.check){e.msg=`incorrect data check`,n.mode=B;break}l=0,u=0}n.mode=Sn;case Sn:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&4&&l!==(n.total&4294967295)){e.msg=`incorrect length check`,n.mode=B;break}l=0,u=0}n.mode=Cn;case Cn:w=1;break inf_leave;case B:w=-3;break inf_leave;case wn:return-4;case Tn:default:return-2}return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<B&&(n.mode<xn||t!==4))&&zn(e,e.output,e.next_out,f-e.avail_out)?(n.mode=wn,-4):(d-=e.avail_in,f-=e.avail_out,e.total_in+=d,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?P(n.check,i,f,e.next_out-f):ze(n.check,i,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===on?128:0)+(n.mode===mn||n.mode===ln?256:0),(d===0&&f===0||t===4)&&w===0&&(w=-5),w)},Vn=e=>{if(An(e))return-2;let t=e.state;return t.window&&(t.window=null),e.state=null,0},Hn=(e,t)=>{let n=t.length,r,i,a;return An(e)||(r=e.state,r.wrap!==0&&r.mode!==an)?-2:r.mode===an&&(i=1,i=ze(i,t,n,0),i!==r.check)?-3:(a=zn(e,t,n,n),a?(r.mode=wn,-4):(r.havedict=1,0))},Un=class{constructor(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=``,this.state=null,this.data_type=2,this.adler=0}},Wn=e=>{let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),n=0;for(let r of e)t.set(r,n),n+=r.length;return t},Gn=Object.prototype.toString,Kn={level:-1,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,raw:!1,gzip:!1,legacyHash:!1,dictionary:new Uint8Array},qn=class{constructor(e={}){l(this,`options`,void 0),l(this,`err`,void 0),l(this,`msg`,void 0),l(this,`ended`,void 0),l(this,`started`,void 0),l(this,`chunks`,void 0),l(this,`strm`,void 0),l(this,`result`,void 0),this.options=Object.assign({},Kn,e);let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=``,this.ended=!1,this.started=!1,this.chunks=[],this.result=new Uint8Array,this.strm=new Un,this.strm.avail_out=0;let n=Dt(this.strm,t.level,8,t.windowBits,t.memLevel,t.strategy,t.legacyHash);if(n!==0)throw Error(Ve[n]);Gn.call(t.dictionary)===`[object ArrayBuffer]`&&(t.dictionary=new Uint8Array(t.dictionary));let r=t.dictionary;if(r.length){if(t.gzip)throw Error(`dictionary is not supported with gzip`);if(n=At(this.strm,r),n!==0)throw Error(Ve[n])}}push(e,t=!1){let n=this.strm,r=this.options.chunkSize,i,a;if(this.ended)return!1;for(a=typeof t==`number`?t:t===!0?4:0,typeof e==`string`?n.input=new TextEncoder().encode(e):Gn.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length,this.started||(this.started=!0,this.onStart(n));;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===2||a===3)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Ot(n,a),i===1){n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=kt(this.strm);break}if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)return!0}return this.err=i,this.msg=n.msg||Ve[i],this.ended=!0,this.onEnd(i),i===0}onStart(e){}onData(e){this.chunks.push(e)}onEnd(e){e===0&&(this.result=Wn(this.chunks)),this.chunks=[]}};function Jn(e,t={}){let n=new qn(t);if(n.push(e,!0),n.err)throw Error(n.msg);return n.result}var Yn=Object.prototype.toString,Xn={chunkSize:1024*64,windowBits:15,raw:!1,dictionary:new Uint8Array},Zn=class{constructor(e={}){l(this,`options`,void 0),l(this,`err`,void 0),l(this,`msg`,void 0),l(this,`ended`,void 0),l(this,`started`,void 0),l(this,`chunks`,void 0),l(this,`strm`,void 0),l(this,`result`,void 0),this.options=Object.assign({},Xn,e);let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!e.windowBits&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg=``,this.ended=!1,this.started=!1,this.chunks=[],this.result=new Uint8Array,this.strm=new Un,this.strm.avail_out=0;let n=Pn(this.strm,t.windowBits);if(n!==0)throw Error(Ve[n]);Yn.call(t.dictionary)===`[object ArrayBuffer]`&&(t.dictionary=new Uint8Array(t.dictionary));let r=t.dictionary;if(t.raw&&r.length&&(n=Hn(this.strm,r),n!==0))throw Error(Ve[n])}push(e,t=!1){let n=this.strm,r=this.options.chunkSize,i,a,o;if(this.ended)return this.err===0;for(a=typeof t==`number`?t:t===!0?4:0,Yn.call(e)===`[object ArrayBuffer]`?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length,this.started||(this.started=!0,this.onStart(n));;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),i=Bn(n,a),i===2){let e=this.options.dictionary;e.length&&(i=Hn(n,e),i===0?i=Bn(n,a):i===-3&&(i=2))}for(;n.avail_in>0&&i===1&&n.state.wrap&2&&n.state.flags!==0&&n.input[n.next_in]!==0;)Mn(n),i=Bn(n,a);if(i===-2||i===-3||i===2||i===-4)break;if(o=n.avail_out,n.next_out&&(n.avail_out===0||i===1||a>0)&&(this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out)),n.avail_out=0,n.next_out=0),!((i===0||i===-5)&&o===0)){if(i===1){i=Vn(this.strm);break}if(n.avail_in===0){if(a===4){i=Vn(this.strm),i===0&&(i=-5);break}return!0}}}return this.err=i,this.msg=n.msg||Ve[i],this.ended=!0,this.onEnd(i),i===0}onStart(e){}onData(e){this.chunks.push(e)}onEnd(e){e===0&&(this.result=Wn(this.chunks)),this.chunks=[]}};function Qn(e,t={}){let n=new Zn(t);if(n.push(e,!0),n.err)throw Error(n.msg);let r=n.result;return t.toText?new TextDecoder().decode(r):r}var V=Array.from({length:256}).map((e,t)=>(t+256).toString(16).substr(1));function $n(e){return(V[e[0]]+V[e[1]]+V[e[2]]+V[e[3]]+`-`+V[e[4]]+V[e[5]]+`-`+V[e[6]]+V[e[7]]+`-`+V[e[8]]+V[e[9]]+`-`+V[e[10]]+V[e[11]]+V[e[12]]+V[e[13]]+V[e[14]]+V[e[15]]).toLowerCase()}function er(e){let t,n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=t&255,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=t&255,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=t&255,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=t&255,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=t&255,n}var tr=t({BitReader:()=>br,BitWriter:()=>xr,bgra:()=>H,chunk:()=>or,concat:()=>W,isEqual:()=>rr,read:()=>G,subarray:()=>ar,write:()=>K});function nr(e){return/^[\x00-\x7F]*$/.test(e)}var H=([e,t,n,r])=>[n,t,e,r];function rr(e,t){return e.length===t.length&&e.every((e,n)=>t[n]===e)}function ir(e){return e.brsOffset!==void 0}function ar(e,t,n=!1){if(!(e instanceof Uint8Array))throw Error(`Invalid data type in bytes reader (${typeof e})`);let r;ir(e)?r=e:(r=e,r.brsOffset=0);let i=r[n?`slice`:`subarray`](r.brsOffset,r.brsOffset+t);return r.brsOffset+=t,i}function or(e,t){let n=e.length-(ir(e)?e.brsOffset:0),r=Array(Math.floor(n/t));for(let i=0;i<n/t;i++)r[i]=ar(e,t,!0);return r}function U(e,t=!0){let[n,r]=ar(e,2);return t?r<<8|n:n<<8|r}function sr(e,t=!0){let n=[e&255,e>>8&255];return new Uint8Array(t?n:n.reverse())}function cr(e,t=!0){let[n,r,i,a]=ar(e,4);return t?a<<24|i<<16|r<<8|n:n<<24|r<<16|i<<8|a}function lr(e,t=!0){let n=new Uint8Array([e&255,e>>8&255,e>>16&255,e>>24&255]);return t?n:n.reverse()}function ur(e){let t=cr(e),n=cr(e);if(n<0||t<0||n>=t)throw Error(`Invalid compressed section size (comp: ${n}, uncomp: ${t})`);return n===0?ar(e,t):Qn(ar(e,n))}function dr(...e){let t=W(...e);return W(lr(t.length),lr(0),t)}function fr(...e){let t=W(...e),n=Jn(t),r=t.length,i=n.length;if(r>2147483647)throw Error(`uncompressedSize (${r}) out of range`);if(i>2147483647)throw Error(`compressedSize (${i}) out of range`);let a=i>=r;return W(lr(r),lr(a?0:i),a?t:n)}function pr(e){let t=cr(e),n=t<0,r=n?-t*2:t;if(n){if(r%2!=0)throw Error(`Invalid UCS-2 data size`);return String.fromCodePoint(...or(ar(e,r),2).map(e=>U(e)))}else{let t=ar(e,r).subarray(0,-1);return String.fromCharCode.apply(null,t)}}function mr(e){return nr(e)?W(lr(e.length+1),new Uint8Array(e.split(``).map(e=>e.charCodeAt(0))),new Uint8Array([0])):W(lr(-e.length),new Uint8Array(e.split(``).flatMap(e=>[e.charCodeAt(0)&255,e.charCodeAt(0)>>8])))}function hr(e){return $n(or(ar(e,16),4).flatMap(([e,t,n,r])=>[r,n,t,e]))}function gr(e){return W(...or(er(e),4).map(([e,t,n,r])=>new Uint8Array([r,n,t,e])))}function _r(e,t){let n=cr(e),r=Array(n);for(let i=0;i<n;i++)r[i]=t(e);return r}function vr(e,t){let n=cr(e);for(let r=0;r<n;r++)t(e)}function yr(e,t){return W(lr(e.length),...e.map(e=>t(e)))}var br=class{constructor(e){this.pos=0,this.buffer=e}empty(){return this.pos>=this.buffer.length*8}bit(){let e=(this.buffer[this.pos>>3]&1<<(this.pos&7))!=0;return this.pos++,e}align(){this.pos=this.pos+7&-8}int(e){let t=0,n=1;for(;t+n<e&&n!==0;)this.bit()&&(t|=n),n<<=1;return t}uint_packed(){let e=0;for(let t=0;t<5;t++){let n=this.bit(),r=0;for(let e=0;e<7;e++)r|=+!!this.bit()<<e;if(e|=r<<7*t,!n)break}return e}int_packed(){let e=this.uint_packed();return(e>>1)*(e&1?1:-1)}bits(e){let t=[];for(let n=0;n<e;n++){let e=n&7;t[n>>3]=t[n>>3]&~(1<<e)|+!!this.bit()<<e}return t}bytes(e){return new Uint8Array(this.bytesArr(e))}bytesArr(e){return this.bits(e*8)}array(e){let t=cr(this.bytes(4)),n=Array(t);for(let r=0;r<t;r++)n[r]=e(this);return n}each(e){let t=cr(this.bytes(4));for(let n=0;n<t;n++)e(this)}string(){let e=this.bytesArr(4),t=cr(new Uint8Array(e));return t<0&&(t=-t*2),pr(new Uint8Array(e.concat(this.bytesArr(t))))}float(){let e=new DataView(new ArrayBuffer(4));return e.setUint16(2,U(this.bytes(2))),e.setUint16(0,U(this.bytes(2))),e.getFloat32(0)}integer(){let e=new DataView(new ArrayBuffer(4));return e.setUint16(2,U(this.bytes(2))),e.setUint16(0,U(this.bytes(2))),e.getInt32(0)}int64(){let e=new DataView(new ArrayBuffer(8));e.setUint16(6,U(this.bytes(2))),e.setUint16(4,U(this.bytes(2))),e.setUint16(2,U(this.bytes(2))),e.setUint16(0,U(this.bytes(2)));let t=e.getBigInt64(0);if(t<=1n<<64n)return Number(t);throw Error(`Cannot read 64-bit integer ${t} as a JavaScript number...`)}double(){let e=new DataView(new ArrayBuffer(8));return e.setUint16(6,U(this.bytes(2))),e.setUint16(4,U(this.bytes(2))),e.setUint16(2,U(this.bytes(2))),e.setUint16(0,U(this.bytes(2))),e.getFloat64(0)}wireGraphVariant(){let e=this.bytes(1)[0];switch(e){case 0:return{number:this.double()};case 1:return{integer:this.int64()};case 2:return{bool:this.bytes(1)[0]!==0};case 3:return{exec:!0};case 4:return{object:!0};default:throw Error(`Unknown wire graph variant type ${e}`)}}unreal(e){switch(e){case`String`:case`Class`:case`Object`:return this.string();case`Boolean`:return!!cr(this.bytes(4));case`Integer`:return this.integer();case`Integer64`:return this.int64();case`Float`:return this.float();case`Double`:return this.double();case`Color`:return H(this.bytesArr(4));case`Byte`:return this.bytes(1)[0];case`Rotator`:case`Rotator3d`:return[this.float(),this.float(),this.float()];case`Vector3d`:return[this.float(),this.float(),this.float()];case`IntVector`:return[this.integer(),this.integer(),this.integer()];case`BRInventoryEntryPlan`:return this.string();case`WireGraphVariant`:return this.wireGraphVariant();case`WireGraphPrimMathVariant`:return this.wireGraphVariant()}throw Error(`Unknown unreal type `+e)}},xr=class{constructor(){this.buffer=[],this.cur=0,this.bitNum=0}bit(e){this.cur|=+!!e<<this.bitNum,this.bitNum++,this.bitNum>=8&&this.align()}bits(e,t){for(let n=0;n<t;n++)this.bit((e[n>>3]&1<<(n&7))!=0)}bytes(e){this.bits(e,8*e.length)}align(){this.bitNum>0&&(this.buffer.push(this.cur),this.cur=0,this.bitNum=0)}int(e,t){if(t<2)throw Error(`Invalid input (BitWriter) -- max (${t}) must be at least 2`);if(e>=t)throw Error(`Invalid input (BitWriter) -- value (${e}) is larger than max (${t})`);let n=0,r=1;for(;n+r<t&&r!==0;)this.bit((e&r)!==0),(e&r)!==0&&(n|=r),r<<=1}uint_packed(e){do{let t=e&127;e>>=7,this.bit(e!==0),this.bits([t],7)}while(e!==0)}int_packed(e){this.uint_packed(Math.abs(e)<<1|e>=0)}finish(){return this.align(),new Uint8Array(this.buffer)}finishSection(){return this.align(),W(lr(this.buffer.length),new Uint8Array(this.buffer))}string(e){this.bytes(mr(e))}float(e){let t=new Float32Array(1);t[0]=e;let n=new Int8Array(t.buffer);this.bytes([n[0],n[1],n[2],n[3]])}integer(e){let t=new Int32Array(1);t[0]=e;let n=new Int8Array(t.buffer);this.bytes([n[0],n[1],n[2],n[3]])}int64(e){let t=new DataView(new ArrayBuffer(8));t.setBigInt64(0,typeof e==`bigint`?e:BigInt(e),!0),this.bytes(new Uint8Array(t.buffer))}double(e){let t=new Float64Array(1);t[0]=e;let n=new Int8Array(t.buffer);this.bytes([n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]])}wireGraphVariant(e){if(`number`in e)this.bytes([0]),this.double(e.number);else if(`integer`in e)this.bytes([1]),this.int64(e.integer);else if(`bool`in e)this.bytes([2,+!!e.bool]);else if(`exec`in e)this.bytes([3]);else if(`object`in e)this.bytes([4]);else throw Error(`Unknown wire graph variant type ${JSON.stringify(e)}`)}self(e){return e.bind(this)(),this}array(e,t){return this.bytes(lr(e.length)),e.forEach(t.bind(this)),this}each(e,t){return e.forEach(t.bind(this)),this}unreal(e,t){switch(e){case`Class`:if(typeof t!=`string`)throw Error(`writing unreal type Class, did not receive string (${t})`);this.string(t);return;case`String`:if(typeof t!=`string`)throw Error(`writing unreal type String, did not receive string (${t})`);this.string(t);return;case`Object`:if(typeof t!=`string`)throw Error(`writing unreal type Object, did not receive string (${t})`);this.string(t);return;case`Boolean`:if(typeof t!=`boolean`)throw Error(`writing unreal type Boolean, did not receive boolean (${t})`);this.bytes(lr(+!!t));return;case`Float`:if(typeof t!=`number`)throw Error(`writing unreal type Float, did not receive float (${t})`);this.float(t);return;case`Byte`:if(typeof t!=`number`)throw Error(`writing unreal type Byte, did not receive Byte (${t})`);this.bytes([t&255]);return;case`Color`:if(!Array.isArray(t)||t.length!==4)throw Error(`writing unreal type Color, did not receive Array (${t})`);this.bytes(H(t));return;case`Rotator`:case`Rotator3d`:if(!Array.isArray(t)||t.length!==3)throw Error(`writing unreal type Rotator, did not receive Array (${t})`);this.float(t[0]),this.float(t[1]),this.float(t[2]);return;case`Vector3d`:if(!Array.isArray(t)||t.length!==3)throw Error(`writing unreal type Vector3d, did not receive Array (${t})`);this.float(t[0]),this.float(t[1]),this.float(t[2]);return;case`IntVector`:if(!Array.isArray(t)||t.length!==3)throw Error(`writing unreal type IntVector, did not receive Array (${t})`);this.integer(t[0]),this.integer(t[1]),this.integer(t[2]);return;case`Integer`:if(typeof t!=`number`)throw Error(`writing unreal type Integer, did not receive integer (${t})`);this.integer(t);return;case`Integer64`:if(typeof t!=`number`)throw Error(`writing unreal type Integer64, did not receive integer (${t})`);this.int64(t);return;case`Double`:if(typeof t!=`number`)throw Error(`writing unreal type Double, did not receive double (${t})`);this.double(t);return;case`WireGraphVariant`:if(typeof t!=`object`)throw Error(`writing unreal type WireGraphVariant, did not receive object (${t})`);this.wireGraphVariant(t);return;case`WireGraphPrimMathVariant`:if(typeof t!=`object`)throw Error(`writing unreal type WireGraphPrimMathVariant, did not receive object (${t})`);this.wireGraphVariant(t);return;case`BRInventoryEntryPlan`:if(typeof t!=`string`)throw Error(`writing unreal type BRInventoryEntryPlan, did not receive string (${t})`);this.string(t);return}throw Error(`Unknown unreal type `+e)}};function W(...e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}var G={bytes:ar,u16:U,i32:cr,compressed:ur,string:pr,uuid:hr,array:_r,each:vr,bits:e=>new br(e)},K={u16:sr,i32:lr,compressed:fr,uncompressed:dr,string:mr,uuid:gr,array:yr,bits:()=>new xr};function Sr(e,t={}){let n=G.compressed(e),r=G.compressed(e),i=G.string(n),a=G.string(n),o=G.string(n),s=G.uuid(n),c=G.i32(n),l=G.array(r,G.string),u=G.array(r,G.string),d=G.array(r,e=>H(Array.from(G.bytes(e,4)))),f=[],p=Math.max(u.length,2);if(t.bricks){f=Array(c);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<c;e++){n.align();let t=n.int(p),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.bit()?H(n.bytesArr(4)):n.int(d.length);f[e]={asset_name_index:t,size:r,collision:c,position:i,direction:o,rotation:s,visibility:l,color:u}}}return{version:1,map:i,description:o,author:{id:s,name:a},mods:l,brick_assets:u,colors:d,bricks:f,brick_count:c}}function Cr(e,t={}){let n=G.i32(e),r=G.compressed(e),i=G.compressed(e),a=G.string(r),o=G.string(r),s=G.string(r),c=G.uuid(r),l={name:G.string(r),id:G.uuid(r)},u=G.bytes(r,8),d=G.i32(r),f=G.array(i,G.string),p=G.array(i,G.string),m=G.array(i,e=>H(Array.from(G.bytes(e,4)))),h=G.array(i,G.string),g=G.array(i,e=>({id:G.uuid(e),name:G.string(e),bricks:G.i32(e)})),_=G.array(i,G.string),v=null;if(G.bytes(e,1)[0]){let n=G.i32(e);t.preview?v=G.bytes(e,n):e.brsOffset+=n}let y=[],b={},x=Math.max(_.length,2),S=Math.max(h.length,2),C=Math.max(p.length,2);if(t.bricks){y=Array(d);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<d;e++){n.align();let t=n.int(C),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c={player:n.bit(),weapon:n.bit(),interaction:n.bit(),tool:n.bit(),physics:!1},l=n.bit(),u=n.int(S),d=n.int(x),f=n.int(11),p=n.bit()?n.bytesArr(3):n.int(m.length),h=n.uint_packed();y[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,physical_index:d,material_intensity:f,color:p,owner_index:h,components:{}}}let r=G.compressed(e),i=Math.max(y.length,2);G.each(r,e=>{let t=G.string(e),n=G.bits(G.bytes(e,G.i32(e))),r=G.i32(n.bytes(4)),a=n.array(()=>n.int(i)),o=n.array(()=>[n.string(),n.string()]);for(let e of a){let r={};for(let[e,t]of o)r[e]=n.unreal(t);y[e].components[t]=r}b[t]={version:r,brick_indices:a,properties:Object.fromEntries(o)}})}return{version:10,game_version:n,map:a,description:s,author:{id:c,name:o},host:l,mods:f,brick_assets:p,colors:m,materials:h,brick_owners:g,physical_materials:_,preview:v,bricks:y,brick_count:d,save_time:u,components:b}}function wr(e,t={}){let n=G.i32(e),r=G.compressed(e),i=G.compressed(e),a=G.string(r),o=G.string(r),s=G.string(r),c=G.uuid(r),l={name:G.string(r),id:G.uuid(r)},u=G.bytes(r,8),d=G.i32(r),f=G.array(i,G.string),p=G.array(i,G.string),m=G.array(i,e=>H(Array.from(G.bytes(e,4)))),h=G.array(i,G.string),g=G.array(i,e=>({id:G.uuid(e),name:G.string(e),display_name:G.string(e),bricks:G.i32(e)})),_=G.array(i,G.string),v=null;if(G.bytes(e,1)[0]){let n=G.i32(e);t.preview?v=G.bytes(e,n):e.brsOffset+=n}let y=[],b={},x=[],S=Math.max(_.length,2),C=Math.max(h.length,2),w=Math.max(p.length,2);if(t.bricks){y=Array(d);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<d;e++){n.align();let t=n.int(w),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c={player:n.bit(),weapon:n.bit(),interaction:n.bit(),tool:n.bit(),physics:n.bit()},l=n.bit(),u=n.int(C),d=n.int(S),f=n.int(11),p=n.bit()?n.bytesArr(3):n.int(m.length),h=n.uint_packed();y[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,physical_index:d,material_intensity:f,color:p,owner_index:h,components:{}}}let r=G.compressed(e),i=G.compressed(e),a=Math.max(y.length,2),o=[];G.each(r,e=>{let t=G.string(e),n=G.bits(G.bytes(e,G.i32(e))),r=G.i32(n.bytes(4)),i=n.array(()=>n.int(a)),s=n.array(()=>[n.string(),n.string()]);for(let e of i){let r={};for(let[e,t]of s)r[e]=n.unreal(t);y[e].components[t]=r}t in b||o.push(t),b[t]={version:r,brick_indices:i,properties:Object.fromEntries(s)}});let s=Math.max(o.length,2);{let e=G.bits(i),t=e.int(4294967295);for(let n=0;n<t;n++){let t=e.int(a),n=e.int(s),r=e.string(),i=e.int(a),c=e.int(s),l=e.string();e.bit(),e.align(),x.push({source:{brick_index:t,component:o[n],port:r},target:{brick_index:i,component:o[c],port:l}})}}}return{version:14,game_version:n,map:a,description:s,author:{id:c,name:o},host:l,mods:f,brick_assets:p,colors:m,materials:h,brick_owners:g,physical_materials:_,preview:v,bricks:y,brick_count:d,save_time:u,components:b,wires:x}}function Tr(e,t={}){let n=G.compressed(e),r=G.compressed(e),i=G.string(n),a=G.string(n),o=G.string(n),s=G.uuid(n),c=G.i32(n),l=G.array(r,G.string),u=G.array(r,G.string),d=G.array(r,e=>H(Array.from(G.bytes(e,4)))),f=G.array(r,G.string),p=[],m=Math.max(u.length,2);if(t.bricks){p=Array(c);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<c;e++){n.align();let t=n.int(m),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.bit()?n.uint_packed():1,f=n.bit()?H(n.bytesArr(4)):n.int(d.length);p[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,color:f}}}return{version:2,map:i,description:o,author:{id:s,name:a},mods:l,brick_assets:u,colors:d,materials:f,bricks:p,brick_count:c}}function Er(e,t={}){let n=G.compressed(e),r=G.compressed(e),i=G.string(n),a=G.string(n),o=G.string(n),s=G.uuid(n),c=G.i32(n),l=G.array(r,G.string),u=G.array(r,G.string),d=G.array(r,e=>H(Array.from(G.bytes(e,4)))),f=G.array(r,G.string),p=G.array(r,e=>({id:G.uuid(e),name:G.string(e)})),m=[],h=Math.max(u.length,2);if(t.bricks){m=Array(c);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<c;e++){n.align();let t=n.int(h),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.bit()?n.uint_packed():1,f=n.bit()?H(n.bytesArr(4)):n.int(d.length),p=n.uint_packed();m[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,color:f,owner_index:p}}}return{version:3,map:i,description:o,author:{id:s,name:a},mods:l,brick_assets:u,colors:d,materials:f,brick_owners:p,bricks:m,brick_count:c}}function Dr(e,t={}){let n=G.compressed(e),r=G.compressed(e),i=G.string(n),a=G.string(n),o=G.string(n),s=G.uuid(n),c=G.bytes(n,8),l=G.i32(n),u=G.array(r,G.string),d=G.array(r,G.string),f=G.array(r,e=>H(Array.from(G.bytes(e,4)))),p=G.array(r,G.string),m=G.array(r,e=>({id:G.uuid(e),name:G.string(e)})),h=[],g=Math.max(d.length,2);if(t.bricks){h=Array(l);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<l;e++){n.align();let t=n.int(g),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.bit()?n.uint_packed():1,d=n.bit()?H(n.bytesArr(4)):n.int(f.length),p=n.uint_packed();h[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,color:d,owner_index:p}}}return{version:4,map:i,description:o,author:{id:s,name:a},mods:u,brick_assets:d,colors:f,materials:p,brick_owners:m,bricks:h,brick_count:l,save_time:c}}function Or(e,t={}){let n=G.i32(e),r=G.compressed(e),i=G.compressed(e),a=G.string(r),o=G.string(r),s=G.string(r),c=G.uuid(r),l={name:G.string(r),id:G.uuid(r)},u=G.bytes(r,8),d=G.i32(r),f=G.array(i,G.string),p=G.array(i,G.string),m=G.array(i,e=>H(Array.from(G.bytes(e,4)))),h=G.array(i,G.string),g=G.array(i,e=>({id:G.uuid(e),name:G.string(e),bricks:G.i32(e)})),_=null;if(G.bytes(e,1)[0]){let n=G.i32(e);t.preview?_=G.bytes(e,n):e.brsOffset+=n}let v=[],y={},b=Math.max(h.length,2),x=Math.max(p.length,2);if(t.bricks){v=Array(d);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<d;e++){n.align();let t=n.int(x),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.int(b),d=n.bit()?H(n.bytesArr(4)):n.int(m.length),f=n.uint_packed();v[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,color:d,owner_index:f,components:{}}}let r=G.compressed(e),i=Math.max(v.length,2);G.each(r,e=>{let t=G.string(e),n=G.bits(G.bytes(e,G.i32(e))),r=G.i32(n.bytes(4)),a=n.array(()=>n.int(i)),o=n.array(()=>[n.string(),n.string()]);for(let e of a){let r={};for(let[e,t]of o)r[e]=n.unreal(t);v[e].components[t]=r}y[t]={version:r,brick_indices:a,properties:Object.fromEntries(o)}})}return{version:8,game_version:n,map:a,description:s,author:{id:c,name:o},host:l,mods:f,brick_assets:p,colors:m,materials:h,brick_owners:g,preview:_,bricks:v,brick_count:d,save_time:u,components:y}}function kr(e,t={}){let n=G.i32(e),r=G.compressed(e),i=G.compressed(e),a=G.string(r),o=G.string(r),s=G.string(r),c=G.uuid(r),l={name:G.string(r),id:G.uuid(r)},u=G.bytes(r,8),d=G.i32(r),f=G.array(i,G.string),p=G.array(i,G.string),m=G.array(i,e=>H(Array.from(G.bytes(e,4)))),h=G.array(i,G.string),g=G.array(i,e=>({id:G.uuid(e),name:G.string(e),bricks:G.i32(e)})),_=G.array(i,G.string),v=null;if(G.bytes(e,1)[0]){let n=G.i32(e);t.preview?v=G.bytes(e,n):e.brsOffset+=n}let y=[],b={},x=Math.max(_.length,2),S=Math.max(h.length,2),C=Math.max(p.length,2);if(t.bricks){y=Array(d);let t=G.compressed(e),n=G.bits(t);for(let e=0;!n.empty()&&e<d;e++){n.align();let t=n.int(C),r=n.bit()?[n.uint_packed(),n.uint_packed(),n.uint_packed()]:[0,0,0],i=[n.int_packed(),n.int_packed(),n.int_packed()],a=n.int(24),o=(a>>2)%6,s=a&3,c=n.bit(),l=n.bit(),u=n.int(S),d=n.int(x),f=n.int(11),p=n.bit()?n.bytesArr(3):n.int(m.length),h=n.uint_packed();y[e]={asset_name_index:t,size:r,position:i,direction:o,rotation:s,collision:c,visibility:l,material_index:u,physical_index:d,material_intensity:f,color:p,owner_index:h,components:{}}}let r=G.compressed(e),i=Math.max(y.length,2);G.each(r,e=>{let t=G.string(e),n=G.bits(G.bytes(e,G.i32(e))),r=G.i32(n.bytes(4)),a=n.array(()=>n.int(i)),o=n.array(()=>[n.string(),n.string()]);for(let e of a){let r={};for(let[e,t]of o)r[e]=n.unreal(t);y[e].components[t]=r}b[t]={version:r,brick_indices:a,properties:Object.fromEntries(o)}})}return{version:9,game_version:n,map:a,description:s,author:{id:c,name:o},host:l,mods:f,brick_assets:p,colors:m,materials:h,brick_owners:g,physical_materials:_,preview:v,bricks:y,brick_count:d,save_time:u,components:b}}function Ar(e,t={}){if(typeof t!=`object`)throw Error(`Invalid options`);if(typeof t.bricks!=`boolean`&&(t.bricks=!0),typeof t.preview!=`boolean`&&(t.preview=!1),e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])throw Error(`Invalid starting bytes`);let n=e;n.brsOffset=3;let i=G.u16(n);switch(i){case 1:return Sr(n,t);case 2:return Tr(n,t);case 3:return Er(n,t);case 4:return Dr(n,t);case 8:return Or(n,t);case 9:return kr(n,t);case 10:return Cr(n,t);case 14:return wr(n,t);default:throw Error(`Unsupported version `+i)}}var jr=new Uint8Array([]),Mr={BCD_SpotLight:{version:1,properties:{Rotation:`Rotator`,InnerConeAngle:`Float`,OuterConeAngle:`Float`,Brightness:`Float`,Radius:`Float`,Color:`Color`,bUseBrickColor:`Boolean`,bCastShadows:`Boolean`}},BCD_PointLight:{version:1,properties:{bMatchBrickShape:`Boolean`,Brightness:`Float`,Radius:`Float`,Color:`Color`,bUseBrickColor:`Boolean`,bCastShadows:`Boolean`}},BCD_ItemSpawn:{version:1,properties:{PickupClass:`Class`,bPickupEnabled:`Boolean`,bPickupRespawnOnMinigameReset:`Boolean`,PickupMinigameResetRespawnDelay:`Float`,bPickupAutoDisableOnPickup:`Boolean`,PickupRespawnTime:`Float`,PickupOffsetDirection:`Byte`,PickupOffsetDistance:`Float`,PickupRotation:`Rotator`,PickupScale:`Float`,bPickupAnimationEnabled:`Boolean`,PickupAnimationAxis:`Byte`,bPickupAnimationAxisLocal:`Boolean`,PickupSpinSpeed:`Float`,PickupBobSpeed:`Float`,PickupBobHeight:`Float`,PickupAnimationPhase:`Float`}},BCD_Interact:{version:1,properties:{bPlayInteractSound:`Boolean`,Message:`String`,ConsoleTag:`String`}},BCD_AudioEmitter:{version:1,properties:{AudioDescriptor:`Object`,VolumeMultiplier:`Float`,PitchMultiplier:`Float`,InnerRadius:`Float`,MaxDistance:`Float`,bSpatialization:`Boolean`}},Component_Internal_Rerouter:{version:1,properties:{}},BrickComponentType_Internal_ReadBrickGrid:{version:1,properties:{}},BrickComponentType_WireGraphPseudo_BufferSeconds:{version:1,properties:{SecondsToWait:`Float`,ZeroSecondsToWait:`Float`,CurrentTime:`Float`,Input:`WireGraphVariant`,Output:`WireGraphVariant`,Buffered:`WireGraphVariant`,Queued:`WireGraphVariant`,bHasQueued:`Boolean`}},BrickComponentType_WireGraphPseudo_BufferTicks:{version:1,properties:{TicksToWait:`Integer`,ZeroTicksToWait:`Integer`,CurrentTicks:`Integer`,Input:`WireGraphVariant`,Output:`WireGraphVariant`,Buffered:`WireGraphVariant`,Queued:`WireGraphVariant`,bHasQueued:`Boolean`}},BrickComponentType_WireGraphPseudo_Const:{version:1,properties:{Value:`WireGraphVariant`}},BrickComponentType_WireGraph_Expr_BitwiseAND:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseNAND:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseNOR:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseNOT:{version:1,properties:{Input:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseOR:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseShiftLeft:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseShiftRight:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_BitwiseXOR:{version:1,properties:{InputA:`Integer64`,InputB:`Integer64`}},BrickComponentType_WireGraph_Expr_Ceil:{version:1,properties:{Input:`Double`}},BrickComponentType_WireGraph_Expr_CompareEqual:{version:1,properties:{InputA:`WireGraphVariant`,InputB:`WireGraphVariant`}},BrickComponentType_WireGraph_Expr_CompareGreater:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_CompareGreaterOrEqual:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_CompareLess:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_CompareLessOrEqual:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_CompareNotEqual:{version:1,properties:{InputA:`WireGraphVariant`,InputB:`WireGraphVariant`}},BrickComponentType_WireGraph_Expr_Floor:{version:1,properties:{Input:`Double`}},BrickComponentType_WireGraph_Expr_LogicalAND:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalNAND:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalNOR:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalNOT:{version:1,properties:{bInput:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalOR:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_LogicalXOR:{version:1,properties:{bInputA:`Boolean`,bInputB:`Boolean`}},BrickComponentType_WireGraph_Expr_MathAdd:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathBlend:{version:1,properties:{Blend:`Double`,InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathDivide:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathModulo:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathModuloFloored:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathMultiply:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponentType_WireGraph_Expr_MathSubtract:{version:1,properties:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`}},BrickComponent_WireGraph_Expr_EdgeDetector:{version:1,properties:{Input:`Double`,bPulseOnRisingEdge:`Boolean`,bPulseOnFallingEdge:`Boolean`}}};function Nr(e,t={}){if(typeof e!=`object`)throw Error(`Expected save to be an object`);if(!Array.isArray(e.bricks)||e.bricks.length===0)throw Error(`Expected save to have bricks field`);if(e.bricks.length>2147483647)throw Error(`Brick count out of range`);let n=t.compress?K.compressed:K.uncompressed,i=([e,t,n,r])=>new Uint8Array([n,t,e,r]),o={},s=Math.max(e.colors?.length??0,2),c=Math.max(e.brick_assets?.length??0,2),l=Math.max(e.materials?.length??0,2),u=Math.max(e.physical_materials?.length??0,2);if(e.preview&&!Array.isArray(e.preview))throw Error(`Expected preview to be an array`);let d={},f=0;return W(r,K.u16(14),K.i32(e.game_version??0),n(K.string(e.map??`Unknown`),K.string(e.author?.name??`Unknown`),K.string(e.description??``),K.uuid(e.author?.id??`00000000-0000-0000-0000-000000000000`),W(K.string(e.host?.name??`Unknown`),K.uuid(e.host?.id??`00000000-0000-0000-0000-000000000000`)),new Uint8Array(e.save_time&&(Array.isArray(e.save_time)||e.save_time instanceof Uint8Array)&&e.save_time.length===8?e.save_time:[0,0,0,0,0,0,0,0]),K.i32(e.bricks.length)),n(K.array(e.mods??[],K.string),K.array(e.brick_assets??[`PB_DefaultBrick`],K.string),K.array(e.colors??[],i),K.array(e.materials??[`BMC_Plastic`],K.string),K.array(e.brick_owners??[],({id:e=a,name:t=`Unknown`,display_name:n=`Unknown`,bricks:r=0})=>W(K.uuid(e),K.string(t),K.string(n),K.i32(r))),K.array(e.physical_materials??[`BPMC_Default`],K.string)),W(new Uint8Array([+!!e.preview]),e.preview?K.i32(e.preview.length):jr,e.preview??jr),n(K.bits().each(e.bricks,function(e,t){if(typeof e!=`object`)throw Error(`Expected save.bricks[${t}] to be an object`);if(!Array.isArray(e.size)||e.size.length!==3)throw Error(`Expected save.bricks[${t}].size to be an array of length 3`);if(!Array.isArray(e.position)||e.position.length!==3)throw Error(`Expected save.bricks[${t}].position to be an array of length 3`);this.align(),this.int(e.asset_name_index??0,c);let n=e.size===null||rr(e.size,[0,0,0]);if(this.bit(!n),n||e.size.map(e=>this.uint_packed(e>=0?e:1)),e.position.map(e=>this.int_packed(e)),this.int((e.direction??4)<<2|(e.rotation??0),24),typeof e.collision==`boolean`?(this.bit(e.collision),this.bit(e.collision),this.bit(e.collision),this.bit(!0),this.bit(e.collision)):(this.bit(e.collision?.player??!0),this.bit(e.collision?.weapon??!0),this.bit(e.collision?.interaction??!0),this.bit(e.collision?.tool??!0),this.bit(e.collision?.physics??!0)),this.bit(e.visibility??!0),this.int(e.material_index??0,l),this.int(e.physical_index??0,u),this.int(e.material_intensity??5,11),typeof e.color==`number`)this.bit(!1),this.int(e.color,s);else{if(this.bit(!0),e.color&&(!Array.isArray(e.color)||e.color.length<3))throw Error(`Expected save.bricks[${t}].color to be an array of at least length 3`);this.bytes(new Uint8Array(e.color?.slice(0,3)??[255,255,255]))}this.uint_packed(e.owner_index>=0?e.owner_index:0);for(let n in e.components??{})o[n]??(o[n]=[]),o[n].push(t)}).finish()),n(K.array(Object.keys(e.components??Mr).filter(e=>o[e]),t=>W(K.string(t),K.bits().self(function(){let n=e.components?.[t]??Mr[t],r=o[t],i=Object.entries(n.properties);t in d||(d[t]=f,f++),this.bytes(K.i32(n.version)),this.array(r,t=>{this.int(t,Math.max(e.bricks.length,2))}),this.array(i,([e,t])=>{this.string(e),this.string(t)});for(let n of r)for(let[r,a]of i){if(!(r in(e.bricks[n].components?.[t]??{})))throw Error(`Expected save.bricks[${n}].components[${t}] to have property '${r}' of type '${a}'`);this.unreal(a,e.bricks[n].components[t][r])}this.align()}).finishSection()))),n(K.bits().self(function(){let t=4294967295;if(!e.wires||!Array.isArray(e.wires)||e.wires.length===0){this.int(0,t);return}this.int(e.wires.length,t);for(let t of e.wires){if(typeof t!=`object`)throw Error(`Expected save.wires to be an array of objects`);if(!(t.source&&typeof t.source==`object`&&typeof t.source.brick_index==`number`&&typeof t.source.component==`string`&&typeof t.source.port==`string`))throw Error(`Expected save.wires[i].source to be an object with brick_index, component, and port properties`);if(!(t.target&&typeof t.target==`object`&&typeof t.target.brick_index==`number`&&typeof t.target.component==`string`&&typeof t.target.port==`string`))throw Error(`Expected save.wires[i].target to be an object with brick_index, component, and port properties`);if(!(t.source.component in d))throw Error(`Unknown component '${t.source.component}' in wire source`);if(!(t.target.component in d))throw Error(`Unknown component '${t.target.component}' in wire target`);this.int(t.source.brick_index,e.bricks.length),this.int(d[t.source.component],f),this.string(t.source.port),this.int(t.target.brick_index,e.bricks.length),this.int(d[t.target.component],f),this.string(t.target.port),this.bit(!1),this.align()}}).finish()))}var Pr=t({Direction:()=>Fr,Rotation:()=>Ir}),Fr=function(e){return e[e.XPositive=0]=`XPositive`,e[e.XNegative=1]=`XNegative`,e[e.YPositive=2]=`YPositive`,e[e.YNegative=3]=`YNegative`,e[e.ZPositive=4]=`ZPositive`,e[e.ZNegative=5]=`ZNegative`,e}({}),Ir=function(e){return e[e.Deg0=0]=`Deg0`,e[e.Deg90=1]=`Deg90`,e[e.Deg180=2]=`Deg180`,e[e.Deg270=3]=`Deg270`,e}({}),Lr=(e,t)=>((e.Flags[t>>3]??0)>>(t&7)&1)==1,Rr=class{constructor(){this.bytes=[],this.bits=0}push(e){this.bits>=this.bytes.length*8&&this.bytes.push(0),e&&(this.bytes[this.bits>>3]|=1<<(this.bits&7)),this.bits+=1}toValue(){return{Flags:this.bytes}}};function zr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}function Br(e,t=``){if(typeof e!=`number`){let n=t&&`"${t}" `;throw TypeError(`${n}expected number, got ${typeof e}`)}if(!Number.isSafeInteger(e)||e<0){let n=t&&`"${t}" `;throw RangeError(`${n}expected integer >= 0, got ${e}`)}}function Vr(e,t,n=``){let r=zr(e),i=e?.length,a=t!==void 0;if(!r||a&&i!==t){let o=n&&`"${n}" `,s=a?` of length ${t}`:``,c=r?`length=${i}`:`type=${typeof e}`,l=o+`expected Uint8Array`+s+`, got `+c;throw r?RangeError(l):TypeError(l)}return e}function Hr(e){return Uint8Array.from(Vr(e))}function Ur(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function Wr(e,t){Vr(e,void 0,`digestInto() output`);let n=t.outputLen;if(e.length<n)throw RangeError(`"digestInto() output" expected to be of length >=`+n)}function Gr(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Kr(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function qr(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Jr(e,t){return e<<32-t|e>>>t}var Yr=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Xr(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}var Zr=Yr?e=>e:e=>Xr(e)>>>0;function Qr(e){for(let t=0;t<e.length;t++)e[t]=Xr(e[t]);return e}var q=Yr?e=>e:Qr,$r=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,ei=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function ti(e){if(Vr(e),$r)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=ei[e[n]];return t}function ni(e,t={}){let n=(t,n)=>e(n).update(t).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=t=>e(t),Object.assign(n,t),Object.freeze(n)}var ri=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ii=BigInt(2**32-1),ai=BigInt(32);function oi(e,t=!1){return t?{h:Number(e&ii),l:Number(e>>ai&ii)}:{h:Number(e>>ai&ii)|0,l:Number(e&ii)|0}}function si(e,t,n,r,i){return e=e+t+i|0,r=Jr(r^e,16),n=n+r|0,t=Jr(t^n,12),{a:e,b:t,c:n,d:r}}function ci(e,t,n,r,i){return e=e+t+i|0,r=Jr(r^e,8),n=n+r|0,t=Jr(t^n,7),{a:e,b:t,c:n,d:r}}var li=class{constructor(e,t){l(this,`buffer`,void 0),l(this,`buffer32`,void 0),l(this,`finished`,!1),l(this,`destroyed`,!1),l(this,`length`,0),l(this,`pos`,0),l(this,`blockLen`,void 0),l(this,`outputLen`,void 0),l(this,`canXOF`,!1),Br(e),Br(t),this.blockLen=e,this.outputLen=t,this.buffer=new Uint8Array(e),this.buffer32=Kr(this.buffer)}update(e){Ur(this),Vr(e);let{blockLen:t,buffer:n,buffer32:r}=this,i=e.length,a=e.byteOffset,o=e.buffer;for(let s=0;s<i;){this.pos===t&&(q(r),this.compress(r,0,!1),q(r),this.pos=0);let c=Math.min(t-this.pos,i-s),l=a+s;if(c===t&&!(l%4)&&s+c<i){let e=new Uint32Array(o,l,Math.floor((i-s)/4));q(e);for(let n=0;s+t<i;n+=r.length,s+=t)this.length+=t,this.compress(e,n,!1);q(e);continue}n.set(e.subarray(s,s+c),this.pos),this.pos+=c,this.length+=c,s+=c}return this}digestInto(e){Ur(this),Wr(e,this);let{pos:t,buffer32:n}=this;if(this.finished=!0,qr(this.buffer.subarray(t)),q(n),this.compress(n,0,!0),q(n),e.byteOffset&3)throw RangeError(`"digestInto() output" expected 4-byte aligned byteOffset, got `+e.byteOffset);let r=this.get(),i=Kr(e),a=Math.floor(this.outputLen/4);for(let e=0;e<a;e++)i[e]=Zr(r[e]);let o=this.outputLen%4;if(!o)return;let s=a*4,c=r[a];for(let t=0;t<o;t++)e[s+t]=c>>>8*t}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){let{buffer:t,length:n,finished:r,destroyed:i,outputLen:a,pos:o}=this;return e||(e=new this.constructor({dkLen:a})),e.set(...this.get()),e.buffer.set(t),e.destroyed=i,e.finished=r,e.length=n,e.pos=o,e.outputLen=a,e}clone(){return this._cloneInto()}};function ui(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y){let b=0;for(let x=0;x<r;x++)({a:i,b:c,c:f,d:g}=si(i,c,f,g,n[t+e[b++]])),{a:i,b:c,c:f,d:g}=ci(i,c,f,g,n[t+e[b++]]),{a,b:l,c:p,d:_}=si(a,l,p,_,n[t+e[b++]]),{a,b:l,c:p,d:_}=ci(a,l,p,_,n[t+e[b++]]),{a:o,b:u,c:m,d:v}=si(o,u,m,v,n[t+e[b++]]),{a:o,b:u,c:m,d:v}=ci(o,u,m,v,n[t+e[b++]]),{a:s,b:d,c:h,d:y}=si(s,d,h,y,n[t+e[b++]]),{a:s,b:d,c:h,d:y}=ci(s,d,h,y,n[t+e[b++]]),{a:i,b:l,c:m,d:y}=si(i,l,m,y,n[t+e[b++]]),{a:i,b:l,c:m,d:y}=ci(i,l,m,y,n[t+e[b++]]),{a,b:u,c:h,d:g}=si(a,u,h,g,n[t+e[b++]]),{a,b:u,c:h,d:g}=ci(a,u,h,g,n[t+e[b++]]),{a:o,b:d,c:f,d:_}=si(o,d,f,_,n[t+e[b++]]),{a:o,b:d,c:f,d:_}=ci(o,d,f,_,n[t+e[b++]]),{a:s,b:c,c:p,d:v}=si(s,c,p,v,n[t+e[b++]]),{a:s,b:c,c:p,d:v}=ci(s,c,p,v,n[t+e[b++]]);return{v0:i,v1:a,v2:o,v3:s,v4:c,v5:l,v6:u,v7:d,v8:f,v9:p,v10:m,v11:h,v12:g,v13:_,v14:v,v15:y}}var di={CHUNK_START:1,CHUNK_END:2,PARENT:4,ROOT:8,KEYED_HASH:16,DERIVE_KEY_CONTEXT:32,DERIVE_KEY_MATERIAL:64},fi=ri.slice(),pi=(()=>{let e=Array.from({length:16},(e,t)=>t),t=e=>[2,6,3,10,7,0,4,13,1,11,12,5,9,14,15,8].map(t=>e[t]),n=[];for(let r=0,i=e;r<7;r++,i=t(i))n.push(...i);return Uint8Array.from(n)})(),mi=class e extends li{constructor(t={},n=0){super(64,t.dkLen===void 0?32:t.dkLen),l(this,`canXOF`,!0),l(this,`chunkPos`,0),l(this,`chunksDone`,0),l(this,`flags`,0),l(this,`IV`,void 0),l(this,`state`,void 0),l(this,`stack`,[]),l(this,`posOut`,0),l(this,`bufferOut32`,new Uint32Array(16)),l(this,`bufferOut`,void 0),l(this,`chunkOut`,0),l(this,`enableXOF`,!0);let{key:r,context:i}=t,a=i!==void 0;if(r!==void 0){if(a)throw Error(`Only "key" or "context" can be specified at same time`);Vr(r,32,`key`);let e=Hr(r);this.IV=Kr(e),q(this.IV),this.flags=n|di.KEYED_HASH}else if(a){Vr(i,void 0,`context`);let t=i,r=new e({dkLen:32},di.DERIVE_KEY_CONTEXT).update(t).digest();this.IV=Kr(r),q(this.IV),this.flags=n|di.DERIVE_KEY_MATERIAL}else this.IV=fi.slice(),this.flags=n;this.state=this.IV.slice(),this.bufferOut=Gr(this.bufferOut32)}get(){return[]}set(){}b2Compress(e,t,n,r=0){let{state:i,pos:a}=this,{h:o,l:s}=oi(BigInt(e),!0),{v0:c,v1:l,v2:u,v3:d,v4:f,v5:p,v6:m,v7:h,v8:g,v9:_,v10:v,v11:y,v12:b,v13:x,v14:S,v15:C}=ui(pi,r,n,7,i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],fi[0],fi[1],fi[2],fi[3],o,s,a,t);i[0]=c^g,i[1]=l^_,i[2]=u^v,i[3]=d^y,i[4]=f^b,i[5]=p^x,i[6]=m^S,i[7]=h^C}compress(e,t=0,n=!1){let r=this.flags;if(this.chunkPos||(r|=di.CHUNK_START),(this.chunkPos===15||n)&&(r|=di.CHUNK_END),n||(this.pos=this.blockLen),this.b2Compress(this.chunksDone,r,e,t),this.chunkPos+=1,this.chunkPos===16||n){let e=this.state;this.state=this.IV.slice();for(let t,r=this.chunksDone+1;(n||!(r&1))&&(t=this.stack.pop());r>>=1)this.buffer32.set(t,0),this.buffer32.set(e,8),this.pos=this.blockLen,this.b2Compress(0,this.flags|di.PARENT,this.buffer32,0),e=this.state,this.state=this.IV.slice();this.chunksDone++,this.chunkPos=0,this.stack.push(e)}this.pos=0}_cloneInto(e){e=super._cloneInto(e);let{IV:t,flags:n,state:r,chunkPos:i,posOut:a,chunkOut:o,stack:s,chunksDone:c}=this;return e.state.set(r.slice()),e.stack=s.map(e=>Uint32Array.from(e)),e.IV.set(t),e.flags=n,e.chunkPos=i,e.chunksDone=c,e.posOut=a,e.chunkOut=o,e.enableXOF=this.enableXOF,e.bufferOut32.set(this.bufferOut32),e}destroy(){this.destroyed=!0,qr(this.state,this.buffer32,this.IV,this.bufferOut32),qr(...this.stack)}b2CompressOut(){let{state:e,pos:t,flags:n,buffer32:r,bufferOut32:i}=this,{h:a,l:o}=oi(BigInt(this.chunkOut++));q(r);let{v0:s,v1:c,v2:l,v3:u,v4:d,v5:f,v6:p,v7:m,v8:h,v9:g,v10:_,v11:v,v12:y,v13:b,v14:x,v15:S}=ui(pi,0,r,7,e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],fi[0],fi[1],fi[2],fi[3],o,a,t,n);i[0]=s^h,i[1]=c^g,i[2]=l^_,i[3]=u^v,i[4]=d^y,i[5]=f^b,i[6]=p^x,i[7]=m^S,i[8]=e[0]^h,i[9]=e[1]^g,i[10]=e[2]^_,i[11]=e[3]^v,i[12]=e[4]^y,i[13]=e[5]^b,i[14]=e[6]^x,i[15]=e[7]^S,q(r),q(i),this.posOut=0}finish(){if(this.finished)return;this.finished=!0,qr(this.buffer.subarray(this.pos));let e=this.flags|di.ROOT;this.stack.length?(e|=di.PARENT,q(this.buffer32),this.compress(this.buffer32,0,!0),q(this.buffer32),this.chunksDone=0,this.pos=this.blockLen):e|=(this.chunkPos?0:di.CHUNK_START)|di.CHUNK_END,this.flags=e,this.b2CompressOut()}writeInto(e){Ur(this,!1),Vr(e),this.finish();let{blockLen:t,bufferOut:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=t&&this.b2CompressOut();let a=Math.min(t-this.posOut,i-r);e.set(n.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible after digest call`);return this.writeInto(e)}xof(e){return Br(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Wr(e,this),this.finished)throw Error(`digest() was already called`);this.enableXOF=!1,this.writeInto(e.subarray(0,this.outputLen)),this.destroy()}digest(){let e=new Uint8Array(this.outputLen);return this.digestInto(e),e}},hi=ni((e={})=>new mi(e)),gi=ArrayBuffer,J=Uint8Array,_i=Uint16Array,vi=Int16Array,yi=Int32Array,bi=function(e,t,n){if(J.prototype.slice)return J.prototype.slice.call(e,t,n);(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length);var r=new J(n-t);return r.set(e.subarray(t,n)),r},xi=function(e,t,n,r){if(J.prototype.fill)return J.prototype.fill.call(e,t,n,r);for((n==null||n<0)&&(n=0),(r==null||r>e.length)&&(r=e.length);n<r;++n)e[n]=t;return e},Si=function(e,t,n,r){if(J.prototype.copyWithin)return J.prototype.copyWithin.call(e,t,n,r);for((n==null||n<0)&&(n=0),(r==null||r>e.length)&&(r=e.length);n<r;)e[t++]=e[n++]},Ci=[`invalid zstd data`,`window size too large (>2046MB)`,`invalid block type`,`FSE accuracy too high`,`match distance too far back`,`unexpected EOF`],Y=function(e,t,n){var r=Error(t||Ci[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,Y),!n)throw r;return r},wi=function(e,t,n){for(var r=0,i=0;r<n;++r)i|=e[t++]<<(r<<3);return i},Ti=function(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0},Ei=function(e,t){var n=e[0]|e[1]<<8|e[2]<<16;if(n==3126568&&e[3]==253){var r=e[4],i=r>>5&1,a=r>>2&1,o=r&3,s=r>>6;r&8&&Y(0);var c=6-i,l=o==3?4:o,u=wi(e,c,l);c+=l;var d=s?1<<s:i,f=wi(e,c,d)+(s==1&&256),p=f;if(!i){var m=1<<10+(e[5]>>3);p=m+(m>>3)*(e[5]&7)}p>2145386496&&Y(1);var h=new J((t==1?f||p:t?0:p)+12);return h[0]=1,h[4]=4,h[8]=8,{b:c+d,y:0,l:0,d:u,w:t&&t!=1?t:h.subarray(12),e:p,o:new yi(h.buffer,0,3),u:f,c:a,m:Math.min(131072,p)}}else if((n>>4|e[3]<<20)==25481893)return Ti(e,4)+8;Y(0)},Di=function(e){for(var t=0;1<<t<=e;++t);return t-1},Oi=function(e,t,n){var r=(t<<3)+4,i=(e[t]&15)+5;i>n&&Y(3);for(var a=1<<i,o=a,s=-1,c=-1,l=-1,u=a,d=new gi(512+(a<<2)),f=new vi(d,0,256),p=new _i(d,0,256),m=new _i(d,512,a),h=512+(a<<1),g=new J(d,h,a),_=new J(d,h+a);s<255&&o>0;){var v=Di(o+1),y=r>>3,b=(1<<v+1)-1,x=(e[y]|e[y+1]<<8|e[y+2]<<16)>>(r&7)&b,S=(1<<v)-1,C=b-o-1,w=x&S;if(w<C?(r+=v,x=w):(r+=v+1,x>S&&(x-=C)),f[++s]=--x,x==-1?(o+=x,g[--u]=s):o-=x,!x)do{var T=r>>3;c=(e[T]|e[T+1]<<8)>>(r&7)&3,r+=2,s+=c}while(c==3)}(s>255||o)&&Y(0);for(var E=0,D=(a>>1)+(a>>3)+3,O=a-1,k=0;k<=s;++k){var A=f[k];if(A<1){p[k]=-A;continue}for(l=0;l<A;++l){g[E]=k;do E=E+D&O;while(E>=u)}}for(E&&Y(0),l=0;l<a;++l){var j=p[g[l]]++;m[l]=(j<<(_[l]=i-Di(j)))-a}return[r+7>>3,{b:i,s:g,n:_,t:m}]},ki=function(e,t){var n=0,r=-1,i=new J(292),a=e[t],o=i.subarray(0,256),s=i.subarray(256,268),c=new _i(i.buffer,268);if(a<128){var l=Oi(e,t+1,6),u=l[0],d=l[1];t+=a;var f=u<<3,p=e[t];p||Y(0);for(var m=0,h=0,g=d.b,_=g,v=(++t<<3)-8+Di(p);v-=g,!(v<f);){var y=v>>3;if(m+=(e[y]|e[y+1]<<8)>>(v&7)&(1<<g)-1,o[++r]=d.s[m],v-=_,v<f)break;y=v>>3,h+=(e[y]|e[y+1]<<8)>>(v&7)&(1<<_)-1,o[++r]=d.s[h],g=d.n[m],m=d.t[m],_=d.n[h],h=d.t[h]}++r>255&&Y(0)}else{for(r=a-127;n<r;n+=2){var b=e[++t];o[n]=b>>4,o[n+1]=b&15}++t}var x=0;for(n=0;n<r;++n){var S=o[n];S>11&&Y(0),x+=S&&1<<S-1}var C=Di(x)+1,w=1<<C,T=w-x;for(T&T-1&&Y(0),o[r++]=Di(T)+1,n=0;n<r;++n){var S=o[n];++s[o[n]=S&&C+1-S]}var E=new J(w<<1),D=E.subarray(0,w),O=E.subarray(w);for(c[C]=0,n=C;n>0;--n){var k=c[n];xi(O,n,k,c[n-1]=k+s[n]*(1<<C-n))}for(c[0]!=w&&Y(0),n=0;n<r;++n){var A=o[n];if(A){var j=c[A];xi(D,n,j,c[A]=j+(1<<C-A))}}return[t,{n:O,b:C,s:D}]},Ai=Oi(new J([81,16,99,140,49,198,24,99,12,33,196,24,99,102,102,134,70,146,4]),0,6)[1],ji=Oi(new J([33,20,196,24,99,140,33,132,16,66,8,33,132,16,66,8,33,68,68,68,68,68,68,68,68,36,9]),0,6)[1],Mi=Oi(new J([32,132,16,66,102,70,68,68,68,68,36,73,2]),0,5)[1],Ni=function(e,t){for(var n=e.length,r=new yi(n),i=0;i<n;++i)r[i]=t,t+=1<<e[i];return r},Pi=new J(new yi([0,0,0,0,16843009,50528770,134678020,202050057,269422093]).buffer,0,36),Fi=Ni(Pi,0),Ii=new J(new yi([0,0,0,0,0,0,0,0,16843009,50528770,117769220,185207048,252579084,16]).buffer,0,53),Li=Ni(Ii,3),Ri=function(e,t,n){var r=e.length,i=t.length,a=e[r-1],o=(1<<n.b)-1,s=-n.b;a||Y(0);for(var c=0,l=n.b,u=(r<<3)-8+Di(a)-l,d=-1;u>s&&d<i;){var f=u>>3,p=(e[f]|e[f+1]<<8|e[f+2]<<16)>>(u&7);c=(c<<l|p)&o,t[++d]=n.s[c],u-=l=n.n[c]}(u!=s||d+1!=i)&&Y(0)},zi=function(e,t,n){var r=6,i=t.length+3>>2,a=i<<1,o=i+a;Ri(e.subarray(r,r+=e[0]|e[1]<<8),t.subarray(0,i),n),Ri(e.subarray(r,r+=e[2]|e[3]<<8),t.subarray(i,a),n),Ri(e.subarray(r,r+=e[4]|e[5]<<8),t.subarray(a,o),n),Ri(e.subarray(r),t.subarray(o),n)},Bi=function(e,t,n){var r,i=t.b,a=e[i],o=a>>1&3;t.l=a&1;var s=a>>3|e[i+1]<<5|e[i+2]<<13,c=(i+=3)+s;if(o==1)return i>=e.length?void 0:(t.b=i+1,n?(xi(n,e[i],t.y,t.y+=s),n):xi(new J(s),e[i]));if(!(c>e.length)){if(o==0)return t.b=c,n?(n.set(e.subarray(i,c),t.y),t.y+=s,n):bi(e,i,c);if(o==2){var l=e[i],u=l&3,d=l>>2&3,f=l>>4,p=0,m=0;u<2?d&1?f|=e[++i]<<4|(d&2&&e[++i]<<12):f=l>>3:(m=d,d<2?(f|=(e[++i]&63)<<4,p=e[i]>>6|e[++i]<<2):d==2?(f|=e[++i]<<4|(e[++i]&3)<<12,p=e[i]>>2|e[++i]<<6):(f|=e[++i]<<4|(e[++i]&63)<<12,p=e[i]>>6|e[++i]<<2|e[++i]<<10)),++i;var h=n?n.subarray(t.y,t.y+t.m):new J(t.m),g=h.length-f;if(u==0)h.set(e.subarray(i,i+=f),g);else if(u==1)xi(h,e[i++],g);else{var _=t.h;if(u==2){var v=ki(e,i);p+=i-(i=v[0]),t.h=_=v[1]}else _||Y(0);(m?zi:Ri)(e.subarray(i,i+=p),h.subarray(g),_)}var y=e[i++];if(y){y==255?y=(e[i++]|e[i++]<<8)+32512:y>127&&(y=y-128<<8|e[i++]);var b=e[i++];b&3&&Y(0);for(var x=[ji,Mi,Ai],S=2;S>-1;--S){var C=b>>(S<<1)+2&3;if(C==1){var w=new J([0,0,e[i++]]);x[S]={s:w.subarray(2,3),n:w.subarray(0,1),t:new _i(w.buffer,0,1),b:0}}else C==2?(r=Oi(e,i,9-(S&1)),i=r[0],x[S]=r[1]):C==3&&(t.t||Y(0),x[S]=t.t[S])}var T=t.t=x,E=T[0],D=T[1],O=T[2],k=e[c-1];k||Y(0);var A=(c<<3)-8+Di(k)-O.b,j=A>>3,M=0,ee=(e[j]|e[j+1]<<8)>>(A&7)&(1<<O.b)-1;j=(A-=D.b)>>3;var te=(e[j]|e[j+1]<<8)>>(A&7)&(1<<D.b)-1;j=(A-=E.b)>>3;var ne=(e[j]|e[j+1]<<8)>>(A&7)&(1<<E.b)-1;for(++y;--y;){var re=O.s[ee],ie=O.n[ee],ae=E.s[ne],oe=E.n[ne],se=D.s[te],ce=D.n[te];j=(A-=se)>>3;var le=1<<se,ue=le+((e[j]|e[j+1]<<8|e[j+2]<<16|e[j+3]<<24)>>>(A&7)&le-1);j=(A-=Ii[ae])>>3;var de=Li[ae]+((e[j]|e[j+1]<<8|e[j+2]<<16)>>(A&7)&(1<<Ii[ae])-1);j=(A-=Pi[re])>>3;var fe=Fi[re]+((e[j]|e[j+1]<<8|e[j+2]<<16)>>(A&7)&(1<<Pi[re])-1);if(j=(A-=ie)>>3,ee=O.t[ee]+((e[j]|e[j+1]<<8)>>(A&7)&(1<<ie)-1),j=(A-=oe)>>3,ne=E.t[ne]+((e[j]|e[j+1]<<8)>>(A&7)&(1<<oe)-1),j=(A-=ce)>>3,te=D.t[te]+((e[j]|e[j+1]<<8)>>(A&7)&(1<<ce)-1),ue>3)t.o[2]=t.o[1],t.o[1]=t.o[0],t.o[0]=ue-=3;else{var pe=ue-(fe!=0);pe?(ue=pe==3?t.o[0]-1:t.o[pe],pe>1&&(t.o[2]=t.o[1]),t.o[1]=t.o[0],t.o[0]=ue):ue=t.o[0]}for(var S=0;S<fe;++S)h[M+S]=h[g+S];M+=fe,g+=fe;var me=M-ue;if(me<0){var he=-me,N=t.e+me;he>de&&(he=de);for(var S=0;S<he;++S)h[M+S]=t.w[N+S];M+=he,de-=he,me=0}for(var S=0;S<de;++S)h[M+S]=h[me+S];M+=de}if(M!=g)for(;g<h.length;)h[M++]=h[g++];else M=h.length;n?t.y+=M:h=bi(h,0,M)}else if(n){if(t.y+=f,g)for(var S=0;S<f;++S)h[S]=h[g+S]}else g&&(h=bi(h,g));return t.b=c,h}Y(2)}},Vi=function(e,t){if(e.length==1)return e[0];for(var n=new J(t),r=0,i=0;r<e.length;++r){var a=e[r];n.set(a,i),i+=a.length}return n};function Hi(e,t){for(var n=[],r=+!t,i=0,a=0;e.length;){var o=Ei(e,r||t);if(typeof o==`object`){for(r?(t=null,o.w.length==o.u&&(n.push(t=o.w),a+=o.u)):(n.push(t),o.e=0);!o.l;){var s=Bi(e,o,t);s||Y(5),t?o.e=o.y:(n.push(s),a+=s.length,Si(o.w,0,s.length),o.w.set(s,o.w.length-s.length))}i=o.b+o.c*4}else i=o;e=e.subarray(i)}return Vi(n,a)}var Ui=class{constructor(){this.buf=new Uint8Array(256),this.view=new DataView(this.buf.buffer),this.len=0}ensure(e){if(this.len+e<=this.buf.length)return;let t=this.buf.length*2;for(;t<this.len+e;)t*=2;let n=new Uint8Array(t);n.set(this.buf.subarray(0,this.len)),this.buf=n,this.view=new DataView(n.buffer)}get length(){return this.len}u8(e){this.ensure(1),this.buf[this.len++]=e&255}i8(e){this.ensure(1),this.view.setInt8(this.len,e),this.len+=1}bytes(e){let t=e instanceof Uint8Array?e:Uint8Array.from(e);this.ensure(t.length),this.buf.set(t,this.len),this.len+=t.length}u16be(e){this.ensure(2),this.view.setUint16(this.len,e,!1),this.len+=2}u32be(e){this.ensure(4),this.view.setUint32(this.len,e,!1),this.len+=4}u64be(e){this.ensure(8),this.view.setBigUint64(this.len,e,!1),this.len+=8}i16be(e){this.ensure(2),this.view.setInt16(this.len,e,!1),this.len+=2}i32be(e){this.ensure(4),this.view.setInt32(this.len,e,!1),this.len+=4}i64be(e){this.ensure(8),this.view.setBigInt64(this.len,e,!1),this.len+=8}f32be(e){this.ensure(4),this.view.setFloat32(this.len,e,!1),this.len+=4}f64be(e){this.ensure(8),this.view.setFloat64(this.len,e,!1),this.len+=8}u16le(e){this.ensure(2),this.view.setUint16(this.len,e,!0),this.len+=2}u32le(e){this.ensure(4),this.view.setUint32(this.len,e,!0),this.len+=4}u64le(e){this.ensure(8),this.view.setBigUint64(this.len,e,!0),this.len+=8}i16le(e){this.ensure(2),this.view.setInt16(this.len,e,!0),this.len+=2}i32le(e){this.ensure(4),this.view.setInt32(this.len,e,!0),this.len+=4}i64le(e){this.ensure(8),this.view.setBigInt64(this.len,e,!0),this.len+=8}f32le(e){this.ensure(4),this.view.setFloat32(this.len,e,!0),this.len+=4}f64le(e){this.ensure(8),this.view.setFloat64(this.len,e,!0),this.len+=8}toBytes(){return this.buf.slice(0,this.len)}},Wi=class{constructor(e,t=0){this.data=e,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.offset=t}get remaining(){return this.data.length-this.offset}need(e){if(this.offset+e>this.data.length)throw RangeError(`brdb: unexpected end of data (need ${e} bytes at offset ${this.offset} of ${this.data.length})`)}peek(){return this.need(1),this.data[this.offset]}u8(){return this.need(1),this.data[this.offset++]}i8(){return this.need(1),this.view.getInt8(this.offset++)}bytes(e){this.need(e);let t=this.data.subarray(this.offset,this.offset+e);return this.offset+=e,t}u16be(){this.need(2);let e=this.view.getUint16(this.offset,!1);return this.offset+=2,e}u32be(){this.need(4);let e=this.view.getUint32(this.offset,!1);return this.offset+=4,e}u64be(){this.need(8);let e=this.view.getBigUint64(this.offset,!1);return this.offset+=8,e}i16be(){this.need(2);let e=this.view.getInt16(this.offset,!1);return this.offset+=2,e}i32be(){this.need(4);let e=this.view.getInt32(this.offset,!1);return this.offset+=4,e}i64be(){this.need(8);let e=this.view.getBigInt64(this.offset,!1);return this.offset+=8,e}f32be(){this.need(4);let e=this.view.getFloat32(this.offset,!1);return this.offset+=4,e}f64be(){this.need(8);let e=this.view.getFloat64(this.offset,!1);return this.offset+=8,e}u16le(){this.need(2);let e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}u32le(){this.need(4);let e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}u64le(){this.need(8);let e=this.view.getBigUint64(this.offset,!0);return this.offset+=8,e}i16le(){this.need(2);let e=this.view.getInt16(this.offset,!0);return this.offset+=2,e}i32le(){this.need(4);let e=this.view.getInt32(this.offset,!0);return this.offset+=4,e}i64le(){this.need(8);let e=this.view.getBigInt64(this.offset,!0);return this.offset+=8,e}f32le(){this.need(4);let e=this.view.getFloat32(this.offset,!0);return this.offset+=4,e}f64le(){this.need(8);let e=this.view.getFloat64(this.offset,!0);return this.offset+=8,e}};function Gi(e,t={}){let n=e.map(([e,t])=>({parentId:-1,name:e,node:t})),r=[],i=[],a=[],o=[],s=[],c=[],l=[],u=[],d=[],f=[],p=new Map;for(let e=0;e<n.length;e++){let{parentId:m,name:h,node:g}=n[e];if(g.type===`folder`){let e=r.length;r.push(m),i.push(h);for(let[t,r]of g.children)n.push({parentId:e,name:t,node:r})}else{a.push(m),s.push(h);let e=g.content,n;if(e.length===0)n=-1;else{let r=hi(e),i=ti(r),a=p.get(i);if(a!==void 0)n=a;else{n=d.length,p.set(i,n),d.push(r),l.push(e.length);let a=t.compress?t.compress(e):null;a&&a.length<e.length?(c.push(1),u.push(a.length),f.push(a)):(c.push(0),u.push(e.length),f.push(e))}}o.push(n)}}let m=new TextEncoder,h=new Ui;h.i32le(i.length),h.i32le(s.length),h.i32le(d.length);for(let e of r)h.i32le(e);let g=i.map(e=>m.encode(e));for(let e of g)h.u16le(e.length);for(let e of g)h.bytes(e);for(let e of a)h.i32le(e);for(let e of o)h.i32le(e);let _=s.map(e=>m.encode(e));for(let e of _)h.u16le(e.length);for(let e of _)h.bytes(e);for(let e of c)h.u8(e);for(let e of l)h.i32le(e);for(let e of u)h.i32le(e);for(let e of d)h.bytes(e);let v=h.toBytes(),y=new Ui;y.bytes([66,82,90]),y.u8(0),y.u8(0),y.i32le(v.length),y.i32le(v.length),y.bytes(hi(v)),y.bytes(v);for(let e of f)y.bytes(e);return y.toBytes()}var Ki=class e{constructor(e,t,n,r,i,a,o){this.folderParentIds=e,this.folderNames=t,this.fileParentIds=n,this.fileContentIds=r,this.fileNames=i,this.blobs=a,this.blobData=o,this.folderLut=new Map,this.fileLut=new Map,this.pathCache=null;for(let n=0;n<t.length;n++)this.folderLut.set(`${e[n]} ${t[n]}`,n);for(let e=0;e<i.length;e++)this.fileLut.set(`${n[e]} ${i[e]}`,e)}static from(t){let n=new Wi(t),r=n.bytes(3);if(r[0]!==66||r[1]!==82||r[2]!==90)throw Error(`brdb: invalid .brz magic`);let i=n.u8();if(i!==0)throw Error(`brdb: unsupported .brz version ${i}`);let a=n.u8();if(a!==0&&a!==1)throw Error(`brdb: invalid index compression method ${a}`);let o=n.i32le(),s=n.i32le();if(o<0||s<0)throw Error(`brdb: negative index size`);let c=n.bytes(32),l;if(a===0)l=n.bytes(o);else if(l=Hi(n.bytes(s),new Uint8Array(o)),l.length!==o)throw Error(`brdb: index decompressed to the wrong size`);if(ti(hi(l))!==ti(c))throw Error(`brdb: index hash mismatch`);let u=n.bytes(n.remaining),d=new Wi(l),f=d.i32le(),p=d.i32le(),m=d.i32le();if(f<0||p<0||m<0)throw Error(`brdb: negative index count`);let h=(e,t)=>Array.from({length:e},t),g=h(f,()=>d.i32le()),_=h(f,()=>d.u16le()),v=new TextDecoder(`utf-8`,{fatal:!0}),y=_.map(e=>v.decode(d.bytes(e))),b=h(p,()=>d.i32le()),x=h(p,()=>d.i32le()),S=h(p,()=>d.u16le()).map(e=>v.decode(d.bytes(e))),C=h(m,()=>d.u8()),w=h(m,()=>d.i32le()),T=h(m,()=>d.i32le()),E=h(m,()=>d.bytes(32).slice());if(d.remaining!==0)throw Error(`brdb: trailing bytes in index`);let D=[],O=0;for(let e=0;e<m;e++){if(w[e]<0||T[e]<0)throw Error(`brdb: negative blob size`);let t=C[e]===0?w[e]:T[e];D.push({method:C[e],sizeUncompressed:w[e],sizeCompressed:T[e],hash:E[e],start:O,end:O+t}),O+=t}return new e(g,y,b,x,S,D,u)}findFolder(e,t){return this.folderLut.get(`${e} ${t}`)??null}findFile(e,t){let n=this.fileLut.get(`${e} ${t}`);return n===void 0?null:{contentId:this.fileContentIds[n]}}folderIdOf(e){if(e===``)return-1;let t=-1;for(let n of e.split(`/`)){let e=this.findFolder(t,n);if(e===null)return null;t=e}return t}childFolders(e){let t=this.folderIdOf(e);if(t===null)return[];let n=[];for(let e=0;e<this.folderNames.length;e++)this.folderParentIds[e]===t&&n.push(this.folderNames[e]);return n}childFiles(e){let t=this.folderIdOf(e);if(t===null)return[];let n=[];for(let e=0;e<this.fileNames.length;e++)this.fileParentIds[e]===t&&n.push(this.fileNames[e]);return n}blobMethod(e){return this.blob(e).method}blob(e){if(e<0||e>=this.blobs.length)throw Error(`brdb: blob ${e} not found`);return this.blobs[e]}readBlob(e){let t=this.blob(e),n=this.blobData.subarray(t.start,t.end),r;if(t.method===0)r=n;else{if(n.length!==t.sizeCompressed)throw Error(`brdb: blob compressed size mismatch`);r=Hi(n,new Uint8Array(t.sizeUncompressed))}if(r.length!==t.sizeUncompressed)throw Error(`brdb: blob uncompressed size mismatch`);if(ti(hi(r))!==ti(t.hash))throw Error(`brdb: blob hash mismatch`);return r}readFile(e){if(e.startsWith(`/`))throw Error(`brdb: absolute paths not allowed`);let t=e.split(`/`),n=-1;for(let r=0;r<t.length-1;r++){let i=this.findFolder(n,t[r]);if(i===null)throw Error(`brdb: folder not found: ${t[r]} in ${e}`);n=i}let r=this.findFile(n,t[t.length-1]);if(!r)throw Error(`brdb: file not found: ${e}`);return r.contentId===-1?new Uint8Array:this.readBlob(r.contentId)}findFileByPath(e){if(e.startsWith(`/`))throw Error(`brdb: absolute paths not allowed`);let t=e.lastIndexOf(`/`),n=this.folderIdOf(t===-1?``:e.slice(0,t));if(n===null)return null;let r=this.findFile(n,e.slice(t+1));return r===null?null:{contentId:r.contentId,createdAt:0}}findFileByPathAtRevision(e,t){return this.findFileByPath(e)}listPaths(){if(this.pathCache)return this.pathCache;let e=[];for(let t=0;t<this.folderNames.length;t++){let n=this.folderParentIds[t];e.push(n===-1?this.folderNames[t]:`${e[n]}/${this.folderNames[t]}`)}return this.pathCache=this.fileNames.map((t,n)=>{let r=this.fileParentIds[n];return r===-1?t:`${e[r]}/${t}`}),this.pathCache}},qi=`B_1x1_Reroute_Node.B_1x1_Gate_AND.B_1x1_Gate_OR.B_1x1_Gate_XOR.B_1x1_Gate_NAND.B_1x1_Gate_NOR.B_1x1_NOT_Gate.B_1x1_Gate_AND_Bitwise.B_1x1_Gate_OR_Bitwise.B_1x1_Gate_XOR_Bitwise.B_1x1_Gate_NAND_Bitwise.B_1x1_Gate_NOR_Bitwise.B_1x1_Gate_NOT_Bitwise.B_1x1_Gate_ShiftLeft_Bitwise.B_1x1_Gate_ShiftRight_Bitwise.B_1x1_Gate_Add.B_1x1_Gate_Subtract.B_1x1_Gate_Multiply.B_1x1_Gate_ModFloored.B_1x1_Gate_Mod.B_1x1_Gate_Divide.B_1x1_Gate_Equal.B_1x1_Gate_NotEqual.B_1x1_Gate_LessThan.B_1x1_Gate_LessThanEqual.B_1x1_Gate_GreaterThan.B_1x1_Gate_GreaterThanEqual.B_1x1_Gate_Ceiling.B_1x1_Gate_Floor.B_1x1_Gate_Constant.B_1x1_Gate_Blend.B_1x1_Gate_EdgeDetector.B_1x1_Gate_Timer.B_1x1_Gate_Timer_Tick.B_1x1_Microchip.B_1x1_Gate_MicrochipInput.B_1x1_Gate_MicrochipOutput.B_2x2_Overhang.B_1x4_Brick_Side.B_1x2_Overhang.B_1x1_Brick_Side_Lip.B_1x1_Brick_Side.B_Jar.B_Chalice.B_Cauldron.B_Small_Flower.B_Pine_Tree.B_Leaf_Bush.B_Hedge_1x4.B_Hedge_1x2.B_Hedge_1x1_Corner.B_Hedge_1x1.B_Flower.B_Fern.B_Branch.B_2x4_Door_Frame.B_Turkey_Leg.B_Turkey_Body.B_Swirl_Plate.B_Sausage.B_Pumpkin_Carved.B_Pumpkin.B_Ladder.B_Inverted_Cone.B_Handle.B_Gravestone.B_Frog_Small.B_Frog.B_Flame.B_Coffin_Lid.B_Coffin.B_BoneStraight.B_Bone.B_1x1_Coin_Diagonal.B_1x1_Coin.B_Spoon.B_Fork.B_2x2_Corner.B_2x2f_Plate_Center_Inv.B_2x2f_Plate_Center.B_1x2f_Plate_Center_Inv.B_4x4_Round.B_2x2_Round.B_2x2F_Round.B_2x_Octo_T_Inv.B_2x_Octo_T.B_2x2F_Octo_Converter_Inv.B_2x2F_Octo_Converter.B_2x2F_Octo.B_8x8_Lattice_Plate.B_1x2_MetalIngot.B_1x1f_Tile_Corner.B_1x1f_Inverse_Tile_Corner.B_Rook.B_Queen.B_Pawn.B_Knight.B_King.B_Bishop.B_1x2f_Plate_Center.B_2x2_Cone.B_1x1_Round.B_1x1_Cone.B_1x1F_Round.B_2x_Octo_Cone.B_2x_Octo_90Deg_Inv.B_2x_Octo_90Deg.B_2x_Octo.B_1x_Octo_T_Inv.B_1x_Octo_T.B_1x_Octo_90Deg_Inv.B_1x_Octo_90Deg.B_1x_Octo.B_1x1F_Octo.B_2x2_Slipper.B_2x1_Slipper.B_Joint_Wheel_Micro.B_Joint_Wheel.B_Joint_Socket_Micro.B_Joint_Servo_Micro.B_Joint_Servo.B_Joint_Motor_Micro.B_Joint_Motor.B_Joint_Coupler.B_Joint_Bearing_Micro.B_Joint_Bearing.B_1x1_SoundEmitter.B_1x1_Gate_Teleport.B_1x1_Gate_RelativeTeleport.B_1x1_EntityGate_SetVelocity.B_1x1_EntityGate_SetLocationAndRotation.B_1x1_EntityGate_SetLocation.B_1x1_EntityGate_ReadBrickGrid.B_1x1_EntityGate_PlayAudioAt.B_1x1_EntityGate_AddVelocity.B_1x1_EntityGate_AddLocationAndRotation.B_1x1_CharacterGate_SetGravityDirection.B_Vehicle_Engine.B_Switch_Test.B_SpawnPoint.B_Seat.B_GoalPoint.B_DestinationPoint.B_CheckPoint.B_Button_Square.B_Button.B_Bot_Spawn_Point.B_2x2F_Target.B_2x2F_Speaker.B_1x1_Gate_WheelEngineSlim.B_1x1F_Speaker`.split(`.`),Ji=`PB_DefaultBrick.PB_DefaultStudded.PB_DefaultRampInnerCornerInverted.PB_DefaultRampCrestEnd.PB_DefaultRampCrestCorner.PB_DefaultRampCrest.PB_DefaultRamp.PB_PicketFence.BP_LatticeThin.PB_DefaultWedge.PB_DefaultTile.PB_DefaultSmoothTile.PB_DefaultSideWedge.PB_DefaultRampInverted.PB_DefaultRampInnerCorner.PB_DefaultRampCornerInverted.PB_DefaultRampCorner.PB_DefaultPole.PB_DefaultMicroWedgeTriangleCorner.PB_DefaultMicroWedgeOuterCorner.PB_DefaultMicroWedgeInnerCorner.PB_DefaultMicroWedgeHalfOuterCorner.PB_DefaultMicroWedgeHalfInnerCornerInverted.PB_DefaultMicroWedgeHalfInnerCorner.PB_DefaultMicroWedgeCorner.PB_DefaultMicroWedge.PB_DefaultMicroRamp.PB_DefaultMicroBrick.PB_DefaultArch.BP_SquarePlate.BP_SpikePlate.PB_Spike.PB_SliderJoint.PB_ServoSliderJoint.PB_MotorSliderJoint.BP_RoundPlate.PB_RoundedCap.PB_Baguette`.split(`.`),Yi=new Set(qi),Xi=new Set(Ji);function Zi(e){return Xi.has(e)?!0:Yi.has(e)?!1:e.startsWith(`PB_`)||e.startsWith(`BP_`)}var Qi=new Map([[`BrickComponentType_Internal_CharacterZoneEvent_Entered`,`BrickComponentData_Internal_CharacterZoneEvent`],[`BrickComponentType_Internal_CharacterZoneEvent_Left`,`BrickComponentData_Internal_CharacterZoneEvent`],[`BrickComponentType_Internal_EntityZoneEvent_Entered`,`BrickComponentData_Internal_EntityZoneEvent`],[`BrickComponentType_Internal_EntityZoneEvent_Left`,`BrickComponentData_Internal_EntityZoneEvent`],[`BrickComponentType_Internal_MicrochipInput`,`BrickComponentData_Internal_MicrochipInput`],[`BrickComponentType_Internal_MicrochipOutput`,`BrickComponentData_Internal_MicrochipOutput`],[`BrickComponentType_Internal_ProjectileZoneEvent_Entered`,`BrickComponentData_Internal_ProjectileZoneEvent`],[`BrickComponentType_Internal_ProjectileZoneEvent_Left`,`BrickComponentData_Internal_ProjectileZoneEvent`],[`BrickComponentType_Internal_ReadBrickGrid`,`BrickComponentData_Internal_ReadBrickGrid`],[`BrickComponentType_Internal_TeleportDestination`,`BrickComponentData_TeleportDestination`],[`BrickComponentType_Internal_ZoneEvent_BrickChanged`,`BrickComponentData_Internal_ZoneEvent`],[`BrickComponentType_Internal_ZoneEvent_BrickRemoved`,`BrickComponentData_Internal_ZoneEvent`],[`BrickComponentType_PrefabSpawn`,`BrickComponentData_PrefabSpawn`],[`BrickComponentType_WireGraphPseudo_ArrayVar`,`BrickComponentData_WireGraphPseudo_ArrayVar`],[`BrickComponentType_WireGraphPseudo_BufferSeconds`,`BrickComponentData_WireGraphPseudo_BufferSeconds`],[`BrickComponentType_WireGraphPseudo_BufferTicks`,`BrickComponentData_WireGraphPseudo_BufferTicks`],[`BrickComponentType_WireGraphPseudo_Dampen`,`BrickComponentData_WireGraphPseudo_Dampen`],[`BrickComponentType_WireGraphPseudo_QueueSeconds`,`BrickComponentData_WireGraphPseudo_QueueSeconds`],[`BrickComponentType_WireGraphPseudo_QueueTicks`,`BrickComponentData_WireGraphPseudo_QueueTicks`],[`BrickComponentType_WireGraphPseudo_Timer`,`BrickComponentData_WireGraphPseudo_Timer`],[`BrickComponentType_WireGraphPseudo_Tween`,`BrickComponentData_WireGraphPseudo_Tween`],[`BrickComponentType_WireGraphPseudo_Var`,`BrickComponentData_WireGraphPseudo_Var`],[`BrickComponentType_WireGraph_AudioReference`,`BrickComponentData_WireGraph_AudioReference`],[`BrickComponentType_WireGraph_BrickAssetReference`,`BrickComponentData_WireGraph_BrickAssetReference`],[`BrickComponentType_WireGraph_DeltaTime`,`BrickComponentData_WireGraph_DeltaTime`],[`BrickComponentType_WireGraph_EntityTypeReference`,`BrickComponentData_WireGraph_EntityTypeReference`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Append`,`BrickComponentData_WireGraph_Exec_ArrayVar_DualRef`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Average`,`BrickComponentData_WireGraph_Exec_ArrayVar_Average`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Clear`,`BrickComponentData_WireGraph_Exec_ArrayVar_Base`],[`BrickComponentType_WireGraph_Exec_ArrayVar_CopyFrom`,`BrickComponentData_WireGraph_Exec_ArrayVar_DualRef`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Fill`,`BrickComponentData_WireGraph_Exec_ArrayVar_Push`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Find`,`BrickComponentData_WireGraph_Exec_ArrayVar_Find`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Get`,`BrickComponentData_WireGraph_Exec_ArrayVar_Get`],[`BrickComponentType_WireGraph_Exec_ArrayVar_GetLength`,`BrickComponentData_WireGraph_Exec_ArrayVar_GetLength`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Insert`,`BrickComponentData_WireGraph_Exec_ArrayVar_Insert`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Max`,`BrickComponentData_WireGraph_Exec_ArrayVar_MinMax`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Min`,`BrickComponentData_WireGraph_Exec_ArrayVar_MinMax`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Pop`,`BrickComponentData_WireGraph_Exec_ArrayVar_Pop`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Push`,`BrickComponentData_WireGraph_Exec_ArrayVar_Push`],[`BrickComponentType_WireGraph_Exec_ArrayVar_RemoveAtIndex`,`BrickComponentData_WireGraph_Exec_ArrayVar_RemoveAtIndex`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Resize`,`BrickComponentData_WireGraph_Exec_ArrayVar_Resize`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Reverse`,`BrickComponentData_WireGraph_Exec_ArrayVar_Base`],[`BrickComponentType_WireGraph_Exec_ArrayVar_SetAtIndex`,`BrickComponentData_WireGraph_Exec_ArrayVar_ElementOp`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Shuffle`,`BrickComponentData_WireGraph_Exec_ArrayVar_Base`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Slice`,`BrickComponentData_WireGraph_Exec_ArrayVar_Slice`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Sort`,`BrickComponentData_WireGraph_Exec_ArrayVar_Sort`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Sum`,`BrickComponentData_WireGraph_Exec_ArrayVar_Sum`],[`BrickComponentType_WireGraph_Exec_ArrayVar_Swap`,`BrickComponentData_WireGraph_Exec_ArrayVar_Swap`],[`BrickComponentType_WireGraph_Exec_Branch`,`BrickComponentData_WireGraph_ExecBranch`],[`BrickComponentType_WireGraph_Exec_Character_AddInventoryBrick`,`BrickComponentData_WireGraph_Exec_Character_AddInventoryBrick`],[`BrickComponentType_WireGraph_Exec_Character_AddInventoryEntity`,`BrickComponentData_WireGraph_Exec_Character_AddInventoryEntity`],[`BrickComponentType_WireGraph_Exec_Character_AddInventoryEntry`,`BrickComponentData_WireGraph_Exec_Character_AddInventoryEntry`],[`BrickComponentType_WireGraph_Exec_Character_AddInventoryItem`,`BrickComponentData_WireGraph_Exec_Character_AddInventoryItem`],[`BrickComponentType_WireGraph_Exec_Character_GetAim`,`BrickComponentData_WireGraph_Exec_Character_GetAim`],[`BrickComponentType_WireGraph_Exec_Character_GetDamage`,`BrickComponentData_WireGraph_Exec_Character_GetDamage`],[`BrickComponentType_WireGraph_Exec_Character_GetFromController`,`BrickComponentData_WireGraph_Exec_Character_GetFromController`],[`BrickComponentType_WireGraph_Exec_Character_IncDamage`,`BrickComponentData_WireGraph_Exec_Character_IncDamage`],[`BrickComponentType_WireGraph_Exec_Character_SetDamage`,`BrickComponentData_WireGraph_Exec_Character_SetDamage`],[`BrickComponentType_WireGraph_Exec_Character_SetInventoryBrick`,`BrickComponentData_WireGraph_Exec_Character_SetInventoryBrick`],[`BrickComponentType_WireGraph_Exec_Character_SetInventoryEntity`,`BrickComponentData_WireGraph_Exec_Character_SetInventoryEntity`],[`BrickComponentType_WireGraph_Exec_Character_SetInventoryEntry`,`BrickComponentData_WireGraph_Exec_Character_SetInventoryEntry`],[`BrickComponentType_WireGraph_Exec_Character_SetInventoryItem`,`BrickComponentData_WireGraph_Exec_Character_SetInventoryItem`],[`BrickComponentType_WireGraph_Exec_Character_SetTempPermission`,`BrickComponentData_WireGraph_Exec_Character_SetTempPermission`],[`BrickComponentType_WireGraph_Exec_Character_ShowHint`,`BrickComponentData_WireGraph_Exec_Character_ShowHint`],[`BrickComponentType_WireGraph_Exec_ChatCommand`,`BrickComponentData_WireGraph_Exec_ChatCommand`],[`BrickComponentType_WireGraph_Exec_Controller_DisplayText`,`BrickComponentData_WireGraph_Exec_Controller_DisplayText`],[`BrickComponentType_WireGraph_Exec_Controller_GetDisplayName`,`BrickComponentData_WireGraph_Exec_Controller_GetDisplayName`],[`BrickComponentType_WireGraph_Exec_Controller_GetFromEntity`,`BrickComponentData_WireGraph_Exec_Controller_GetFromEntity`],[`BrickComponentType_WireGraph_Exec_Controller_GetUserId`,`BrickComponentData_WireGraph_Exec_Controller_GetUserId`],[`BrickComponentType_WireGraph_Exec_Controller_GetUserName`,`BrickComponentData_WireGraph_Exec_Controller_GetUserName`],[`BrickComponentType_WireGraph_Exec_Controller_HasPermission`,`BrickComponentData_WireGraph_Exec_Controller_HasPermission`],[`BrickComponentType_WireGraph_Exec_Controller_HasRole`,`BrickComponentData_WireGraph_Exec_Controller_HasRole`],[`BrickComponentType_WireGraph_Exec_Controller_IsTrustedByBrickOwner`,`BrickComponentData_WireGraph_Exec_Controller_IsTrustedByBrickOwner`],[`BrickComponentType_WireGraph_Exec_Controller_SetCanRespawn`,`BrickComponentData_WireGraph_Exec_Controller_SetCanRespawn`],[`BrickComponentType_WireGraph_Exec_Controller_ShowChatMessage`,`BrickComponentData_WireGraph_Exec_Controller_ShowChatMessage`],[`BrickComponentType_WireGraph_Exec_Controller_ShowStatusMessage`,`BrickComponentData_WireGraph_Exec_Controller_ShowStatusMessage`],[`BrickComponentType_WireGraph_Exec_Cycle`,`BrickComponentData_WireGraph_Exec_Cycle`],[`BrickComponentType_WireGraph_Exec_Entity_AddLocationRotation`,`BrickComponentData_WireGraph_Exec_Entity_AddLocationRotation`],[`BrickComponentType_WireGraph_Exec_Entity_AddVelocity`,`BrickComponentData_WireGraph_Exec_Entity_AddVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_GetAngularVelocity`,`BrickComponentData_WireGraph_Exec_Entity_GetAngularVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_GetLinearVelocity`,`BrickComponentData_WireGraph_Exec_Entity_GetLinearVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_GetLocation`,`BrickComponentData_WireGraph_Exec_Entity_GetLocation`],[`BrickComponentType_WireGraph_Exec_Entity_GetLocationRotation`,`BrickComponentData_WireGraph_Exec_Entity_GetLocationRotation`],[`BrickComponentType_WireGraph_Exec_Entity_GetRotation`,`BrickComponentData_WireGraph_Exec_Entity_GetRotation`],[`BrickComponentType_WireGraph_Exec_Entity_GetTag`,`BrickComponentData_WireGraph_Exec_Entity_GetTag`],[`BrickComponentType_WireGraph_Exec_Entity_GetVelocity`,`BrickComponentData_WireGraph_Exec_Entity_GetVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_RelativeTeleport`,`BrickComponentData_WireGraph_Exec_Entity_RelativeTeleport`],[`BrickComponentType_WireGraph_Exec_Entity_SetAngularVelocity`,`BrickComponentData_WireGraph_Exec_Entity_SetAngularVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_SetFrozen`,`BrickComponentData_WireGraph_Exec_Entity_SetFrozen`],[`BrickComponentType_WireGraph_Exec_Entity_SetGravityDirection`,`BrickComponentData_WireGraph_Exec_Entity_SetGravityDirection`],[`BrickComponentType_WireGraph_Exec_Entity_SetLinearVelocity`,`BrickComponentData_WireGraph_Exec_Entity_SetLinearVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_SetLocation`,`BrickComponentData_WireGraph_Exec_Entity_SetLocation`],[`BrickComponentType_WireGraph_Exec_Entity_SetLocationRotation`,`BrickComponentData_WireGraph_Exec_Entity_SetLocationRotation`],[`BrickComponentType_WireGraph_Exec_Entity_SetRotation`,`BrickComponentData_WireGraph_Exec_Entity_SetRotation`],[`BrickComponentType_WireGraph_Exec_Entity_SetTag`,`BrickComponentData_WireGraph_Exec_Entity_SetTag`],[`BrickComponentType_WireGraph_Exec_Entity_SetVelocity`,`BrickComponentData_WireGraph_Exec_Entity_SetVelocity`],[`BrickComponentType_WireGraph_Exec_Entity_Teleport`,`BrickComponentData_WireGraph_Exec_Entity_Teleport`],[`BrickComponentType_WireGraph_Exec_Gamemode_BroadcastChatMessage`,`BrickComponentData_WireGraph_Exec_Gamemode_BroadcastChatMessage`],[`BrickComponentType_WireGraph_Exec_Gamemode_BroadcastStatusMessage`,`BrickComponentData_WireGraph_Exec_Gamemode_BroadcastStatusMessage`],[`BrickComponentType_WireGraph_Exec_Gamemode_FillArrayFromPlayers`,`BrickComponentData_WireGraph_Exec_ArrayVar_Base`],[`BrickComponentType_WireGraph_Exec_Gamemode_FillArrayFromTeamMembers`,`BrickComponentData_WireGraph_Exec_Gamemode_FillArrayFromTeamMembers`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetCurrentRound`,`BrickComponentData_WireGraph_Exec_Gamemode_GetCurrentRound`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_GetLeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetTeam`,`BrickComponentData_WireGraph_Exec_Gamemode_GetTeam`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetTeamByName`,`BrickComponentData_WireGraph_Exec_Gamemode_GetTeamByName`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetTeamLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_GetTeamLeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_GetTeamName`,`BrickComponentData_WireGraph_Exec_Gamemode_GetTeamName`],[`BrickComponentType_WireGraph_Exec_Gamemode_IncrementLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_LeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_IncrementTeamLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_TeamLeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_PlayerWins`,`BrickComponentData_WireGraph_Exec_Gamemode_PlayerWins`],[`BrickComponentType_WireGraph_Exec_Gamemode_SetLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_LeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_SetTeam`,`BrickComponentData_WireGraph_Exec_Gamemode_SetTeam`],[`BrickComponentType_WireGraph_Exec_Gamemode_SetTeamLeaderboardValue`,`BrickComponentData_WireGraph_Exec_Gamemode_TeamLeaderboardValue`],[`BrickComponentType_WireGraph_Exec_Gamemode_SetTeamPinned`,`BrickComponentData_WireGraph_Exec_Gamemode_SetTeamPinned`],[`BrickComponentType_WireGraph_Exec_Gamemode_TeamWins`,`BrickComponentData_WireGraph_Exec_Gamemode_TeamWins`],[`BrickComponentType_WireGraph_Exec_PlayGlobalAudio`,`BrickComponentData_WireGraph_Exec_PlayGlobalAudio`],[`BrickComponentType_WireGraph_Exec_PrefabSpawner`,`BrickComponentData_WireGraph_Exec_PrefabSpawner`],[`BrickComponentType_WireGraph_Exec_PrintToConsole`,`BrickComponentData_WireGraph_Exec_PrintToConsole`],[`BrickComponentType_WireGraph_Exec_Random`,`BrickComponentData_WireGraph_Exec_Random`],[`BrickComponentType_WireGraph_Exec_Sweep`,`BrickComponentData_WireGraph_Exec_Sweep`],[`BrickComponentType_WireGraph_Exec_Toggle`,`BrickComponentData_WireGraph_Exec_Toggle`],[`BrickComponentType_WireGraph_Exec_Union`,`BrickComponentData_WireGraph_ExecUnion`],[`BrickComponentType_WireGraph_Exec_Var_Get`,`BrickComponentData_WireGraph_Exec_Var_Get`],[`BrickComponentType_WireGraph_Exec_Var_Increment`,`BrickComponentData_WireGraph_Exec_Var_EditOrGet`],[`BrickComponentType_WireGraph_Exec_Var_Set`,`BrickComponentData_WireGraph_Exec_Var_EditOrGet`],[`BrickComponentType_WireGraph_Expr_BitwiseAND`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseBitCount`,`BrickComponentData_WireGraph_Expr_Int_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseNAND`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseNOR`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseNOT`,`BrickComponentData_WireGraph_Expr_Int_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseOR`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseShiftLeft`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseShiftRight`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_BitwiseXOR`,`BrickComponentData_WireGraph_Expr_IntInt_Int`],[`BrickComponentType_WireGraph_Expr_Ceil`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_ColorBlend`,`BrickComponentData_WireGraph_Expr_ColorBlend`],[`BrickComponentType_WireGraph_Expr_ColorConvert`,`BrickComponentData_WireGraph_Expr_ColorConvert`],[`BrickComponentType_WireGraph_Expr_ColorToHex`,`BrickComponentData_WireGraph_Expr_ColorToHex`],[`BrickComponentType_WireGraph_Expr_CompareEqual`,`BrickComponentData_WireGraph_Expr_Compare`],[`BrickComponentType_WireGraph_Expr_CompareGreater`,`BrickComponentData_WireGraph_Expr_MathCompare`],[`BrickComponentType_WireGraph_Expr_CompareGreaterOrEqual`,`BrickComponentData_WireGraph_Expr_MathCompare`],[`BrickComponentType_WireGraph_Expr_CompareLess`,`BrickComponentData_WireGraph_Expr_MathCompare`],[`BrickComponentType_WireGraph_Expr_CompareLessOrEqual`,`BrickComponentData_WireGraph_Expr_MathCompare`],[`BrickComponentType_WireGraph_Expr_CompareNotEqual`,`BrickComponentData_WireGraph_Expr_Compare`],[`BrickComponentType_WireGraph_Expr_Convert`,`BrickComponentData_WireGraph_Expr_Convert`],[`BrickComponentType_WireGraph_Expr_DirectionToRotation`,`BrickComponentData_WireGraph_Expr_DirectionToRotation`],[`BrickComponentType_WireGraph_Expr_EdgeDetector`,`BrickComponentData_WireGraph_Expr_EdgeDetector`],[`BrickComponentType_WireGraph_Expr_Floor`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_InvertRotation`,`BrickComponentData_WireGraph_Expr_InvertRotation`],[`BrickComponentType_WireGraph_Expr_LogicalAND`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalNAND`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalNOR`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalNOT`,`BrickComponentData_WireGraph_Expr_Bool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalOR`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_LogicalXOR`,`BrickComponentData_WireGraph_Expr_BoolBool_Bool`],[`BrickComponentType_WireGraph_Expr_MakeColor`,`BrickComponentData_WireGraph_Expr_MakeColor`],[`BrickComponentType_WireGraph_Expr_MakeColorHex`,`BrickComponentData_WireGraph_Expr_MakeColorHex`],[`BrickComponentType_WireGraph_Expr_MakeColorSRGB`,`BrickComponentData_WireGraph_Expr_MakeColorSRGB`],[`BrickComponentType_WireGraph_Expr_MakeQuaternion`,`BrickComponentData_WireGraph_Expr_MakeQuaternion`],[`BrickComponentType_WireGraph_Expr_MakeRotation`,`BrickComponentData_WireGraph_Expr_MakeRotation`],[`BrickComponentType_WireGraph_Expr_MakeVector`,`BrickComponentData_WireGraph_Expr_MakeVector`],[`BrickComponentType_WireGraph_Expr_MathAbs`,`BrickComponentData_WireGraph_Expr_PrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathAcos`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAcosh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAdd`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathAsin`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAsinh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAtan`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathAtan2`,`BrickComponentData_WireGraph_Expr_MathAtan2`],[`BrickComponentType_WireGraph_Expr_MathAtanh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathBlend`,`BrickComponentData_WireGraph_Expr_MathBlend`],[`BrickComponentType_WireGraph_Expr_MathClamp`,`BrickComponentData_WireGraph_Expr_MathClamp`],[`BrickComponentType_WireGraph_Expr_MathCos`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathCosh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathDegreesToRadians`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathDivide`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathEasing`,`BrickComponentData_WireGraph_Expr_MathEasing`],[`BrickComponentType_WireGraph_Expr_MathExp`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathLn`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathLogBase`,`BrickComponentData_WireGraph_Expr_MathLogBase`],[`BrickComponentType_WireGraph_Expr_MathMax`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathMin`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathModulo`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathModuloFloored`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathMultiply`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathNegate`,`BrickComponentData_WireGraph_Expr_Variant_Variant`],[`BrickComponentType_WireGraph_Expr_MathPow`,`BrickComponentData_WireGraph_Expr_MathPow`],[`BrickComponentType_WireGraph_Expr_MathRadiansToDegrees`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathSign`,`BrickComponentData_WireGraph_Expr_PrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathSin`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathSinh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathSqrt`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathSubtract`,`BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant`],[`BrickComponentType_WireGraph_Expr_MathTan`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_MathTanh`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_NearlyEqual`,`BrickComponentData_WireGraph_Expr_NearlyEqual`],[`BrickComponentType_WireGraph_Expr_QuatAngleBetween`,`BrickComponentData_WireGraph_Expr_QuatAngleBetween`],[`BrickComponentType_WireGraph_Expr_QuatBetween`,`BrickComponentData_WireGraph_Expr_QuatBetween`],[`BrickComponentType_WireGraph_Expr_QuatDotProduct`,`BrickComponentData_WireGraph_Expr_QuatDotProduct`],[`BrickComponentType_WireGraph_Expr_QuatFromAxisAngle`,`BrickComponentData_WireGraph_Expr_QuatFromAxisAngle`],[`BrickComponentType_WireGraph_Expr_QuatSlerp`,`BrickComponentData_WireGraph_Expr_QuatSlerp`],[`BrickComponentType_WireGraph_Expr_QuatToAxisAngle`,`BrickComponentData_WireGraph_Expr_QuatToAxisAngle`],[`BrickComponentType_WireGraph_Expr_RotateVector`,`BrickComponentData_WireGraph_Expr_RotateVector`],[`BrickComponentType_WireGraph_Expr_RotationToDirection`,`BrickComponentData_WireGraph_Expr_RotationToDirection`],[`BrickComponentType_WireGraph_Expr_Round`,`BrickComponentData_WireGraph_Expr_Float_Float`],[`BrickComponentType_WireGraph_Expr_Select`,`BrickComponentData_WireGraph_Expr_Select`],[`BrickComponentType_WireGraph_Expr_SplitColor`,`BrickComponentData_WireGraph_Expr_SplitColor`],[`BrickComponentType_WireGraph_Expr_SplitColorSRGB`,`BrickComponentData_WireGraph_Expr_SplitColorSRGB`],[`BrickComponentType_WireGraph_Expr_SplitQuaternion`,`BrickComponentData_WireGraph_Expr_SplitQuaternion`],[`BrickComponentType_WireGraph_Expr_SplitRotation`,`BrickComponentData_WireGraph_Expr_SplitRotation`],[`BrickComponentType_WireGraph_Expr_SplitVector`,`BrickComponentData_WireGraph_Expr_SplitVector`],[`BrickComponentType_WireGraph_Expr_String_Concatenate`,`BrickComponentData_WireGraph_Expr_String_Concatenate`],[`BrickComponentType_WireGraph_Expr_String_Contains`,`BrickComponentData_WireGraph_Expr_String_Contains`],[`BrickComponentType_WireGraph_Expr_String_EndsWith`,`BrickComponentData_WireGraph_Expr_String_EndsWith`],[`BrickComponentType_WireGraph_Expr_String_Find`,`BrickComponentData_WireGraph_Expr_String_Find`],[`BrickComponentType_WireGraph_Expr_String_FormatText`,`BrickComponentData_WireGraph_Expr_String_FormatText`],[`BrickComponentType_WireGraph_Expr_String_Length`,`BrickComponentData_WireGraph_Expr_String_Length`],[`BrickComponentType_WireGraph_Expr_String_ParseInt`,`BrickComponentData_WireGraph_Expr_String_ParseInt`],[`BrickComponentType_WireGraph_Expr_String_ParseNumber`,`BrickComponentData_WireGraph_Expr_String_ParseNumber`],[`BrickComponentType_WireGraph_Expr_String_Replace`,`BrickComponentData_WireGraph_Expr_String_Replace`],[`BrickComponentType_WireGraph_Expr_String_Split`,`BrickComponentData_WireGraph_Expr_String_Split`],[`BrickComponentType_WireGraph_Expr_String_StartsWith`,`BrickComponentData_WireGraph_Expr_String_StartsWith`],[`BrickComponentType_WireGraph_Expr_String_Substring`,`BrickComponentData_WireGraph_Expr_String_Substring`],[`BrickComponentType_WireGraph_Expr_String_ToLower`,`BrickComponentData_WireGraph_Expr_String_ToLower`],[`BrickComponentType_WireGraph_Expr_String_ToUpper`,`BrickComponentData_WireGraph_Expr_String_ToUpper`],[`BrickComponentType_WireGraph_Expr_String_Trim`,`BrickComponentData_WireGraph_Expr_String_Trim`],[`BrickComponentType_WireGraph_Expr_Swap`,`BrickComponentData_WireGraph_Expr_Swap`],[`BrickComponentType_WireGraph_Expr_VecCrossProduct`,`BrickComponentData_WireGraph_Expr_VecVec_Vec`],[`BrickComponentType_WireGraph_Expr_VecDistance`,`BrickComponentData_WireGraph_Expr_VecVec_Float`],[`BrickComponentType_WireGraph_Expr_VecDistanceSquared`,`BrickComponentData_WireGraph_Expr_VecVec_Float`],[`BrickComponentType_WireGraph_Expr_VecDotProduct`,`BrickComponentData_WireGraph_Expr_VecVec_Float`],[`BrickComponentType_WireGraph_Expr_VecMagnitude`,`BrickComponentData_WireGraph_Expr_Vec_Float`],[`BrickComponentType_WireGraph_Expr_VecMagnitudeSquared`,`BrickComponentData_WireGraph_Expr_Vec_Float`],[`BrickComponentType_WireGraph_Expr_VecNormalize`,`BrickComponentData_WireGraph_Expr_Vec_Vec`],[`BrickComponentType_WireGraph_Expr_VecScale`,`BrickComponentData_WireGraph_Expr_VecFloat_Vec`],[`BrickComponentType_WireGraph_Fake_Gamemode_CharacterDamagedEvent`,`BrickComponentData_WireGraph_Fake_CharacterDamageEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_CharacterDiedEvent`,`BrickComponentData_WireGraph_Fake_CharacterDeathEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_CharacterSpawnedEvent`,`BrickComponentData_WireGraph_Fake_CharacterEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_ControllerJoinedEvent`,`BrickComponentData_WireGraph_Fake_ControllerEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_ControllerLeftEvent`,`BrickComponentData_WireGraph_Fake_ControllerEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_RoundEndEvent`,`BrickComponentData_WireGraph_Fake_RoundEvent`],[`BrickComponentType_WireGraph_Fake_Gamemode_RoundStartEvent`,`BrickComponentData_WireGraph_Fake_RoundEvent`],[`BrickComponentType_WireGraph_FindPlayer`,`BrickComponentData_WireGraph_FindPlayer`],[`BrickComponentType_WireGraph_FontReference`,`BrickComponentData_WireGraph_FontReference`],[`BrickComponentType_WireGraph_ItemReference`,`BrickComponentData_WireGraph_ItemReference`],[`BrickComponentType_WireGraph_OneShotAudioReference`,`BrickComponentData_WireGraph_OneShotAudioReference`],[`BrickComponentType_WireGraph_ParticleReference`,`BrickComponentData_WireGraph_ParticleReference`],[`BrickComponentType_WireGraph_PickupReference`,`BrickComponentData_WireGraph_PickupReference`],[`BrickComponentType_WireGraph_ProjectileReference`,`BrickComponentData_WireGraph_ProjectileReference`],[`BrickComponentType_WireGraph_ServerUptime`,`BrickComponentData_WireGraph_ServerUptime`],[`BrickComponentType_WireGraph_WheelEngineAudioReference`,`BrickComponentData_WireGraph_WheelEngineAudioReference`],[`Component_AudioEmitter`,`BrickComponentData_AudioEmitter`],[`Component_BotSpawn`,`BrickComponentData_BotSpawn`],[`Component_BrickPropertyChanger`,`BrickComponentData_BrickPropertyChanger`],[`Component_Button`,`BrickComponentData_Button`],[`Component_CheckPoint`,`BrickComponentData_CheckPoint`],[`Component_Damage`,`BrickComponentData_Damage`],[`Component_Interact`,`BrickComponentData_Interact`],[`Component_Internal_AnimatedButton`,`BrickComponentData_Button`],[`Component_Internal_AnimatedPressurePlate`,`BrickComponentData_Touch`],[`Component_Internal_AnimatedSwitch`,`BrickComponentData_Switch`],[`Component_Internal_AttachedZone`,`BrickComponentData_Internal_AttachedZone`],[`Component_Internal_Bearing`,`BrickComponentData_Bearing`],[`Component_Internal_Gyroscope`,`BrickComponentData_Gyroscope`],[`Component_Internal_InputSplitter`,`BrickComponentData_Internal_InputSplitter_V2`],[`Component_Internal_Joint_Wheel`,`BrickComponentData_Joint_Wheel`],[`Component_Internal_Joint_Wheel_Suspension`,`BrickComponentData_Joint_Wheel_Suspension`],[`Component_Internal_Microchip`,`BrickComponentData_Internal_Microchip`],[`Component_Internal_Motor`,`BrickComponentData_Motor`],[`Component_Internal_MotorSlider`,`BrickComponentData_MotorSlider`],[`Component_Internal_ProjectileSpawner_Cannon`,`BrickComponentData_ProjectileSpawner`],[`Component_Internal_Rerouter`,`BrickComponentData_Rerouter`],[`Component_Internal_RigidBearing`,`BrickComponentData_RigidBearing`],[`Component_Internal_RigidSlider`,`BrickComponentData_RigidSlider`],[`Component_Internal_Seat`,`BrickComponentData_Seat_V2`],[`Component_Internal_Servo`,`BrickComponentData_Servo`],[`Component_Internal_ServoSlider`,`BrickComponentData_ServoSlider`],[`Component_Internal_Slider`,`BrickComponentData_Slider`],[`Component_Internal_Thruster`,`BrickComponentData_Thruster`],[`Component_Internal_WeightBrick`,`BrickComponentData_WeightBrick`],[`Component_Internal_WheelEngine`,`BrickComponentData_WheelEngine_V2`],[`Component_ItemSpawn`,`BrickComponentData_ItemSpawn`],[`Component_OneShotAudioEmitter`,`BrickComponentData_OneShotAudioEmitter`],[`Component_PointLight`,`BrickComponentData_PointLight`],[`Component_ProjectileSpawner`,`BrickComponentData_ProjectileSpawner`],[`Component_SpawnPoint`,`BrickComponentData_SpawnPoint`],[`Component_SpotLight`,`BrickComponentData_SpotLight`],[`Component_Switch`,`BrickComponentData_Switch`],[`Component_Target`,`BrickComponentData_Target`],[`Component_TextDisplay`,`BrickComponentData_TextDisplay`],[`Component_Touch`,`BrickComponentData_Touch`],[`Component_WireGraph_PlayAudioAt`,`BrickComponentData_WireGraph_Exec_Entity_PlayAudioAt`]]),$i=new Map([[`Entity_DynamicBrickGrid`,`BrickGridDynamicActor`],[`Entity_MicrochipDynamicBrickGrid`,`BP_MicrochipBrickGridDynamicActor_C`]]),ea={A:4294967295,B:4294967295,C:4294967295,D:4294967295};function ta(e){let t=er(e),n=new DataView(t.buffer,t.byteOffset,16);return{A:n.getUint32(0,!1),B:n.getUint32(4,!1),C:n.getUint32(8,!1),D:n.getUint32(12,!1)}}function na(e){let t=new Uint8Array(16),n=new DataView(t.buffer);return n.setUint32(0,e.A,!1),n.setUint32(4,e.B,!1),n.setUint32(8,e.C,!1),n.setUint32(12,e.D,!1),$n(Array.from(t))}var ra=e=>({type:`folder`,children:e}),X=e=>({type:`file`,content:e}),ia=t({mpArrayHeader:()=>ga,mpBinHeader:()=>ha,mpBool:()=>la,mpF32:()=>pa,mpF64:()=>ma,mpInt:()=>fa,mpMapHeader:()=>_a,mpNil:()=>ca,mpStr:()=>Z,mpU8:()=>ua,mpUint:()=>da,rdArrayLen:()=>Oa,rdBinLen:()=>Da,rdBool:()=>Ea,rdF32:()=>wa,rdF64:()=>Ta,rdInt:()=>Sa,rdMapLen:()=>ka,rdNil:()=>Aa,rdStr:()=>Q,rdUint:()=>Ca}),aa=new TextEncoder,oa=new TextDecoder(`utf-8`,{fatal:!0}),sa=(e,t)=>{if(!Number.isSafeInteger(e))throw RangeError(`brdb: ${t} ${e} is not a safe integer`)},ca=e=>e.u8(192),la=(e,t)=>e.u8(t?195:194);function ua(e,t){if(t<0||t>255||!Number.isInteger(t))throw RangeError(`brdb: u8 value out of range: ${t}`);t<=127||t>224||e.u8(204),e.u8(t)}function da(e,t){if(sa(t,`uint`),t<0)throw RangeError(`brdb: uint value negative: ${t}`);t<=127?e.u8(t):t<=255?(e.u8(204),e.u8(t)):t<=65535?(e.u8(205),e.u16be(t)):t<=4294967295?(e.u8(206),e.u32be(t)):(e.u8(207),e.u64be(BigInt(t)))}function fa(e,t){sa(t,`int`),t>=0?t<128?e.u8(t):t<=32767?(e.u8(209),e.i16be(t)):t<=2147483647?(e.u8(210),e.i32be(t)):(e.u8(211),e.i64be(BigInt(t))):t>-32?e.u8(256+t):t>=-128?(e.u8(208),e.i8(t)):t>=-32768?(e.u8(209),e.i16be(t)):t>=-2147483648?(e.u8(210),e.i32be(t)):(e.u8(211),e.i64be(BigInt(t)))}function pa(e,t){t===Math.round(t)&&t<65535&&t>-32768?fa(e,t===0?0:t):(e.u8(202),e.f32be(t))}function ma(e,t){t===Math.round(t)&&t<4294967295&&t>-2147483648?fa(e,t===0?0:t):(e.u8(203),e.f64be(t))}function Z(e,t){let n=aa.encode(t),r=n.length;r<32?e.u8(160|r):r<256?(e.u8(217),e.u8(r)):r<=65535?(e.u8(218),e.u16be(r)):(e.u8(219),e.u32be(r)),e.bytes(n)}function ha(e,t){t<256?(e.u8(196),e.u8(t)):t<=65535?(e.u8(197),e.u16be(t)):(e.u8(198),e.u32be(t))}function ga(e,t){t<16?e.u8(144|t):t<=65535?(e.u8(220),e.u16be(t)):(e.u8(221),e.u32be(t))}function _a(e,t){t<16?e.u8(128|t):t<=65535?(e.u8(222),e.u16be(t)):(e.u8(223),e.u32be(t))}var va=e=>{if(e>BigInt(2**53-1)||e<BigInt(-(2**53-1)))throw RangeError(`brdb: 64-bit value ${e} exceeds JS safe integer range`);return Number(e)},ya=(e,t)=>{throw TypeError(`brdb: unexpected marker 0x${e.toString(16)} for ${t}`)},ba=e=>(e&128)==0,xa=e=>(e&224)==224;function Sa(e){let t=e.u8();if(ba(t))return t;if(xa(t))return t-256;switch(t){case 204:return e.u8();case 205:return e.u16be();case 206:return e.u32be();case 207:return va(e.u64be());case 208:return e.i8();case 209:return e.i16be();case 210:return e.i32be();case 211:return va(e.i64be());default:return ya(t,`integer`)}}function Ca(e){let t=e.u8();if(ba(t)||xa(t))return t;switch(t){case 204:return e.u8();case 205:return e.u16be();case 206:return e.u32be();case 207:return va(e.u64be());case 208:{let t=e.i8();if(t<0)throw RangeError(`brdb: negative i8 marker for uint field`);return t}default:return ya(t,`uint`)}}function wa(e){let t=e.u8();if(ba(t))return t;if(xa(t))return t-256;switch(t){case 204:return e.u8();case 205:return e.u16be();case 208:return e.i8();case 209:return e.i16be();case 202:return e.f32be();default:return ya(t,`float32`)}}function Ta(e){let t=e.u8();if(ba(t))return t;if(xa(t))return t-256;switch(t){case 204:return e.u8();case 205:return e.u16be();case 206:return e.u32be();case 208:return e.i8();case 209:return e.i16be();case 210:return e.i32be();case 202:return e.f32be();case 203:return e.f64be();default:return ya(t,`float64`)}}function Ea(e){let t=e.u8();return t===195?!0:t===194?!1:ya(t,`bool`)}function Q(e){let t=e.u8(),n;if((t&224)==160)n=t&31;else if(t===217)n=e.u8();else if(t===218)n=e.u16be();else if(t===219)n=e.u32be();else return ya(t,`str`);return oa.decode(e.bytes(n))}function Da(e){let t=e.u8();return t===196?e.u8():t===197?e.u16be():t===198?e.u32be():ya(t,`bin`)}function Oa(e){let t=e.u8();return(t&240)==144?t&15:t===220?e.u16be():t===221?e.u32be():ya(t,`array`)}function ka(e){let t=e.u8();return(t&240)==128?t&15:t===222?e.u16be():t===223?e.u32be():ya(t,`map`)}function Aa(e){let t=e.u8();t!==192&&ya(t,`nil`)}var ja=e=>e.replace(/\/\*[\s\S]*?\*\//g,` `).replace(/\/\/[^\n]*/g,` `).replace(/#[^\n]*/g,` `),Ma=String.raw`[A-Za-z_]\w*(?:::\w+)*`;function Na(e){let t=e.replace(/_/g,``);return t.startsWith(`0b`)?parseInt(t.slice(2),2):t.startsWith(`0x`)?parseInt(t.slice(2),16):parseInt(t,10)}function Pa(e){let t=ja(e),n=new Map,r=new Map,i=new Map,a=/\b(enum|variant|struct)\s+([A-Za-z0-9_]+)\s*\{([^{}]*)\}/g,o=new RegExp(String.raw`^(${Ma})\s*=\s*(-?\d+(?:_\d+)*|0b[01]+(?:_[01]+)*|0x[0-9a-fA-F]+(?:_[0-9a-fA-F]+)*)$`),s=new RegExp(String.raw`^${Ma}$`),c=new RegExp(String.raw`^(\w+)\s*:\s*(\w+)\s*(\[\s*(flat)?\s*\])?$`),l=0,u;for(;u=a.exec(t);){if(t.slice(l,u.index).trim()!==``)throw Error(`brdb: unexpected schema text before ${u[2]}`);l=a.lastIndex;let[,e,d,f]=u,p=f.split(`,`).map(e=>e.trim()).filter(e=>e!==``);if(e===`enum`){let e=new Map;for(let t of p){let n=o.exec(t);if(!n)throw Error(`brdb: cannot parse enum entry '${t}' in ${d}`);e.set(n[1],Na(n[2]))}n.set(d,e)}else if(e===`variant`){let e=[];for(let t of p){if(!s.test(t))throw Error(`brdb: cannot parse variant member '${t}' in ${d}`);e.push(t)}r.set(d,e)}else{let e=new Map;for(let t of p){let n=c.exec(t);if(!n)throw Error(`brdb: cannot parse struct property '${t}' in ${d}`);let[,r,i,a,o]=n;e.set(r,a?{kind:o?`flatarray`:`array`,type:i}:{kind:`type`,type:i})}i.set(d,e)}}if(t.slice(l).trim()!==``)throw Error(`brdb: trailing unparsed schema text`);return{enums:n,variants:r,structs:i}}var Fa={BRSavedGlobalDataSoA:{enums:{},variants:{},structs:{BRSavedPrimaryAssetId:{PrimaryAssetType:`str`,PrimaryAssetName:`str`},BRSavedGlobalDataSoA:{EntityTypeNames:[`str`],EntityDataClassNames:[`str`],BasicBrickAssetNames:[`str`],ProceduralBrickAssetNames:[`str`],MaterialAssetNames:[`str`],ComponentTypeNames:[`str`],ComponentDataStructNames:[`str`],ComponentWirePortNames:[`str`],ExternalAssetReferences:[`BRSavedPrimaryAssetId`],GlobalGridEntityTypeIndex:`i32`}}},BRSavedOwnerTableSoA:{enums:{},variants:{},structs:{BRGuid:{A:`u32`,B:`u32`,C:`u32`,D:`u32`},BRSavedOwnerTableSoA:{UserIds:[`BRGuid`,null],UserNames:[`str`],DisplayNames:[`str`],EntityCounts:[`u32`],BrickCounts:[`u32`],ComponentCounts:[`u32`],WireCounts:[`u32`]}}},BRSavedBrickChunkIndexSoA:{enums:{},variants:{},structs:{BRSavedChunk3DIndex:{X:`i16`,Y:`i16`,Z:`i16`},IntVector:{X:`i32`,Y:`i32`,Z:`i32`},BRSavedBrickChunkIndexSoA:{Chunk3DIndices:[`BRSavedChunk3DIndex`],ChunkOffsets:[`IntVector`],ChunkSizes:[`i32`],NumBricks:[`u32`],NumComponents:[`u32`],NumWires:[`u32`]}}},BRSavedBrickChunkSoA:{enums:{},variants:{},structs:{BRSavedBitFlags:{Flags:[`u8`,null]},BRSavedBrickColor:{R:`u8`,G:`u8`,B:`u8`,A:`u8`},BRSavedBrickSize:{X:`u16`,Y:`u16`,Z:`u16`},BRSavedBrickSizeCounter:{AssetIndex:`u32`,NumSizes:`u32`},BRSavedRelativeBrickPosition:{X:`i16`,Y:`i16`,Z:`i16`},BRSavedBrickChunkSoA:{ProceduralBrickStartingIndex:`u32`,BrickSizeCounters:[`BRSavedBrickSizeCounter`],BrickSizes:[`BRSavedBrickSize`],BrickTypeIndices:[`u32`],OwnerIndices:[`u32`],OriginalOwnerIndices:[`u32`],RelativePositions:[`BRSavedRelativeBrickPosition`,null],Orientations:[`u8`,null],CollisionFlags_Player:`BRSavedBitFlags`,CollisionFlags_Player1:`BRSavedBitFlags`,CollisionFlags_Player2:`BRSavedBitFlags`,CollisionFlags_Player3:`BRSavedBitFlags`,CollisionFlags_Weapon:`BRSavedBitFlags`,CollisionFlags_Interaction:`BRSavedBitFlags`,CollisionFlags_Physics:`BRSavedBitFlags`,VisibilityFlags:`BRSavedBitFlags`,MaterialIndices:[`u8`,null],ColorsAndAlphas:[`BRSavedBrickColor`,null],bColorsAreLinear:`bool`}}},BRSavedWireChunkSoA:{enums:{},variants:{},structs:{BRSavedBitFlags:{Flags:[`u8`,null]},BRSavedChunk3DIndex:{X:`i16`,Y:`i16`,Z:`i16`},BRSavedLocalWirePortSource:{BrickIndexInChunk:`u32`,ComponentTypeIndex:`u16`,PortIndex:`u16`},BRSavedWirePortTarget:{BrickIndexInChunk:`u32`,ComponentTypeIndex:`u16`,PortIndex:`u16`},BRSavedRemoteWirePortSource:{GridPersistentIndex:`u32`,ChunkIndex:`BRSavedChunk3DIndex`,BrickIndexInChunk:`u32`,ComponentTypeIndex:`u16`,PortIndex:`u16`},BRSavedWireChunkSoA:{RemoteWireSources:[`BRSavedRemoteWirePortSource`],LocalWireSources:[`BRSavedLocalWirePortSource`],RemoteWireTargets:[`BRSavedWirePortTarget`],LocalWireTargets:[`BRSavedWirePortTarget`],PendingPropagationFlags:`BRSavedBitFlags`}}},BRSavedComponentChunkSoA:{enums:{},variants:{},structs:{BRSavedBrickComponentTypeCounter:{TypeIndex:`u32`,NumInstances:`u32`},Quat4f:{X:`f32`,Y:`f32`,Z:`f32`,W:`f32`},Vector3f:{X:`f32`,Y:`f32`,Z:`f32`},BRSavedComponentChunkSoA:{ComponentTypeCounters:[`BRSavedBrickComponentTypeCounter`],ComponentBrickIndices:[`u32`],JointBrickIndices:[`u32`],JointEntityReferences:[`u32`],JointInitialRelativeOffsets:[`Vector3f`,null],JointInitialRelativeRotations:[`Quat4f`,null],MicrochipBrickIndices:[`u32`],MicrochipBrickGridReferences:[`u32`]}}},BRSavedComponentChunkSoA_max:{enums:{EBRColorSpace:{"EBRColorSpace::Linear":0,"EBRColorSpace::Srgb":1,"EBRColorSpace::Oklab":2,"EBRColorSpace::Hsv":3,"EBRColorSpace::EBRColorSpace_MAX":4},EBRDisplayTextEasing:{"EBRDisplayTextEasing::Linear":0,"EBRDisplayTextEasing::EaseIn":1,"EBRDisplayTextEasing::EaseOut":2,"EBRDisplayTextEasing::EaseInOut":3,"EBRDisplayTextEasing::EBRDisplayTextEasing_MAX":4},EBRDisplayTextJustification:{"EBRDisplayTextJustification::Left":0,"EBRDisplayTextJustification::Center":1,"EBRDisplayTextJustification::Right":2,"EBRDisplayTextJustification::EBRDisplayTextJustification_MAX":3},EBREasingDirection:{"EBREasingDirection::In":0,"EBREasingDirection::Out":1,"EBREasingDirection::InOut":2,"EBREasingDirection::EBREasingDirection_MAX":3},EBREasingFunction:{"EBREasingFunction::Linear":0,"EBREasingFunction::Sine":1,"EBREasingFunction::Quad":2,"EBREasingFunction::Cubic":3,"EBREasingFunction::Quart":4,"EBREasingFunction::Quint":5,"EBREasingFunction::Expo":6,"EBREasingFunction::Circ":7,"EBREasingFunction::Back":8,"EBREasingFunction::Elastic":9,"EBREasingFunction::Bounce":10,"EBREasingFunction::EBREasingFunction_MAX":11},EBrickAxis:{"EBrickAxis::X":0,"EBrickAxis::Y":1,"EBrickAxis::Z":2,"EBrickAxis::MAX":3},EBrickDirection:{"EBrickDirection::X_Positive":0,"EBrickDirection::X_Negative":1,"EBrickDirection::Y_Positive":2,"EBrickDirection::Y_Negative":3,"EBrickDirection::Z_Positive":4,"EBrickDirection::Z_Negative":5,"EBrickDirection::MAX":6},EBrickMaterial:{"EBrickMaterial::Plastic":0,"EBrickMaterial::Glass":1,"EBrickMaterial::TranslucentPlastic":2,"EBrickMaterial::Glow":3,"EBrickMaterial::Metal":4,"EBrickMaterial::Hologram":5,"EBrickMaterial::EBrickMaterial_MAX":6},EBrickRigidJointInterpMode:{"EBrickRigidJointInterpMode::Snap":0,"EBrickRigidJointInterpMode::Linear":1,"EBrickRigidJointInterpMode::Smooth":2,"EBrickRigidJointInterpMode::EBrickRigidJointInterpMode_MAX":3},EBRInventoryEntryPlanType:{"EBRInventoryEntryPlanType::Nothing":0,"EBRInventoryEntryPlanType::Brick":1,"EBRInventoryEntryPlanType::Entity":2,"EBRInventoryEntryPlanType::Item":3,"EBRInventoryEntryPlanType::EBRInventoryEntryPlanType_MAX":4},EBRPawnCollisionChannel:{"EBRPawnCollisionChannel::Channel1":0,"EBRPawnCollisionChannel::Channel2":1,"EBRPawnCollisionChannel::Channel3":2,"EBRPawnCollisionChannel::Channel4":3,"EBRPawnCollisionChannel::EBRPawnCollisionChannel_MAX":4},EBRTextFacing:{"EBRTextFacing::None":0,"EBRTextFacing::Full":1,"EBRTextFacing::InPlane":2,"EBRTextFacing::EBRTextFacing_MAX":3},EBRTextMaterial:{"EBRTextMaterial::Unlit":0,"EBRTextMaterial::Graffiti":1,"EBRTextMaterial::Plastic":2,"EBRTextMaterial::Metallic":3,"EBRTextMaterial::Glow":4,"EBRTextMaterial::TranslucentPlastic":5,"EBRTextMaterial::Glass":6,"EBRTextMaterial::EBRTextMaterial_MAX":7},EBRTextOutline:{"EBRTextOutline::None":0,"EBRTextOutline::Inlined":1,"EBRTextOutline::Outlined":2,"EBRTextOutline::HollowInlined":3,"EBRTextOutline::HollowOutlined":4,"EBRTextOutline::EBRTextOutline_MAX":5},EBRTextShading:{"EBRTextShading::None":0,"EBRTextShading::Chamfer":1,"EBRTextShading::Fillet":2,"EBRTextShading::DoubleChamfer":3,"EBRTextShading::DoubleFillet":4,"EBRTextShading::Rounded":5,"EBRTextShading::EBRTextShading_MAX":6},EBRTextTypeface:{"EBRTextTypeface::Regular":0,"EBRTextTypeface::Bold":1,"EBRTextTypeface::Italic":2,"EBRTextTypeface::BoldItalic":3,"EBRTextTypeface::EBRTextTypeface_MAX":4},EProjectileSpawnLocation:{"EProjectileSpawnLocation::FaceCenter":0,"EProjectileSpawnLocation::RandomPointInFace":1,"EProjectileSpawnLocation::EProjectileSpawnLocation_MAX":2}},variants:{WireGraphArrayVariant:[`WireGraphDoubleArray`,`WireGraphInt64Array`,`WireGraphBoolArray`,`WireGraphObjectArray`,`WireGraphVectorArray`,`WireGraphRotatorArray`,`WireGraphQuatArray`,`WireGraphStringArray`,`WireGraphLinearColorArray`,`WireGraphEnumArrayWrapper`],WireGraphEnumArrayVariant:[`WireGraphEnumArray_EBrickDirection`,`WireGraphEnumArray_EBrickAxis`,`WireGraphEnumArray_EBRPawnCollisionChannel`,`WireGraphEnumArray_EBRTextShading`,`WireGraphEnumArray_EBRTextOutline`,`WireGraphEnumArray_EBRTextMaterial`,`WireGraphEnumArray_EBRTextTypeface`,`WireGraphEnumArray_EBRTextFacing`,`WireGraphEnumArray_EBREasingFunction`,`WireGraphEnumArray_EBREasingDirection`,`WireGraphEnumArray_EBRColorSpace`,`WireGraphEnumArray_EProjectileSpawnLocation`,`WireGraphEnumArray_EBrickRigidJointInterpMode`,`WireGraphEnumArray_EBRDisplayTextJustification`,`WireGraphEnumArray_EBRDisplayTextEasing`,`WireGraphEnumArray_EBrickMaterial`],WireGraphEnumVariant:[`EBrickDirection`,`EBrickAxis`,`EBrickMaterial`,`EBRPawnCollisionChannel`,`EBRTextShading`,`EBRTextOutline`,`EBRTextMaterial`,`EBRTextTypeface`,`EBRTextFacing`,`EBREasingFunction`,`EBREasingDirection`,`EBRColorSpace`,`EProjectileSpawnLocation`,`EBrickRigidJointInterpMode`,`EBRDisplayTextJustification`,`EBRDisplayTextEasing`],WireGraphPrimMathVariant:[`f64`,`i64`,`Vector`,`Rotator`,`Quat`,`LinearColor`],WireGraphVariant:[`f64`,`i64`,`bool`,`weak_object`,`WireGraphExec`,`Vector`,`Rotator`,`Quat`,`str`,`LinearColor`,`WireGraphEnumWrapper`]},structs:{BrickComponentData_AudioEmitter:{bEnabled:`bool`,AudioDescriptor:`object`,VolumeMultiplier:`f32`,PitchMultiplier:`f32`,InnerRadius:`f32`,MaxDistance:`f32`,bSpatialization:`bool`,FocusAzimuth:`f32`,NonFocusAzimuth:`f32`,NonFocusVolumeAttenuation:`f32`},BrickComponentData_Bearing:{bLimitAngle:`bool`,LimitAngle:`f32`,bAnglesArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_Button:{PressSound:`object`,ReleaseSound:`object`,bAllowNearbyInteraction:`bool`,bHiddenInteraction:`bool`,PromptCustomLabel:`str`},BrickComponentData_CheckPoint:{bRotatePlayerGravityOnSpawn:`bool`},BrickComponentData_Damage:{Damage:`f32`,RepeatDelay:`f32`,Message:`str`,ConsoleTag:`str`},BrickComponentData_Interact:{InteractSound:`object`,Message:`str`,ConsoleTag:`str`,bAllowNearbyInteraction:`bool`,bHiddenInteraction:`bool`,PromptCustomLabel:`str`},BrickComponentData_Internal_AttachedZone:{ZoneStartDistance:`i32`,ZoneEndDistance:`i32`,bIsBuildingZone:`bool`,bIsLooseZone:`bool`,bIsShareZone:`bool`,bDetectPlayers:`bool`,bDetectPlayers1:`bool`,bDetectPlayers2:`bool`,bDetectPlayers3:`bool`,bDetectEntities:`bool`,bDetectProjectiles:`bool`,TagFilter:`str`},BrickComponentData_Internal_CharacterZoneEvent:{bCollisionEnabled_Player:`bool`,bCollisionEnabled_Player1:`bool`,bCollisionEnabled_Player2:`bool`,bCollisionEnabled_Player3:`bool`},BrickComponentData_Internal_EntityZoneEvent:{},BrickComponentData_Internal_InputSplitter_V2:{},BrickComponentData_Internal_Microchip:{},BrickComponentData_Internal_MicrochipInput:{PortLabel:`str`},BrickComponentData_Internal_MicrochipOutput:{PortLabel:`str`},BrickComponentData_Internal_ProjectileZoneEvent:{},BrickComponentData_Internal_ReadBrickGrid:{},BrickComponentData_Internal_ZoneEvent:{},BrickComponentData_Motor:{bEnabled:`bool`,Speed:`f32`,Power:`f32`,bLimitAngle:`bool`,LimitAngle:`f32`,bAnglesArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_MotorSlider:{bEnabled:`bool`,Speed:`f32`,Power:`f32`,bPositionsArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_OneShotAudioEmitter:{AudioDescriptor:`object`,VolumeMultiplier:`f32`,PitchMultiplier:`f32`,InnerRadius:`f32`,MaxDistance:`f32`,bSpatialization:`bool`,bEnableRepeat:`bool`,RepeatTime:`f32`,RepeatVariance:`f32`,RepeatCount:`i32`},BrickComponentData_ProjectileSpawner:{ProjectileClass:`class`,FireSound:`object`,Direction:`EBrickDirection`,SpawnLocation:`EProjectileSpawnLocation`,SpawnMargin:`f32`,bEnabled:`bool`,NumberOfShots:`i32`,SpreadConeAngle:`f32`,bSpreadBiasedTowardsCenter:`bool`,FireRate:`f32`,DamageMultiplier:`f32`,SpeedMultiplier:`f32`,ScaleMultiplier:`f32`},BrickComponentData_Rerouter:{},BrickComponentData_RigidBearing:{TargetAngle:`f32`,bAnglesArePercentages:`bool`,bReversed:`bool`,InterpMode:`EBrickRigidJointInterpMode`,SmoothTime:`f32`,TopSpeed:`f32`},BrickComponentData_RigidSlider:{TargetPosition:`f32`,bPositionsArePercentages:`bool`,bReversed:`bool`,InterpMode:`EBrickRigidJointInterpMode`,SmoothTime:`f32`,TopSpeed:`f32`},BrickComponentData_Servo:{bEnabled:`bool`,TargetAngle:`f32`,Power:`f32`,ActiveDamping:`f32`,ForceLimit:`f32`,bLimitAngle:`bool`,LimitAngle:`f32`,bAnglesArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_ServoSlider:{bEnabled:`bool`,TargetPosition:`f32`,Power:`f32`,TopSpeed:`f32`,Exponent:`f32`,bPositionsArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_Slider:{bPositionsArePercentages:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_SpawnPoint:{bRotatePlayerGravityOnSpawn:`bool`,bEnable:`bool`},BrickComponentData_Switch:{bEnabled:`bool`,InteractSound:`object`,bAllowNearbyInteraction:`bool`,bHiddenInteraction:`bool`,PromptCustomLabel:`str`},BrickComponentData_Target:{OnTime:`f32`},BrickComponentData_TeleportDestination:{},BrickComponentData_Thruster:{bEnabled:`bool`,Force:`f32`,Throttle:`f32`,Pitch:`f32`,Yaw:`f32`,bSpawnLight:`bool`},BrickComponentData_Touch:{BeginTouchSound:`object`,EndTouchSound:`object`,bCollisionEnabled_Player:`bool`,bCollisionEnabled_Player1:`bool`,bCollisionEnabled_Player2:`bool`,bCollisionEnabled_Player3:`bool`},BrickComponentData_WireGraph_AudioReference:{Asset:`object`},BrickComponentData_WireGraph_BrickAssetReference:{Asset:`object`},BrickComponentData_WireGraph_DeltaTime:{},BrickComponentData_WireGraph_EntityTypeReference:{Asset:`class`},BrickComponentData_WireGraph_Exec_ArrayVar_Average:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Base:{},BrickComponentData_WireGraph_Exec_ArrayVar_DualRef:{},BrickComponentData_WireGraph_Exec_ArrayVar_ElementOp:{Index:`i64`,Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Find:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Get:{Index:`i64`,Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_GetLength:{},BrickComponentData_WireGraph_Exec_ArrayVar_Insert:{Index:`i64`,Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_MinMax:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Pop:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Push:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_RemoveAtIndex:{Index:`i64`},BrickComponentData_WireGraph_Exec_ArrayVar_Resize:{Size:`i64`,Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Slice:{Start:`i64`,Count:`i64`},BrickComponentData_WireGraph_Exec_ArrayVar_Sort:{bDescending:`bool`},BrickComponentData_WireGraph_Exec_ArrayVar_Sum:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_ArrayVar_Swap:{IndexA:`i64`,IndexB:`i64`},BrickComponentData_WireGraph_Exec_Character_AddInventoryEntity:{},BrickComponentData_WireGraph_Exec_Character_AddInventoryItem:{},BrickComponentData_WireGraph_Exec_Character_GetAim:{},BrickComponentData_WireGraph_Exec_Character_GetDamage:{},BrickComponentData_WireGraph_Exec_Character_GetFromController:{},BrickComponentData_WireGraph_Exec_Character_IncDamage:{Amount:`f64`},BrickComponentData_WireGraph_Exec_Character_SetDamage:{Damage:`f64`},BrickComponentData_WireGraph_Exec_Character_SetInventoryEntity:{Slot:`i32`},BrickComponentData_WireGraph_Exec_Character_SetInventoryItem:{Slot:`i32`},BrickComponentData_WireGraph_Exec_Character_SetTempPermission:{PermissionTagStr:`str`,bPermissionEnable:`bool`},BrickComponentData_WireGraph_Exec_Character_ShowHint:{HintTitle:`str`,HintText:`str`},BrickComponentData_WireGraph_Exec_ChatCommand:{CommandName:`str`,HelpText:`str`},BrickComponentData_WireGraph_Exec_Controller_GetDisplayName:{},BrickComponentData_WireGraph_Exec_Controller_GetFromEntity:{},BrickComponentData_WireGraph_Exec_Controller_GetUserId:{},BrickComponentData_WireGraph_Exec_Controller_GetUserName:{},BrickComponentData_WireGraph_Exec_Controller_HasPermission:{PermissionName:`str`},BrickComponentData_WireGraph_Exec_Controller_HasRole:{RoleName:`str`},BrickComponentData_WireGraph_Exec_Controller_IsTrustedByBrickOwner:{},BrickComponentData_WireGraph_Exec_Controller_SetCanRespawn:{bCanRespawn:`bool`},BrickComponentData_WireGraph_Exec_Controller_ShowChatMessage:{Message:`str`},BrickComponentData_WireGraph_Exec_Controller_ShowStatusMessage:{},BrickComponentData_WireGraph_Exec_Cycle:{Count:`i64`,Value:`i64`},BrickComponentData_WireGraph_Exec_Entity_GetAngularVelocity:{},BrickComponentData_WireGraph_Exec_Entity_GetLinearVelocity:{},BrickComponentData_WireGraph_Exec_Entity_GetLocation:{},BrickComponentData_WireGraph_Exec_Entity_GetLocationRotation:{},BrickComponentData_WireGraph_Exec_Entity_GetRotation:{},BrickComponentData_WireGraph_Exec_Entity_GetTag:{},BrickComponentData_WireGraph_Exec_Entity_GetVelocity:{},BrickComponentData_WireGraph_Exec_Entity_PlayAudioAt:{AudioDescriptor:`object`,VolumeMultiplier:`f32`,PitchMultiplier:`f32`,InnerRadius:`f32`,MaxDistance:`f32`,bSpatialization:`bool`},BrickComponentData_WireGraph_Exec_Entity_SetFrozen:{bFrozen:`bool`},BrickComponentData_WireGraph_Exec_Entity_SetTag:{Tag:`str`},BrickComponentData_WireGraph_Exec_Gamemode_BroadcastChatMessage:{Message:`str`},BrickComponentData_WireGraph_Exec_Gamemode_BroadcastStatusMessage:{Message:`str`,bFlashIfUnchanged:`bool`},BrickComponentData_WireGraph_Exec_Gamemode_FillArrayFromTeamMembers:{},BrickComponentData_WireGraph_Exec_Gamemode_GetCurrentRound:{},BrickComponentData_WireGraph_Exec_Gamemode_GetLeaderboardValue:{Key:`str`},BrickComponentData_WireGraph_Exec_Gamemode_GetTeam:{},BrickComponentData_WireGraph_Exec_Gamemode_GetTeamByName:{TeamName:`str`},BrickComponentData_WireGraph_Exec_Gamemode_GetTeamLeaderboardValue:{Key:`str`},BrickComponentData_WireGraph_Exec_Gamemode_GetTeamName:{},BrickComponentData_WireGraph_Exec_Gamemode_LeaderboardValue:{Key:`str`,Value:`i64`},BrickComponentData_WireGraph_Exec_Gamemode_PlayerWins:{bTeamWinsInstead:`bool`},BrickComponentData_WireGraph_Exec_Gamemode_SetTeam:{bPinPlayerToTeam:`bool`},BrickComponentData_WireGraph_Exec_Gamemode_SetTeamPinned:{bPinned:`bool`},BrickComponentData_WireGraph_Exec_Gamemode_TeamLeaderboardValue:{Key:`str`,Value:`i64`},BrickComponentData_WireGraph_Exec_Gamemode_TeamWins:{},BrickComponentData_WireGraph_Exec_PlayGlobalAudio:{AudioDescriptor:`object`,VolumeMultiplier:`f32`,PitchMultiplier:`f32`},BrickComponentData_WireGraph_Exec_PrintToConsole:{Text:`str`},BrickComponentData_WireGraph_Exec_Random:{Min:`WireGraphPrimMathVariant`,Max:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Exec_Toggle:{Value:`bool`},BrickComponentData_WireGraph_Exec_Var_EditOrGet:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_Exec_Var_Get:{Value:`WireGraphVariant`},BrickComponentData_WireGraph_ExecBranch:{bCond:`bool`},BrickComponentData_WireGraph_ExecUnion:{},BrickComponentData_WireGraph_Expr_Bool_Bool:{bInput:`bool`},BrickComponentData_WireGraph_Expr_BoolBool_Bool:{bInputA:`bool`,bInputB:`bool`},BrickComponentData_WireGraph_Expr_Compare:{InputA:`WireGraphVariant`,InputB:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_Convert:{TargetType:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_EdgeDetector:{Input:`f64`,bPulseOnRisingEdge:`bool`,bPulseOnFallingEdge:`bool`},BrickComponentData_WireGraph_Expr_Float_Float:{Input:`f64`},BrickComponentData_WireGraph_Expr_Int_Int:{Input:`i64`},BrickComponentData_WireGraph_Expr_IntInt_Int:{InputA:`i64`,InputB:`i64`},BrickComponentData_WireGraph_Expr_MakeColor:{R:`f64`,G:`f64`,B:`f64`,A:`f64`},BrickComponentData_WireGraph_Expr_MakeColorHex:{Hex:`str`},BrickComponentData_WireGraph_Expr_MakeColorSRGB:{R:`i64`,G:`i64`,B:`i64`,A:`i64`},BrickComponentData_WireGraph_Expr_MakeQuaternion:{X:`f64`,Y:`f64`,Z:`f64`,W:`f64`},BrickComponentData_WireGraph_Expr_MakeRotation:{Pitch:`f64`,Yaw:`f64`,Roll:`f64`},BrickComponentData_WireGraph_Expr_MakeVector:{X:`f64`,Y:`f64`,Z:`f64`},BrickComponentData_WireGraph_Expr_MathAtan2:{Y:`f64`,X:`f64`},BrickComponentData_WireGraph_Expr_MathBlend:{Blend:`f64`,bClampAlpha:`bool`,InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_MathClamp:{Min:`WireGraphPrimMathVariant`,Max:`WireGraphPrimMathVariant`,Input:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_MathCompare:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_MathEasing:{Blend:`f64`,Function:`EBREasingFunction`,Direction:`EBREasingDirection`,InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_MathLogBase:{Input:`f64`,Base:`f64`},BrickComponentData_WireGraph_Expr_MathPow:{Input:`f64`,Exponent:`f64`},BrickComponentData_WireGraph_Expr_NearlyEqual:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`,Tolerance:`f64`},BrickComponentData_WireGraph_Expr_PrimMathVariant_PrimMathVariant:{Input:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant:{InputA:`WireGraphPrimMathVariant`,InputB:`WireGraphPrimMathVariant`},BrickComponentData_WireGraph_Expr_Select:{bSelectB:`bool`,InputA:`WireGraphVariant`,InputB:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_String_Concatenate:{InputA:`str`,InputB:`str`,Separator:`str`},BrickComponentData_WireGraph_Expr_String_Contains:{Input:`str`,Search:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_EndsWith:{Input:`str`,Suffix:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_Find:{Input:`str`,Search:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_FormatText:{FormatString:`str`,InputA:`WireGraphVariant`,InputB:`WireGraphVariant`,InputC:`WireGraphVariant`,InputD:`WireGraphVariant`,InputE:`WireGraphVariant`,InputF:`WireGraphVariant`,InputG:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_String_Length:{Input:`str`},BrickComponentData_WireGraph_Expr_String_ParseInt:{Input:`str`},BrickComponentData_WireGraph_Expr_String_ParseNumber:{Input:`str`},BrickComponentData_WireGraph_Expr_String_Replace:{Input:`str`,Search:`str`,Replacement:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_Split:{Input:`str`,Delimiter:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_StartsWith:{Input:`str`,Prefix:`str`,bCaseSensitive:`bool`},BrickComponentData_WireGraph_Expr_String_Substring:{Input:`str`,Start:`i64`,Length:`i64`},BrickComponentData_WireGraph_Expr_String_ToLower:{Input:`str`},BrickComponentData_WireGraph_Expr_String_ToUpper:{Input:`str`},BrickComponentData_WireGraph_Expr_String_Trim:{Input:`str`},BrickComponentData_WireGraph_Expr_Swap:{bSwap:`bool`,InputA:`WireGraphVariant`,InputB:`WireGraphVariant`},BrickComponentData_WireGraph_Expr_Variant_Variant:{Input:`WireGraphVariant`},BrickComponentData_WireGraph_Fake_CharacterDamageEvent:{},BrickComponentData_WireGraph_Fake_CharacterDeathEvent:{},BrickComponentData_WireGraph_Fake_CharacterEvent:{},BrickComponentData_WireGraph_Fake_ControllerEvent:{},BrickComponentData_WireGraph_Fake_RoundEvent:{RoundNumber:`i32`},BrickComponentData_WireGraph_FindPlayer:{Query:`str`},BrickComponentData_WireGraph_FontReference:{Asset:`object`},BrickComponentData_WireGraph_ItemReference:{Asset:`class`},BrickComponentData_WireGraph_OneShotAudioReference:{Asset:`object`},BrickComponentData_WireGraph_ParticleReference:{Asset:`object`},BrickComponentData_WireGraph_PickupReference:{Asset:`class`},BrickComponentData_WireGraph_ProjectileReference:{Asset:`class`},BrickComponentData_WireGraph_ServerUptime:{},BrickComponentData_WireGraph_WheelEngineAudioReference:{Asset:`object`},BrickComponentData_WireGraphPseudo_ArrayVar:{Value:`WireGraphArrayVariant`},BrickComponentData_WireGraphPseudo_BufferSeconds:{SecondsToWait:`f32`,ZeroSecondsToWait:`f32`,CurrentTime:`f32`,Input:`WireGraphVariant`,Output:`WireGraphVariant`,Buffered:`WireGraphVariant`,bHasQueued:`bool`,bIsOffTimer:`bool`},BrickComponentData_WireGraphPseudo_BufferTicks:{TicksToWait:`i32`,ZeroTicksToWait:`i32`,CurrentTicks:`i32`,Input:`WireGraphVariant`,Output:`WireGraphVariant`,Buffered:`WireGraphVariant`,bHasQueued:`bool`,bIsOffTimer:`bool`},BrickComponentData_WireGraphPseudo_Timer:{Limit:`f64`,Time:`f64`,bRunning:`bool`},BrickComponentData_WireGraphPseudo_Tween:{Target:`WireGraphVariant`,Value:`WireGraphVariant`,StartValue:`WireGraphVariant`,Duration:`f64`,Elapsed:`f64`,Function:`EBREasingFunction`,Direction:`EBREasingDirection`},BrickComponentData_WireGraphPseudo_Var:{Value:`WireGraphVariant`},BrickComponentWireControl_DriveAndSteer:{},BrickComponentWirePortControl_TeleportDestination:{},BRInventoryEntryVariant:{},BRQueueSecondsEntry:{Data:[`WireGraphVariant`],RemainingTime:`f32`},BRQueueTicksEntry:{Data:[`WireGraphVariant`],RemainingTicks:`i32`},BRSavedBrickComponentTypeCounter:{TypeIndex:`u32`,NumInstances:`u32`},Color:{B:`u8`,G:`u8`,R:`u8`,A:`u8`},IntVector:{X:`i32`,Y:`i32`,Z:`i32`},LinearColor:{R:`f32`,G:`f32`,B:`f32`,A:`f32`},Quat:{X:`f64`,Y:`f64`,Z:`f64`,W:`f64`},Quat4f:{X:`f32`,Y:`f32`,Z:`f32`,W:`f32`},Rotator:{Pitch:`f64`,Yaw:`f64`,Roll:`f64`},Rotator3f:{Pitch:`f32`,Yaw:`f32`,Roll:`f32`},Vector:{X:`f64`,Y:`f64`,Z:`f64`},Vector2f:{X:`f32`,Y:`f32`},Vector3f:{X:`f32`,Y:`f32`,Z:`f32`},Vector4:{X:`f64`,Y:`f64`,Z:`f64`,W:`f64`},WireGraphBoolArray:{Values:[`bool`]},WireGraphDoubleArray:{Values:[`f64`]},WireGraphEnumArray_EBRColorSpace:{Values:[`EBRColorSpace`]},WireGraphEnumArray_EBRDisplayTextEasing:{Values:[`EBRDisplayTextEasing`]},WireGraphEnumArray_EBRDisplayTextJustification:{Values:[`EBRDisplayTextJustification`]},WireGraphEnumArray_EBREasingDirection:{Values:[`EBREasingDirection`]},WireGraphEnumArray_EBREasingFunction:{Values:[`EBREasingFunction`]},WireGraphEnumArray_EBrickAxis:{Values:[`EBrickAxis`]},WireGraphEnumArray_EBrickDirection:{Values:[`EBrickDirection`]},WireGraphEnumArray_EBrickMaterial:{Values:[`EBrickMaterial`]},WireGraphEnumArray_EBrickRigidJointInterpMode:{Values:[`EBrickRigidJointInterpMode`]},WireGraphEnumArray_EBRPawnCollisionChannel:{Values:[`EBRPawnCollisionChannel`]},WireGraphEnumArray_EBRTextFacing:{Values:[`EBRTextFacing`]},WireGraphEnumArray_EBRTextMaterial:{Values:[`EBRTextMaterial`]},WireGraphEnumArray_EBRTextOutline:{Values:[`EBRTextOutline`]},WireGraphEnumArray_EBRTextShading:{Values:[`EBRTextShading`]},WireGraphEnumArray_EBRTextTypeface:{Values:[`EBRTextTypeface`]},WireGraphEnumArray_EProjectileSpawnLocation:{Values:[`EProjectileSpawnLocation`]},WireGraphEnumArrayWrapper:{Enum:`WireGraphEnumArrayVariant`},WireGraphEnumWrapper:{Enum:`WireGraphEnumVariant`},WireGraphExec:{},WireGraphInt64Array:{Values:[`i64`]},WireGraphObjectArray:{Values:[`weak_object`]},WireGraphStringArray:{Values:[`str`]},BrickComponentData_BrickPropertyChanger:{bVisibility:`bool`,bCollisionEnabled:`bool`,bCollisionEnabled_Player:`bool`,bCollisionEnabled_Player1:`bool`,bCollisionEnabled_Player2:`bool`,bCollisionEnabled_Player3:`bool`,bCollisionEnabled_Weapon:`bool`,bCollisionEnabled_Interaction:`bool`,bCollisionEnabled_Physics:`bool`,Color:`Color`,MaterialAlpha:`u8`,Material:`EBrickMaterial`},BrickComponentData_Gyroscope:{bEnabled:`bool`,Strength:`f32`,Damping:`f32`,MaxForce:`f32`,TargetAxis:`Vector`},BrickComponentData_ItemSpawn:{PickupClass:`class`,bPickupEnabled:`bool`,bPickupRespawnOnMinigameReset:`bool`,PickupMinigameResetRespawnDelay:`f32`,bPickupAutoDisableOnPickup:`bool`,PickupRespawnTime:`f32`,bRenderTranslucentWhenDisabled:`bool`,DamageMultiplier:`f32`,WeaponSpeedMultiplier:`f32`,ItemNameOverride:`str`,ProjectileOverride:`class`,PickupOffsetDirection:`EBrickDirection`,PickupOffsetDistance:`f32`,PickupRotation:`Rotator3f`,PickupScale:`f32`,bOverridePickupColors:`bool`,PickupMeshColors:[`Color`],bPickupAnimationEnabled:`bool`,PickupAnimationAxis:`EBrickAxis`,bPickupAnimationAxisLocal:`bool`,PickupSpinSpeed:`f32`,PickupBobSpeed:`f32`,PickupBobHeight:`f32`,PickupAnimationPhase:`f32`},BrickComponentData_Joint_Wheel:{Control_DriveAndSteer:`BrickComponentWireControl_DriveAndSteer`,bEnabled:`bool`,DriveSpeed:`f32`,DrivePower:`f32`,bSteerEnabled:`bool`,Steer:`f32`,SteerLimitDegree:`f32`,SteerPower:`f32`,bSuspensionEnabled:`bool`,SuspensionStiffness:`f32`,SuspensionDamping:`f32`,JointDistance:`i32`,bDriveWhenNotAttachedToEngine:`bool`,bCanBrake:`bool`,bAllowEngineSteerCorrect:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_Joint_Wheel_Suspension:{Control_DriveAndSteer:`BrickComponentWireControl_DriveAndSteer`,bEnabled:`bool`,DriveSpeed:`f32`,DrivePower:`f32`,bSteerEnabled:`bool`,Steer:`f32`,SteerLimitDegree:`f32`,SteerPower:`f32`,bSuspensionEnabled:`bool`,SuspensionStiffness:`f32`,SuspensionDamping:`f32`,SuspensionOffset:`f32`,SuspensionLength:`f32`,JointDistance:`i32`,bDriveWhenNotAttachedToEngine:`bool`,bCanBrake:`bool`,bAllowEngineSteerCorrect:`bool`,bReversed:`bool`,Damping:`f32`},BrickComponentData_PointLight:{bMatchBrickShape:`bool`,bEnabled:`bool`,Brightness:`f32`,Radius:`f32`,Color:`Color`,bUseBrickColor:`bool`,bCastShadows:`bool`},BrickComponentData_PrefabSpawn:{Prefab:`bundle_path_ref`,SpawnOffset:`Vector`,SpawnOffsetRotation:`Rotator`,SpawnVelocity:`Vector`,bSpawnEnable:`bool`,RespawnTime:`f64`,SpawnedEntityIds:[`u32`]},BrickComponentData_Seat_V2:{bIsOccupied:`bool`,ExitOffset:`IntVector`,bRollCameraInThirdPerson:`bool`,bAllowNearbyInteraction:`bool`,bHiddenInteraction:`bool`,PromptCustomLabel:`str`},BrickComponentData_SpotLight:{Rotation:`Rotator3f`,InnerConeAngle:`f32`,OuterConeAngle:`f32`,bEnabled:`bool`,Brightness:`f32`,Radius:`f32`,Color:`Color`,bUseBrickColor:`bool`,bCastShadows:`bool`},BrickComponentData_TextDisplay:{Text:`str`,Font:`object`,Rotation:`f32`,Skew:`f32`,Kerning:`f32`,LineHeight:`f32`,LineOffset:`f32`,Anchor:`Vector2f`,Offset:`Vector3f`,Color:`Color`,MaterialSlider:`i32`,ShadingWidth:`f32`,OutlineColor:`Color`,OutlineWidth:`f32`,ScuffWidth:`f32`,GraffitiDepthLimit:`f32`,GraffitiAngleLimit:`f32`,GraffitiLayer:`i32`,bEnabled:`bool`,Face:`EBrickDirection`,bAlignToWedge:`bool`,bOverrideColor:`bool`,Typeface:`EBRTextTypeface`,Billboard:`EBRTextFacing`,Material:`EBRTextMaterial`,Shading:`EBRTextShading`,bFlipShading:`bool`,Outline:`EBRTextOutline`,bSharpCorners:`bool`,bSharpOutlines:`bool`,bOverrideOutlineColor:`bool`,bForeground:`bool`},BrickComponentData_WeightBrick:{Mass:`f32`,MassSize:`IntVector`,MassOffset:`IntVector`},BrickComponentData_WheelEngine_V2:{bEnabled:`bool`,bEnableManualControl:`bool`,ManualInput_Drive:`f32`,ManualInput_Steer:`f32`,bManualInput_Brake:`bool`,Control_DriveAndSteer:`BrickComponentWireControl_DriveAndSteer`,CustomMass:`f32`,CustomMassVerticalOffset:`f32`,DriveInterpSpeed:`f32`,DriveSpeed:`f32`,DriveAcceleratingPowerMultiplier:`f32`,DriveBrakingPowerMultiplier:`f32`,DriveDampingMultiplier:`f32`,SteerPowerMultiplier:`f32`,WheelFrictionMultiplier:`f32`,SteerInterpSpeed:`f32`,SteerLimitSpeedFalloff:`f32`,SteerLimitDegree:`f32`,CenterOfSteering:`f32`,bTankSteering:`bool`,TankSteerSpeedMultiplier:`f32`,bAutoRight:`bool`,WaterDriveForce:`f32`,WaterSteeringForce:`f32`,AudioDescriptor:`object`},BrickComponentData_WireGraph_Exec_Character_AddInventoryBrick:{ProceduralSize:`Vector`},BrickComponentData_WireGraph_Exec_Character_SetInventoryBrick:{Slot:`i32`,ProceduralSize:`Vector`},BrickComponentData_WireGraph_Exec_Controller_DisplayText:{Text:`str`,AnchorX:`f64`,AnchorY:`f64`,PositionX:`f64`,PositionY:`f64`,Angle:`f64`,ScaleX:`f64`,ScaleY:`f64`,FontSize:`i32`,FontColor:`Color`,OutlineSize:`i64`,OutlineColor:`Color`,Justification:`EBRDisplayTextJustification`,Transition:`f64`,Easing:`EBRDisplayTextEasing`,Lifetime:`f64`,TextId:`i64`},BrickComponentData_WireGraph_Exec_Entity_AddLocationRotation:{Vector:`Vector`,Rotation:`Rotator`},BrickComponentData_WireGraph_Exec_Entity_AddVelocity:{Vector:`Vector`,Rotation:`Vector`},BrickComponentData_WireGraph_Exec_Entity_RelativeTeleport:{Source:`BrickComponentWirePortControl_TeleportDestination`,Destination:`BrickComponentWirePortControl_TeleportDestination`},BrickComponentData_WireGraph_Exec_Entity_SetAngularVelocity:{AngularVelocity:`Vector`},BrickComponentData_WireGraph_Exec_Entity_SetGravityDirection:{Rotation:`Rotator`},BrickComponentData_WireGraph_Exec_Entity_SetLinearVelocity:{LinearVelocity:`Vector`},BrickComponentData_WireGraph_Exec_Entity_SetLocation:{Vector:`Vector`},BrickComponentData_WireGraph_Exec_Entity_SetLocationRotation:{Vector:`Vector`,Rotation:`Rotator`},BrickComponentData_WireGraph_Exec_Entity_SetRotation:{Rotation:`Rotator`},BrickComponentData_WireGraph_Exec_Entity_SetVelocity:{Vector:`Vector`,Rotation:`Vector`},BrickComponentData_WireGraph_Exec_Entity_Teleport:{Destination:`BrickComponentWirePortControl_TeleportDestination`},BrickComponentData_WireGraph_Exec_PrefabSpawner:{Prefab:`bundle_path_ref`,SpawnOffset:`Vector`,SpawnOffsetRotation:`Rotator`,SpawnVelocity:`Vector`,Lifetime:`f64`,Limit:`i64`,SpawnedEntityIds:[`u32`]},BrickComponentData_WireGraph_Exec_Sweep:{Origin:`Vector`,Direction:`Vector`,Distance:`f64`,Radius:`f64`,bDetectBricks:`bool`,bDetectPlayers1:`bool`,bDetectPlayers2:`bool`,bDetectPlayers3:`bool`,bDetectPlayers4:`bool`,bDetectPhysics:`bool`,bDetectMap:`bool`,bRelative:`bool`,bIgnoreOwningGrid:`bool`},BrickComponentData_WireGraph_Expr_ColorBlend:{ColorA:`LinearColor`,ColorB:`LinearColor`,Alpha:`f64`,BlendSpace:`EBRColorSpace`,bClampAlpha:`bool`},BrickComponentData_WireGraph_Expr_ColorConvert:{Input:`LinearColor`,FromSpace:`EBRColorSpace`,ToSpace:`EBRColorSpace`},BrickComponentData_WireGraph_Expr_ColorToHex:{Input:`LinearColor`},BrickComponentData_WireGraph_Expr_DirectionToRotation:{Direction:`Vector`},BrickComponentData_WireGraph_Expr_InvertRotation:{Input:`Quat`},BrickComponentData_WireGraph_Expr_QuatAngleBetween:{InputA:`Quat`,InputB:`Quat`},BrickComponentData_WireGraph_Expr_QuatBetween:{From:`Vector`,To:`Vector`},BrickComponentData_WireGraph_Expr_QuatDotProduct:{InputA:`Quat`,InputB:`Quat`},BrickComponentData_WireGraph_Expr_QuatFromAxisAngle:{Axis:`Vector`,Angle:`f64`},BrickComponentData_WireGraph_Expr_QuatSlerp:{InputA:`Quat`,InputB:`Quat`,Alpha:`f64`,bShortestPath:`bool`,bClampAlpha:`bool`},BrickComponentData_WireGraph_Expr_QuatToAxisAngle:{Input:`Quat`},BrickComponentData_WireGraph_Expr_RotateVector:{Rotation:`Quat`,Vector:`Vector`},BrickComponentData_WireGraph_Expr_RotationToDirection:{Rotation:`Quat`},BrickComponentData_WireGraph_Expr_SplitColor:{Input:`LinearColor`},BrickComponentData_WireGraph_Expr_SplitColorSRGB:{Input:`LinearColor`},BrickComponentData_WireGraph_Expr_SplitQuaternion:{Input:`Quat`},BrickComponentData_WireGraph_Expr_SplitRotation:{Input:`Rotator`},BrickComponentData_WireGraph_Expr_SplitVector:{Input:`Vector`},BrickComponentData_WireGraph_Expr_Vec_Float:{Input:`Vector`},BrickComponentData_WireGraph_Expr_Vec_Vec:{Input:`Vector`},BrickComponentData_WireGraph_Expr_VecFloat_Vec:{Input:`Vector`,Scalar:`f64`},BrickComponentData_WireGraph_Expr_VecVec_Float:{InputA:`Vector`,InputB:`Vector`},BrickComponentData_WireGraph_Expr_VecVec_Vec:{InputA:`Vector`,InputB:`Vector`},BrickComponentData_WireGraphPseudo_Dampen:{Target:`WireGraphVariant`,Value:`WireGraphVariant`,SmoothTime:`f64`,Velocity:`Vector4`},BrickComponentData_WireGraphPseudo_QueueSeconds:{SecondsToWait:`f32`,Entries:[`BRQueueSecondsEntry`],DataIn1:`WireGraphVariant`,DataIn2:`WireGraphVariant`,DataIn3:`WireGraphVariant`,DataIn4:`WireGraphVariant`,DataIn5:`WireGraphVariant`,DataIn6:`WireGraphVariant`,DataIn7:`WireGraphVariant`,DataIn8:`WireGraphVariant`,DataOut1:`WireGraphVariant`,DataOut2:`WireGraphVariant`,DataOut3:`WireGraphVariant`,DataOut4:`WireGraphVariant`,DataOut5:`WireGraphVariant`,DataOut6:`WireGraphVariant`,DataOut7:`WireGraphVariant`,DataOut8:`WireGraphVariant`},BrickComponentData_WireGraphPseudo_QueueTicks:{TicksToWait:`i32`,Entries:[`BRQueueTicksEntry`],DataIn1:`WireGraphVariant`,DataIn2:`WireGraphVariant`,DataIn3:`WireGraphVariant`,DataIn4:`WireGraphVariant`,DataIn5:`WireGraphVariant`,DataIn6:`WireGraphVariant`,DataIn7:`WireGraphVariant`,DataIn8:`WireGraphVariant`,DataOut1:`WireGraphVariant`,DataOut2:`WireGraphVariant`,DataOut3:`WireGraphVariant`,DataOut4:`WireGraphVariant`,DataOut5:`WireGraphVariant`,DataOut6:`WireGraphVariant`,DataOut7:`WireGraphVariant`,DataOut8:`WireGraphVariant`},BrickTypeNetWrapper:{BrickAsset:`object`,ProceduralSize:`IntVector`},BRInventoryEntryConfig:{Item:`BRInventoryEntryVariant`},BRPlayerPartCustomizationV3:{PartDescriptor:`object`,DecalDescriptor:`object`,SocketName:`str`,Colors:[`Color`]},BRSavedComponentChunkSoA:{ComponentTypeCounters:[`BRSavedBrickComponentTypeCounter`],ComponentBrickIndices:[`u32`],JointBrickIndices:[`u32`],JointEntityReferences:[`u32`],JointInitialRelativeOffsets:[`Vector3f`,null],JointInitialRelativeRotations:[`Quat4f`,null],MicrochipBrickIndices:[`u32`],MicrochipBrickGridReferences:[`u32`]},WireGraphLinearColorArray:{Values:[`LinearColor`]},WireGraphQuatArray:{Values:[`Quat`]},WireGraphRotatorArray:{Values:[`Rotator`]},WireGraphVectorArray:{Values:[`Vector`]},BrickComponentData_WireGraph_Exec_Character_AddInventoryEntry:{Entry:`BRInventoryEntryConfig`},BRInventoryEntryPlan:{Type:`EBRInventoryEntryPlanType`,BrickTypeIfBrick:`BrickTypeNetWrapper`,EntityTypeIfEntity:`class`,ItemTypeIfItem:`class`},BRPlayerAvatarCustomizationV3:{Parts:[`BRPlayerPartCustomizationV3`]},BrickComponentData_BotSpawn:{RespawnTime:`f32`,CorpseTimeout:`f32`,GunSkill:`f32`,Agression:`f32`,ReactionTime:`f32`,MovementRandomness:`f32`,RunSpeed:`f32`,HealthMultiplier:`f32`,Jumpyness:`f32`,MovementAmount:`f32`,AttackMovementAmount:`f32`,AggroRange:`f32`,AttackDamageMultiplier:`f32`,bCanJump:`bool`,bBackVision:`bool`,bVisionRaycasting:`bool`,bCanTargetPlayers:`bool`,bCanTargetBots:`bool`,bActiveBot:`bool`,bSpawnEnable:`bool`,bDeleteBot:`bool`,MoveTarget:`Vector`,MovementGoalDummy:`BrickComponentWirePortControl_TeleportDestination`,BotName:`str`,Skin:`BRPlayerAvatarCustomizationV3`,bColorsAreLinear:`bool`,TeamCollisionChannel:`EBRPawnCollisionChannel`,bTeamCollision:`bool`,bTeamCollision1:`bool`,bTeamCollision2:`bool`,bTeamCollision3:`bool`,BotWeapon:`class`},BrickComponentData_WireGraph_Exec_Character_SetInventoryEntry:{Slot:`i32`,Entry:`BRInventoryEntryConfig`,EntryPlan:`BRInventoryEntryPlan`}}},BRSavedEntityChunkIndexSoA:{enums:{},variants:{},structs:{BRSavedChunk3DIndex:{X:`i16`,Y:`i16`,Z:`i16`},BRSavedEntityChunkIndexSoA:{NextPersistentIndex:`u32`,Chunk3DIndices:[`BRSavedChunk3DIndex`],NumEntities:[`u32`]}}},BRSavedEntityChunkSoA:{enums:{},variants:{},structs:{BrickGridDynamicActor:{BouyancyScale:`f32`,MassScale:`f32`,bEnableGravity:`bool`,bUseNewMassCalculation:`bool`,bReceivesDecals:`bool`,EntityTag:`str`},BRSavedBitFlags:{Flags:[`u8`,null]},BRSavedBrickColor:{R:`u8`,G:`u8`,B:`u8`,A:`u8`},BRSavedEntityTypeCounter:{TypeIndex:`u32`,NumEntities:`u32`},IntVector:{X:`i32`,Y:`i32`,Z:`i32`},Quat4f:{X:`f32`,Y:`f32`,Z:`f32`,W:`f32`},Vector3f:{X:`f32`,Y:`f32`,Z:`f32`},BP_MicrochipBrickGridDynamicActor_C:{bCollapsed:`bool`,PlaneCenter:`IntVector`,PlaneExtent:`IntVector`},BRSavedEntityColors:{Color0:`BRSavedBrickColor`,Color1:`BRSavedBrickColor`,Color2:`BRSavedBrickColor`,Color3:`BRSavedBrickColor`,Color4:`BRSavedBrickColor`,Color5:`BRSavedBrickColor`,Color6:`BRSavedBrickColor`,Color7:`BRSavedBrickColor`},BRSavedEntityChunkSoA:{TypeCounters:[`BRSavedEntityTypeCounter`],PersistentIndices:[`u32`],OwnerIndices:[`u32`],OriginalOwnerIndices:[`u32`],Locations:[`Vector3f`,null],Rotations:[`Quat4f`,null],WeldParentFlags:`BRSavedBitFlags`,PhysicsLockedFlags:`BRSavedBitFlags`,PhysicsSleepingFlags:`BRSavedBitFlags`,WeldParentIndices:[`u32`],LinearVelocities:[`Vector3f`,null],AngularVelocities:[`Vector3f`,null],ColorsAndAlphas:[`BRSavedEntityColors`,null],RemainingLifeSpans:[`f32`,null],bColorsAreLinear:`bool`}}}},Ia;function La(e,t){if(typeof e==`string`)return{kind:`type`,type:e};if(Array.isArray(e)){if(e.length===1)return{kind:`array`,type:e[0]};if(e.length===2&&e[1]===null)return{kind:`flatarray`,type:e[0]};throw Error(`brdb: invalid schema prop source at ${t}`)}let n=Object.entries(e);if(n.length===1)return{kind:`map`,key:n[0][0],value:n[0][1]};throw Error(`brdb: invalid schema prop source at ${t}`)}var Ra=[`f64`,`i64`,`bool`,`weak_object`,`WireGraphExec`],za=[`f64`,`i64`];function Ba(e,t){if(typeof e==`object`&&e&&!Array.isArray(e)&&typeof e.$variant==`string`)return e;throw Error(`brdb: variant ${t} requires a { $variant, value } wrapper`)}var Va={u8:1,i8:1,u16:2,i16:2,u32:4,i32:4,f32:4,u64:8,i64:8,f64:8};function Ha(e){let t=e.peek();if((t&224)==160||t===217||t===218)return{kind:`type`,type:Q(e)};if((t&240)==144){let t=Oa(e);if(t===1)return{kind:`array`,type:Q(e)};if(t===2){let t=Q(e);return Aa(e),{kind:`flatarray`,type:t}}throw Error(`brdb: unsupported property array length ${t}`)}if((t&240)==128){let t=ka(e);if(t!==1)throw Error(`brdb: unsupported property map length ${t}`);return{kind:`map`,key:Q(e),value:Q(e)}}throw Error(`brdb: unsupported property marker 0x${t.toString(16)}`)}var Ua=class e{constructor(e,t,n){this.enums=e,this.variants=t,this.structs=n}static fromText(t){let{enums:n,variants:r,structs:i}=Pa(t);return new e(n,r,i)}static fromData(t){let n=new Map(Object.entries(t.enums).map(([e,t])=>[e,new Map(Object.entries(t))])),r=new Map(Object.entries(t.variants).map(([e,t])=>[e,[...t]])),i=new Map(Object.entries(t.structs).map(([e,t])=>[e,new Map(Object.entries(t).map(([t,n])=>[t,La(n,`${e}.${t}`)]))]));return new e(n,r,i)}static fromBinary(t){let n=new Wi(t),r=Oa(n);if(r!==2&&r!==3)throw Error(`brdb: invalid schema header length ${r}`);let i=new Map;for(let e=0,t=ka(n);e<t;e++){let e=Q(n),t=new Map;for(let e=0,r=ka(n);e<r;e++)t.set(Q(n),Sa(n));i.set(e,t)}let a=new Map;if(r===3)for(let e=0,t=ka(n);e<t;e++){let e=Q(n),t=[];for(let e=0,r=Oa(n);e<r;e++)t.push(Q(n));a.set(e,t)}let o=new Map;for(let e=0,t=ka(n);e<t;e++){let e=Q(n),t=new Map;for(let e=0,r=ka(n);e<r;e++)t.set(Q(n),Ha(n));o.set(e,t)}if(n.remaining!==0)throw Error(`brdb: ${n.remaining} trailing bytes after schema`);return new e(i,a,o)}extractStructsTransitive(e){let t=new Map,n=new Map,r=new Map,i=new Set,a=[...e];for(let e=a.pop();e!==void 0;e=a.pop()){if(i.has(e))continue;i.add(e);let o=this.variants.get(e);if(o){a.push(...o),n.set(e,[...o]);continue}let s=this.enums.get(e);if(s){t.set(e,new Map(s));continue}let c=this.structs.get(e);if(c){let t=new Map;for(let[e,n]of c)n.kind===`map`?a.push(n.key,n.value):a.push(n.type),t.set(e,{...n});r.set(e,t)}}return{enums:t,variants:n,structs:r}}merge(e){for(let[t,n]of e.enums)this.enums.set(t,n);for(let[t,n]of e.variants)this.variants.set(t,n);for(let[t,n]of e.structs)this.structs.set(t,n)}zeroValue(e){switch(e){case`u8`:case`u16`:case`u32`:case`u64`:case`i8`:case`i16`:case`i32`:case`i64`:case`f32`:case`f64`:return 0;case`bool`:return!1;case`str`:return``;case`class`:case`object`:case`weak_object`:return null;case`wire_graph_variant`:case`wire_graph_prim_math_variant`:return{$variant:`f64`,value:0}}let t=this.variants.get(e);if(t){let n=t[0];if(n===void 0)throw Error(`brdb: empty variant ${e}`);return{$variant:n,value:this.zeroValue(n)}}if(this.enums.has(e))return 0;let n=this.structs.get(e);if(n){let e={};for(let[t,r]of n)e[t]=r.kind===`type`?this.zeroValue(r.type):[];return e}throw Error(`brdb: unknown type ${e}`)}fillStruct(e,t){let n=this.structs.get(e);if(!n)throw Error(`brdb: unknown struct ${e}`);for(let r of Object.keys(t))if(!n.has(r))throw Error(`brdb: ${e} has no field '${r}'`);let r={};for(let[e,i]of n){let n=t[e];r[e]=n===void 0?i.kind===`type`?this.zeroValue(i.type):[]:n}return r}topoStructOrder(){let e=new Set,t=[],n=r=>{if(e.has(r))return;e.add(r);let i=this.structs.get(r);if(i)for(let e of i.values()){let t=e.kind===`map`?[e.key,e.value]:[e.type];for(let e of t)this.structs.has(e)&&n(e)}t.push(r)};for(let e of this.structs.keys())n(e);return t}toBinary(){let e=new Ui;ga(e,3),_a(e,this.enums.size);for(let[t,n]of this.enums){Z(e,t),_a(e,n.size);for(let[t,r]of n)Z(e,t),fa(e,r)}_a(e,this.variants.size);for(let[t,n]of this.variants){Z(e,t),ga(e,n.length);for(let t of n)Z(e,t)}let t=this.topoStructOrder();_a(e,t.length);for(let n of t){let t=this.structs.get(n);Z(e,n),_a(e,t.size);for(let[n,r]of t)switch(Z(e,n),r.kind){case`type`:Z(e,r.type);break;case`array`:ga(e,1),Z(e,r.type);break;case`flatarray`:ga(e,2),Z(e,r.type),ca(e);break;case`map`:_a(e,1),Z(e,r.key),Z(e,r.value);break}}return e.toBytes()}flatTypeSize(e){let t=Va[e];if(t)return t;let n=this.structs.get(e);if(!n)return 0;let r=0;for(let e of n.values())r+=e.kind===`type`?this.flatTypeSize(e.type):0;return r}writeValue(e,t,n){switch(t){case`u8`:return ua(e,n);case`u16`:case`u32`:case`u64`:return da(e,n);case`i8`:case`i16`:case`i32`:case`i64`:return fa(e,n);case`f32`:return pa(e,n);case`f64`:return ma(e,n);case`str`:return Z(e,n);case`bool`:return la(e,n);case`class`:case`object`:case`weak_object`:return n===null?fa(e,-1):da(e,n);case`wire_graph_variant`:case`wire_graph_prim_math_variant`:return this.writeLegacyWireVariant(e,t,n)}let r=this.variants.get(t);if(r){let i=Ba(n,t),a=r.indexOf(i.$variant);if(a===-1)throw Error(`brdb: '${i.$variant}' is not a member of variant ${t}`);return da(e,a),this.writeVariantPayload(e,i.$variant,i.value)}let i=this.enums.get(t);if(i){let r=n;if(r<0||r>=i.size)throw RangeError(`brdb: enum ${t} ordinal ${r} out of bounds`);return da(e,r)}let a=this.structs.get(t);if(a){let r=n;for(let[n,i]of a){if(!(n in r))throw Error(`brdb: missing struct field ${t}.${n}`);this.writeProperty(e,i,r[n],`${t}.${n}`)}return}throw Error(`brdb: unknown type ${t}`)}writeVariantPayload(e,t,n){if(t===`weak_object`)return fa(e,n===null?-1:n);this.writeValue(e,t,n)}writeLegacyWireVariant(e,t,n){let r=t===`wire_graph_variant`?Ra:za,i=Ba(n,t),a=r.indexOf(i.$variant);if(a===-1)throw Error(`brdb: '${i.$variant}' is not a member of ${t}`);switch(da(e,a),i.$variant){case`f64`:return ma(e,i.value);case`i64`:return fa(e,i.value);case`bool`:return la(e,i.value);case`weak_object`:return fa(e,i.value===null?-1:i.value);case`WireGraphExec`:return}}writeProperty(e,t,n,r){switch(t.kind){case`type`:return this.writeValue(e,t.type,n);case`array`:{let r=n;ga(e,r.length);for(let n of r)this.writeValue(e,t.type,n);return}case`flatarray`:{let i=n,a=this.flatTypeSize(t.type);if(a===0)throw Error(`brdb: invalid flat type ${t.type} at ${r}`);ha(e,i.length*a);for(let n of i)this.writeFlat(e,t.type,n,r);return}case`map`:throw Error(`brdb: Map properties are unsupported (${r})`)}}writeFlat(e,t,n,r){switch(t){case`u8`:return e.u8(n);case`i8`:return e.i8(n);case`u16`:return e.u16le(n);case`i16`:return e.i16le(n);case`u32`:return e.u32le(n);case`i32`:return e.i32le(n);case`f32`:return e.f32le(n);case`f64`:return e.f64le(n);case`u64`:return e.u64le(BigInt(n));case`i64`:return e.i64le(BigInt(n))}let i=this.structs.get(t);if(!i)throw Error(`brdb: invalid flat type ${t} at ${r}`);let a=n;for(let[n,o]of i){if(o.kind!==`type`)throw Error(`brdb: flat struct ${t} has non-flat field ${n}`);if(!(n in a))throw Error(`brdb: missing struct field ${t}.${n}`);this.writeFlat(e,o.type,a[n],`${r}.${n}`)}}readValue(t,n,r=0){if(r>e.MAX_DECODE_DEPTH)throw Error(`brdb: schema recursion too deep`);switch(n){case`u8`:case`u16`:case`u32`:case`u64`:return Ca(t);case`i8`:case`i16`:case`i32`:case`i64`:return Sa(t);case`f32`:return wa(t);case`f64`:return Ta(t);case`str`:return Q(t);case`bool`:return Ea(t);case`class`:case`object`:case`weak_object`:{let e=Sa(t);return e<0?null:e}case`wire_graph_variant`:case`wire_graph_prim_math_variant`:return this.readLegacyWireVariant(t,n)}let i=this.variants.get(n);if(i){let e=Ca(t),a=i[e];if(a===void 0)throw Error(`brdb: unknown tag ${e} for variant ${n}`);return{$variant:a,value:this.readValue(t,a,r+1)}}let a=this.enums.get(n);if(a){let e=Ca(t);if(e>=a.size)throw RangeError(`brdb: enum ${n} ordinal ${e} out of bounds`);return e}let o=this.structs.get(n);if(o){let e={};for(let[i,a]of o)e[i]=this.readProperty(t,a,`${n}.${i}`,r+1);return e}throw Error(`brdb: unknown type ${n}`)}readLegacyWireVariant(e,t){let n=t===`wire_graph_variant`?Ra:za,r=Ca(e),i=n[r];switch(i){case`f64`:return{$variant:i,value:Ta(e)};case`i64`:return{$variant:i,value:Sa(e)};case`bool`:return{$variant:i,value:Ea(e)};case`weak_object`:{let t=Sa(e);return{$variant:i,value:t<0?null:t}}case`WireGraphExec`:return{$variant:i,value:null};default:throw Error(`brdb: unknown tag ${r} for ${t}`)}}readProperty(e,t,n,r=0){switch(t.kind){case`type`:return this.readValue(e,t.type,r);case`array`:{let n=Oa(e),i=[];for(let a=0;a<n;a++)i.push(this.readValue(e,t.type,r));return i}case`flatarray`:{let r=Da(e),i=this.flatTypeSize(t.type);if(i===0)throw Error(`brdb: invalid flat type ${t.type} at ${n}`);if(r%i!==0)throw Error(`brdb: flat data length ${r} not divisible by ${i} (${n})`);let a=[];for(let o=0;o<r/i;o++)a.push(this.readFlat(e,t.type,n));return a}case`map`:throw Error(`brdb: Map properties are unsupported (${n})`)}}readFlat(e,t,n){switch(t){case`u8`:return e.u8();case`i8`:return e.i8();case`u16`:return e.u16le();case`i16`:return e.i16le();case`u32`:return e.u32le();case`i32`:return e.i32le();case`f32`:return e.f32le();case`f64`:return e.f64le();case`u64`:case`i64`:{let n=t===`u64`?e.u64le():e.i64le();if(n>BigInt(2**53-1)||n<BigInt(-(2**53-1)))throw RangeError(`brdb: flat 64-bit value ${n} exceeds JS safe range`);return Number(n)}}let r=this.structs.get(t);if(!r)throw Error(`brdb: invalid flat type ${t} at ${n}`);let i={};for(let[a,o]of r){if(o.kind!==`type`)throw Error(`brdb: flat struct ${t} has non-flat field ${a}`);i[a]=this.readFlat(e,o.type,`${n}.${a}`)}return i}encode(e,t){let n=new Ui;return this.writeValue(n,e,t),n.toBytes()}decode(e,t){let n=new Wi(e),r=this.readValue(n,t);if(n.remaining!==0)throw Error(`brdb: ${n.remaining} trailing bytes after ${t}`);return r}};Ia=Ua,Ia.MAX_DECODE_DEPTH=64;var Wa=new Map;function Ga(e){let t=Wa.get(e);return t||(t=Ua.fromData(Fa[e]),Wa.set(e,t)),t}var Ka=2048,qa=1024,Ja=(e,t)=>Math.floor(e/t),Ya=(e,t)=>(e%t+t)%t;function Xa(e){return{chunk:e.map(e=>Ja(e,Ka)),rel:e.map(e=>Ya(e,Ka)-qa)}}function Za(e){let t=e.brick_assets??[`PB_DefaultBrick`],n=e.materials??[`BMC_Plastic`],r=e.brick_owners?.length??0;return e.bricks.map((i,a)=>{let o=`bricks[${a}]`,s=(Array.isArray(i.components)?i.components:[]).map((e,t)=>{if(!Qi.has(e.type))throw Error(`brdb: ${o}.components[${t}]: unknown component type '${e.type}'`);return e}),c=t[i.asset_name_index??0];if(c===void 0)throw Error(`brdb: ${o}: asset_name_index ${i.asset_name_index} out of range`);let l=n[i.material_index??0];if(l===void 0)throw Error(`brdb: ${o}: material_index ${i.material_index} out of range`);let u=i.position.map(e=>{if(!Number.isSafeInteger(e))throw Error(`brdb: ${o}: position must be integers, got ${i.position}`);if(!(e>=-32768*2048&&e<=32768*2048-1))throw Error(`brdb: ${o}: position ${e} outside the i16 chunk range`);return e}),d=i.size.map(e=>{if(!Number.isInteger(e)||e<0||e>65535)throw Error(`brdb: ${o}: size components must be u16, got ${i.size}`);return e}),f;if(typeof i.collision==`boolean`){let e=i.collision;f={player:e,weapon:e,interaction:e,physics:e}}else f={player:i.collision?.player??!0,weapon:i.collision?.weapon??!0,interaction:i.collision?.interaction??!0,physics:i.collision?.physics??!0};let p,m=i.color;if(typeof m==`number`){let t=e.colors?.[m];if(!t)throw Error(`brdb: ${o}: color palette index ${m} out of range`);p=[t[0],t[1],t[2]]}else if(Array.isArray(m)){if(m.length<3)throw Error(`brdb: ${o}: color array must have at least 3 components`);p=[m[0],m[1],m[2]]}else p=[255,255,255];p=p.map((e,t)=>{if(!Number.isInteger(e)||e<0||e>255)throw Error(`brdb: ${o}: resolved color component ${t} must be u8, got ${e}`);return e});let h=i.material_intensity??5;if(!Number.isInteger(h)||h<0||h>255)throw Error(`brdb: ${o}: material_intensity must be u8, got ${h}`);let g=i.owner_index??0;if(!Number.isInteger(g)||g<0||g>r)throw Error(`brdb: ${o}: owner_index ${g} out of range (0..${r})`);return{assetName:c,procedural:Zi(c),size:d,position:u,direction:i.direction??4,rotation:i.rotation??0,collision:f,visible:i.visibility??!0,materialName:l,intensity:h,color:p,ownerIndex:g,components:s}})}var Qa=class{constructor(){this.map=new Map}add(e){let t=this.map.get(e);return t===void 0&&(t=this.map.size,this.map.set(e,t)),t}indexOf(e){let t=this.map.get(e);if(t===void 0)throw Error(`brdb: registry miss for ${e}`);return t}has(e){return this.map.has(e)}get names(){return[...this.map.keys()]}get size(){return this.map.size}},$a=class{constructor(){this.sizeCounters=[],this.sizes=[],this.typeIndices=[],this.ownerIndices=[],this.originalOwnerIndices=[],this.relPositions=[],this.orientations=[],this.colPlayer=new Rr,this.colPlayer1=new Rr,this.colPlayer2=new Rr,this.colPlayer3=new Rr,this.colWeapon=new Rr,this.colInteraction=new Rr,this.colPhysics=new Rr,this.visibility=new Rr,this.materialIndices=[],this.colors=[],this.sizeIndexMap=new Map,this.numBrickSizes=0,this.numBricks=0}addBrick(e,t,n,r){let i;if(!e.procedural)i=n.basic.indexOf(e.assetName);else{let t=n.procedural.indexOf(e.assetName),a=`${t}:${e.size[0]},${e.size[1]},${e.size[2]}`,o=this.sizeIndexMap.get(a);if(o===void 0){o=this.numBrickSizes+r;let n=this.sizeCounters[this.sizeCounters.length-1];n&&n.AssetIndex===t?n.NumSizes+=1:this.sizeCounters.push({AssetIndex:t,NumSizes:1}),this.sizes.push({X:e.size[0],Y:e.size[1],Z:e.size[2]}),this.sizeIndexMap.set(a,o),this.numBrickSizes+=1}i=o}this.typeIndices.push(i),this.ownerIndices.push(e.ownerIndex),this.originalOwnerIndices.push(e.ownerIndex),this.relPositions.push({X:t[0],Y:t[1],Z:t[2]}),this.orientations.push((e.direction&7)<<2|e.rotation&3),this.colPlayer.push(e.collision.player),this.colPlayer1.push(e.collision.player),this.colPlayer2.push(e.collision.player),this.colPlayer3.push(e.collision.player),this.colWeapon.push(e.collision.weapon),this.colInteraction.push(e.collision.interaction),this.colPhysics.push(e.collision.physics),this.visibility.push(e.visible),this.materialIndices.push(n.materials.indexOf(e.materialName)),this.colors.push({R:e.color[0],G:e.color[1],B:e.color[2],A:e.intensity}),this.numBricks+=1}toValue(e){return{ProceduralBrickStartingIndex:e,BrickSizeCounters:this.sizeCounters,BrickSizes:this.sizes,BrickTypeIndices:this.typeIndices,OwnerIndices:this.ownerIndices,OriginalOwnerIndices:this.originalOwnerIndices,RelativePositions:this.relPositions,Orientations:this.orientations,CollisionFlags_Player:this.colPlayer.toValue(),CollisionFlags_Player1:this.colPlayer1.toValue(),CollisionFlags_Player2:this.colPlayer2.toValue(),CollisionFlags_Player3:this.colPlayer3.toValue(),CollisionFlags_Weapon:this.colWeapon.toValue(),CollisionFlags_Interaction:this.colInteraction.toValue(),CollisionFlags_Physics:this.colPhysics.toValue(),VisibilityFlags:this.visibility.toValue(),MaterialIndices:this.materialIndices,ColorsAndAlphas:this.colors,bColorsAreLinear:!1}}},eo=class{constructor(){this.counters=[],this.brickIndices=[],this.trailing=[],this.numComponents=0}add(e,t,n,r){let i=this.counters[this.counters.length-1];i&&i.TypeIndex===e?i.NumInstances+=1:this.counters.push({TypeIndex:e,NumInstances:1}),this.brickIndices.push(t),n!==`None`&&this.trailing.push({structName:n,data:r}),this.numComponents+=1}toBytes(e){let t=new Ui;e.writeValue(t,`BRSavedComponentChunkSoA`,{ComponentTypeCounters:this.counters,ComponentBrickIndices:this.brickIndices,JointBrickIndices:[],JointEntityReferences:[],JointInitialRelativeOffsets:[],JointInitialRelativeRotations:[],MicrochipBrickIndices:[],MicrochipBrickGridReferences:[]});for(let n of this.trailing)e.writeValue(t,n.structName,e.fillStruct(n.structName,n.data));return t.toBytes()}};function to(e,t={}){let n=Za(e),r=new Qa,i=new Qa,a=new Qa;for(let e of n)r.add(e.materialName),(e.procedural?a:i).add(e.assetName);if(r.size>256)throw Error(`brdb: too many distinct materials (${r.size}); MaterialIndices is u8 (max 256)`);let o={materials:r,basic:i,procedural:a},s=i.size,c=new Qa,l=[];for(let e of n)for(let t of e.components){let e=c.size;c.add(t.type)===e&&l.push(Qi.get(t.type))}let u=(e.wires??[]).filter(e=>`component_type`in e.source),d=new Qa;u.forEach((e,t)=>{for(let[r,i]of[[`source`,e.source],[`target`,e.target]]){if(!Number.isInteger(i.brick_index)||i.brick_index<0||i.brick_index>=n.length)throw Error(`brdb: wires[${t}].${r}: brick_index ${i.brick_index} out of range`);if(!c.has(i.component_type))throw Error(`brdb: wires[${t}].${r}: component type '${i.component_type}' is not used by any brick`);d.add(i.port)}});let f=Ua.fromData(Fa.BRSavedComponentChunkSoA);if(c.size>0){let e=[];for(let t of l)t!==`None`&&!e.includes(t)&&e.push(t);f.merge(Ga(`BRSavedComponentChunkSoA_max`).extractStructsTransitive(e))}let p=[{guid:ea,name:`PUBLIC`,display:`PUBLIC`}];for(let t of e.brick_owners??[])p.push({guid:ta(t.id??`00000000-0000-0000-0000-000000000000`),name:t.name??`Unknown`,display:t.display_name??t.name??`Unknown`});let m=p.map(()=>0),h=p.map(()=>0),g=[],_=new Map,v=new Map,y=[];for(let e of n){let{chunk:t,rel:n}=Xa(e.position),r=t.join(`_`),i=_.get(r);i||(i={index:t,builder:new $a},_.set(r,i),g.push(r));let a=i.builder.numBricks;if(i.builder.addBrick(e,n,o,s),y.push({key:r,chunk:t,localIndex:a}),m[e.ownerIndex]+=1,e.components.length>0){h[e.ownerIndex]+=e.components.length;let t=v.get(r);t||v.set(r,t=new eo);for(let n of e.components){let e=c.indexOf(n.type);t.add(e,a,l[e],n.data??{})}}}let b=new Map,x=new Map;for(let e of u){let t=y[e.source.brick_index],n=y[e.target.brick_index],r={BrickIndexInChunk:n.localIndex,ComponentTypeIndex:c.indexOf(e.target.component_type),PortIndex:d.indexOf(e.target.port)},i=b.get(n.key);i||b.set(n.key,i={remoteSources:[],localSources:[],remoteTargets:[],localTargets:[]}),x.set(n.key,(x.get(n.key)??0)+1),t.key===n.key?(i.localSources.push({BrickIndexInChunk:t.localIndex,ComponentTypeIndex:c.indexOf(e.source.component_type),PortIndex:d.indexOf(e.source.port)}),i.localTargets.push(r)):(i.remoteSources.push({GridPersistentIndex:1,ChunkIndex:{X:t.chunk[0],Y:t.chunk[1],Z:t.chunk[2]},BrickIndexInChunk:t.localIndex,ComponentTypeIndex:c.indexOf(e.source.component_type),PortIndex:d.indexOf(e.source.port)}),i.remoteTargets.push(r))}let S=Ga(`BRSavedGlobalDataSoA`),C=Ga(`BRSavedOwnerTableSoA`),w=Ga(`BRSavedBrickChunkIndexSoA`),T=Ga(`BRSavedBrickChunkSoA`),E=Ga(`BRSavedWireChunkSoA`),D=Ga(`BRSavedEntityChunkIndexSoA`),O=Ga(`BRSavedEntityChunkSoA`),k=S.encode(`BRSavedGlobalDataSoA`,{EntityTypeNames:[],EntityDataClassNames:[],BasicBrickAssetNames:i.names,ProceduralBrickAssetNames:a.names,MaterialAssetNames:r.names,ComponentTypeNames:c.names,ComponentDataStructNames:l,ComponentWirePortNames:d.names,ExternalAssetReferences:[],GlobalGridEntityTypeIndex:-1}),A=C.encode(`BRSavedOwnerTableSoA`,{UserIds:p.map(e=>({A:e.guid.A,B:e.guid.B,C:e.guid.C,D:e.guid.D})),UserNames:p.map(e=>e.name),DisplayNames:p.map(e=>e.display),EntityCounts:p.map(()=>0),BrickCounts:m,ComponentCounts:h,WireCounts:p.map(()=>0)}),j=w.encode(`BRSavedBrickChunkIndexSoA`,{Chunk3DIndices:g.map(e=>{let[t,n,r]=_.get(e).index;return{X:t,Y:n,Z:r}}),ChunkOffsets:g.map(e=>{let t=_.get(e).index.every(e=>e===0)?0:qa;return{X:t,Y:t,Z:t}}),ChunkSizes:g.map(()=>Ka),NumBricks:g.map(e=>_.get(e).builder.numBricks),NumComponents:g.map(e=>v.get(e)?.numComponents??0),NumWires:g.map(e=>x.get(e)??0)}),M=D.encode(`BRSavedEntityChunkIndexSoA`,{NextPersistentIndex:2,Chunk3DIndices:[],NumEntities:[]}),ee=new TextEncoder,te={type:`World`,iD:`00000000-0000-0000-0000-000000000000`,name:``,version:``,tags:[],authors:e.author?.name?[e.author.name]:[],createdAt:`0001.01.01-00.00.00`,updatedAt:`0001.01.01-00.00.00`,description:e.description??`A Generated World`,dependencies:[],gameVersion:`CL0`,...t.bundle},ne=[[`ChunkIndex.mps`,X(j)]];return g.length>0&&ne.push([`Chunks`,ra(g.map(e=>[`${e}.mps`,X(T.encode(`BRSavedBrickChunkSoA`,_.get(e).builder.toValue(s)))]))]),v.size>0&&ne.push([`Components`,ra(g.filter(e=>v.has(e)).map(e=>[`${e}.mps`,X(v.get(e).toBytes(f))]))]),b.size>0&&ne.push([`Wires`,ra(g.filter(e=>b.has(e)).map(e=>{let t=b.get(e);return[`${e}.mps`,X(E.encode(`BRSavedWireChunkSoA`,{RemoteWireSources:t.remoteSources,LocalWireSources:t.localSources,RemoteWireTargets:t.remoteTargets,LocalWireTargets:t.localTargets,PendingPropagationFlags:{Flags:[]}}))]}))]),[[`Meta`,ra([[`Bundle.json`,X(ee.encode(JSON.stringify(te)))],[`World.json`,X(ee.encode(JSON.stringify({environment:t.environment??`Plate`})))]])],[`World`,ra([[`0`,ra([[`GlobalData.schema`,X(S.toBinary())],[`GlobalData.mps`,X(k)],[`Owners.schema`,X(C.toBinary())],[`Owners.mps`,X(A)],[`Bricks`,ra([[`ChunkIndexShared.schema`,X(w.toBinary())],[`ChunksShared.schema`,X(T.toBinary())],[`WiresShared.schema`,X(E.toBinary())],[`ComponentsShared.schema`,X(f.toBinary())],[`Grids`,ra([[`1`,ra(ne)]])]])],[`Entities`,ra([[`ChunkIndex.schema`,X(D.toBinary())],[`ChunkIndex.mps`,X(M)],[`ChunksShared.schema`,X(O.toBinary())]])]])]])]]}function no(e,t={}){let n={compress:t.compress};return Gi(to(e,t),n)}function ro(e){let t=e<=15?15:255;return Math.trunc((e/255)**(1/2.2)*t)}function io(e){return{...e,R:ro(e.R),G:ro(e.G),B:ro(e.B)}}function ao(e){let t={};for(let[n,r]of Object.entries(e))t[n]=io(r);return t}function oo(e,t,n){let r=0;for(let t of e.BrickSizeCounters)r+=t.NumSizes;if(r<0||r>e.BrickSizes.length)throw Error(`brdb: brick size counters exceed size table`);let i=[];for(let t of e.BrickSizeCounters)for(let e=0;e<t.NumSizes;e++)i.push(t.AssetIndex);let a=e.ProceduralBrickStartingIndex,o=e.bColorsAreLinear??!0,s=[];for(let r=0;r<e.BrickTypeIndices.length;r++){let c=e.BrickTypeIndices[r],l,u;if(c<a)l=c,u=[0,0,0];else{let t=c-a,r=e.BrickSizes[t];if(r===void 0||i[t]===void 0)throw Error(`brdb: invalid procedural size slot ${t}`);l=n+i[t],u=[r.X,r.Y,r.Z]}let d=e.RelativePositions[r],f=e.Orientations[r],p=e.ColorsAndAlphas[r],m=o?io(p):p;s.push({asset_name_index:l,size:u,position:[t.x*Ka+qa+d.X,t.y*Ka+qa+d.Y,t.z*Ka+qa+d.Z],direction:f>>2&7,rotation:f&3,collision:{player:Lr(e.CollisionFlags_Player,r),weapon:Lr(e.CollisionFlags_Weapon,r),interaction:Lr(e.CollisionFlags_Interaction,r),tool:!0,physics:Lr(e.CollisionFlags_Physics,r)},visibility:Lr(e.VisibilityFlags,r),material_index:e.MaterialIndices[r],material_intensity:m.A,color:[m.R,m.G,m.B],owner_index:e.OwnerIndices[r]})}return s}var so=class e{constructor(e,t=0){this.fs=e,this.worldId=t,this.schemas=new Map,this.values=new Map}static from(t){return new e(Ki.from(t))}path(e){return`World/${this.worldId}/${e}`}schema(e){let t=this.fs.findFileByPath(e);if(!t)throw Error(`brdb: file not found: ${e}`);return this.schemaAt(e,t.createdAt)}schemaAt(e,t){let n=`${e}@${t}`,r=this.schemas.get(n);if(!r){let i=this.fs.findFileByPathAtRevision(e,t);if(!i)throw Error(`brdb: file not found: ${e} at ${t}`);r=Ua.fromBinary(this.fs.readBlob(i.contentId)),this.schemas.set(n,r)}return r}decode(e,t,n){let r=this.fs.findFileByPath(e);if(!r)throw Error(`brdb: file not found: ${e}`);return this.schemaAt(t,r.createdAt).decode(this.fs.readBlob(r.contentId),n)}cached(e,t){return this.values.has(e)||this.values.set(e,t()),this.values.get(e)}bundle(){return this.cached(`Meta/Bundle.json`,()=>JSON.parse(new TextDecoder().decode(this.fs.readFile(`Meta/Bundle.json`))))}environment(){return this.cached(`Meta/World.json`,()=>JSON.parse(new TextDecoder().decode(this.fs.readFile(`Meta/World.json`))))}globalData(){return this.cached(this.path(`GlobalData.mps`),()=>this.decode(this.path(`GlobalData.mps`),this.path(`GlobalData.schema`),`BRSavedGlobalDataSoA`))}owners(){return this.cached(this.path(`Owners.mps`),()=>this.decode(this.path(`Owners.mps`),this.path(`Owners.schema`),`BRSavedOwnerTableSoA`))}brickAssets(){let e=this.globalData();return[...e.BasicBrickAssetNames,...e.ProceduralBrickAssetNames]}materials(){return this.globalData().MaterialAssetNames}brickOwners(){let e=this.owners(),t=[];for(let n=1;n<e.UserNames.length;n++)t.push({id:na(e.UserIds[n]),name:e.UserNames[n],display_name:e.DisplayNames[n],bricks:e.BrickCounts[n]});return t}gridIds(){return this.fs.childFolders(this.path(`Bricks/Grids`)).map(Number).sort((e,t)=>e-t)}brickChunkIndex(e=1){let t=this.decode(this.path(`Bricks/Grids/${e}/ChunkIndex.mps`),this.path(`Bricks/ChunkIndexShared.schema`),`BRSavedBrickChunkIndexSoA`);return t.Chunk3DIndices.map((e,n)=>{let r=t.ChunkOffsets?.[n];return{index:{x:e.X,y:e.Y,z:e.Z},offset:r?{x:r.X,y:r.Y,z:r.Z}:{x:qa,y:qa,z:qa},size:t.ChunkSizes?.[n]??2048,numBricks:t.NumBricks[n],numComponents:t.NumComponents[n],numWires:t.NumWires[n]}})}brickChunkSoa(e,t){return this.decode(this.path(`Bricks/Grids/${e}/Chunks/${t.x}_${t.y}_${t.z}.mps`),this.path(`Bricks/ChunksShared.schema`),`BRSavedBrickChunkSoA`)}*bricks(e=1){let t=this.globalData().BasicBrickAssetNames.length;for(let n of this.brickChunkIndex(e))yield*oo(this.brickChunkSoa(e,n.index),n.index,t)}entityChunkIndex(){let e=this.decode(this.path(`Entities/ChunkIndex.mps`),this.path(`Entities/ChunkIndex.schema`),`BRSavedEntityChunkIndexSoA`);return{nextPersistentIndex:e.NextPersistentIndex,chunks:e.Chunk3DIndices.map((t,n)=>({index:{x:t.X,y:t.Y,z:t.Z},numEntities:e.NumEntities[n]}))}}componentChunk(e,t){let n=this.path(`Bricks/Grids/${e}/Components/${t.x}_${t.y}_${t.z}.mps`),r=this.fs.findFileByPath(n);if(!r)throw Error(`brdb: file not found: ${n}`);let i=this.fs.readBlob(r.contentId),a=this.schemaAt(this.path(`Bricks/ComponentsShared.schema`),r.createdAt),o=this.globalData(),s=new Wi(i),c=a.readValue(s,`BRSavedComponentChunkSoA`),l=0;for(let e of c.ComponentTypeCounters)l+=e.NumInstances;if(l!==c.ComponentBrickIndices.length)throw Error(`brdb: component counters do not match brick index count`);let u=[],d=0;for(let e of c.ComponentTypeCounters){let t=o.ComponentTypeNames[e.TypeIndex]??`<invalid>`,n=o.ComponentDataStructNames[e.TypeIndex],r=n&&n!==`None`?n:null;for(let n=0;n<e.NumInstances;n++)u.push({typeName:t,structName:r,brickIndex:c.ComponentBrickIndices[d],data:r?a.readValue(s,r):null}),d+=1}if(s.remaining!==0)throw Error(`brdb: ${s.remaining} trailing bytes after component chunk`);return{soa:c,components:u}}wireChunk(e,t){let n=this.decode(this.path(`Bricks/Grids/${e}/Wires/${t.x}_${t.y}_${t.z}.mps`),this.path(`Bricks/WiresShared.schema`),`BRSavedWireChunkSoA`),r=this.globalData(),i=e=>({brickIndex:e.BrickIndexInChunk,componentType:r.ComponentTypeNames[e.ComponentTypeIndex]??`<invalid>`,port:r.ComponentWirePortNames[e.PortIndex]??`<invalid>`});return{local:n.LocalWireSources.map((e,t)=>({source:i(e),target:i(n.LocalWireTargets[t])})),remote:n.RemoteWireSources.map((e,t)=>({source:{...i(e),gridId:e.GridPersistentIndex,chunk:{x:e.ChunkIndex.X,y:e.ChunkIndex.Y,z:e.ChunkIndex.Z}},target:i(n.RemoteWireTargets[t])}))}}entityChunk(e){let t=this.path(`Entities/Chunks/${e.x}_${e.y}_${e.z}.mps`),n=this.fs.findFileByPath(t);if(!n)throw Error(`brdb: file not found: ${t}`);let r=this.fs.readBlob(n.contentId),i=this.schemaAt(this.path(`Entities/ChunksShared.schema`),n.createdAt),a=this.globalData(),o=new Wi(r),s=i.readValue(o,`BRSavedEntityChunkSoA`),c=0;for(let e of s.TypeCounters)c+=e.NumEntities;if(c!==s.PersistentIndices.length)throw Error(`brdb: entity counters do not match persistent index count`);let l=a.EntityDataClassNames??a.EntityTypeNames.map(e=>$i.get(e)??`Unknown`),u=s.bColorsAreLinear??!0,d=[],f=0;for(let e of s.TypeCounters){let t=a.EntityTypeNames[e.TypeIndex]??`<invalid>`,n=l[e.TypeIndex],r=n&&n!==`None`?n:null;for(let n=0;n<e.NumEntities;n++){let e=s.ColorsAndAlphas[f];d.push({typeName:t,className:r,persistentIndex:s.PersistentIndices[f],ownerIndex:s.OwnerIndices[f],originalOwnerIndex:s.OriginalOwnerIndices?.[f]??s.OwnerIndices[f],location:s.Locations[f],rotation:s.Rotations[f],frozen:Lr(s.PhysicsLockedFlags,f),sleeping:Lr(s.PhysicsSleepingFlags,f),linearVelocity:s.LinearVelocities[f],angularVelocity:s.AngularVelocities[f],colors:u?ao(e):e,remainingLifeSpan:s.RemainingLifeSpans?.[f]??0,data:r?i.readValue(o,r):null}),f+=1}}if(o.remaining!==0)throw Error(`brdb: ${o.remaining} trailing bytes after entity chunk`);return d}*entities(){for(let e of this.entityChunkIndex().chunks)yield*this.entityChunk(e.index)}},co,$=`
|
|
2
|
+
`,lo=`
|
|
3
|
+
`,uo=`CREATE TABLE blobs (${$}blob_id INTEGER PRIMARY KEY,${$}compression INTEGER,${$}size_uncompressed INTEGER,${$}size_compressed INTEGER,${$}delta_base_id INTEGER REFERENCES blobs(blob_id),${$}hash BLOB,${$}content BLOB${lo});\nCREATE TABLE revisions (${$}revision_id INTEGER PRIMARY KEY,${$}description TEXT,${$}created_at INTEGER${lo});\nCREATE TABLE folders (${$}folder_id INTEGER PRIMARY KEY,${$}parent_id INTEGER REFERENCES folders(folder_id),${$}name TEXT,${$}created_at INTEGER,${$}deleted_at INTEGER${lo});\nCREATE TABLE files (${$}file_id INTEGER PRIMARY KEY,${$}parent_id INTEGER REFERENCES folders(folder_id),${$}name TEXT,${$}content_id INTEGER REFERENCES blobs(blob_id),${$}created_at INTEGER,${$}deleted_at INTEGER${lo});\nCREATE INDEX blobs_size_hash ON blobs(size_uncompressed, hash);
|
|
4
|
+
CREATE INDEX folders_parent_name_deleted ON folders(parent_id, name, deleted_at);
|
|
5
|
+
CREATE INDEX files_parent_name_deleted ON files(parent_id, name, deleted_at);`,fo=[`blobs`,`revisions`,`folders`,`files`],po=()=>Math.floor(Date.now()/1e3),mo=e=>typeof Buffer>`u`?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength),ho=e=>{try{return typeof process<`u`?process?.getBuiltinModule?.(e)??null:null}catch{return null}},go=null,_o=e=>(go??(go=Function(`specifier`,`return import(specifier)`)),go(e));async function vo(){try{let e=await(bo.engineLoader??(()=>_o(`better-sqlite3`)))();return e.default??e}catch{throw Error(`brdb: the Brdb openers require better-sqlite3 (npm install better-sqlite3), or wrap your own handle with new Brdb(db)`)}}function yo(){let e=ho(`node:zlib`);if(typeof e?.zstdCompressSync!=`function`)return null;let t=e.constants.ZSTD_c_compressionLevel;return n=>new Uint8Array(e.zstdCompressSync(n,{params:{[t]:14}}))}var bo=class e{constructor(e){this.db=e,this.defaultCompress=null;for(let e of fo)if(!this.db.prepare(`SELECT name FROM sqlite_schema WHERE type = 'table' AND name = ?`).get(e))throw Error(`brdb: missing required table '${e}'`)}static init(t,n=po()){t.exec(uo);let r=new e(t);return r.createRevision(`Initial Revision`,n),r}static async wrap(t,n){try{let r=n?e.init(t):new e(t);return r.defaultCompress=yo(),r}catch(e){throw t.close(),e}}static async open(t){return e.wrap(new(await(vo()))(t,{fileMustExist:!0}),!1)}static async openReadonly(t){return e.wrap(new(await(vo()))(t,{readonly:!0,fileMustExist:!0}),!1)}static async create(t){return e.wrap(new(await(vo()))(t),!0)}static async openOrCreate(t){let n=ho(`node:fs`);if(!n)throw Error(`brdb: openOrCreate requires node 22.3 or newer; call open or create explicitly`);return n.existsSync(t)?e.open(t):e.create(t)}static async memory(){return e.wrap(new(await(vo()))(`:memory:`),!0)}static async fromBytes(t){return e.wrap(new(await(vo()))(Buffer.from(t)),!1)}toBytes(){let e=this.db.serialize;if(typeof e!=`function`)throw Error(`brdb: toBytes requires a better-sqlite3 database handle`);return new Uint8Array(e.call(this.db))}save(e,t,n={}){this.writePending(e,to(t,n),n)}worldReader(){return new so(this)}sqliteSchema(){return this.db.prepare(`SELECT sql FROM sqlite_schema`).all().map(e=>e.sql).join(`
|
|
6
|
+
`)}createRevision(e,t=po()){return Number(this.db.prepare(`INSERT INTO revisions (description, created_at) VALUES (?, ?);`).run(e,t).lastInsertRowid)}revisions(){return this.db.prepare(`SELECT revision_id, description, created_at FROM revisions ORDER BY revision_id;`).all().map(e=>({revisionId:Number(e.revision_id),description:String(e.description),createdAt:Number(e.created_at)}))}insertFolder(e,t,n){return Number(this.db.prepare(`INSERT INTO folders (name, parent_id, created_at) VALUES (?, ?, ?);`).run(e,t,n).lastInsertRowid)}insertFile(e,t,n,r){return Number(this.db.prepare(`INSERT INTO files (name, parent_id, content_id, created_at) VALUES (?, ?, ?, ?);`).run(e,t,n,r).lastInsertRowid)}insertBlob(e,t,n){let r=this.findBlobByHash(e.length,t);if(r)return r.blobId;let i=e.length,a=i,o=0,s=e,c=n?n(e):null;return c&&c.length<i&&(a=c.length,o=1,s=c),Number(this.db.prepare(`INSERT INTO blobs (compression, size_uncompressed, size_compressed, delta_base_id, hash, content) VALUES (?, ?, ?, ?, ?, ?);`).run(o,i,a,null,mo(t),mo(s)).lastInsertRowid)}findBlobByHash(e,t){let n=this.db.prepare(`SELECT blob_id, compression, size_uncompressed, size_compressed, delta_base_id, hash, content FROM blobs WHERE hash = ? AND size_uncompressed = ? LIMIT 1;`).get(mo(t),e);return n?xo(n):null}findBlob(e){let t=this.db.prepare(`SELECT blob_id, compression, size_uncompressed, size_compressed, delta_base_id, hash, content FROM blobs WHERE blob_id = ?;`).get(e);if(!t)throw Error(`brdb: blob ${e} not found`);return xo(t)}deleteFile(e,t){this.db.prepare(`UPDATE files SET deleted_at = ? WHERE file_id = ?;`).run(t,e)}deleteFolder(e,t){this.db.prepare(`UPDATE folders SET deleted_at = ? WHERE folder_id = ?;`).run(t,e)}findFolder(e,t){let n=this.db.prepare(`SELECT folder_id FROM folders WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND name = ? AND deleted_at IS NULL;`).get(...e===null?[t]:[e,t]);return n?Number(n.folder_id):null}findFolderAtRevision(e,t,n){let r=this.db.prepare(`SELECT folder_id FROM folders WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND name = ? AND created_at <= ? AND (deleted_at IS NULL OR deleted_at > ?) ORDER BY created_at ASC LIMIT 1;`).get(...e===null?[t,n,n]:[e,t,n,n]);return r?Number(r.folder_id):null}findFile(e,t){let n=this.db.prepare(`SELECT content_id, created_at FROM files WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND name = ? AND deleted_at IS NULL;`).get(...e===null?[t]:[e,t]);return n?So(n):null}findFileAtRevision(e,t,n){let r=this.db.prepare(`SELECT content_id, created_at FROM files WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND name = ? AND created_at <= ? AND (deleted_at IS NULL OR deleted_at > ?) ORDER BY created_at ASC LIMIT 1;`).get(...e===null?[t,n,n]:[e,t,n,n]);return r?So(r):null}close(){this.db.close()}writePending(e,t,n={}){let r=n.createdAt??po(),i=n.compress===void 0?this.defaultCompress:n.compress;this.db.exec(`BEGIN`);try{this.createRevision(e,r),this.mergeFolder(null,t,r,i),this.db.exec(`COMMIT`)}catch(e){try{this.db.exec(`ROLLBACK`)}catch{}throw e}}currentFolders(e){let t=this.db.prepare(`SELECT folder_id, name FROM folders WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND deleted_at IS NULL ORDER BY name;`);return(e===null?t.all():t.all(e)).map(e=>({folderId:Number(e.folder_id),name:String(e.name)}))}currentFiles(e){let t=this.db.prepare(`SELECT file_id, name, content_id FROM files WHERE parent_id ${e===null?`IS NULL`:`= ?`} AND deleted_at IS NULL ORDER BY name;`);return(e===null?t.all():t.all(e)).map(e=>({fileId:Number(e.file_id),name:String(e.name),contentId:e.content_id===null?null:Number(e.content_id)}))}mergeFolder(e,t,n,r){let i=new Map(this.currentFolders(e).map(e=>[e.name,e.folderId])),a=new Map(this.currentFiles(e).map(e=>[e.name,e])),o=new Set;for(let[s,c]of t){if(o.has(s))throw Error(`brdb: duplicate name '${s}' in pending tree`);if(o.add(s),c.type===`folder`){if(a.has(s))throw Error(`brdb: pending folder '${s}' collides with an existing file`);let t=i.get(s);t===void 0?this.insertPending(s,e,c,n,r):this.mergeFolder(t,c.children,n,r)}else{if(i.has(s))throw Error(`brdb: pending file '${s}' collides with an existing folder`);let t=a.get(s);if(t===void 0){this.insertPending(s,e,c,n,r);continue}let o=hi(c.content),l=this.findBlobByHash(c.content.length,o);if(l&&t.contentId===l.blobId)continue;this.deleteFile(t.fileId,n);let u=this.insertBlob(c.content,o,r);this.insertFile(s,e,u,n)}}for(let[e,t]of i)o.has(e)||this.deleteFolderRecursive(t,n);for(let[e,t]of a)o.has(e)||this.deleteFile(t.fileId,n)}insertPending(e,t,n,r,i){if(n.type===`folder`){let a=this.insertFolder(e,t,r),o=new Set;for(let[e,t]of n.children){if(o.has(e))throw Error(`brdb: duplicate name '${e}' in pending tree`);o.add(e),this.insertPending(e,a,t,r,i)}}else{let a=this.insertBlob(n.content,hi(n.content),i);this.insertFile(e,t,a,r)}}deleteFolderRecursive(e,t){this.deleteFolder(e,t);for(let n of this.currentFolders(e))this.deleteFolderRecursive(n.folderId,t);for(let n of this.currentFiles(e))this.deleteFile(n.fileId,t)}folderIdOf(e,t){if(e===``)return null;let n=null;for(let r of e.split(`/`)){let e=t===void 0?this.findFolder(n,r):this.findFolderAtRevision(n,r,t)??this.findFolder(n,r);if(e===null)return null;n=e}return n}findFileByPath(e){if(e.startsWith(`/`))throw Error(`brdb: absolute paths not allowed`);let t=e.lastIndexOf(`/`),n=t===-1?``:e.slice(0,t),r=this.folderIdOf(n);return n!==``&&r===null?null:this.findFile(r,e.slice(t+1))}findFileByPathAtRevision(e,t){if(e.startsWith(`/`))throw Error(`brdb: absolute paths not allowed`);let n=e.lastIndexOf(`/`),r=n===-1?``:e.slice(0,n),i=this.folderIdOf(r,t);return r!==``&&i===null?null:this.findFileAtRevision(i,e.slice(n+1),t)}childFolders(e){let t=this.folderIdOf(e);return e!==``&&t===null?[]:this.currentFolders(t).map(e=>e.name)}childFiles(e){let t=this.folderIdOf(e);return e!==``&&t===null?[]:this.currentFiles(t).map(e=>e.name)}readBlob(e){if(e===-1)return new Uint8Array;let t=this.findBlob(e);if(t.deltaBaseId!==null)throw Error(`brdb: delta blobs are not supported`);let n=t.content;if(t.compression===1)n=Hi(n,new Uint8Array(t.sizeUncompressed));else if(t.compression!==0)throw Error(`brdb: unknown blob compression ${t.compression}`);if(n.length!==t.sizeUncompressed)throw Error(`brdb: blob uncompressed size mismatch`);return n}readFile(e){let t=this.findFileByPath(e);if(!t)throw Error(`brdb: file not found: ${e}`);return this.readBlob(t.contentId)}toPending(){let e=t=>{let n=[];for(let r of this.currentFolders(t))n.push([r.name,{type:`folder`,children:e(r.folderId)}]);for(let e of this.currentFiles(t))n.push([e.name,{type:`file`,content:this.readBlob(e.contentId??-1)}]);return n};return e(null)}};co=bo,co.engineLoader=null;var xo=e=>({blobId:Number(e.blob_id),compression:Number(e.compression),sizeUncompressed:Number(e.size_uncompressed),sizeCompressed:Number(e.size_compressed),deltaBaseId:e.delta_base_id===null?null:Number(e.delta_base_id),hash:new Uint8Array(e.hash),content:new Uint8Array(e.content)}),So=e=>({contentId:e.content_id===null?-1:Number(e.content_id),createdAt:Number(e.created_at)}),Co=t({BRDB_SQLITE_SCHEMA:()=>uo,BitFlags:()=>Rr,Brdb:()=>bo,BrdbSchema:()=>Ua,BrzReader:()=>Ki,ByteReader:()=>Wi,ByteWriter:()=>Ui,CHUNK_HALF:()=>qa,CHUNK_SIZE:()=>Ka,MAIN_GRID:()=>1,PUBLIC_GUID:()=>ea,WorldReader:()=>so,bit:()=>Lr,embeddedSchema:()=>Ga,file:()=>X,folder:()=>ra,guidToUuid:()=>na,isProceduralAsset:()=>Zi,msgpack:()=>ia,saveToPendingFs:()=>to,toRelative:()=>Xa,uuidToGuid:()=>ta,writeBrzContainer:()=>Gi,writeBrzLegacy:()=>no}),wo={read:Ar,write:Nr,utils:tr,constants:n,types:Pr,brdb:Co};typeof window<`u`&&(window.BRS=wo),exports.Brdb=bo,exports.Direction=Fr,exports.Rotation=Ir,exports.WorldReader=so,Object.defineProperty(exports,"brdb",{enumerable:!0,get:function(){return Co}}),Object.defineProperty(exports,"constants",{enumerable:!0,get:function(){return n}}),exports.default=wo,exports.read=Ar,Object.defineProperty(exports,"types",{enumerable:!0,get:function(){return Pr}}),Object.defineProperty(exports,"utils",{enumerable:!0,get:function(){return tr}}),exports.write=Nr,exports.writeBrzLegacy=no;
|
|
2
7
|
//# sourceMappingURL=dist.node.js.map
|