azerothcore-armory/static/js/viewer.min.js
2022-01-01 19:38:57 +01:00

2 lines
210 KiB
JavaScript

/*! For license information please see viewer.min.js.LICENSE.txt */
(()=>{var t={591:(t,e,i)=>{"use strict";var r={};(0,i(236).assign)(r,i(555),i(843),i(619)),t.exports=r},555:(t,e,i)=>{"use strict";var r=i(405),n=i(236),a=i(373),s=i(898),o=i(292),l=Object.prototype.toString;function h(t){if(!(this instanceof h))return new h(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 i=r.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==i)throw new Error(s[i]);if(e.header&&r.deflateSetHeader(this.strm,e.header),e.dictionary){var u;if(u="string"==typeof e.dictionary?a.string2buf(e.dictionary):"[object ArrayBuffer]"===l.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(i=r.deflateSetDictionary(this.strm,u)))throw new Error(s[i]);this._dict_set=!0}}function u(t,e){var i=new h(e);if(i.push(t,!0),i.err)throw i.msg||s[i.err];return i.result}h.prototype.push=function(t,e){var i,s,o=this.strm,h=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]"===l.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(h),o.next_out=0,o.avail_out=h),1!==(i=r.deflate(o,s))&&0!==i)return this.onEnd(i),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!==i);return 4===s?(i=r.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,0===i):2!==s||(this.onEnd(0),o.avail_out=0,!0)},h.prototype.onData=function(t){this.chunks.push(t)},h.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=h,e.deflate=u,e.deflateRaw=function(t,e){return(e=e||{}).raw=!0,u(t,e)},e.gzip=function(t,e){return(e=e||{}).gzip=!0,u(t,e)}},843:(t,e,i)=>{"use strict";var r=i(948),n=i(236),a=i(373),s=i(619),o=i(898),l=i(292),h=i(401),u=Object.prototype.toString;function c(t){if(!(this instanceof c))return new c(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&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var i=r.inflateInit2(this.strm,e.windowBits);if(i!==s.Z_OK)throw new Error(o[i]);if(this.header=new h,r.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=a.string2buf(e.dictionary):"[object ArrayBuffer]"===u.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(i=r.inflateSetDictionary(this.strm,e.dictionary))!==s.Z_OK))throw new Error(o[i])}function f(t,e){var i=new c(e);if(i.push(t,!0),i.err)throw i.msg||o[i.err];return i.result}c.prototype.push=function(t,e){var i,o,l,h,c,f=this.strm,d=this.options.chunkSize,b=this.options.dictionary,g=!1;if(this.ended)return!1;o=e===~~e?e:!0===e?s.Z_FINISH:s.Z_NO_FLUSH,"string"==typeof t?f.input=a.binstring2buf(t):"[object ArrayBuffer]"===u.call(t)?f.input=new Uint8Array(t):f.input=t,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new n.Buf8(d),f.next_out=0,f.avail_out=d),(i=r.inflate(f,s.Z_NO_FLUSH))===s.Z_NEED_DICT&&b&&(i=r.inflateSetDictionary(this.strm,b)),i===s.Z_BUF_ERROR&&!0===g&&(i=s.Z_OK,g=!1),i!==s.Z_STREAM_END&&i!==s.Z_OK)return this.onEnd(i),this.ended=!0,!1;f.next_out&&(0!==f.avail_out&&i!==s.Z_STREAM_END&&(0!==f.avail_in||o!==s.Z_FINISH&&o!==s.Z_SYNC_FLUSH)||("string"===this.options.to?(l=a.utf8border(f.output,f.next_out),h=f.next_out-l,c=a.buf2string(f.output,l),f.next_out=h,f.avail_out=d-h,h&&n.arraySet(f.output,f.output,l,h,0),this.onData(c)):this.onData(n.shrinkBuf(f.output,f.next_out)))),0===f.avail_in&&0===f.avail_out&&(g=!0)}while((f.avail_in>0||0===f.avail_out)&&i!==s.Z_STREAM_END);return i===s.Z_STREAM_END&&(o=s.Z_FINISH),o===s.Z_FINISH?(i=r.inflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===s.Z_OK):o!==s.Z_SYNC_FLUSH||(this.onEnd(s.Z_OK),f.avail_out=0,!0)},c.prototype.onData=function(t){this.chunks.push(t)},c.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=c,e.inflate=f,e.inflateRaw=function(t,e){return(e=e||{}).raw=!0,f(t,e)},e.ungzip=f},236:(t,e)=>{"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function r(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 i=e.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(var n in i)r(i,n)&&(t[n]=i[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,i,r,n){if(e.subarray&&t.subarray)t.set(e.subarray(i,i+r),n);else for(var a=0;a<r;a++)t[n+a]=e[i+a]},flattenChunks:function(t){var e,i,r,n,a,s;for(r=0,e=0,i=t.length;e<i;e++)r+=t[e].length;for(s=new Uint8Array(r),n=0,e=0,i=t.length;e<i;e++)a=t[e],s.set(a,n),n+=a.length;return s}},a={arraySet:function(t,e,i,r,n){for(var a=0;a<r;a++)t[n+a]=e[i+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(i)},373:(t,e,i)=>{"use strict";var r=i(236),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 r.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 l(t,e){if(e<65534&&(t.subarray&&a||!t.subarray&&n))return String.fromCharCode.apply(null,r.shrinkBuf(t,e));for(var i="",s=0;s<e;s++)i+=String.fromCharCode(t[s]);return i}s[254]=s[254]=1,e.string2buf=function(t){var e,i,n,a,s,o=t.length,l=0;for(a=0;a<o;a++)55296==(64512&(i=t.charCodeAt(a)))&&a+1<o&&56320==(64512&(n=t.charCodeAt(a+1)))&&(i=65536+(i-55296<<10)+(n-56320),a++),l+=i<128?1:i<2048?2:i<65536?3:4;for(e=new r.Buf8(l),s=0,a=0;s<l;a++)55296==(64512&(i=t.charCodeAt(a)))&&a+1<o&&56320==(64512&(n=t.charCodeAt(a+1)))&&(i=65536+(i-55296<<10)+(n-56320),a++),i<128?e[s++]=i:i<2048?(e[s++]=192|i>>>6,e[s++]=128|63&i):i<65536?(e[s++]=224|i>>>12,e[s++]=128|i>>>6&63,e[s++]=128|63&i):(e[s++]=240|i>>>18,e[s++]=128|i>>>12&63,e[s++]=128|i>>>6&63,e[s++]=128|63&i);return e},e.buf2binstring=function(t){return l(t,t.length)},e.binstring2buf=function(t){for(var e=new r.Buf8(t.length),i=0,n=e.length;i<n;i++)e[i]=t.charCodeAt(i);return e},e.buf2string=function(t,e){var i,r,n,a,o=e||t.length,h=new Array(2*o);for(r=0,i=0;i<o;)if((n=t[i++])<128)h[r++]=n;else if((a=s[n])>4)h[r++]=65533,i+=a-1;else{for(n&=2===a?31:3===a?15:7;a>1&&i<o;)n=n<<6|63&t[i++],a--;a>1?h[r++]=65533:n<65536?h[r++]=n:(n-=65536,h[r++]=55296|n>>10&1023,h[r++]=56320|1023&n)}return l(h,r)},e.utf8border=function(t,e){var i;for((e=e||t.length)>t.length&&(e=t.length),i=e-1;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+s[t[i]]>e?i:e}},69:t=>{"use strict";t.exports=function(t,e,i,r){for(var n=65535&t|0,a=t>>>16&65535|0,s=0;0!==i;){i-=s=i>2e3?2e3:i;do{a=a+(n=n+e[r++]|0)|0}while(--s);n%=65521,a%=65521}return n|a<<16|0}},619:t=>{"use strict";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}},869:t=>{"use strict";var e=function(){for(var t,e=[],i=0;i<256;i++){t=i;for(var r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e}();t.exports=function(t,i,r,n){var a=e,s=n+r;t^=-1;for(var o=n;o<s;o++)t=t>>>8^a[255&(t^i[o])];return-1^t}},405:(t,e,i)=>{"use strict";var r,n=i(236),a=i(342),s=i(69),o=i(869),l=i(898),h=-2,u=258,c=262,f=103,d=113,b=666;function g(t,e){return t.msg=l[e],e}function _(t){return(t<<1)-(t>4?9:0)}function p(t){for(var e=t.length;--e>=0;)t[e]=0}function m(t){var e=t.state,i=e.pending;i>t.avail_out&&(i=t.avail_out),0!==i&&(n.arraySet(t.output,e.pending_buf,e.pending_out,i,t.next_out),t.next_out+=i,e.pending_out+=i,t.total_out+=i,t.avail_out-=i,e.pending-=i,0===e.pending&&(e.pending_out=0))}function v(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 x(t,e){t.pending_buf[t.pending++]=e}function T(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function w(t,e){var i,r,n=t.max_chain_length,a=t.strstart,s=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-c?t.strstart-(t.w_size-c):0,h=t.window,f=t.w_mask,d=t.prev,b=t.strstart+u,g=h[a+s-1],_=h[a+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(h[(i=e)+s]===_&&h[i+s-1]===g&&h[i]===h[a]&&h[++i]===h[a+1]){a+=2,i++;do{}while(h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&h[++a]===h[++i]&&a<b);if(r=u-(b-a),a=b-u,r>s){if(t.match_start=e,s=r,r>=o)break;g=h[a+s-1],_=h[a+s]}}}while((e=d[e&f])>l&&0!=--n);return s<=t.lookahead?s:t.lookahead}function y(t){var e,i,r,a,l,h,u,f,d,b,g=t.w_size;do{if(a=t.window_size-t.lookahead-t.strstart,t.strstart>=g+(g-c)){n.arraySet(t.window,t.window,g,g,0),t.match_start-=g,t.strstart-=g,t.block_start-=g,e=i=t.hash_size;do{r=t.head[--e],t.head[e]=r>=g?r-g:0}while(--i);e=i=g;do{r=t.prev[--e],t.prev[e]=r>=g?r-g:0}while(--i);a+=g}if(0===t.strm.avail_in)break;if(h=t.strm,u=t.window,f=t.strstart+t.lookahead,d=a,b=void 0,(b=h.avail_in)>d&&(b=d),i=0===b?0:(h.avail_in-=b,n.arraySet(u,h.input,h.next_in,b,f),1===h.state.wrap?h.adler=s(h.adler,u,b,f):2===h.state.wrap&&(h.adler=o(h.adler,u,b,f)),h.next_in+=b,h.total_in+=b,b),t.lookahead+=i,t.lookahead+t.insert>=3)for(l=t.strstart-t.insert,t.ins_h=t.window[l],t.ins_h=(t.ins_h<<t.hash_shift^t.window[l+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[l+3-1])&t.hash_mask,t.prev[l&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=l,l++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<c&&0!==t.strm.avail_in)}function A(t,e){for(var i,r;;){if(t.lookahead<c){if(y(t),t.lookahead<c&&0===e)return 1;if(0===t.lookahead)break}if(i=0,t.lookahead>=3&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==i&&t.strstart-i<=t.w_size-c&&(t.match_length=w(t,i)),t.match_length>=3)if(r=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,i=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 r=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(v(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,4===e?(v(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(v(t,!1),0===t.strm.avail_out)?1:2}function E(t,e){for(var i,r,n;;){if(t.lookahead<c){if(y(t),t.lookahead<c&&0===e)return 1;if(0===t.lookahead)break}if(i=0,t.lookahead>=3&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+3-1])&t.hash_mask,i=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!==i&&t.prev_length<t.max_lazy_match&&t.strstart-i<=t.w_size-c&&(t.match_length=w(t,i),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,r=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,i=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++,r&&(v(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if((r=a._tr_tally(t,0,t.window[t.strstart-1]))&&v(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&&(r=a._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,4===e?(v(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(v(t,!1),0===t.strm.avail_out)?1:2}function C(t,e,i,r,n){this.good_length=t,this.max_lazy=e,this.nice_length=i,this.max_chain=r,this.func=n}function S(){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),p(this.dyn_ltree),p(this.dyn_dtree),p(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),p(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new n.Buf16(573),p(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 M(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:d,t.adler=2===e.wrap?0:1,e.last_flush=0,a._tr_init(e),0):g(t,h)}function k(t){var e,i=M(t);return 0===i&&((e=t.state).window_size=2*e.w_size,p(e.head),e.max_lazy_match=r[e.level].max_lazy,e.good_match=r[e.level].good_length,e.nice_match=r[e.level].nice_length,e.max_chain_length=r[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),i}function F(t,e,i,r,a,s){if(!t)return h;var o=1;if(-1===e&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),a<1||a>9||8!==i||r<8||r>15||e<0||e>9||s<0||s>4)return g(t,h);8===r&&(r=9);var l=new S;return t.state=l,l.strm=t,l.wrap=o,l.gzhead=null,l.w_bits=r,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=a+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+3-1)/3),l.window=new n.Buf8(2*l.w_size),l.head=new n.Buf16(l.hash_size),l.prev=new n.Buf16(l.w_size),l.lit_bufsize=1<<a+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new n.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=e,l.strategy=s,l.method=i,k(t)}r=[new C(0,0,0,0,(function(t,e){var i=65535;for(i>t.pending_buf_size-5&&(i=t.pending_buf_size-5);;){if(t.lookahead<=1){if(y(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+i;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,v(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-c&&(v(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(v(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(v(t,!1),t.strm.avail_out),1)})),new C(4,4,8,4,A),new C(4,5,16,8,A),new C(4,6,32,32,A),new C(4,4,16,16,E),new C(8,16,32,32,E),new C(8,16,128,128,E),new C(8,32,128,256,E),new C(32,128,258,1024,E),new C(32,258,258,4096,E)],e.deflateInit=function(t,e){return F(t,e,8,15,8,0)},e.deflateInit2=F,e.deflateReset=k,e.deflateResetKeep=M,e.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?h:(t.state.gzhead=e,0):h},e.deflate=function(t,e){var i,n,s,l;if(!t||!t.state||e>5||e<0)return t?g(t,h):h;if(n=t.state,!t.output||!t.input&&0!==t.avail_in||n.status===b&&4!==e)return g(t,0===t.avail_out?-5:h);if(n.strm=t,i=n.last_flush,n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,x(n,31),x(n,139),x(n,8),n.gzhead?(x(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)),x(n,255&n.gzhead.time),x(n,n.gzhead.time>>8&255),x(n,n.gzhead.time>>16&255),x(n,n.gzhead.time>>24&255),x(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),x(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(x(n,255&n.gzhead.extra.length),x(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):(x(n,0),x(n,0),x(n,0),x(n,0),x(n,0),x(n,9===n.level?2:n.strategy>=2||n.level<2?4:0),x(n,3),n.status=d);else{var c=8+(n.w_bits-8<<4)<<8;c|=(n.strategy>=2||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(c|=32),c+=31-c%31,n.status=d,T(n,c),0!==n.strstart&&(T(n,t.adler>>>16),T(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));)x(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)){l=1;break}l=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,x(n,l)}while(0!==l);n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),0===l&&(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)){l=1;break}l=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,x(n,l)}while(0!==l);n.gzhead.hcrc&&n.pending>s&&(t.adler=o(t.adler,n.pending_buf,n.pending-s,s)),0===l&&(n.status=f)}else n.status=f;if(n.status===f&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&m(t),n.pending+2<=n.pending_buf_size&&(x(n,255&t.adler),x(n,t.adler>>8&255),t.adler=0,n.status=d)):n.status=d),0!==n.pending){if(m(t),0===t.avail_out)return n.last_flush=-1,0}else if(0===t.avail_in&&_(e)<=_(i)&&4!==e)return g(t,-5);if(n.status===b&&0!==t.avail_in)return g(t,-5);if(0!==t.avail_in||0!==n.lookahead||0!==e&&n.status!==b){var w=2===n.strategy?function(t,e){for(var i;;){if(0===t.lookahead&&(y(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,i=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,i&&(v(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(v(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(v(t,!1),0===t.strm.avail_out)?1:2}(n,e):3===n.strategy?function(t,e){for(var i,r,n,s,o=t.window;;){if(t.lookahead<=u){if(y(t),t.lookahead<=u&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=o[n=t.strstart-1])===o[++n]&&r===o[++n]&&r===o[++n]){s=t.strstart+u;do{}while(r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&n<s);t.match_length=u-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(i=a._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(i=a._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),i&&(v(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(v(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(v(t,!1),0===t.strm.avail_out)?1:2}(n,e):r[n.level].func(n,e);if(3!==w&&4!==w||(n.status=b),1===w||3===w)return 0===t.avail_out&&(n.last_flush=-1),0;if(2===w&&(1===e?a._tr_align(n):5!==e&&(a._tr_stored_block(n,0,0,!1),3===e&&(p(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?(x(n,255&t.adler),x(n,t.adler>>8&255),x(n,t.adler>>16&255),x(n,t.adler>>24&255),x(n,255&t.total_in),x(n,t.total_in>>8&255),x(n,t.total_in>>16&255),x(n,t.total_in>>24&255)):(T(n,t.adler>>>16),T(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!==f&&e!==d&&e!==b?g(t,h):(t.state=null,e===d?g(t,-3):0):h},e.deflateSetDictionary=function(t,e){var i,r,a,o,l,u,c,f,d=e.length;if(!t||!t.state)return h;if(2===(o=(i=t.state).wrap)||1===o&&42!==i.status||i.lookahead)return h;for(1===o&&(t.adler=s(t.adler,e,d,0)),i.wrap=0,d>=i.w_size&&(0===o&&(p(i.head),i.strstart=0,i.block_start=0,i.insert=0),f=new n.Buf8(i.w_size),n.arraySet(f,e,d-i.w_size,i.w_size,0),e=f,d=i.w_size),l=t.avail_in,u=t.next_in,c=t.input,t.avail_in=d,t.next_in=0,t.input=e,y(i);i.lookahead>=3;){r=i.strstart,a=i.lookahead-2;do{i.ins_h=(i.ins_h<<i.hash_shift^i.window[r+3-1])&i.hash_mask,i.prev[r&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=r,r++}while(--a);i.strstart=r,i.lookahead=2,y(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=u,t.input=c,t.avail_in=l,i.wrap=o,0},e.deflateInfo="pako deflate (from Nodeca project)"},401:t=>{"use strict";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}},264:t=>{"use strict";t.exports=function(t,e){var i,r,n,a,s,o,l,h,u,c,f,d,b,g,_,p,m,v,x,T,w,y,A,E,C;i=t.state,r=t.next_in,E=t.input,n=r+(t.avail_in-5),a=t.next_out,C=t.output,s=a-(e-t.avail_out),o=a+(t.avail_out-257),l=i.dmax,h=i.wsize,u=i.whave,c=i.wnext,f=i.window,d=i.hold,b=i.bits,g=i.lencode,_=i.distcode,p=(1<<i.lenbits)-1,m=(1<<i.distbits)-1;t:do{b<15&&(d+=E[r++]<<b,b+=8,d+=E[r++]<<b,b+=8),v=g[d&p];e:for(;;){if(d>>>=x=v>>>24,b-=x,0===(x=v>>>16&255))C[a++]=65535&v;else{if(!(16&x)){if(0==(64&x)){v=g[(65535&v)+(d&(1<<x)-1)];continue e}if(32&x){i.mode=12;break t}t.msg="invalid literal/length code",i.mode=30;break t}T=65535&v,(x&=15)&&(b<x&&(d+=E[r++]<<b,b+=8),T+=d&(1<<x)-1,d>>>=x,b-=x),b<15&&(d+=E[r++]<<b,b+=8,d+=E[r++]<<b,b+=8),v=_[d&m];i:for(;;){if(d>>>=x=v>>>24,b-=x,!(16&(x=v>>>16&255))){if(0==(64&x)){v=_[(65535&v)+(d&(1<<x)-1)];continue i}t.msg="invalid distance code",i.mode=30;break t}if(w=65535&v,b<(x&=15)&&(d+=E[r++]<<b,(b+=8)<x&&(d+=E[r++]<<b,b+=8)),(w+=d&(1<<x)-1)>l){t.msg="invalid distance too far back",i.mode=30;break t}if(d>>>=x,b-=x,w>(x=a-s)){if((x=w-x)>u&&i.sane){t.msg="invalid distance too far back",i.mode=30;break t}if(y=0,A=f,0===c){if(y+=h-x,x<T){T-=x;do{C[a++]=f[y++]}while(--x);y=a-w,A=C}}else if(c<x){if(y+=h+c-x,(x-=c)<T){T-=x;do{C[a++]=f[y++]}while(--x);if(y=0,c<T){T-=x=c;do{C[a++]=f[y++]}while(--x);y=a-w,A=C}}}else if(y+=c-x,x<T){T-=x;do{C[a++]=f[y++]}while(--x);y=a-w,A=C}for(;T>2;)C[a++]=A[y++],C[a++]=A[y++],C[a++]=A[y++],T-=3;T&&(C[a++]=A[y++],T>1&&(C[a++]=A[y++]))}else{y=a-w;do{C[a++]=C[y++],C[a++]=C[y++],C[a++]=C[y++],T-=3}while(T>2);T&&(C[a++]=C[y++],T>1&&(C[a++]=C[y++]))}break}}break}}while(r<n&&a<o);r-=T=b>>3,d&=(1<<(b-=T<<3))-1,t.next_in=r,t.next_out=a,t.avail_in=r<n?n-r+5:5-(r-n),t.avail_out=a<o?o-a+257:257-(a-o),i.hold=d,i.bits=b}},948:(t,e,i)=>{"use strict";var r=i(236),n=i(69),a=i(869),s=i(264),o=i(241),l=-2,h=12,u=30;function c(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function f(){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 r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function d(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 r.Buf32(852),e.distcode=e.distdyn=new r.Buf32(592),e.sane=1,e.back=-1,0):l}function b(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,d(t)):l}function g(t,e){var i,r;return t&&t.state?(r=t.state,e<0?(i=0,e=-e):(i=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?l:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=i,r.wbits=e,b(t))):l}function _(t,e){var i,r;return t?(r=new f,t.state=r,r.window=null,0!==(i=g(t,e))&&(t.state=null),i):l}var p,m,v=!0;function x(t){if(v){var e;for(p=new r.Buf32(512),m=new r.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,p,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}),v=!1}t.lencode=p,t.lenbits=9,t.distcode=m,t.distbits=5}function T(t,e,i,n){var a,s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new r.Buf8(s.wsize)),n>=s.wsize?(r.arraySet(s.window,e,i-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):((a=s.wsize-s.wnext)>n&&(a=n),r.arraySet(s.window,e,i-n,a,s.wnext),(n-=a)?(r.arraySet(s.window,e,i-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=b,e.inflateReset2=g,e.inflateResetKeep=d,e.inflateInit=function(t){return _(t,15)},e.inflateInit2=_,e.inflate=function(t,e){var i,f,d,b,g,_,p,m,v,w,y,A,E,C,S,M,k,F,R,D,I,U,B,P,z=0,O=new r.Buf8(4),N=[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 l;(i=t.state).mode===h&&(i.mode=13),g=t.next_out,d=t.output,p=t.avail_out,b=t.next_in,f=t.input,_=t.avail_in,m=i.hold,v=i.bits,w=_,y=p,U=0;t:for(;;)switch(i.mode){case 1:if(0===i.wrap){i.mode=13;break}for(;v<16;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if(2&i.wrap&&35615===m){i.check=0,O[0]=255&m,O[1]=m>>>8&255,i.check=a(i.check,O,2,0),m=0,v=0,i.mode=2;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&m)<<8)+(m>>8))%31){t.msg="incorrect header check",i.mode=u;break}if(8!=(15&m)){t.msg="unknown compression method",i.mode=u;break}if(v-=4,I=8+(15&(m>>>=4)),0===i.wbits)i.wbits=I;else if(I>i.wbits){t.msg="invalid window size",i.mode=u;break}i.dmax=1<<I,t.adler=i.check=1,i.mode=512&m?10:h,m=0,v=0;break;case 2:for(;v<16;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if(i.flags=m,8!=(255&i.flags)){t.msg="unknown compression method",i.mode=u;break}if(57344&i.flags){t.msg="unknown header flags set",i.mode=u;break}i.head&&(i.head.text=m>>8&1),512&i.flags&&(O[0]=255&m,O[1]=m>>>8&255,i.check=a(i.check,O,2,0)),m=0,v=0,i.mode=3;case 3:for(;v<32;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}i.head&&(i.head.time=m),512&i.flags&&(O[0]=255&m,O[1]=m>>>8&255,O[2]=m>>>16&255,O[3]=m>>>24&255,i.check=a(i.check,O,4,0)),m=0,v=0,i.mode=4;case 4:for(;v<16;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}i.head&&(i.head.xflags=255&m,i.head.os=m>>8),512&i.flags&&(O[0]=255&m,O[1]=m>>>8&255,i.check=a(i.check,O,2,0)),m=0,v=0,i.mode=5;case 5:if(1024&i.flags){for(;v<16;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}i.length=m,i.head&&(i.head.extra_len=m),512&i.flags&&(O[0]=255&m,O[1]=m>>>8&255,i.check=a(i.check,O,2,0)),m=0,v=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&((A=i.length)>_&&(A=_),A&&(i.head&&(I=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),r.arraySet(i.head.extra,f,b,A,I)),512&i.flags&&(i.check=a(i.check,f,A,b)),_-=A,b+=A,i.length-=A),i.length))break t;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===_)break t;A=0;do{I=f[b+A++],i.head&&I&&i.length<65536&&(i.head.name+=String.fromCharCode(I))}while(I&&A<_);if(512&i.flags&&(i.check=a(i.check,f,A,b)),_-=A,b+=A,I)break t}else i.head&&(i.head.name=null);i.length=0,i.mode=8;case 8:if(4096&i.flags){if(0===_)break t;A=0;do{I=f[b+A++],i.head&&I&&i.length<65536&&(i.head.comment+=String.fromCharCode(I))}while(I&&A<_);if(512&i.flags&&(i.check=a(i.check,f,A,b)),_-=A,b+=A,I)break t}else i.head&&(i.head.comment=null);i.mode=9;case 9:if(512&i.flags){for(;v<16;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if(m!==(65535&i.check)){t.msg="header crc mismatch",i.mode=u;break}m=0,v=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=h;break;case 10:for(;v<32;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}t.adler=i.check=c(m),m=0,v=0,i.mode=11;case 11:if(0===i.havedict)return t.next_out=g,t.avail_out=p,t.next_in=b,t.avail_in=_,i.hold=m,i.bits=v,2;t.adler=i.check=1,i.mode=h;case h:if(5===e||6===e)break t;case 13:if(i.last){m>>>=7&v,v-=7&v,i.mode=27;break}for(;v<3;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}switch(i.last=1&m,v-=1,3&(m>>>=1)){case 0:i.mode=14;break;case 1:if(x(i),i.mode=20,6===e){m>>>=2,v-=2;break t}break;case 2:i.mode=17;break;case 3:t.msg="invalid block type",i.mode=u}m>>>=2,v-=2;break;case 14:for(m>>>=7&v,v-=7&v;v<32;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if((65535&m)!=(m>>>16^65535)){t.msg="invalid stored block lengths",i.mode=u;break}if(i.length=65535&m,m=0,v=0,i.mode=15,6===e)break t;case 15:i.mode=16;case 16:if(A=i.length){if(A>_&&(A=_),A>p&&(A=p),0===A)break t;r.arraySet(d,f,b,A,g),_-=A,b+=A,p-=A,g+=A,i.length-=A;break}i.mode=h;break;case 17:for(;v<14;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if(i.nlen=257+(31&m),m>>>=5,v-=5,i.ndist=1+(31&m),m>>>=5,v-=5,i.ncode=4+(15&m),m>>>=4,v-=4,i.nlen>286||i.ndist>30){t.msg="too many length or distance symbols",i.mode=u;break}i.have=0,i.mode=18;case 18:for(;i.have<i.ncode;){for(;v<3;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}i.lens[N[i.have++]]=7&m,m>>>=3,v-=3}for(;i.have<19;)i.lens[N[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,B={bits:i.lenbits},U=o(0,i.lens,0,19,i.lencode,0,i.work,B),i.lenbits=B.bits,U){t.msg="invalid code lengths set",i.mode=u;break}i.have=0,i.mode=19;case 19:for(;i.have<i.nlen+i.ndist;){for(;M=(z=i.lencode[m&(1<<i.lenbits)-1])>>>16&255,k=65535&z,!((S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if(k<16)m>>>=S,v-=S,i.lens[i.have++]=k;else{if(16===k){for(P=S+2;v<P;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if(m>>>=S,v-=S,0===i.have){t.msg="invalid bit length repeat",i.mode=u;break}I=i.lens[i.have-1],A=3+(3&m),m>>>=2,v-=2}else if(17===k){for(P=S+3;v<P;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}v-=S,I=0,A=3+(7&(m>>>=S)),m>>>=3,v-=3}else{for(P=S+7;v<P;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}v-=S,I=0,A=11+(127&(m>>>=S)),m>>>=7,v-=7}if(i.have+A>i.nlen+i.ndist){t.msg="invalid bit length repeat",i.mode=u;break}for(;A--;)i.lens[i.have++]=I}}if(i.mode===u)break;if(0===i.lens[256]){t.msg="invalid code -- missing end-of-block",i.mode=u;break}if(i.lenbits=9,B={bits:i.lenbits},U=o(1,i.lens,0,i.nlen,i.lencode,0,i.work,B),i.lenbits=B.bits,U){t.msg="invalid literal/lengths set",i.mode=u;break}if(i.distbits=6,i.distcode=i.distdyn,B={bits:i.distbits},U=o(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,B),i.distbits=B.bits,U){t.msg="invalid distances set",i.mode=u;break}if(i.mode=20,6===e)break t;case 20:i.mode=21;case 21:if(_>=6&&p>=258){t.next_out=g,t.avail_out=p,t.next_in=b,t.avail_in=_,i.hold=m,i.bits=v,s(t,y),g=t.next_out,d=t.output,p=t.avail_out,b=t.next_in,f=t.input,_=t.avail_in,m=i.hold,v=i.bits,i.mode===h&&(i.back=-1);break}for(i.back=0;M=(z=i.lencode[m&(1<<i.lenbits)-1])>>>16&255,k=65535&z,!((S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if(M&&0==(240&M)){for(F=S,R=M,D=k;M=(z=i.lencode[D+((m&(1<<F+R)-1)>>F)])>>>16&255,k=65535&z,!(F+(S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}m>>>=F,v-=F,i.back+=F}if(m>>>=S,v-=S,i.back+=S,i.length=k,0===M){i.mode=26;break}if(32&M){i.back=-1,i.mode=h;break}if(64&M){t.msg="invalid literal/length code",i.mode=u;break}i.extra=15&M,i.mode=22;case 22:if(i.extra){for(P=i.extra;v<P;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}i.length+=m&(1<<i.extra)-1,m>>>=i.extra,v-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;M=(z=i.distcode[m&(1<<i.distbits)-1])>>>16&255,k=65535&z,!((S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if(0==(240&M)){for(F=S,R=M,D=k;M=(z=i.distcode[D+((m&(1<<F+R)-1)>>F)])>>>16&255,k=65535&z,!(F+(S=z>>>24)<=v);){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}m>>>=F,v-=F,i.back+=F}if(m>>>=S,v-=S,i.back+=S,64&M){t.msg="invalid distance code",i.mode=u;break}i.offset=k,i.extra=15&M,i.mode=24;case 24:if(i.extra){for(P=i.extra;v<P;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}i.offset+=m&(1<<i.extra)-1,m>>>=i.extra,v-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg="invalid distance too far back",i.mode=u;break}i.mode=25;case 25:if(0===p)break t;if(A=y-p,i.offset>A){if((A=i.offset-A)>i.whave&&i.sane){t.msg="invalid distance too far back",i.mode=u;break}A>i.wnext?(A-=i.wnext,E=i.wsize-A):E=i.wnext-A,A>i.length&&(A=i.length),C=i.window}else C=d,E=g-i.offset,A=i.length;A>p&&(A=p),p-=A,i.length-=A;do{d[g++]=C[E++]}while(--A);0===i.length&&(i.mode=21);break;case 26:if(0===p)break t;d[g++]=i.length,p--,i.mode=21;break;case 27:if(i.wrap){for(;v<32;){if(0===_)break t;_--,m|=f[b++]<<v,v+=8}if(y-=p,t.total_out+=y,i.total+=y,y&&(t.adler=i.check=i.flags?a(i.check,d,y,g-y):n(i.check,d,y,g-y)),y=p,(i.flags?m:c(m))!==i.check){t.msg="incorrect data check",i.mode=u;break}m=0,v=0}i.mode=28;case 28:if(i.wrap&&i.flags){for(;v<32;){if(0===_)break t;_--,m+=f[b++]<<v,v+=8}if(m!==(4294967295&i.total)){t.msg="incorrect length check",i.mode=u;break}m=0,v=0}i.mode=29;case 29:U=1;break t;case u:U=-3;break t;case 31:return-4;default:return l}return t.next_out=g,t.avail_out=p,t.next_in=b,t.avail_in=_,i.hold=m,i.bits=v,(i.wsize||y!==t.avail_out&&i.mode<u&&(i.mode<27||4!==e))&&T(t,t.output,t.next_out,y-t.avail_out)?(i.mode=31,-4):(w-=t.avail_in,y-=t.avail_out,t.total_in+=w,t.total_out+=y,i.total+=y,i.wrap&&y&&(t.adler=i.check=i.flags?a(i.check,d,y,t.next_out-y):n(i.check,d,y,t.next_out-y)),t.data_type=i.bits+(i.last?64:0)+(i.mode===h?128:0)+(20===i.mode||15===i.mode?256:0),(0===w&&0===y||4===e)&&0===U&&(U=-5),U)},e.inflateEnd=function(t){if(!t||!t.state)return l;var e=t.state;return e.window&&(e.window=null),t.state=null,0},e.inflateGetHeader=function(t,e){var i;return t&&t.state?0==(2&(i=t.state).wrap)?l:(i.head=e,e.done=!1,0):l},e.inflateSetDictionary=function(t,e){var i,r=e.length;return t&&t.state?0!==(i=t.state).wrap&&11!==i.mode?l:11===i.mode&&n(1,e,r,0)!==i.check?-3:T(t,e,r,r)?(i.mode=31,-4):(i.havedict=1,0):l},e.inflateInfo="pako inflate (from Nodeca project)"},241:(t,e,i)=>{"use strict";var r=i(236),n=15,a=[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],s=[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],o=[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],l=[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,i,h,u,c,f,d){var b,g,_,p,m,v,x,T,w,y=d.bits,A=0,E=0,C=0,S=0,M=0,k=0,F=0,R=0,D=0,I=0,U=null,B=0,P=new r.Buf16(16),z=new r.Buf16(16),O=null,N=0;for(A=0;A<=n;A++)P[A]=0;for(E=0;E<h;E++)P[e[i+E]]++;for(M=y,S=n;S>=1&&0===P[S];S--);if(M>S&&(M=S),0===S)return u[c++]=20971520,u[c++]=20971520,d.bits=1,0;for(C=1;C<S&&0===P[C];C++);for(M<C&&(M=C),R=1,A=1;A<=n;A++)if(R<<=1,(R-=P[A])<0)return-1;if(R>0&&(0===t||1!==S))return-1;for(z[1]=0,A=1;A<n;A++)z[A+1]=z[A]+P[A];for(E=0;E<h;E++)0!==e[i+E]&&(f[z[e[i+E]]++]=E);if(0===t?(U=O=f,v=19):1===t?(U=a,B-=257,O=s,N-=257,v=256):(U=o,O=l,v=-1),I=0,E=0,A=C,m=c,k=M,F=0,_=-1,p=(D=1<<M)-1,1===t&&D>852||2===t&&D>592)return 1;for(;;){x=A-F,f[E]<v?(T=0,w=f[E]):f[E]>v?(T=O[N+f[E]],w=U[B+f[E]]):(T=96,w=0),b=1<<A-F,C=g=1<<k;do{u[m+(I>>F)+(g-=b)]=x<<24|T<<16|w|0}while(0!==g);for(b=1<<A-1;I&b;)b>>=1;if(0!==b?(I&=b-1,I+=b):I=0,E++,0==--P[A]){if(A===S)break;A=e[i+f[E]]}if(A>M&&(I&p)!==_){for(0===F&&(F=M),m+=C,R=1<<(k=A-F);k+F<S&&!((R-=P[k+F])<=0);)k++,R<<=1;if(D+=1<<k,1===t&&D>852||2===t&&D>592)return 1;u[_=I&p]=M<<24|k<<16|m-c|0}}return 0!==I&&(u[m+I]=A-F<<24|64<<16|0),d.bits=M,0}},898:t=>{"use strict";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"}},342:(t,e,i)=>{"use strict";var r=i(236);function n(t){for(var e=t.length;--e>=0;)t[e]=0}var a=256,s=286,o=30,l=15,h=[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],u=[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],c=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],f=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],d=new Array(576);n(d);var b=new Array(60);n(b);var g=new Array(512);n(g);var _=new Array(256);n(_);var p=new Array(29);n(p);var m,v,x,T=new Array(o);function w(t,e,i,r,n){this.static_tree=t,this.extra_bits=e,this.extra_base=i,this.elems=r,this.max_length=n,this.has_stree=t&&t.length}function y(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function A(t){return t<256?g[t]:g[256+(t>>>7)]}function E(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function C(t,e,i){t.bi_valid>16-i?(t.bi_buf|=e<<t.bi_valid&65535,E(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=i-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=i)}function S(t,e,i){C(t,i[2*e],i[2*e+1])}function M(t,e){var i=0;do{i|=1&t,t>>>=1,i<<=1}while(--e>0);return i>>>1}function k(t,e,i){var r,n,a=new Array(16),s=0;for(r=1;r<=l;r++)a[r]=s=s+i[r-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=M(a[o]++,o))}}function F(t){var e;for(e=0;e<s;e++)t.dyn_ltree[2*e]=0;for(e=0;e<o;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 R(t){t.bi_valid>8?E(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 D(t,e,i,r){var n=2*e,a=2*i;return t[n]<t[a]||t[n]===t[a]&&r[e]<=r[i]}function I(t,e,i){for(var r=t.heap[i],n=i<<1;n<=t.heap_len&&(n<t.heap_len&&D(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!D(e,r,t.heap[n],t.depth));)t.heap[i]=t.heap[n],i=n,n<<=1;t.heap[i]=r}function U(t,e,i){var r,n,s,o,l=0;if(0!==t.last_lit)do{r=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===r?S(t,n,e):(S(t,(s=_[n])+a+1,e),0!==(o=h[s])&&C(t,n-=p[s],o),S(t,s=A(--r),i),0!==(o=u[s])&&C(t,r-=T[s],o))}while(l<t.last_lit);S(t,256,e)}function B(t,e){var i,r,n,a=e.dyn_tree,s=e.stat_desc.static_tree,o=e.stat_desc.has_stree,h=e.stat_desc.elems,u=-1;for(t.heap_len=0,t.heap_max=573,i=0;i<h;i++)0!==a[2*i]?(t.heap[++t.heap_len]=u=i,t.depth[i]=0):a[2*i+1]=0;for(;t.heap_len<2;)a[2*(n=t.heap[++t.heap_len]=u<2?++u:0)]=1,t.depth[n]=0,t.opt_len--,o&&(t.static_len-=s[2*n+1]);for(e.max_code=u,i=t.heap_len>>1;i>=1;i--)I(t,a,i);n=h;do{i=t.heap[1],t.heap[1]=t.heap[t.heap_len--],I(t,a,1),r=t.heap[1],t.heap[--t.heap_max]=i,t.heap[--t.heap_max]=r,a[2*n]=a[2*i]+a[2*r],t.depth[n]=(t.depth[i]>=t.depth[r]?t.depth[i]:t.depth[r])+1,a[2*i+1]=a[2*r+1]=n,t.heap[1]=n++,I(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var i,r,n,a,s,o,h=e.dyn_tree,u=e.max_code,c=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,b=e.stat_desc.extra_base,g=e.stat_desc.max_length,_=0;for(a=0;a<=l;a++)t.bl_count[a]=0;for(h[2*t.heap[t.heap_max]+1]=0,i=t.heap_max+1;i<573;i++)(a=h[2*h[2*(r=t.heap[i])+1]+1]+1)>g&&(a=g,_++),h[2*r+1]=a,r>u||(t.bl_count[a]++,s=0,r>=b&&(s=d[r-b]),o=h[2*r],t.opt_len+=o*(a+s),f&&(t.static_len+=o*(c[2*r+1]+s)));if(0!==_){do{for(a=g-1;0===t.bl_count[a];)a--;t.bl_count[a]--,t.bl_count[a+1]+=2,t.bl_count[g]--,_-=2}while(_>0);for(a=g;0!==a;a--)for(r=t.bl_count[a];0!==r;)(n=t.heap[--i])>u||(h[2*n+1]!==a&&(t.opt_len+=(a-h[2*n+1])*h[2*n],h[2*n+1]=a),r--)}}(t,e),k(a,u,t.bl_count)}function P(t,e,i){var r,n,a=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),e[2*(i+1)+1]=65535,r=0;r<=i;r++)n=s,s=e[2*(r+1)+1],++o<l&&n===s||(o<h?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?(l=138,h=3):n===s?(l=6,h=3):(l=7,h=4))}function z(t,e,i){var r,n,a=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),r=0;r<=i;r++)if(n=s,s=e[2*(r+1)+1],!(++o<l&&n===s)){if(o<h)do{S(t,n,t.bl_tree)}while(0!=--o);else 0!==n?(n!==a&&(S(t,n,t.bl_tree),o--),S(t,16,t.bl_tree),C(t,o-3,2)):o<=10?(S(t,17,t.bl_tree),C(t,o-3,3)):(S(t,18,t.bl_tree),C(t,o-11,7));o=0,a=n,0===s?(l=138,h=3):n===s?(l=6,h=3):(l=7,h=4)}}n(T);var O=!1;function N(t,e,i,n){C(t,0+(n?1:0),3),function(t,e,i,n){R(t),n&&(E(t,i),E(t,~i)),r.arraySet(t.pending_buf,t.window,e,i,t.pending),t.pending+=i}(t,e,i,!0)}e._tr_init=function(t){O||(!function(){var t,e,i,r,n,a=new Array(16);for(i=0,r=0;r<28;r++)for(p[r]=i,t=0;t<1<<h[r];t++)_[i++]=r;for(_[i-1]=r,n=0,r=0;r<16;r++)for(T[r]=n,t=0;t<1<<u[r];t++)g[n++]=r;for(n>>=7;r<o;r++)for(T[r]=n<<7,t=0;t<1<<u[r]-7;t++)g[256+n++]=r;for(e=0;e<=l;e++)a[e]=0;for(t=0;t<=143;)d[2*t+1]=8,t++,a[8]++;for(;t<=255;)d[2*t+1]=9,t++,a[9]++;for(;t<=279;)d[2*t+1]=7,t++,a[7]++;for(;t<=287;)d[2*t+1]=8,t++,a[8]++;for(k(d,287,a),t=0;t<o;t++)b[2*t+1]=5,b[2*t]=M(t,5);m=new w(d,h,257,s,l),v=new w(b,u,0,o,l),x=new w(new Array(0),c,0,19,7)}(),O=!0),t.l_desc=new y(t.dyn_ltree,m),t.d_desc=new y(t.dyn_dtree,v),t.bl_desc=new y(t.bl_tree,x),t.bi_buf=0,t.bi_valid=0,F(t)},e._tr_stored_block=N,e._tr_flush_block=function(t,e,i,r){var n,s,o=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&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<a;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),B(t,t.l_desc),B(t,t.d_desc),o=function(t){var e;for(P(t,t.dyn_ltree,t.l_desc.max_code),P(t,t.dyn_dtree,t.d_desc.max_code),B(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*f[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),n=t.opt_len+3+7>>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=i+5,i+4<=n&&-1!==e?N(t,e,i,r):4===t.strategy||s===n?(C(t,2+(r?1:0),3),U(t,d,b)):(C(t,4+(r?1:0),3),function(t,e,i,r){var n;for(C(t,e-257,5),C(t,i-1,5),C(t,r-4,4),n=0;n<r;n++)C(t,t.bl_tree[2*f[n]+1],3);z(t,t.dyn_ltree,e-1),z(t,t.dyn_dtree,i-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),U(t,t.dyn_ltree,t.dyn_dtree)),F(t),r&&R(t)},e._tr_tally=function(t,e,i){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&i,t.last_lit++,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(_[i]+a+1)]++,t.dyn_dtree[2*A(e)]++),t.last_lit===t.lit_bufsize-1},e._tr_align=function(t){C(t,2,3),S(t,256,d),function(t){16===t.bi_valid?(E(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)}},292:t=>{"use strict";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}},287:()=>{var t,e;window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t,e){window.setTimeout(t,1e3/60)},jQuery.support.cors=!0,$.ajaxTransport?($.ajaxSetup({flatOptions:{renderer:!0}}),$.ajaxTransport("+binary",(function(t,e,i){if(window.FormData&&(t.dataType&&"binary"==t.dataType||t.data&&(window.ArrayBuffer&&t.data instanceof ArrayBuffer||window.Blob&&t.data instanceof Blob)))return{send:function(e,i){var r=new XMLHttpRequest,n=t.url,a=t.type,s=t.responseType||"blob",o=t.data||null;t.renderer&&r.addEventListener("progress",(function(e){e.lengthComputable&&(t.renderer.downloads[this.responseURL]?t.renderer.downloads[this.responseURL].loaded=e.loaded:t.renderer.downloads[this.responseURL]={loaded:e.loaded,total:e.total},t.renderer.updateProgress())})),r.addEventListener("load",(function(){t.renderer&&(delete t.renderer.downloads[this.responseURL],t.renderer.updateProgress());var e={};e[t.dataType]=r.response,i(r.status,r.statusText,e,r.getAllResponseHeaders())})),r.open(a,n,!0),r.responseType=s,r.send(o)},abort:function(){i.abort()}}}))):(t=$.httpData,$.httpData=function(e,i,r){return"binary"==i?e.response:t(e,i,r)},$.ajaxSetup({beforeSend:function(t,e){"binary"==e.dataType&&(t.responseType=e.responseType||"arraybuffer",t.addEventListener("progress",(function(t){e.renderer&&t.lengthComputable&&(e.renderer.downloads[this.responseURL]?e.renderer.downloads[this.responseURL].loaded=t.loaded:e.renderer.downloads[this.responseURL]={loaded:t.loaded,total:t.total},e.renderer.updateProgress())}),!1),t.addEventListener("load",(function(){e.renderer&&(delete e.renderer.downloads[this.responseURL],e.renderer.updateProgress())}),!1))}})),Math.randomInt=Math.randomInt||function(t,e){return Math.floor(Math.random()*(e-t))+t},"function"!=typeof Object.create&&(Object.create=(e=function(){},function(t){if(arguments.length>1)throw Error("Second argument not supported");if("object"!=typeof t)throw TypeError("Argument must be an object");e.prototype=t;var i=new e;return e.prototype=null,i})),window.console=window.console||{log:function(){},error:function(){},warn:function(){}}}},e={};function i(r){var n=e[r];if(void 0!==n)return n.exports;var a=e[r]={exports:{}};return t[r](a,a.exports,i),a.exports}(()=>{"use strict";i(287);let t=Float32Array;function e(e,i,r){const n=new t(3);return e&&(n[0]=e),i&&(n[1]=i),r&&(n[2]=r),n}function r(e,i,r){return(r=r||new t(3))[0]=e[0]+i[0],r[1]=e[1]+i[1],r[2]=e[2]+i[2],r}function n(e,i,r){return(r=r||new t(3))[0]=e[0]*i[0],r[1]=e[1]*i[1],r[2]=e[2]*i[2],r}let a=Float32Array;function s(t){return(t=t||new a(16))[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function o(t,e){e=e||new a(16);const i=t[0],r=t[1],n=t[2],s=t[3],o=t[4],l=t[5],h=t[6],u=t[7],c=t[8],f=t[9],d=t[10],b=t[11],g=t[12],_=t[13],p=t[14],m=t[15],v=d*m,x=p*b,T=h*m,w=p*u,y=h*b,A=d*u,E=n*m,C=p*s,S=n*b,M=d*s,k=n*u,F=h*s,R=c*_,D=g*f,I=o*_,U=g*l,B=o*f,P=c*l,z=i*_,O=g*r,N=i*f,L=c*r,H=i*l,V=o*r,j=v*l+w*f+y*_-(x*l+T*f+A*_),G=x*r+E*f+M*_-(v*r+C*f+S*_),X=T*r+C*l+k*_-(w*r+E*l+F*_),q=A*r+S*l+F*f-(y*r+M*l+k*f),W=1/(i*j+o*G+c*X+g*q);return e[0]=W*j,e[1]=W*G,e[2]=W*X,e[3]=W*q,e[4]=W*(x*o+T*c+A*g-(v*o+w*c+y*g)),e[5]=W*(v*i+C*c+S*g-(x*i+E*c+M*g)),e[6]=W*(w*i+E*o+F*g-(T*i+C*o+k*g)),e[7]=W*(y*i+M*o+k*c-(A*i+S*o+F*c)),e[8]=W*(R*u+U*b+B*m-(D*u+I*b+P*m)),e[9]=W*(D*s+z*b+L*m-(R*s+O*b+N*m)),e[10]=W*(I*s+O*u+H*m-(U*s+z*u+V*m)),e[11]=W*(P*s+N*u+V*b-(B*s+L*u+H*b)),e[12]=W*(I*d+P*p+D*h-(B*p+R*h+U*d)),e[13]=W*(N*p+R*n+O*d-(z*d+L*p+D*n)),e[14]=W*(z*h+V*p+U*n-(H*p+I*n+O*h)),e[15]=W*(H*d+B*n+L*h-(N*h+V*d+P*n)),e}function l(t,i,r){r=r||e();const n=i[0],a=i[1],s=i[2],o=n*t[3]+a*t[7]+s*t[11]+t[15];return r[0]=(n*t[0]+a*t[4]+s*t[8]+t[12])/o,r[1]=(n*t[1]+a*t[5]+s*t[9]+t[13])/o,r[2]=(n*t[2]+a*t[6]+s*t[10]+t[14])/o,r}function h(t,i,r){r=r||e();const n=i[0],a=i[1],s=i[2];return r[0]=n*t[0]+a*t[4]+s*t[8],r[1]=n*t[1]+a*t[5]+s*t[9],r[2]=n*t[2]+a*t[6]+s*t[10],r}const u=5120,c=5121,f=5122,d=5123,b=5124,g=5125,_=5126,p={};{const t=p;t[u]=Int8Array,t[5121]=Uint8Array,t[5122]=Int16Array,t[5123]=Uint16Array,t[b]=Int32Array,t[5125]=Uint32Array,t[5126]=Float32Array,t[32819]=Uint16Array,t[32820]=Uint16Array,t[33635]=Uint16Array,t[5131]=Uint16Array,t[33640]=Uint32Array,t[35899]=Uint32Array,t[35902]=Uint32Array,t[36269]=Uint32Array,t[34042]=Uint32Array}function m(t){if(t instanceof Int8Array)return u;if(t instanceof Uint8Array)return c;if(t instanceof Uint8ClampedArray)return c;if(t instanceof Int16Array)return f;if(t instanceof Uint16Array)return d;if(t instanceof Int32Array)return b;if(t instanceof Uint32Array)return g;if(t instanceof Float32Array)return _;throw new Error("unsupported typed array type")}function v(t){if(t===Int8Array)return u;if(t===Uint8Array)return c;if(t===Uint8ClampedArray)return c;if(t===Int16Array)return f;if(t===Uint16Array)return d;if(t===Int32Array)return b;if(t===Uint32Array)return g;if(t===Float32Array)return _;throw new Error("unsupported typed array type")}const x="undefined"!=typeof SharedArrayBuffer?function(t){return t&&t.buffer&&(t.buffer instanceof ArrayBuffer||t.buffer instanceof SharedArrayBuffer)}:function(t){return t&&t.buffer&&t.buffer instanceof ArrayBuffer};function T(...t){console.error(...t)}function w(t,e){return"undefined"!=typeof WebGLTexture&&e instanceof WebGLTexture}const y=34962,A={attribPrefix:""};function E(t,e,i,r,n){t.bindBuffer(e,i),t.bufferData(e,r,n||35044)}function C(t,e,i,r){if(n=e,"undefined"!=typeof WebGLBuffer&&n instanceof WebGLBuffer)return e;var n;i=i||y;const a=t.createBuffer();return E(t,i,a,e,r),a}function S(t){return"indices"===t}function M(t){return t.length?t:t.data}const k=/coord|texture/i,F=/color|colour/i;function R(t,e){let i;if(i=k.test(t)?2:F.test(t)?4:3,e%i>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${i} but ${e} values is not evenly divisible by ${i}. You should specify it.`);return i}function D(t,e){return t.numComponents||t.size||R(e,M(t).length)}function I(t,e){if(x(t))return t;if(x(t.data))return t.data;Array.isArray(t)&&(t={data:t});let i=t.type;return i||(i=S(e)?Uint16Array:Float32Array),new i(t.data)}function U(t,e){const i={};return Object.keys(e).forEach((function(r){if(!S(r)){const a=e[r],s=a.attrib||a.name||a.attribName||A.attribPrefix+r;if(a.value){if(!Array.isArray(a.value)&&!x(a.value))throw new Error("array.value is not array or typedarray");i[s]={value:a.value}}else{let e,o,l,h;if(a.buffer&&a.buffer instanceof WebGLBuffer)e=a.buffer,h=a.numComponents||a.size,o=a.type,l=a.normalize;else if("number"==typeof a||"number"==typeof a.data){const i=a.data||a,s=a.type||Float32Array,u=i*s.BYTES_PER_ELEMENT;o=v(s),l=void 0!==a.normalize?a.normalize:(n=s)===Int8Array||n===Uint8Array,h=a.numComponents||a.size||R(r,i),e=t.createBuffer(),t.bindBuffer(y,e),t.bufferData(y,u,a.drawType||35044)}else{const i=I(a,r);e=C(t,i,void 0,a.drawType),o=m(i),l=void 0!==a.normalize?a.normalize:function(t){return t instanceof Int8Array||t instanceof Uint8Array}(i),h=D(a,r)}i[s]={buffer:e,numComponents:h,type:o,normalize:l,stride:a.stride||0,offset:a.offset||0,divisor:void 0===a.divisor?void 0:a.divisor,drawType:a.drawType}}}var n})),t.bindBuffer(y,null),i}const B=["position","positions","a_position"];function P(t,e,i){const r=U(t,e),n=Object.assign({},i||{});n.attribs=Object.assign({},i?i.attribs:{},r);const a=e.indices;if(a){const e=I(a,"indices");n.indices=C(t,e,34963),n.numElements=e.length,n.elementType=m(e)}else n.numElements||(n.numElements=function(t,e){let i,r;for(r=0;r<B.length&&(i=B[r],!(i in e))&&(i=A.attribPrefix+i,!(i in e));++r);r===B.length&&(i=Object.keys(e)[0]);const n=e[i];t.bindBuffer(y,n.buffer);const a=t.getBufferParameter(y,34660);var s;t.bindBuffer(y,null);const o=a/(5120===(s=n.type)||5121===s?1:5122===s||5123===s?2:5124===s||5125===s||5126===s?4:0),l=n.numComponents||n.size,h=o/l;if(h%1!=0)throw new Error(`numComponents ${l} not correct for length ${length}`);return h}(t,n.attribs));return n}function z(t,e,i){const r="indices"===i?34963:y;return C(t,I(e,i),r)}function O(t,e){const i={};return Object.keys(e).forEach((function(r){i[r]=z(t,e[r],r)})),e.indices?(i.numElements=e.indices.length,i.elementType=m(I(e.indices))):i.numElements=function(t){let e,i;for(i=0;i<B.length&&(e=B[i],!(e in t));++i);i===B.length&&(e=Object.keys(t)[0]);const r=t[e],n=M(r).length,a=D(r,e),s=n/a;if(n%a>0)throw new Error(`numComponents ${a} not correct for length ${n}`);return s}(e),i}function N(t,e){let i=0;return t.push=function(){for(let e=0;e<arguments.length;++e){const r=arguments[e];if(r instanceof Array||x(r))for(let e=0;e<r.length;++e)t[i++]=r[e];else t[i++]=r}},t.reset=function(t){i=t||0},t.numComponents=e,Object.defineProperty(t,"numElements",{get:function(){return this.length/this.numComponents|0}}),t}function L(t,e,i){return N(new(i||Float32Array)(t*e),t)}function H(t,e,i){const r=t.length,n=new Float32Array(3);for(let a=0;a<r;a+=3)i(e,[t[a],t[a+1],t[a+2]],n),t[a]=n[0],t[a+1]=n[1],t[a+2]=n[2]}function V(t,i,r){r=r||e();const n=i[0],a=i[1],s=i[2];return r[0]=n*t[0]+a*t[1]+s*t[2],r[1]=n*t[4]+a*t[5]+s*t[6],r[2]=n*t[8]+a*t[9]+s*t[10],r}function j(t,e){return H(t,e,h),t}function G(t,e){return H(t,o(e),V),t}function X(t,e){return H(t,e,l),t}function q(t,e){return Object.keys(t).forEach((function(i){const r=t[i];i.indexOf("pos")>=0?X(r,e):i.indexOf("tan")>=0||i.indexOf("binorm")>=0?j(r,e):i.indexOf("norm")>=0&&G(r,e)})),t}function W(t,e,i){return t=t||2,{position:{numComponents:2,data:[(e=e||0)+-1*(t*=.5),(i=i||0)+-1*t,e+1*t,i+-1*t,e+-1*t,i+1*t,e+1*t,i+1*t]},normal:[0,0,1,0,0,1,0,0,1,0,0,1],texcoord:[0,0,1,0,0,1,1,1],indices:[0,1,2,2,1,3]}}function Y(t,e,i,r,n){t=t||1,e=e||1,i=i||1,r=r||1,n=n||s();const a=(i+1)*(r+1),o=L(3,a),l=L(3,a),h=L(2,a);for(let n=0;n<=r;n++)for(let a=0;a<=i;a++){const s=a/i,u=n/r;o.push(t*s-.5*t,0,e*u-.5*e),l.push(0,1,0),h.push(s,u)}const u=i+1,c=L(3,i*r*2,Uint16Array);for(let t=0;t<r;t++)for(let e=0;e<i;e++)c.push((t+0)*u+e,(t+1)*u+e,(t+0)*u+e+1),c.push((t+1)*u+e,(t+1)*u+e+1,(t+0)*u+e+1);return q({position:o,normal:l,texcoord:h,indices:c},n)}function Z(t,e,i,r,n,a,s){if(e<=0||i<=0)throw new Error("subdivisionAxis and subdivisionHeight must be > 0");r=r||0,a=a||0;const o=(n=n||Math.PI)-r,l=(s=s||2*Math.PI)-a,h=(e+1)*(i+1),u=L(3,h),c=L(3,h),f=L(2,h);for(let n=0;n<=i;n++)for(let s=0;s<=e;s++){const h=s/e,d=n/i,b=l*h+a,g=o*d+r,_=Math.sin(b),p=Math.cos(b),m=Math.sin(g),v=p*m,x=Math.cos(g),T=_*m;u.push(t*v,t*x,t*T),c.push(v,x,T),f.push(1-h,d)}const d=e+1,b=L(3,e*i*2,Uint16Array);for(let t=0;t<e;t++)for(let e=0;e<i;e++)b.push((e+0)*d+t,(e+0)*d+t+1,(e+1)*d+t),b.push((e+1)*d+t,(e+0)*d+t+1,(e+1)*d+t+1);return{position:u,normal:c,texcoord:f,indices:b}}const J=[[3,7,5,1],[6,2,0,4],[6,7,3,2],[0,1,5,4],[7,6,4,5],[2,3,1,0]];function K(t){const e=(t=t||1)/2,i=[[-e,-e,-e],[+e,-e,-e],[-e,+e,-e],[+e,+e,-e],[-e,-e,+e],[+e,-e,+e],[-e,+e,+e],[+e,+e,+e]],r=[[1,0,0],[-1,0,0],[0,1,0],[0,-1,0],[0,0,1],[0,0,-1]],n=[[1,0],[0,0],[0,1],[1,1]],a=L(3,24),s=L(3,24),o=L(2,24),l=L(3,12,Uint16Array);for(let t=0;t<6;++t){const e=J[t];for(let l=0;l<4;++l){const h=i[e[l]],u=r[t],c=n[l];a.push(h),s.push(u),o.push(c)}const h=4*t;l.push(h+0,h+1,h+2),l.push(h+0,h+2,h+3)}return{position:a,normal:s,texcoord:o,indices:l}}function Q(t,e,i,r,n,a,s){if(r<3)throw new Error("radialSubdivisions must be 3 or greater");if(n<1)throw new Error("verticalSubdivisions must be 1 or greater");const o=void 0===a||a,l=void 0===s||s,h=(o?2:0)+(l?2:0),u=(r+1)*(n+1+h),c=L(3,u),f=L(3,u),d=L(2,u),b=L(3,r*(n+h/2)*2,Uint16Array),g=r+1,_=Math.atan2(t-e,i),p=Math.cos(_),m=Math.sin(_),v=n+(l?2:0);for(let a=o?-2:0;a<=v;++a){let s,o=a/n,l=i*o;a<0?(l=0,o=1,s=t):a>n?(l=i,o=1,s=e):s=t+a/n*(e-t),-2!==a&&a!==n+2||(s=0,o=0),l-=i/2;for(let t=0;t<g;++t){const e=Math.sin(t*Math.PI*2/r),i=Math.cos(t*Math.PI*2/r);c.push(e*s,l,i*s),a<0?f.push(0,-1,0):a>n?f.push(0,1,0):0===s?f.push(0,0,0):f.push(e*p,m,i*p),d.push(t/r,1-o)}}for(let t=0;t<n+h;++t)if(!(1===t&&o||t===n+h-2&&l))for(let e=0;e<r;++e)b.push(g*(t+0)+0+e,g*(t+0)+1+e,g*(t+1)+1+e),b.push(g*(t+0)+0+e,g*(t+1)+1+e,g*(t+1)+0+e);return{position:c,normal:f,texcoord:d,indices:b}}function tt(t,e){e=e||[];const i=[];for(let r=0;r<t.length;r+=4){const n=t[r],a=t.slice(r+1,r+4);a.push.apply(a,e);for(let t=0;t<n;++t)i.push.apply(i,a)}return i}function et(){const t=[0,0,0,0,150,0,30,0,0,0,150,0,30,150,0,30,0,0,30,0,0,30,30,0,100,0,0,30,30,0,100,30,0,100,0,0,30,60,0,30,90,0,67,60,0,30,90,0,67,90,0,67,60,0,0,0,30,30,0,30,0,150,30,0,150,30,30,0,30,30,150,30,30,0,30,100,0,30,30,30,30,30,30,30,100,0,30,100,30,30,30,60,30,67,60,30,30,90,30,30,90,30,67,60,30,67,90,30,0,0,0,100,0,0,100,0,30,0,0,0,100,0,30,0,0,30,100,0,0,100,30,0,100,30,30,100,0,0,100,30,30,100,0,30,30,30,0,30,30,30,100,30,30,30,30,0,100,30,30,100,30,0,30,30,0,30,60,30,30,30,30,30,30,0,30,60,0,30,60,30,30,60,0,67,60,30,30,60,30,30,60,0,67,60,0,67,60,30,67,60,0,67,90,30,67,60,30,67,60,0,67,90,0,67,90,30,30,90,0,30,90,30,67,90,30,30,90,0,67,90,30,67,90,0,30,90,0,30,150,30,30,90,30,30,90,0,30,150,0,30,150,30,0,150,0,0,150,30,30,150,30,0,150,0,30,150,30,30,150,0,0,0,0,0,0,30,0,150,30,0,0,0,0,150,30,0,150,0],e=tt([18,0,0,1,18,0,0,-1,6,0,1,0,6,1,0,0,6,0,-1,0,6,1,0,0,6,0,1,0,6,1,0,0,6,0,-1,0,6,1,0,0,6,0,-1,0,6,-1,0,0]),i=tt([18,200,70,120,18,80,70,200,6,70,200,210,6,200,200,70,6,210,100,70,6,210,160,70,6,70,180,210,6,100,70,210,6,76,210,100,6,140,210,80,6,90,130,110,6,160,160,220],[255]),r=t.length/3,n={position:L(3,r),texcoord:L(2,r),normal:L(3,r),color:L(4,r,Uint8Array),indices:L(3,r/3,Uint16Array)};n.position.push(t),n.texcoord.push([.22,.19,.22,.79,.34,.19,.22,.79,.34,.79,.34,.19,.34,.19,.34,.31,.62,.19,.34,.31,.62,.31,.62,.19,.34,.43,.34,.55,.49,.43,.34,.55,.49,.55,.49,.43,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0]),n.normal.push(e),n.color.push(i);for(let t=0;t<r;++t)n.indices.push(t);return n}function it(t,e,i,a,s,o,l){if(s<=0)throw new Error("subdivisionDown must be > 0");const h=(l=l||1)-(o=o||0),u=2*(s+1)*4,c=L(3,u),f=L(3,u),d=L(2,u);function b(t,e,i){return t+(e-t)*i}function g(e,i,l,u,g,_){for(let p=0;p<=s;p++){const m=i/1,v=p/s,x=2*(m-.5),T=(o+v*h)*Math.PI,w=Math.sin(T),y=Math.cos(T),A=b(t,e,w),E=x*a,C=y*t,S=w*A;c.push(E,C,S);const M=r(n([0,w,y],l),u);f.push(M),d.push(m*g+_,v)}}for(let t=0;t<2;t++){const r=2*(t/1-.5);g(e,t,[1,1,1],[0,0,0],1,0),g(e,t,[0,0,0],[r,0,0],0,0),g(i,t,[1,1,1],[0,0,0],1,0),g(i,t,[0,0,0],[r,0,0],0,1)}const _=L(3,2*s*4,Uint16Array);function p(t,e){for(let i=0;i<s;++i)_.push(t+i+0,t+i+1,e+i+0),_.push(t+i+1,e+i+1,e+i+0)}const m=s+1;return p(0*m,4*m),p(5*m,7*m),p(6*m,2*m),p(3*m,1*m),{position:c,normal:f,texcoord:d,indices:_}}function rt(t,e,i,r,n,a){return Q(t,t,e,i,r,n,a)}function nt(t,e,i,r,n,a){if(i<3)throw new Error("radialSubdivisions must be 3 or greater");if(r<3)throw new Error("verticalSubdivisions must be 3 or greater");n=n||0;const s=(a=a||2*Math.PI)-n,o=i+1,l=r+1,h=o*l,u=L(3,h),c=L(3,h),f=L(2,h),d=L(3,i*r*2,Uint16Array);for(let a=0;a<l;++a){const l=a/r,h=l*Math.PI*2,d=Math.sin(h),b=t+d*e,g=Math.cos(h),_=g*e;for(let t=0;t<o;++t){const e=t/i,r=n+e*s,a=Math.sin(r),o=Math.cos(r),h=a*b,p=o*b,m=a*d,v=o*d;u.push(h,_,p),c.push(m,g,v),f.push(e,1-l)}}for(let t=0;t<r;++t)for(let e=0;e<i;++e){const i=1+e,r=1+t;d.push(o*t+e,o*r+e,o*t+i),d.push(o*r+e,o*r+i,o*t+i)}return{position:u,normal:c,texcoord:f,indices:d}}function at(t,e,i,r,n){if(e<3)throw new Error("divisions must be at least 3");n=n||1,r=r||0;const a=(e+1)*((i=i||1)+1),s=L(3,a),o=L(3,a),l=L(2,a),h=L(3,i*e*2,Uint16Array);let u=0;const c=t-r,f=e+1;for(let t=0;t<=i;++t){const a=r+c*Math.pow(t/i,n);for(let r=0;r<=e;++r){const n=2*Math.PI*r/e,c=a*Math.cos(n),d=a*Math.sin(n);if(s.push(c,0,d),o.push(0,1,0),l.push(1-r/e,t/i),t>0&&r!==e){const t=u+(r+1),e=u+r,i=u+r-f,n=u+(r+1)-f;h.push(t,e,i),h.push(t,i,n)}}u+=e+1}return{position:s,normal:o,texcoord:l,indices:h}}function st(t){return function(e){const i=t.apply(this,Array.prototype.slice.call(arguments,1));return O(e,i)}}function ot(t){return function(e){const i=t.apply(null,Array.prototype.slice.call(arguments,1));return P(e,i)}}ot(et),st(et),ot(K),st(K),ot(Y),st(Y),ot(Z),st(Z),ot(Q),st(Q),ot(W),st(W),ot(it),st(it),ot(rt),st(rt),ot(nt),st(nt),ot(at),st(at);function lt(t){return!!t.texStorage2D}const ht=function(){const t={},e={};return function(i,r){return function(i){const r=i.constructor.name;if(!t[r]){for(const t in i)if("number"==typeof i[t]){const r=e[i[t]];e[i[t]]=r?`${r} | ${t}`:t}t[r]=!0}}(i),e[r]||("number"==typeof r?`0x${r.toString(16)}`:r)}}();new Uint8Array([128,192,255,255]),function(){let t}();const ut=6407,ct=6408,ft=33319,dt=6403,bt={};{const t=bt;t[6406]={numColorComponents:1},t[6409]={numColorComponents:1},t[6410]={numColorComponents:2},t[ut]={numColorComponents:3},t[ct]={numColorComponents:4},t[dt]={numColorComponents:1},t[36244]={numColorComponents:1},t[ft]={numColorComponents:2},t[33320]={numColorComponents:2},t[ut]={numColorComponents:3},t[36248]={numColorComponents:3},t[ct]={numColorComponents:4},t[36249]={numColorComponents:4},t[6402]={numColorComponents:1},t[34041]={numColorComponents:2}}const gt=T;function _t(t){return"undefined"!=typeof document&&document.getElementById?document.getElementById(t):null}const pt=33984,mt=34962,vt=5126,xt=5124,Tt=5125,wt=3553,yt=34067,At=32879,Et=35866,Ct={};function St(t,e){return Ct[e].bindPoint}function Mt(t,e){return function(i){t.uniform1i(e,i)}}function kt(t,e){return function(i){t.uniform1iv(e,i)}}function Ft(t,e){return function(i){t.uniform2iv(e,i)}}function Rt(t,e){return function(i){t.uniform3iv(e,i)}}function Dt(t,e){return function(i){t.uniform4iv(e,i)}}function It(t,e,i,r){const n=St(0,e);return lt(t)?function(e){let a,s;w(0,e)?(a=e,s=null):(a=e.texture,s=e.sampler),t.uniform1i(r,i),t.activeTexture(pt+i),t.bindTexture(n,a),t.bindSampler(i,s)}:function(e){t.uniform1i(r,i),t.activeTexture(pt+i),t.bindTexture(n,e)}}function Ut(t,e,i,r,n){const a=St(0,e),s=new Int32Array(n);for(let t=0;t<n;++t)s[t]=i+t;return lt(t)?function(e){t.uniform1iv(r,s),e.forEach((function(e,r){let n,o;t.activeTexture(pt+s[r]),w(0,e)?(n=e,o=null):(n=e.texture,o=e.sampler),t.bindSampler(i,o),t.bindTexture(a,n)}))}:function(e){t.uniform1iv(r,s),e.forEach((function(e,i){t.activeTexture(pt+s[i]),t.bindTexture(a,e)}))}}function Bt(t,e){return function(i){if(i.value)switch(t.disableVertexAttribArray(e),i.value.length){case 4:t.vertexAttrib4fv(e,i.value);break;case 3:t.vertexAttrib3fv(e,i.value);break;case 2:t.vertexAttrib2fv(e,i.value);break;case 1:t.vertexAttrib1fv(e,i.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else t.bindBuffer(mt,i.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,i.numComponents||i.size,i.type||vt,i.normalize||!1,i.stride||0,i.offset||0),void 0!==i.divisor&&t.vertexAttribDivisor(e,i.divisor)}}function Pt(t,e){return function(i){if(i.value){if(t.disableVertexAttribArray(e),4!==i.value.length)throw new Error("The length of an integer constant value must be 4!");t.vertexAttrib4iv(e,i.value)}else t.bindBuffer(mt,i.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,i.numComponents||i.size,i.type||xt,i.stride||0,i.offset||0),void 0!==i.divisor&&t.vertexAttribDivisor(e,i.divisor)}}function zt(t,e){return function(i){if(i.value){if(t.disableVertexAttribArray(e),4!==i.value.length)throw new Error("The length of an unsigned integer constant value must be 4!");t.vertexAttrib4uiv(e,i.value)}else t.bindBuffer(mt,i.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,i.numComponents||i.size,i.type||Tt,i.stride||0,i.offset||0),void 0!==i.divisor&&t.vertexAttribDivisor(e,i.divisor)}}function Ot(t,e,i){const r=i.size,n=i.count;return function(i){t.bindBuffer(mt,i.buffer);const a=i.size||i.numComponents||r,s=a/n,o=i.type||vt,l=Ct[o].size*a,h=i.normalize||!1,u=i.offset||0,c=l/n;for(let r=0;r<n;++r)t.enableVertexAttribArray(e+r),t.vertexAttribPointer(e+r,s,o,h,l,u+c*r),void 0!==i.divisor&&t.vertexAttribDivisor(e+r,i.divisor)}}Ct[5126]={Type:Float32Array,size:4,setter:function(t,e){return function(i){t.uniform1f(e,i)}},arraySetter:function(t,e){return function(i){t.uniform1fv(e,i)}}},Ct[35664]={Type:Float32Array,size:8,setter:function(t,e){return function(i){t.uniform2fv(e,i)}},cols:2},Ct[35665]={Type:Float32Array,size:12,setter:function(t,e){return function(i){t.uniform3fv(e,i)}},cols:3},Ct[35666]={Type:Float32Array,size:16,setter:function(t,e){return function(i){t.uniform4fv(e,i)}},cols:4},Ct[5124]={Type:Int32Array,size:4,setter:Mt,arraySetter:kt},Ct[35667]={Type:Int32Array,size:8,setter:Ft,cols:2},Ct[35668]={Type:Int32Array,size:12,setter:Rt,cols:3},Ct[35669]={Type:Int32Array,size:16,setter:Dt,cols:4},Ct[5125]={Type:Uint32Array,size:4,setter:function(t,e){return function(i){t.uniform1ui(e,i)}},arraySetter:function(t,e){return function(i){t.uniform1uiv(e,i)}}},Ct[36294]={Type:Uint32Array,size:8,setter:function(t,e){return function(i){t.uniform2uiv(e,i)}},cols:2},Ct[36295]={Type:Uint32Array,size:12,setter:function(t,e){return function(i){t.uniform3uiv(e,i)}},cols:3},Ct[36296]={Type:Uint32Array,size:16,setter:function(t,e){return function(i){t.uniform4uiv(e,i)}},cols:4},Ct[35670]={Type:Uint32Array,size:4,setter:Mt,arraySetter:kt},Ct[35671]={Type:Uint32Array,size:8,setter:Ft,cols:2},Ct[35672]={Type:Uint32Array,size:12,setter:Rt,cols:3},Ct[35673]={Type:Uint32Array,size:16,setter:Dt,cols:4},Ct[35674]={Type:Float32Array,size:32,setter:function(t,e){return function(i){t.uniformMatrix2fv(e,!1,i)}},rows:2,cols:2},Ct[35675]={Type:Float32Array,size:48,setter:function(t,e){return function(i){t.uniformMatrix3fv(e,!1,i)}},rows:3,cols:3},Ct[35676]={Type:Float32Array,size:64,setter:function(t,e){return function(i){t.uniformMatrix4fv(e,!1,i)}},rows:4,cols:4},Ct[35685]={Type:Float32Array,size:32,setter:function(t,e){return function(i){t.uniformMatrix2x3fv(e,!1,i)}},rows:2,cols:3},Ct[35686]={Type:Float32Array,size:32,setter:function(t,e){return function(i){t.uniformMatrix2x4fv(e,!1,i)}},rows:2,cols:4},Ct[35687]={Type:Float32Array,size:48,setter:function(t,e){return function(i){t.uniformMatrix3x2fv(e,!1,i)}},rows:3,cols:2},Ct[35688]={Type:Float32Array,size:48,setter:function(t,e){return function(i){t.uniformMatrix3x4fv(e,!1,i)}},rows:3,cols:4},Ct[35689]={Type:Float32Array,size:64,setter:function(t,e){return function(i){t.uniformMatrix4x2fv(e,!1,i)}},rows:4,cols:2},Ct[35690]={Type:Float32Array,size:64,setter:function(t,e){return function(i){t.uniformMatrix4x3fv(e,!1,i)}},rows:4,cols:3},Ct[35678]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:wt},Ct[35680]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:yt},Ct[35679]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:At},Ct[35682]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:wt},Ct[36289]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:Et},Ct[36292]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:Et},Ct[36293]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:yt},Ct[36298]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:wt},Ct[36299]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:At},Ct[36300]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:yt},Ct[36303]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:Et},Ct[36306]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:wt},Ct[36307]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:At},Ct[36308]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:yt},Ct[36311]={Type:null,size:0,setter:It,arraySetter:Ut,bindPoint:Et};const Nt={};Nt[5126]={size:4,setter:Bt},Nt[35664]={size:8,setter:Bt},Nt[35665]={size:12,setter:Bt},Nt[35666]={size:16,setter:Bt},Nt[5124]={size:4,setter:Pt},Nt[35667]={size:8,setter:Pt},Nt[35668]={size:12,setter:Pt},Nt[35669]={size:16,setter:Pt},Nt[5125]={size:4,setter:zt},Nt[36294]={size:8,setter:zt},Nt[36295]={size:12,setter:zt},Nt[36296]={size:16,setter:zt},Nt[35670]={size:4,setter:Pt},Nt[35671]={size:8,setter:Pt},Nt[35672]={size:12,setter:Pt},Nt[35673]={size:16,setter:Pt},Nt[35674]={size:4,setter:Ot,count:2},Nt[35675]={size:9,setter:Ot,count:3},Nt[35676]={size:16,setter:Ot,count:4};const Lt=/ERROR:\s*\d+:(\d+)/gi;function Ht(t,e="",i=0){const r=[...e.matchAll(Lt)],n=new Map(r.map(((t,i)=>{const n=parseInt(t[1]),a=r[i+1],s=a?a.index:e.length;return[n-1,e.substring(t.index,s)]})));return t.split("\n").map(((t,e)=>{const r=n.get(e);return`${e+1+i}: ${t}${r?`\n\n^^^ ${r}`:""}`})).join("\n")}const Vt=/^[ \t]*\n/;function jt(t,e,i,r){const n=r||gt,a=t.createShader(i);let s=0;Vt.test(e)&&(s=1,e=e.replace(Vt,"")),t.shaderSource(a,e),t.compileShader(a);if(!t.getShaderParameter(a,35713)){const r=t.getShaderInfoLog(a);return n(`${Ht(e,r,s)}\nError compiling ${ht(t,i)}: ${r}`),t.deleteShader(a),null}return a}function Gt(t,e,i){let r,n;if("function"==typeof e&&(i=e,e=void 0),"function"==typeof t)i=t,t=void 0;else if(t&&!Array.isArray(t)){if(t.errorCallback)return t;const e=t;i=e.errorCallback,t=e.attribLocations,r=e.transformFeedbackVaryings,n=e.transformFeedbackMode}const a={errorCallback:i||gt,transformFeedbackVaryings:r,transformFeedbackMode:n};if(t){let i={};Array.isArray(t)?t.forEach((function(t,r){i[t]=e?e[r]:r})):i=t,a.attribLocations=i}return a}const Xt=["VERTEX_SHADER","FRAGMENT_SHADER"];function qt(t,e){return e.indexOf("frag")>=0?35632:e.indexOf("vert")>=0?35633:void 0}function Wt(t,e){e.forEach((function(e){t.deleteShader(e)}))}function Yt(t,e,i,r,n){const a=Gt(i,r,n),s=[],o=[];for(let i=0;i<e.length;++i){let r=e[i];if("string"==typeof r){const e=_t(r),n=e?e.text:r;let s=t[Xt[i]];e&&e.type&&(s=qt(0,e.type)||s),r=jt(t,n,s,a.errorCallback),o.push(r)}l=r,"undefined"!=typeof WebGLShader&&l instanceof WebGLShader&&s.push(r)}var l;if(s.length!==e.length)return a.errorCallback("not enough shaders for program"),Wt(t,o),null;const h=t.createProgram();s.forEach((function(e){t.attachShader(h,e)})),a.attribLocations&&Object.keys(a.attribLocations).forEach((function(e){t.bindAttribLocation(h,a.attribLocations[e],e)}));let u=a.transformFeedbackVaryings;u&&(u.attribs&&(u=u.attribs),Array.isArray(u)||(u=Object.keys(u)),t.transformFeedbackVaryings(h,u,a.transformFeedbackMode||35981)),t.linkProgram(h);if(!t.getProgramParameter(h,35714)){const e=t.getProgramInfoLog(h);return a.errorCallback(`${s.map((e=>{const i=Ht(t.getShaderSource(e),"",0),r=t.getShaderParameter(e,t.SHADER_TYPE);return`${ht(t,r)}\n${i}}`})).join("\n")}\nError in program linking: ${e}`),t.deleteProgram(h),Wt(t,o),null}return h}function Zt(t,e,i,r,n){const a=Gt(i,r,n),s=[];for(let i=0;i<e.length;++i){const r=jt(t,e[i],t[Xt[i]],a.errorCallback);if(!r)return null;s.push(r)}return Yt(t,s,a)}function Jt(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const Kt=/(\.|\[|]|\w+)/g;function $t(t,e,i,r){const n=t.split(Kt).filter((t=>""!==t));let a=0,s="";for(;;){const t=n[a++];s+=t;const l=(o=t[0])>="0"&&o<="9",h=l?parseInt(t):t;l&&(s+=n[a++]);if(a===n.length){i[h]=e;break}{const t=n[a++],e="["===t,o=i[h]||(e?[]:{});i[h]=o,i=o,r[s]=r[s]||function(t){return function(e){ie(t,e)}}(o),s+=t}}var o}function Qt(t,e){let i=0;function r(e,r,n){const a=r.name.endsWith("[0]"),s=r.type,o=Ct[s];if(!o)throw new Error(`unknown type: 0x${s.toString(16)}`);let l;if(o.bindPoint){const e=i;i+=r.size,l=a?o.arraySetter(t,s,e,n,r.size):o.setter(t,s,e,n,r.size)}else l=o.arraySetter&&a?o.arraySetter(t,n):o.setter(t,n);return l.location=n,l}const n={},a={},s=t.getProgramParameter(e,35718);for(let i=0;i<s;++i){const s=t.getActiveUniform(e,i);if(Jt(s))continue;let o=s.name;o.endsWith("[0]")&&(o=o.substr(0,o.length-3));const l=t.getUniformLocation(e,s.name);if(l){const t=r(0,s,l);n[o]=t,$t(o,t,a,n)}}return n}function te(t,e){const i={},r=t.getProgramParameter(e,35971);for(let n=0;n<r;++n){const r=t.getTransformFeedbackVarying(e,n);i[r.name]={index:n,type:r.type,size:r.size}}return i}function ee(t,e){const i=t.getProgramParameter(e,35718),r=[],n=[];for(let a=0;a<i;++a){n.push(a),r.push({});const i=t.getActiveUniform(e,a);r[a].name=i.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach((function(i){const a=i[0],s=i[1];t.getActiveUniforms(e,n,t[a]).forEach((function(t,e){r[e][s]=t}))}));const a={},s=t.getProgramParameter(e,35382);for(let i=0;i<s;++i){const r=t.getActiveUniformBlockName(e,i),n={index:t.getUniformBlockIndex(e,r),usedByVertexShader:t.getActiveUniformBlockParameter(e,i,35396),usedByFragmentShader:t.getActiveUniformBlockParameter(e,i,35398),size:t.getActiveUniformBlockParameter(e,i,35392),uniformIndices:t.getActiveUniformBlockParameter(e,i,35395)};n.used=n.usedByVertexShader||n.usedByFragmentShader,a[r]=n}return{blockSpecs:a,uniformData:r}}function ie(t,e){for(const i in e){const r=t[i];"function"==typeof r?r(e[i]):ie(t[i],e[i])}}function re(t,...e){const i=t.uniformSetters||t,r=e.length;for(let t=0;t<r;++t){const r=e[t];if(Array.isArray(r)){const t=r.length;for(let e=0;e<t;++e)re(i,r[e])}else for(const t in r){const e=i[t];e&&e(r[t])}}}function ne(t,e){const i={},r=t.getProgramParameter(e,35721);for(let n=0;n<r;++n){const r=t.getActiveAttrib(e,n);if(Jt(r))continue;const a=t.getAttribLocation(e,r.name),s=Nt[r.type],o=s.setter(t,a,s);o.location=a,i[r.name]=o}return i}function ae(t,e){const i={program:e,uniformSetters:Qt(t,e),attribSetters:ne(t,e)};return lt(t)&&(i.uniformBlockSpec=ee(t,e),i.transformFeedbackInfo=te(t,e)),i}function se(t,e,i,r,n){const a=Gt(i,r,n);let s=!0;if(e=e.map((function(t){if(t.indexOf("\n")<0){const e=_t(t);e?t=e.text:(a.errorCallback("no element with id: "+t),s=!1)}return t})),!s)return null;const o=Zt(t,e,a);return o?ae(t,o):null}const oe=36096,le=33306,he={};he[34041]=le,he[6401]=36128,he[36168]=36128,he[6402]=oe,he[33189]=oe,he[33190]=oe,he[36012]=oe,he[35056]=le,he[36013]=le;const ue={};ue[32854]=!0,ue[32855]=!0,ue[36194]=!0,ue[34041]=!0,ue[33189]=!0,ue[6401]=!0,ue[36168]=!0;var ce={};const fe={position:3,normal:3,tangent:3,texcoord:2,texcoord0:2,texcoord1:2,texcoord2:2};var de={};class be{constructor(){this.attribs={}}disableAll(){for(let t in this.attribs)this.gl.disableVertexAttribArray(this.attribs[t]);this.attribs={}}enable(t,e){this.gl=t;var i={};for(let n in e){var r=e[n];void 0!==r.loc&&(void 0===this.attribs[r.loc]&&t.enableVertexAttribArray(r.loc),t.vertexAttribPointer(r.loc,r.size,r.type,!1,r.stride,r.offset),i[r.loc]=r.loc,this.attribs[n]=null)}for(let t in this.attribs);this.attribs=i}}class ge{static CreateProgramAttributes(t,e){var i={},r=0;for(let s in e){var n=e[s],a=fe[s];i[n]={type:t.FLOAT,size:a,offset:4*r},r+=a}for(let t in i)i[t].stride=4*r;return i}CleanUpPrograms(){de={}}ReleaseProgram(t){}static _GetProgram(t){return de[t]}static RegisterProgram(t,e){if(!de[t]){var i=e.shaders;de[t]={shaders:[i[0],i[1]],attributes:e.attributes}}return de[t]}static GetProgram(t,e,i,r){var n=de[e],a="";for(var s in i)a+=s+":"+i[s]+"-";if(!n){var o=e.split("."),l=ce[o[0]][o[1]];l&&(n=ge.RegisterProgram(e,l))}if(!n)throw"Program not registered: "+o;n.programInfo||(n.programInfo={}),n.programInfo[a]=ge.CompileProgram(t,n.shaders,i),r=r||n.attributes&&ge.CreateProgramAttributes(t,n.attributes);var h=n.programInfo[a];if(r)for(var s in r){var u=h.attribSetters[s];u&&(r[s]=r[s]||{},r[s].loc=u.location)}return h.attributes=r,h}static CompileProgram(t,e,i,r){var n="";for(var a in i){var s=i[a];n="#define "+a+" "+(null===s?"":s)+"\n"}var o={};const l=se(t,[n+e[0],n+e[1]],null,null);if(r)for(var a in r){var h=l.attribSetters[a];h&&(r[a]=r[a]||{},r[a].loc=h.location)}for(var a in l.uniformSetters)o[a]=l.uniformSetters[a].location;return l.uniforms=o,l}}var _e=new ge,pe=1e-6,me="undefined"!=typeof Float32Array?Float32Array:Array;Math.random;Math.PI;function ve(){var t=new me(3);return me!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function xe(t){var e=new me(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Te(t){var e=t[0],i=t[1],r=t[2];return Math.hypot(e,i,r)}function we(t,e,i){var r=new me(3);return r[0]=t,r[1]=e,r[2]=i,r}function ye(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Ae(t,e,i,r){return t[0]=e,t[1]=i,t[2]=r,t}function Ee(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t[2]=e[2]+i[2],t}function Ce(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2],t}function Se(t,e,i){return t[0]=e[0]*i[0],t[1]=e[1]*i[1],t[2]=e[2]*i[2],t}function Me(t,e,i){return t[0]=Math.min(e[0],i[0]),t[1]=Math.min(e[1],i[1]),t[2]=Math.min(e[2],i[2]),t}function ke(t,e,i){return t[0]=Math.max(e[0],i[0]),t[1]=Math.max(e[1],i[1]),t[2]=Math.max(e[2],i[2]),t}function Fe(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t}function Re(t,e,i,r){return t[0]=e[0]+i[0]*r,t[1]=e[1]+i[1]*r,t[2]=e[2]+i[2]*r,t}function De(t){var e=t[0],i=t[1],r=t[2];return e*e+i*i+r*r}function Ie(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function Ue(t,e){var i=e[0],r=e[1],n=e[2],a=i*i+r*r+n*n;return a>0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t}function Be(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Pe(t,e,i){var r=e[0],n=e[1],a=e[2],s=i[0],o=i[1],l=i[2];return t[0]=n*l-a*o,t[1]=a*s-r*l,t[2]=r*o-n*s,t}function ze(t,e,i,r){var n=e[0],a=e[1],s=e[2];return t[0]=n+r*(i[0]-n),t[1]=a+r*(i[1]-a),t[2]=s+r*(i[2]-s),t}function Oe(t,e,i){var r=e[0],n=e[1],a=e[2],s=i[3]*r+i[7]*n+i[11]*a+i[15];return s=s||1,t[0]=(i[0]*r+i[4]*n+i[8]*a+i[12])/s,t[1]=(i[1]*r+i[5]*n+i[9]*a+i[13])/s,t[2]=(i[2]*r+i[6]*n+i[10]*a+i[14])/s,t}function Ne(t,e,i){var r=e[0],n=e[1],a=e[2];return t[0]=r*i[0]+n*i[3]+a*i[6],t[1]=r*i[1]+n*i[4]+a*i[7],t[2]=r*i[2]+n*i[5]+a*i[8],t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var Le,He=Ce,Ve=Te;Le=ve();function je(){var t=new me(16);return me!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function Ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Xe(t,e,i,r,n,a,s,o,l,h,u,c,f,d,b,g){var _=new me(16);return _[0]=t,_[1]=e,_[2]=i,_[3]=r,_[4]=n,_[5]=a,_[6]=s,_[7]=o,_[8]=l,_[9]=h,_[10]=u,_[11]=c,_[12]=f,_[13]=d,_[14]=b,_[15]=g,_}function qe(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function We(t,e){var i=e[0],r=e[1],n=e[2],a=e[3],s=e[4],o=e[5],l=e[6],h=e[7],u=e[8],c=e[9],f=e[10],d=e[11],b=e[12],g=e[13],_=e[14],p=e[15],m=i*o-r*s,v=i*l-n*s,x=i*h-a*s,T=r*l-n*o,w=r*h-a*o,y=n*h-a*l,A=u*g-c*b,E=u*_-f*b,C=u*p-d*b,S=c*_-f*g,M=c*p-d*g,k=f*p-d*_,F=m*k-v*M+x*S+T*C-w*E+y*A;return F?(F=1/F,t[0]=(o*k-l*M+h*S)*F,t[1]=(n*M-r*k-a*S)*F,t[2]=(g*y-_*w+p*T)*F,t[3]=(f*w-c*y-d*T)*F,t[4]=(l*C-s*k-h*E)*F,t[5]=(i*k-n*C+a*E)*F,t[6]=(_*x-b*y-p*v)*F,t[7]=(u*y-f*x+d*v)*F,t[8]=(s*M-o*C+h*A)*F,t[9]=(r*C-i*M-a*A)*F,t[10]=(b*w-g*x+p*m)*F,t[11]=(c*x-u*w-d*m)*F,t[12]=(o*E-s*S-l*A)*F,t[13]=(i*S-r*E+n*A)*F,t[14]=(g*v-b*T-_*m)*F,t[15]=(u*T-c*v+f*m)*F,t):null}function Ye(t,e,i){var r=e[0],n=e[1],a=e[2],s=e[3],o=e[4],l=e[5],h=e[6],u=e[7],c=e[8],f=e[9],d=e[10],b=e[11],g=e[12],_=e[13],p=e[14],m=e[15],v=i[0],x=i[1],T=i[2],w=i[3];return t[0]=v*r+x*o+T*c+w*g,t[1]=v*n+x*l+T*f+w*_,t[2]=v*a+x*h+T*d+w*p,t[3]=v*s+x*u+T*b+w*m,v=i[4],x=i[5],T=i[6],w=i[7],t[4]=v*r+x*o+T*c+w*g,t[5]=v*n+x*l+T*f+w*_,t[6]=v*a+x*h+T*d+w*p,t[7]=v*s+x*u+T*b+w*m,v=i[8],x=i[9],T=i[10],w=i[11],t[8]=v*r+x*o+T*c+w*g,t[9]=v*n+x*l+T*f+w*_,t[10]=v*a+x*h+T*d+w*p,t[11]=v*s+x*u+T*b+w*m,v=i[12],x=i[13],T=i[14],w=i[15],t[12]=v*r+x*o+T*c+w*g,t[13]=v*n+x*l+T*f+w*_,t[14]=v*a+x*h+T*d+w*p,t[15]=v*s+x*u+T*b+w*m,t}function Ze(t,e,i){var r,n,a,s,o,l,h,u,c,f,d,b,g=i[0],_=i[1],p=i[2];return e===t?(t[12]=e[0]*g+e[4]*_+e[8]*p+e[12],t[13]=e[1]*g+e[5]*_+e[9]*p+e[13],t[14]=e[2]*g+e[6]*_+e[10]*p+e[14],t[15]=e[3]*g+e[7]*_+e[11]*p+e[15]):(r=e[0],n=e[1],a=e[2],s=e[3],o=e[4],l=e[5],h=e[6],u=e[7],c=e[8],f=e[9],d=e[10],b=e[11],t[0]=r,t[1]=n,t[2]=a,t[3]=s,t[4]=o,t[5]=l,t[6]=h,t[7]=u,t[8]=c,t[9]=f,t[10]=d,t[11]=b,t[12]=r*g+o*_+c*p+e[12],t[13]=n*g+l*_+f*p+e[13],t[14]=a*g+h*_+d*p+e[14],t[15]=s*g+u*_+b*p+e[15]),t}function Je(t,e,i){var r=i[0],n=i[1],a=i[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Ke(t,e,i){var r=Math.sin(i),n=Math.cos(i),a=e[4],s=e[5],o=e[6],l=e[7],h=e[8],u=e[9],c=e[10],f=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*n+h*r,t[5]=s*n+u*r,t[6]=o*n+c*r,t[7]=l*n+f*r,t[8]=h*n-a*r,t[9]=u*n-s*r,t[10]=c*n-o*r,t[11]=f*n-l*r,t}function $e(t,e,i){var r=Math.sin(i),n=Math.cos(i),a=e[0],s=e[1],o=e[2],l=e[3],h=e[8],u=e[9],c=e[10],f=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*n-h*r,t[1]=s*n-u*r,t[2]=o*n-c*r,t[3]=l*n-f*r,t[8]=a*r+h*n,t[9]=s*r+u*n,t[10]=o*r+c*n,t[11]=l*r+f*n,t}function Qe(t,e,i){var r=Math.sin(i),n=Math.cos(i),a=e[0],s=e[1],o=e[2],l=e[3],h=e[4],u=e[5],c=e[6],f=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*n+h*r,t[1]=s*n+u*r,t[2]=o*n+c*r,t[3]=l*n+f*r,t[4]=h*n-a*r,t[5]=u*n-s*r,t[6]=c*n-o*r,t[7]=f*n-l*r,t}function ti(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function ei(t,e,i){var r=e[0],n=e[1],a=e[2],s=e[3],o=r+r,l=n+n,h=a+a,u=r*o,c=r*l,f=r*h,d=n*l,b=n*h,g=a*h,_=s*o,p=s*l,m=s*h;return t[0]=1-(d+g),t[1]=c+m,t[2]=f-p,t[3]=0,t[4]=c-m,t[5]=1-(u+g),t[6]=b+_,t[7]=0,t[8]=f+p,t[9]=b-_,t[10]=1-(u+d),t[11]=0,t[12]=i[0],t[13]=i[1],t[14]=i[2],t[15]=1,t}function ii(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function ri(t,e){var i=e[0],r=e[1],n=e[2],a=e[4],s=e[5],o=e[6],l=e[8],h=e[9],u=e[10];return t[0]=Math.hypot(i,r,n),t[1]=Math.hypot(a,s,o),t[2]=Math.hypot(l,h,u),t}var ni=function(t,e,i,r,n){var a,s=1/Math.tan(e/2);return t[0]=s/i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=n&&n!==1/0?(a=1/(r-n),t[10]=(n+r)*a,t[14]=2*n*r*a):(t[10]=-1,t[14]=-2*r),t};var ai=Ye;const si={147259:!0},oi={28060:!0,28063:!0,28082:!0,41903:!0,42147:!0,44808:!0,45271:!0};const li={2:{GeosetType:15,Original:2,Override:11},3:{GeosetType:15,Original:3,Override:12},4:{GeosetType:15,Original:4,Override:13},5:{GeosetType:15,Original:5,Override:14},6:{GeosetType:15,Original:6,Override:15},7:{GeosetType:15,Original:7,Override:16},8:{GeosetType:15,Original:8,Override:17},9:{GeosetType:15,Original:9,Override:18},10:{GeosetType:15,Original:10,Override:19}},hi={ITEM:1,HELM:2,SHOULDER:4,NPC:8,CHARACTER:16,HUMANOIDNPC:32,OBJECT:64,ARMOR:128,PATH:256,ITEMVISUAL:512,COLLECTION:1024},ui={MALE:0,FEMALE:1,0:"male",1:"female"},ci=5,fi=15,di=21,bi=27,gi=30,_i={1:"human",2:"orc",3:"dwarf",4:"nightelf",5:"scourge",6:"tauren",7:"gnome",8:"troll",9:"goblin",10:"bloodelf",11:"draenei",12:"felorc",13:"naga_",14:"broken",15:"skeleton",16:"vrykul",17:"tuskarr",18:"foresttroll",19:"taunka",20:"northrendskeleton",21:"icetroll",22:"worgen",23:"gilnean",24:"pandaren",25:"pandarena",26:"pandarenh",27:"nightborne",28:"highmountaintauren",29:"voidelf",30:"lightforgeddraenei",31:"zandalaritroll",32:"kultiran",33:"thinhuman",34:"darkirondwarf",35:"vulpera",36:"magharorc",37:"mechagnome"},pi=[0,1,0,3,4,5,6,7,8,9,10,0,0,21,22,22,16,21,0,19,5,21,22,22,0,21,21,27],mi=[0,16,0,15,1,8,10,5,6,6,7,0,0,17,18,19,14,20,0,9,8,21,22,23,0,24,25,0],vi=[0,0,0,0,0,0,0,0,0,0,0,0,0,22,0,0,0,22,0,0,0,0,0,0,0,0,0,0],xi=[0,2,0,4,128,128,128,128,128,128,128,0,0,1,1,1,128,1,0,128,128,1,1,1,0,1,1,2],Ti=1,wi=3,yi=4,Ai=5,Ei=6,Ci=7,Si=8,Mi=9,ki=10,Fi=13,Ri=14,Di=15,Ii=16,Ui=19,Bi=20,Pi=21,zi=22,Oi=23,Ni=26,Li=1,Hi=10,Vi=[13,14,15,16,17,88,89],ji=[8,9,10,11,12,86,87],Gi=3,Xi=5,qi=7,Wi=12,Yi=[{x:0,y:0,w:.5,h:.25},{x:0,y:.25,w:.5,h:.25},{x:0,y:.5,w:.5,h:.125},{x:.5,y:0,w:.5,h:.25},{x:.5,y:.25,w:.5,h:.125},{x:.5,y:.375,w:.5,h:.25},{x:.5,y:.625,w:.5,h:.25},{x:.5,y:.875,w:.5,h:.125},{},{x:0,y:.625,w:.5,h:.125},{x:0,y:.75,w:.5,h:.25},{},{x:0,y:0,w:1,h:1},{x:0,y:0,w:1,h:1}],Zi=[{x:0,y:0,w:.25,h:.25},{x:0,y:.25,w:.25,h:.25},{x:0,y:.5,w:.25,h:.125},{x:.25,y:0,w:.25,h:.25},{x:.25,y:.25,w:.25,h:.125},{x:.25,y:.375,w:.25,h:.25},{x:.25,y:.625,w:.25,h:.25},{x:.25,y:.875,w:.25,h:.125},{x:.75,y:.75,w:.25,h:.25},{x:.5,y:0,w:.5,h:1},{x:.5,y:0,w:.5,h:1},{x:.5,y:0,w:.5,h:1},{x:0,y:0,w:.5,h:1},{x:0,y:0,w:1,h:1},{x:0,y:0,w:.5,h:1}],Ji={40:[5,0,5,1,5,0,5,1],37:[7,0,7,1,7,0,7,1],36:[2,0,2,1,2,0,2,1],35:[9,0,9,1,9,0,9,1],34:[3,0,3,1,3,0,3,1],33:[5,1,0,-1,5,0,0,-1],31:[0,-1,8,1,0,-1,8,1],30:[11,0,11,1,11,0,11,1],29:[10,0,10,1,10,0,10,1],28:[6,0,6,1,6,0,6,1],27:[4,0,4,1,4,0,4,1],26:[24,0,24,1,24,0,24,1],25:[24,0,24,1,24,0,24,1],23:[1,0,1,1,1,0,1,1],15:[5,0,5,1,5,0,5,1]},Ki={21:26,22:27,15:28,17:26,25:32,13:32,23:33,14:28,26:26},$i={0:{21:26,22:27},1:{21:26,22:27},2:{21:30,22:31},3:{21:32,22:33},4:{21:26,22:27,15:28},5:{21:26},6:{21:26,22:27},7:{21:26,22:27},8:{21:26,22:27},9:{21:33,22:28}};function Qi(){var t=new me(4);return me!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function tr(t){var e=new me(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function er(t,e,i,r){var n=new me(4);return n[0]=t,n[1]=e,n[2]=i,n[3]=r,n}function ir(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function rr(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t[2]=e[2]+i[2],t[3]=e[3]+i[3],t}function nr(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2],t[3]=e[3]-i[3],t}function ar(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t[3]=e[3]*i,t}function sr(t){var e=t[0],i=t[1],r=t[2],n=t[3];return Math.hypot(e,i,r,n)}function or(t,e){var i=e[0],r=e[1],n=e[2],a=e[3],s=i*i+r*r+n*n+a*a;return s>0&&(s=1/Math.sqrt(s)),t[0]=i*s,t[1]=r*s,t[2]=n*s,t[3]=a*s,t}function lr(t,e,i){var r=e[0],n=e[1],a=e[2],s=e[3];return t[0]=i[0]*r+i[4]*n+i[8]*a+i[12]*s,t[1]=i[1]*r+i[5]*n+i[9]*a+i[13]*s,t[2]=i[2]*r+i[6]*n+i[10]*a+i[14]*s,t[3]=i[3]*r+i[7]*n+i[11]*a+i[15]*s,t}var hr=sr;!function(){var t=Qi()}();const ur=class{constructor(t){var e=this;e.a=we(t.getFloat(),t.getFloat(),t.getFloat()),e.b=er(t.getFloat(),t.getFloat(),t.getFloat(),0),e.c=t.getFloat(),e.d=t.getFloat(),e.e=t.getFloat(),e.f=t.getFloat(),e.g=[t.getUint8(),t.getUint8(),t.getUint8(),t.getUint8()],e.h=[t.getUint8(),t.getUint8(),t.getUint8(),t.getUint8()],e.i=xe(e.a),e.j=tr(e.b)}l(){var t=this;t.a=null,t.b=null,t.g=null,t.h=null,t.i=null,t.j=null}};const cr=class{constructor(t){var e=this;e.a=t.getUint16(),e.b=t.getUint16(),e.g=t.getUint32(),e.c=t.getUint32(),e.d=t.getUint16(),e.e=t.getUint16(),e.f=t.getUint16(),e.h=t.getInt16(),e.i=t.getUint16(),t.getBool()&&(e.j=t.getString())}k(){}};function fr(){var t=new me(2);return me!=Float32Array&&(t[0]=0,t[1]=0),t}function dr(t,e){var i=new me(2);return i[0]=t,i[1]=e,i}function br(t,e,i){return t[0]=e,t[1]=i,t}function gr(t,e,i){return t[0]=e[0]*i[0],t[1]=e[1]*i[1],t}function _r(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t}!function(){var t=fr()}();function pr(){var t=new me(9);return me!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function mr(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t}function vr(t,e,i){var r=e[0],n=e[1],a=e[2],s=e[3],o=e[4],l=e[5],h=e[6],u=e[7],c=e[8],f=i[0],d=i[1],b=i[2],g=i[3],_=i[4],p=i[5],m=i[6],v=i[7],x=i[8];return t[0]=f*r+d*s+b*h,t[1]=f*n+d*o+b*u,t[2]=f*a+d*l+b*c,t[3]=g*r+_*s+p*h,t[4]=g*n+_*o+p*u,t[5]=g*a+_*l+p*c,t[6]=m*r+v*s+x*h,t[7]=m*n+v*o+x*u,t[8]=m*a+v*l+x*c,t}function xr(){var t=new me(4);return me!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Tr(t,e,i){i*=.5;var r=Math.sin(i);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(i),t}function wr(t,e,i,r){var n,a,s,o,l,h=e[0],u=e[1],c=e[2],f=e[3],d=i[0],b=i[1],g=i[2],_=i[3];return(a=h*d+u*b+c*g+f*_)<0&&(a=-a,d=-d,b=-b,g=-g,_=-_),1-a>pe?(n=Math.acos(a),s=Math.sin(n),o=Math.sin((1-r)*n)/s,l=Math.sin(r*n)/s):(o=1-r,l=r),t[0]=o*h+l*d,t[1]=o*u+l*b,t[2]=o*c+l*g,t[3]=o*f+l*_,t}var yr,Ar,Er,Cr,Sr,Mr,kr=ir,Fr=function(t,e,i,r,n){return t[0]=e,t[1]=i,t[2]=r,t[3]=n,t},Rr=or;yr=ve(),Ar=we(1,0,0),Er=we(0,1,0),Cr=xr(),Sr=xr(),Mr=pr();class Dr{constructor(){this.a=-1,this.b=null,this.c=0}}class Ir{constructor(){this.a=new Dr,this.b=new Dr,this.c=0,this.d=!1}}class Ur{f(){var t=this;if(t.b)for(var e=0;e<t.b.length;++e)t.b[e]=null;return t.a=null,t.b=null,null}k(t,e,i,r){let n=this;if(null==r&&(r=this.g()),this.d>=0&&(t=this.d<e.length?e[this.d]:e[0]),0!=n.c||n.b.length>1){if(n.a.length>1){var a=n.a[n.a.length-1];a>0&&t>a&&this.d<0&&(t%=a);for(var s=0,o=n.a.length,l=0;l<o;++l)if(t>=n.a[l]&&t<n.a[l+1]){s=l;break}var h=n.a[s],u=n.a[s+1],c=0;return h!=u&&(c=(t-h)/(u-h)),1==n.c?n.h(n.b[s],n.b[s+1],c,r):r=n.i(r,n.b[s])}return n.b.length>0?r=n.i(r,n.b[0]):i}return 0==n.b.length?r:r=n.i(r,n.b[0])}l(t){var e,i=this;i.c=t.getInt16(),i.d=t.getInt16(),i.e=t.getBool();var r=t.getInt32();for(i.a=new Array(r),e=0;e<r;++e)i.a[e]=t.getInt32();var n=t.getInt32();for(i.b=new Array(n),e=0;e<n;++e)i.b[e]=i.j(t)}}class Br extends Ur{constructor(t){super();this.ba=ve(),this.l(t)}g(){return ve()}h(t,e,i,r){return ze(r,t,e,i)}i(t,e){return ye(t,e),t}j(t){return Ae(ve(),t.getFloat(),t.getFloat(),t.getFloat())}}class Pr extends Ur{constructor(t){super();this.l(t),this.ba=xr()}g(){return xr()}h(t,e,i,r){return wr(r,t,e,i)}i(t,e){return kr(t,e),t}j(t){return Fr(xr(),-t.getFloat(),-t.getFloat(),-t.getFloat(),t.getFloat())}}class zr extends Ur{constructor(t){super();this.l(t)}j(t){return t.getUint16()}g(){return 0}h(t,e,i,r){return t+(e-t)*i}i(t,e){return e}}class Or extends zr{j(t){return t.getFloat()}}class Nr extends zr{j(t){return t.getUint8()}}class Lr{d(){for(var t=this,e=0;e<t.b.length;++e)t.b[e]=null;return t.a=null,t.b=null,t.c=null,null}i(t,e,i,r){let n=this;i||(i=this.e());let a=r||n.b;if(n.b.length>1&&n.a.length>1){var s=n.a[n.a.length-1];s>0&&t>s&&(t%=s);for(var o=0,l=n.a.length,h=0;h<l-1;++h)if(t>n.a[h]&&t<=n.a[h+1]){o=h;break}var u=n.a[o],c=n.a[o+1],f=0;return u!=c&&(f=(t-u)/(c-u)),n.f(a[o],a[o+1],f,i)}return a.length>0?i=n.g(i,a[0]):e}j(t){var e,i=this,r=t.getInt32();for(i.a=new Array(r),e=0;e<r;++e)i.a[e]=t.getInt16()/32767;var n=t.getInt32();for(i.b=new Array(n),e=0;e<n;++e)i.b[e]=i.h(t)}}class Hr extends Lr{constructor(t){super();this.ba=fr(),this.j(t)}e(){return fr()}f(t,e,i,r){return n=r,s=e,o=i,l=(a=t)[0],h=a[1],n[0]=l+o*(s[0]-l),n[1]=h+o*(s[1]-h),n;var n,a,s,o,l,h}g(t,e){var i,r;return r=e,(i=t)[0]=r[0],i[1]=r[1],t}h(t){return br(fr(),t.getFloat(),t.getFloat())}}class Vr extends Lr{constructor(t){super();this.j(t)}e(){return ve()}f(t,e,i,r){return ze(r,t,e,i)}g(t,e){return ye(t,e),t}h(t){return Ae(ve(),t.getFloat(),t.getFloat(),t.getFloat())}}class jr extends Lr{constructor(t){super();this.j(t)}e(){return 0}f(t,e,i,r){return t+(e-t)*i}g(t,e){return t}h(t){return t.getUint16()}}class Gr{constructor(t,e){this.b(t,e)}b(t,e){var i=t.getInt32();this.a=new Array(i);for(let r=0;r<i;++r)this.a[r]=new e(t)}c(t){return!(!this.a||0==this.a.length)&&(t>=this.a.length&&(t=0),this.a[t].e)}d(t,e,i,r){if(!this.a||0==this.a.length)return i;let n=t.a.a;n>=this.a.length&&(n=0);let a=this.a[n].k(t.a.c,e,i,r);if(t.c>0&&t.c<1){let n=this.a[0].g(),s=t.b.a;s>=this.a.length&&(s=0);let o=this.a[s].k(t.b.c,e,i,n);o||(o=n),n=this.a[0].g(),a=this.a[0].h(o,a,t.c,n),r&&this.a[0].i(r,n)}return a}e(){if(this.a&&0!=this.a.length){for(var t=0;t<this.a.length;++t)this.a[t].f(),this.a[t]=null;return null}}}function Xr(t,e){return er(t[4*e+0],t[4*e+1],t[4*e+2],0)}function qr(t,e,i){for(let r=0;r<4;r++)t[4*e+r]=i[r]}const Wr=class{constructor(t,e,i){this.t=null,this.u=null,this.v=null;var r=this;r.a=t,r.b=e,r.c=i.getInt32(),r.d=i.getUint32(),r.e=i.getInt16(),r.f=i.getUint16(),r.g=i.getUint32(),r.h=we(i.getFloat(),i.getFloat(),i.getFloat()),r.i=new Gr(i,Br),r.j=new Gr(i,Pr),r.k=new Gr(i,Br),r.l=ve(),r.m=je(),r.n=ve(),r.o=xr(),r.p=je(),r.q=!1,r.r=!1,r.s=!1}y(){var t=this;t.a=null,t.h=null,t.l=null,t.m=null,t.n=null,t.o=null,t.p=null,t.i.e(),t.j.e(),t.k.e(),t.i=null,t.j=null,t.k=null}z(){this.q=!0;for(var t=0;t<16;++t)this.m[t]=0}A(t){t?(null==this.t&&(this.t=new Ir),this.a.bt(t,this.t)):this.t=null;let e=this.a.ai[this.b];for(let i=0;i<e.length;i++)this.a.ap[e[i]].A(t)}B(t){t?(null==this.u&&(this.u=new Ir),this.a.bt(t,this.u)):this.u=null;let e=this.a.ai[this.b];for(let i=0;i<e.length;i++)this.a.ap[e[i]].B(t)}C(t){var e=this;if(e.q)return void e.z();if(null!=this.t&&this.a.bX(this.t,t),e.r||e.s)return;if(e.r=!0,!e.a)return;qe(e.m);var i=e.a.R;if(!i)return;let r=je();if(Ye(r,r,this.a.aS.viewMatrix),Ye(r,r,this.a.U),Ye(e.m,e.m,r),e.e>-1){e.a.ap[e.e].C(t);let i=je();if(Ge(i,e.a.ap[e.e].m),Ye(i,r,i),1&e.d||2&e.d||4&e.d){if(4&e.d&&2&e.d)qr(i,0,Xr(r,0)),qr(i,1,Xr(r,1)),qr(i,2,Xr(r,2));else if(4&e.d){{let t=Xr(r,0),e=sr(t);ar(t,t,sr(Xr(i,0))/e),qr(i,0,t)}{let t=Xr(r,1),e=sr(t);ar(t,t,sr(Xr(i,1))/e),qr(i,1,t)}{let t=Xr(r,2),e=sr(t);ar(t,t,sr(Xr(i,2))/e),qr(i,2,t)}}else if(2&e.d){{let t=Xr(r,0);ar(t,t,1/sr(Xr(i,0))),ar(t,t,sr(Xr(r,0))),qr(i,0,t)}{let t=Xr(r,1);ar(t,t,1/sr(Xr(i,1))),ar(t,t,sr(Xr(r,1))),qr(i,1,t)}{let t=Xr(r,2);ar(t,t,1/sr(Xr(i,2))),ar(t,t,sr(Xr(r,2))),qr(i,2,t)}}if(1&e.d)qr(i,3,Xr(r,3));else{let t=er(e.h[0],e.h[1],e.h[2],1),n=Qi();ir(n,t),n[3]=0;let a=Qi(),s=Qi();lr(a,t,e.a.ap[e.e].m),lr(a,a,r),lr(s,n,i),nr(a,a,s),a[3]=1,qr(i,3,a)}}let n=je();We(n,r),Ye(i,n,i),Ye(e.m,e.m,i)}let n=null;if(null!=this.t){let t=this.D(this.t);this.a.S||(this.w=t),n=this.a.S?this.w:t}else{let t=this.D(i);this.a.S||(this.w=t),n=this.a.S?this.w:t}let a=null;if(null!=this.u){let t=this.D(this.u);this.a.S||(this.x=t),a=this.a.S?this.x:t}let s=null!=n||null!=a,o=je();s&&(null!=n&&Ye(o,o,n),null!=a&&Ye(o,o,a)),null!=this.v&&(Ze(o,o,this.h),Ye(o,o,this.v),Ze(o,o,Ie(this.n,this.h))),Ye(e.m,e.m,o);let l=120&e.d;if(l){let t=je();Ge(t,e.m);let i=e.m,r=ve();ri(r,e.m);let n=Qi();if(16==l){let t=Xr(e.m,0);ar(t,t,1/Te(t)),qr(e.m,0,t);let r=er(i[4],-i[0],0,0);qr(i,1,or(r,r)),Pe(n,r,t),n[3]=0,qr(i,2,n)}else if(l>16){if(32==l){let t=Xr(i,1);ar(t,t,1/sr(t)),qr(e.m,1,t);let r=er(-i[5],i[1],0,0);qr(i,0,or(r,r)),n[3]=0,qr(i,2,n)}else if(64==l){let t=Xr(i,2);or(t,t),qr(i,2,t);let e=er(t[1],-t[0],0,0);or(e,e),qr(i,1,e),Pe(n,t,e),n[3]=0,qr(i,0,n)}}else if(8==l){let t=this.a.h;if(s){let e=Xr(o,0);e=er(e[1],e[2],-e[0],0),or(e,e),qr(i,0,e);let r=Xr(o,1);r=er(t?-r[1]:r[1],t?-r[2]:r[2],t?r[0]:-r[0],0),or(r,r),qr(i,1,r);let n=Xr(o,2);n=er(n[1],n[2],-n[0],0),or(n,n),qr(i,2,n)}else{qr(i,0,er(0,0,-1,0)),qr(i,1,er(t?-1:1,0,0,0)),qr(i,2,er(0,1,0,0))}}let a=er(this.h[0],this.h[1],this.h[2],1),h=er(this.h[0],this.h[1],this.h[2],0),u=Xr(i,0),c=Xr(i,1),f=Xr(i,2);ar(u,u,r[0]),ar(c,c,r[1]),ar(f,f,r[2]),qr(i,0,u),qr(i,1,c),qr(i,2,f),lr(a,a,t),lr(h,h,i);let d=Qi();nr(d,a,h),d[3]=1,qr(i,3,d)}We(r,r),Ye(e.m,r,e.m),Oe(e.l,e.h,e.m)}D(t){var e=this.i.c(t.a.a),i=this.j.c(t.a.a),r=this.k.c(t.a.a);if(0!=(640&this.d)){let w=je();return qe(w),Ze(w,w,this.h),e&&(this.n=this.i.d(t,this.a.aX),Ze(w,w,this.n)),i&&(this.o=this.j.d(t,this.a.aX,xr()),n=this.p,a=this.o,s=a[0],o=a[1],l=a[2],h=a[3],d=s*(u=s+s),b=o*u,g=o*(c=o+o),_=l*u,p=l*c,m=l*(f=l+l),v=h*u,x=h*c,T=h*f,n[0]=1-g-m,n[1]=b+T,n[2]=_-x,n[3]=0,n[4]=b-T,n[5]=1-d-m,n[6]=p+v,n[7]=0,n[8]=_+x,n[9]=p-v,n[10]=1-d-g,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,Ye(w,w,this.p)),r&&(this.n=this.k.d(t,this.a.aX),Je(w,w,this.n)),Ze(w,w,Ie(this.n,this.h)),w}var n,a,s,o,l,h,u,c,f,d,b,g,_,p,m,v,x,T;return null}};const Yr=class{constructor(t){var e=this;e.a=t.getUint16(),e.b=t.getUint16(),e.c=t.getUint16(),e.d=t.getUint16(),e.e=t.getUint16()+65536*e.b,e.f=t.getUint16(),e.g=t.getUint16(),e.h=we(t.getFloat(),t.getFloat(),t.getFloat()),e.i=we(t.getFloat(),t.getFloat(),t.getFloat()),e.j=t.getFloat()}k(){this.h=null,this.i=null}};var Zr=i(591);const Jr=class{constructor(t){this.a=t.getUint16(),this.b=t.getUint16()}static c(t){t.E=!1,t.o.av&&t.g<t.o.av.length?t.r=t.o.av[t.g]:t.r={a:0,b:0},t.x=0!=(1&t.r.a),t.y=0==(4&t.r.a),t.z=0!=(16&t.r.a)}};class Kr{static a(t){const e=32767&t;return e<$r.length?$r[e]:(WH.debug("Unknown shader effect:",e),["PS_Combiners_Opaque","VS_Diffuse_T1"])}static b(t,e){var i="";if(-1e3==t&&3==e)return"Skin";if(32768&t)return Kr.a(t)[0];if(1==e)i=112&t?"PS_Combiners_Mod":"PS_Combiners_Opaque";else{i=(112&t?"PS_Combiners_Mod":"PS_Combiners_Opaque")+"_"+(112&t?["Opaque","Mod","Mod","Add","Mod2x","Mod","Mod2xNA","AddNA"]:["Opaque","Mod","Mod","AddAlpha","Mod2x","Mod","Mod2xNA","AddAlpha"])[7&t]}return i}static c(t,e){var i="";if(-1e3==t&&3==e)i="T1_T1_T1";else{if(32768&t)return Kr.a(t)[1];i=1==e?128&t?"Env":16384&t?"T2":"T1":128&t?8&t?"Env_Env":"Env_T1":8&t?"T1_Env":16384&t?"T1_T2":"T1_T1"}return"VS_Diffuse_"+i}static d(t,e,i){var r=Kr.b(t,e),n=Kr.c(t,e),a="Wow."+n+"_"+r;if(ge._GetProgram(a))return{name:a};var s={shaders:[Kr.f(n),Kr.g(r,i)],attributes:{position:"aPosition",normal:"aNormal",texcoord0:"aTexCoord0",texcoord1:"aTexCoord1"}};return ge.RegisterProgram(a,s),{name:a}}static e(t){var e={},i={texcoord1:function(t,e){t.INPUT_TEXCOORD1="aTexCoord"+e}};for(var r in t.options){var n=t.options[r];i[r](e,n)}return{name:"Wow."+t.name,config:e}}static f(t){var e="";if(e+="vTexCoord1 = (uTextureMatrix1 * vec4(aTexCoord0, 0, 1)).st;\n",e+="vTexCoord2 = (uTextureMatrix2 * vec4(aTexCoord1, 0, 1)).st;\n","VS"===t.substr(0,2)){var i=(t=t.substr(3)).split("_"),r=i[0];if("Diffuse"===r||"Color"===r){e="",i.splice(0,1);var n={T1:["uTextureMatrix1","aTexCoord0"],T2:["uTextureMatrix2","aTexCoord1"],T3:["","aTexCoord2"],Env:["","texEnv"]},a=1;for(var s in i)n[i[s]]?(n[i[s]][0]&&"texEnv"!=n[i[s]][1]?e+="vTexCoord"+a+" = ("+n[i[s]][0]+" * vec4("+n[i[s]][1]+", 0, 1)).st;\n":"texEnv"==n[i[s]][1]?e+="vTexCoord"+a+" = texEnv;\n":e+="vTexCoord"+a+" = (uTextureMatrix"+a+" * vec4("+n[i[s]][1]+", 0, 1)).st;\n",a++):WH.debug("Missing vertex shader def?",t)}}return" attribute vec3 aPosition;\n attribute vec3 aNormal;\n attribute vec2 aTexCoord0;\n attribute vec2 aTexCoord1;\n attribute vec3 aColor;\n \n varying vec3 vPosition;\n varying vec3 vNormal;\n varying vec2 vTexCoord1;\n varying vec2 vTexCoord2;\n varying vec2 vTexCoord3;\n varying vec2 vTexCoord4;\n \n uniform mat4 uModelMatrix;\n uniform mat4 uPanningMatrix;\n uniform mat4 uViewMatrix;\n uniform mat4 uProjMatrix;\n uniform mat4 uTextureMatrix1;\n uniform mat4 uTextureMatrix2;\n uniform mat4 uTextureMatrix3;\n uniform mat4 uTextureMatrix4;\n uniform vec3 uCameraPos;\n uniform bool uHasTexture1;\n uniform bool uHasTexture2;\n uniform bool uHasTexture3;\n uniform bool uHasTexture4;\n \n vec2 sphereMap(vec3 vertex, vec3 normal)\n {\n vec3 normPos = -(normalize(vertex.xyz));\n vec3 temp = (normPos - (normal * (2.0 * dot(normPos, normal))));\n temp = vec3(temp.x, temp.y, temp.z + 1.0);\n vec2 texCoord = ((normalize(temp).xy * 0.5) + vec2(0.5));\n return texCoord;\n }\n void main(void) {\n vec4 pos = uViewMatrix * uModelMatrix * vec4(aPosition, 1);\n vPosition = pos.rgb;\n vNormal = normalize(mat3(uViewMatrix * uModelMatrix) * aNormal);\n vec2 texEnv = sphereMap(pos.xyz,vNormal.xyz);\n gl_Position = uProjMatrix * uViewMatrix * uModelMatrix * vec4(aPosition, 1);\n \n "+e+"\n vNormal = mat3(uViewMatrix * uModelMatrix) * aNormal; }"}static g(t,e){var i=Qr[t];i||(WH.debug("Missing pixel shader def",t),i=Qr[t="PS_Combiners_Opaque_Mod"]);for(var r="\t\t"+i.slice(1,i.length).join("\n\t\t"),n=0;n<i[0];n++){var a=n+1;r="vec4 tex"+n+" = texture2D(uTexture"+a+", vTexCoord"+a+".st);\n"+r}return" precision mediump float; \n varying vec3 vPosition;\n varying vec3 vNormal;\n varying vec2 vTexCoord1;\n varying vec2 vTexCoord2;\n varying vec2 vTexCoord3;\n varying vec2 vTexCoord4;\n \n uniform bool uHasTexture1;\n uniform bool uHasTexture2;\n uniform bool uHasTexture3;\n uniform bool uHasTexture4;\n uniform bool uHasAlpha;\n uniform bool uHasSpecEmiss;\n uniform bool uHasEmissiveGlowing;\n uniform int uBlendMode;\n uniform bool uUnlit;\n uniform vec4 uColor;\n uniform vec4 uAmbientColor;\n uniform vec4 uDiffuseColor;\n uniform vec4 uPrimaryColor;\n uniform vec4 uSecondaryColor;\n uniform vec3 uLightDir1;\n uniform vec3 uLightDir2;\n uniform vec3 uLightDir3;\n uniform sampler2D uTexture1;\n uniform sampler2D uTexture2;\n uniform sampler2D uTexture3;\n uniform sampler2D uTexture4;\n uniform sampler2D uAlpha;\n uniform vec4 uTexSampleAlpha;\n \n void main(void) {\n vec4 _output = vec4(1.0);\n vec4 _input = uColor;\n vec3 _specular = vec3(0.0); "+r+"\n \n if (uBlendMode == 13) {\n _output.a = _output.a * _input.a;\n } else if (uBlendMode == 1) {\n if (_output.a < (128.0/255.0))\n discard;\n _output.a = _input.a;\n } else if (uBlendMode == 0) {\n _output.a = _input.a;\n } else {\n _output.a = _output.a * _input.a;\n }\n // if (uBlendMode > 1) {\n // if (_output.a < (1.0/255.0)) {\n // discard;\n // }\n // }\n if (!uUnlit) { vec4 litColor = uAmbientColor; vec3 normal = normalize(vNormal); float dp = max(0.0, dot(normal, uLightDir1)); litColor += uPrimaryColor * dp; dp = max(0.0, dot(normal, uLightDir2)); litColor += uSecondaryColor * dp; dp = max(0.0, dot(normal, uLightDir3)); litColor += uSecondaryColor * dp; litColor = clamp(litColor, vec4(0,0,0,0), vec4(1,1,1,1)); _output *= (litColor * uDiffuseColor); } _output += vec4(_specular, 0.0); gl_FragColor = _output.xyzw;\n }"}}const $r=[["PS_Combiners_Opaque_Mod2xNA_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_AddAlpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_AddAlpha_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod2xNA_Alpha_Add","VS_Diffuse_T1_Env_T1","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_AddAlpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_AddAlpha","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_AddAlpha","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_AddAlpha_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Alpha_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod2xNA_Alpha_3s","VS_Diffuse_T1_Env_T1","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Opaque_AddAlpha_Wgt","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_Add_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_ModNA_Alpha","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_AddAlpha_Wgt","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_AddAlpha_Wgt","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_AddAlpha_Wgt","VS_Diffuse_T1_T2","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod_Add_Wgt","VS_Diffuse_T1_Env","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod2xNA_Alpha_UnshAlpha","VS_Diffuse_T1_Env_T1","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_Dual_Crossfade","VS_Diffuse_T1","HS_T1","DS_T1"],["PS_Combiners_Mod_Depth","VS_Diffuse_EdgeFade_T1","HS_T1","DS_T1"],["PS_Combiners_Opaque_Mod2xNA_Alpha_Alpha","VS_Diffuse_T1_Env_T2","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_Mod","VS_Diffuse_EdgeFade_T1_T2","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_Masked_Dual_Crossfade","VS_Diffuse_T1_T2","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Alpha","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Opaque_Mod2xNA_Alpha_UnshAlpha","VS_Diffuse_T1_Env_T2","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_Depth","VS_Diffuse_EdgeFade_Env","HS_T1","DS_T1"],["PS_Guild","VS_Diffuse_T1_T2_T1","HS_T1_T2_T3","DS_T1_T2"],["PS_Guild_NoBorder","VS_Diffuse_T1_T2","HS_T1_T2","DS_T1_T2_T3"],["PS_Guild_Opaque","VS_Diffuse_T1_T2_T1","HS_T1_T2_T3","DS_T1_T2"],["PS_Illum","VS_Diffuse_T1_T1","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod_Mod_Mod_Const","VS_Diffuse_T1_T2_T3","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Mod_Mod_Mod_Const","VS_Color_T1_T2_T3","HS_T1_T2_T3","DS_T1_T2_T3"],["PS_Combiners_Opaque","VS_Diffuse_T1","HS_T1","DS_T1"],["PS_Combiners_Mod_Mod2x","VS_Diffuse_EdgeFade_T1_T2","HS_T1_T2","DS_T1_T2"],["PS_Combiners_Mod","VS_Diffuse_EdgeFade_T1","HS_T1_T2","DS_T1_T2"],["PS_Unknown_34821","VS_Diffuse_EdgeFade_T1_T2","HS_T1_T2","DS_T1_T2"]],Qr={PS_Combiners_Add:[1,"_output.rgb = _input.rgb + tex0.rgb;","_output.a = _input.a + tex0.a;"],PS_Combiners_Decal:[1,"_output.rgb = mix(_input.rgb, tex0.rgb, _input.a);","_output.a = _input.a;"],PS_Combiners_Fade:[1,"_output.rgb = mix(tex0.rgb, _input.rgb, _input.a);","_output.a = _input.a;"],PS_Combiners_Mod:[1,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = tex0.a;"],PS_Combiners_Mod2x:[1,"_output.rgb = _input.rgb * tex0.rgb * 2.0;","_output.a = tex0.a * 2.0;"],PS_Combiners_Opaque:[1,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = 1.0;"],PS_Combiners_Add_Add:[2,"_output.rgb = (_input.rgb + tex0.rgb) + tex1.rgb;","_output.a = (_input.a + tex0.a) + tex1.a;"],PS_Combiners_Add_Mod:[2,"_output.rgb = (_input.rgb + tex0.rgb) * tex1.rgb;","_output.a = (_input.a + tex0.a) * tex1.a;"],PS_Combiners_Add_Mod2x:[2,"_output.rgb = (_input.rgb + tex0.rgb) * tex1.rgb * 2.0;","_output.a = (_input.a + tex0.a) * tex1.a * 2.0;"],PS_Combiners_Add_Opaque:[2,"_output.rgb = (_input.rgb + tex0.rgb) * tex1.rgb;","_output.a = _input.a + tex0.a;"],PS_Combiners_Mod_AddNA:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_output.a = tex0.a;","_specular = tex1.rgb;"],PS_Combiners_Mod_Mod:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;","_output.a = tex0.a * tex1.a;"],PS_Combiners_Mod_Mod2x:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;","_output.a = tex0.a * tex1.a * 2.0;"],PS_Combiners_Mod_Add:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_output.a = tex0.a + tex1.a;","_specular = tex1.rgb;"],PS_Combiners_Mod_Mod2xNA:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;","_output.a = tex0.a;"],PS_Combiners_Mod_Opaque:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;","_output.a = tex0.a;"],PS_Combiners_Mod2x_Add:[2,"_output.rgb = (_input.rgb * tex0.rgb) * 2.0 + tex1.rgb;","_output.a = (tex0.a) * 2.0 + tex1.a;"],PS_Combiners_Mod2x_Mod2x:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 4.0;","_output.a = (tex0.a) * tex1.a * 4.0;"],PS_Combiners_Mod2x_Opaque:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;","_output.a = tex0.a * 2.0;"],PS_Combiners_Opaque_Add:[2,"_output.rgb = (_input.rgb * tex0.rgb) + tex1.rgb;","_output.a = _input.a + tex1.a;"],PS_Combiners_Opaque_AddAlpha:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_specular = (tex1.rgb * tex1.a);"],PS_Combiners_Opaque_AddAlpha_Wgt:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_specular = (tex1.rgb * tex1.a) * uTexSampleAlpha.g;"],PS_Combiners_Opaque_AddAlpha_Alpha:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_specular = (tex1.rgb * tex1.a * (1.0 - tex0.a));"],PS_Combiners_Opaque_AddNA:[2,"_output.rgb = (_input.rgb * tex0.rgb) + tex1.rgb;","_output.a = _input.a;"],PS_Combiners_Opaque_Mod:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;","_output.a = tex1.a;"],PS_Combiners_Opaque_Mod2x:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;","_output.a = tex1.a * 2.0;"],PS_Combiners_Opaque_Mod2xNA:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb * 2.0;",""],PS_Combiners_Opaque_Mod2xNA_Alpha:[2,"_output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb * 2.0, tex0.rgb, vec3(tex0.a));",""],PS_Combiners_Opaque_Opaque:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;",""],PS_Combiners_Opaque_Mod2xNA_Alpha_Add:[3,"_output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb * 2.0, tex0.rgb, vec3(tex0.a));","_specular = tex2.rgb * tex2.a * uTexSampleAlpha.b; "],PS_Combiners_Mod_Mod_Mod_Const:[3,"_output.rgb = _input.rgb * (tex0 * tex1 * tex2).rgb;","_output.a = (tex0 * tex1 * tex2).a;"],PS_Combiners_Mod_AddAlpha:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_output.a = tex0.a;","_specular = tex1.rgb * tex1.a;"],PS_Combiners_Mod_AddAlpha_Wgt:[2,"_output.rgb = (_input.rgb * tex0.rgb);","_output.a = tex0.a;","_specular = tex1.rgb * tex1.a * uTexSampleAlpha.g;"],PS_Combiners_Mod_AddAlpha_Alpha:[2,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = (tex0.a + tex1.a * (0.3 * tex1.r + 0.59 * tex1.g + 0.11 * tex1.b));","_specular = tex1.rgb * tex1.a * (1.0 - tex0.a);"],PS_Combiners_Opaque_Mod_Add_Wgt:[2,"_output.rgb = _input.rgb * mix(tex0.rgb, tex1.rgb, vec3(tex1.a));","_specular = (tex0.rgb * tex0.a) * uTexSampleAlpha.r;"],PS_Guild:[3,"_output.rgb = _input.rgb * mix(tex0.rgb * mix(vec3(1.0, 1.0, 1.0), tex1.rgb * vec3(1.0, 1.0, 1.0), vec3(tex1.a)), tex2.rgb * vec3(1.0, 1.0, 1.0), vec3(tex2.a));","_output.a = tex0.a;"],PS_Guild_Opaque:[3,"_output.rgb = _input.rgb * mix(tex0.rgb * mix(vec3(1.0, 1.0, 1.0), tex1.rgb * vec3(1.0, 1.0, 1.0), vec3(tex1.a)), tex2.rgb * vec3(1.0, 1.0, 1.0), vec3(tex2.a));",""],PS_Guild_NoBorder:[2,"_output.rgb = _input.rgb * tex0.rgb * mix(vec3(1.0, 1.0, 1.0), tex1.rgb * vec3(1.0, 1.0, 1.0), vec3(tex1.a));","_output.a = tex0.a;"],PS_Combiners_Opaque_Alpha_Alpha:[2,"_output.rgb = _input.rgb * mix(mix(tex0.rgb, tex1.rgb, vec3(tex1.a)), tex0.rgb, vec3(tex0.a));",""],PS_Combiners_Opaque_Mod2xNA_Alpha_3s:[3,"_output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb * 2.0, tex2.rgb, vec3(tex2.a));"],PS_Combiners_Mod_Add_Alpha:[2,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = (tex0.a + tex1.a);","_specular = tex1.rgb * (1.0 - tex0.a);"],PS_Combiners_Opaque_ModNA_Alpha:[2,"_output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb, tex0.rgb, vec3(tex0.a));",""],PS_Combiners_Opaque_Mod2xNA_Alpha_UnshAlpha:[3,"float glowOpacity = clamp((tex2.a * vec4(1.0, 1.0, 1.0, 1.0).z), 0.0, 1.0); _output.rgb = _input.rgb * mix(tex0.rgb * tex1.rgb * 2.000000, tex0.rgb, vec3(tex0.a)) * (1.0 - glowOpacity);","_specular = tex2.rgb * glowOpacity;"],PS_Combiners_Opaque_Mod2xNA_Alpha_Alpha:[3,"_output.rgb = _input.rgb * mix(mix(tex0.rgb * tex1.rgb * 2.000000, tex2.rgb, vec3(tex2.a)), tex0.rgb, vec3(tex0.a));",""],PS_Combiners_Mod_Depth:[1,"_output.rgb = _input.rgb * tex0.rgb;","_output.a = tex0.a;"],PS_Combiners_Opaque_Alpha:[2,"_output.rgb = _input.rgb * mix(tex0.rgb, tex1.rgb, vec3(tex1.a));",""],Skin:[3,"//Fresnel Rim\r\nif (uHasSpecEmiss) {\r\n vec3 emissiveColor = tex2.rgb;\r\n vec3 emissiveTerm = tex2.rgb;\r\n if (uHasEmissiveGlowing) {\r\n vec3 eyeVec_120 = vPosition.xyz;\r\n vec3 t121 = -(eyeVec_120);\r\n vec2 term_126 = vec2(dot(t121, vNormal), dot(normalize(t121), (vNormal * vec3(0.0500000007, 0.0500000007, 1.0))));\r\n vec2 invTerm_128 = (vec2(1.0) - clamp(term_126, 0.0, 1.0));\r\n vec2 f_129 = (invTerm_128 * invTerm_128);\r\n float fresnel_rim_133 = pow((f_129.x + f_129.y), 0.600000024);\r\n vec3 t136 = (tex2.rgb /*+ ((vec3(0.0500000007, 0.0, 0.400000006) * 1.0) * fresnel_rim_133)*/);\r\n emissiveColor = vec3(t136.r, tex2.g, t136.b);\r\n\r\n float t267 = dot(normalize(vNormal), normalize(-(vPosition.xyz)));\r\n emissiveTerm = mix(vec3(0.0), 2.0*emissiveColor, vec3(pow(clamp(t267, 0.0, 1.0), (( 128.0 * (tex2.a)) + 9.99999975e-006))));\r\n }\r\n\r\n _output.rgb = _input.rgb * tex0.rgb + tex1.rgb + emissiveTerm.rgb;\r\n} else {\r\n _output.rgb = _input.rgb * tex0.rgb;\r\n}\r\n_output.a = tex0.a; //"],PS_Combiners_Mod_Dual_Crossfade:[3,"_output.rgb = _input.rgb * mix(mix(tex0, texture2D(uTexture2,vTexCoord1), vec4(clamp(uTexSampleAlpha.g, 0.000000, 1.000000))), texture2D(uTexture3,vTexCoord1), vec4(clamp(uTexSampleAlpha.b, 0.000000, 1.000000))).rgb;","_output.a = mix(mix(tex0, texture2D(uTexture2,vTexCoord1), vec4(clamp(uTexSampleAlpha.g, 0.000000, 1.000000))), texture2D(uTexture3,vTexCoord1), vec4(clamp(uTexSampleAlpha.b, 0.000000, 1.000000))).a;"],PS_Combiners_Mod_Masked_Dual_Crossfade:[4,"_output.rgb = _input.rgb * mix(mix(tex0, texture2D(uTexture2,texCoord), vec4(clamp(uTexSampleAlpha.g, 0.000000, 1.000000))), texture2D(uTexture3,texCoord), vec4(clamp(uTexSampleAlpha.b, 0.000000, 1.000000))).rgb;","_output.a = mix(mix(tex0, texture2D(uTexture2,texCoord), vec4(clamp(uTexSampleAlpha.g, 0.000000, 1.000000))), texture2D(uTexture3,texCoord), vec4(clamp(uTexSampleAlpha.b, 0.000000, 1.000000))).a * texture(uTexture4,texCoord2).a;"],PS_Unknown_34821:[2,"_output.rgb = (_input.rgb * tex0.rgb) * tex1.rgb;","_output.a = tex0.a * tex1.a;"]},tn=Kr;const en=class{constructor(){this.h=!1,this.i=!0}},rn=[0,1,2,10,3,4,5,13];const nn=class{constructor(t){this.E=!1,this.F=!1;var e=this;e.a=t.getUint8(),e.b=t.getInt8(),e.c=t.getUint16(),e.d=t.getUint16(),e.e=t.getUint16(),e.f=t.getInt16(),e.g=t.getUint16(),e.h=t.getUint16(),e.i=t.getUint16(),e.j=t.getInt16(),e.k=t.getUint16(),e.l=t.getInt16(),e.m=t.getInt16(),e.n=!0,e.o=null,e.p=null,e.q=0,e.r=null,e.s=[],e.t=[],e.u=new Array,e.v=null,e.w=[],e.x=!1,e.y=!1,e.z=!1,e.A=Qi(),e.B=ve(),e.C=xr()}K(t){var e=this;e.o=t,e.p=t.as[e.d],e.q=e.p.a,Jr.c(e);let i=this.o.ax[e.j];1==this.i&&i>-1&&1==this.o.aw[i].c&&(this.c=-1e3,this.i=3);const r=tn.d(e.c,e.i,e.r);e.H=r;for(let i=0;i<e.i;i++){if(e.j>-1&&e.j<t.ax.length){let r=t.ax[e.j+i];r>-1&&r<t.aw.length&&e.s.splice(i,0,t.aw[r])}if(e.m>-1&&e.m<t.az.length){let r=t.az[e.m+i];r>-1&&t.ay&&r<t.ay.length?e.t.splice(i,0,t.ay[r]):e.t.splice(i,0,null)}if(e.l>-1&&e.l<t.aF.length){let r=t.aF[e.l+i];r>-1&&r<t.aE.length?e.w.splice(i,0,t.aE[r]):e.w.splice(i,0,null)}}this.u=new Array(e.t.length);for(let t=0;t<this.u.length;t++)this.u[t]=je();e.E&&(e.s=e.s.reverse(),e.t=e.t.reverse()),t.aD&&e.f>-1&&e.f<t.aD.length&&(e.v=t.aD[e.f]),e.D=this.r.b>1}L(){const t=this,e=t.o.aS.context,i=ge.GetProgram(e,t.H.name,t.H.config);t.G=i,t.H=i.program,t.I=i.uniforms}M(){let t=er(this.p.i[0],this.p.i[1],this.p.i[2],1),e=this.o.ap[this.p.g].m,i=je();Ye(i,i,this.o.aW.uViewMatrix),Ye(i,i,this.o.U),Ye(i,i,e),lr(t,t,i),t[3]=0;let r=hr(t);if((3&this.a)>0){let e=Qi();r>0?ar(e,t,1/r):ir(e,t),ar(e,e,Te(we(i[8],i[9],i[10]))*this.p.j),1&this.a?nr(e,t,e):rr(e,t,e),r=sr(e)}return r}N(t){const e=this,i=e.o,r=e.o.aS.context,n=e.o.R;if(e.G||e.L(),!e.G.program)return;if(this.J||(this.J=new en,this.J.a=e.G,this.J.b=Object.assign({},i.aW)),this.J.c=i.aU,this.J.d=i.aV,this.J.b=Object.assign({},i.aW),e.A[0]=e.A[1]=e.A[2]=e.A[3]=1,e.v&&e.v.g(n,e.o.aX,e.A),e.w[0]&&(e.A[3]*=e.w[0].d(n,e.o.aX)),e.A[3]<=.001)return;let a=e.r.b;const s=[0,0,0];for(let t=0;t<e.w.length;t++){const i=e.w[t];i&&(s[t]=i.d(n,e.o.aX))}this.J.b.uColor=e.A,this.J.b.uTexSampleAlpha=er(s[0],s[1],s[2],0),this.J.b.uBlendMode=a,this.J.b.uHasSpecEmiss=i.aJ&&i.aJ.h,this.J.b.uHasEmissiveGlowing=i.n==bi||i.n==gi,this.J.e=rn[a],this.J.i=!this.o.aY,this.J.b.uUnlit=e.x?1:0,this.J.n=this.M(),this.J.m=this.b,this.J.o=this.h;const o=this.O();let l=!0;for(const t in o){const e=o[t],i=e.a&&e.a.d;l=l&&(null==e.a||null!=i),i&&(this.J.b[e.c]=i)}l&&!e.F&&(e.F=!0),e.t.forEach(((t,i)=>{if(!e.o.S&&(qe(e.u[i]),e.t[i])){let t=!1,r=!1;e.t[i].a&&e.t[i].a.c(n.a.a)?(e.B=e.t[i].a.d(n,e.o.aX),r=!0):Ae(e.B,0,0,0),e.t[i].b&&e.t[i].b.c(n.a.a)?(e.C=e.t[i].b.d(n,e.o.aX),t=!0):Fr(e.C,0,0,0,1);let a,s=!1;if(e.t[i].c&&e.t[i].c.c(n.a.a)&&(a=e.t[i].c.d(n,e.o.aX),s=!0),qe(e.u[i]),Ze(e.u[i],e.u[i],we(.5,.5,0)),s&&Je(e.u[i],e.u[i],a),t){let t=je();ei(t,e.C,[0,0,0]),Ye(e.u[i],e.u[i],t)}r&&Ze(e.u[i],e.u[i],e.B),Ze(e.u[i],e.u[i],we(-.5,-.5,0))}this.J.b["uTextureMatrix"+(i+1).toString()]=e.u[i]})),this.J.h=e.y,this.J.f=!e.z,this.J.j=r.TRIANGLES,this.J.l=2*e.p.e,this.J.k=e.p.f,t.push(this.J)}O(){let t=0;const e=[];this.s.forEach(((i,r)=>{const n=r;let a=null;if(this.s[n])if(this.s[0]&&1==this.s[0].c&&r>0)1==r?a=this.o.aJ&&this.o.aJ.b?{d:this.o.aJ.b}:{d:this.o.aS.blackPixelTexture}:2==r&&(a=this.o.aJ&&this.o.aJ.c?{d:this.o.aJ.c}:{d:this.o.aS.blackPixelTexture});else if(1==this.s[n].c)this.o.aK?a=this.o.aK.a:this.o.aJ&&this.o.aJ.a&&(a={d:this.o.aJ.a});else if(this.s[n].f)a=this.s[n].f;else if(((this.o.a.type<8||this.o.a.type>32)&&2==this.s[n].c||[2,11,12,13].includes(this.s[n].c))&&this.o.B[this.s[n].b])a=this.o.B[this.s[n].b];else if(-1!=this.s[n].c&&this.o.B[this.s[n].c])a=this.o.B[this.s[n].c];else if(-1!=this.s[n].c&&this.o.C[this.s[n].c][n])a=this.o.C[this.s[n].c][n].a;else if(8==this.s[n].c&&this.o.v)a=this.o.v.C[this.s[n].c][0].a;else if(!this.s[n].e&&this.j+t<this.o.aw.length){let e=this.o.aw[this.j+t];e&&e.f&&(a=e.f)}else this.s[n].g||WH.debug("can't find texture for material",n,"type",this.s[n].c),this.s[n].g=!0;e[n]=a,t++}));const i={};for(let r=0;r<t;r++)i["Texture"+(r+1)]={a:e[r],b:r,c:"uTexture"+(r+1),d:"TEXTURE"+r};return i}get show(){return this.n}set show(t){this.n=t}get meshId(){return this.q}P(){this.o=null,this.p=null,this.r=null,this.s=null,this.t=null,this.v=null,this.w=null,this.A=null,this.u=null,this.B=null,this.C=null}};const an=class{constructor(t,e,i){var r=this;t.aS.context;0==i&&console.log("Texture file is 0"),r.b=t,r.c=t.k.contentPath+"textures/"+i+".png",r.d=null,r.f=!1,function(t,e){t.a=new Image,t.a.crossOrigin="",t.a.onload=function(){t.i()},t.a.onerror=function(){t.a=null},t.a.src=t.c}(r)}g(){return this.f}h(){var t=this;if(t.b){var e=t.b.aS.context;t.d&&e.deleteTexture(t.d),t.d=null,t.b=null}}i(){var t=this;if(t.b){var e=t.b.aS.context;t.d=e.createTexture(),e.bindTexture(e.TEXTURE_2D,t.d),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.a),r(t.a.width)&&r(t.a.height)?e.generateMipmap(e.TEXTURE_2D):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR));var i=t.b.aS.aniFilterExt;i&&e.texParameteri(e.TEXTURE_2D,i.TEXTURE_MAX_ANISOTROPY_EXT,t.b.aS.aniFilterMax),t.f=!0}function r(t){return 0==(t&t-1)}}};const sn=class{constructor(t,e,i){var r=this;r.a=t,r.b=e,r.c=i.getInt32(),r.d=i.getUint32(),r.e=i.getUint32(),r.f=null,r.g=!1,r.i()}h(){var t=this;t.a=null,t.f&&t.f.h(),t.f=null}i(){var t=this;0!=t.e&&(t.f=new an(t.a,0,t.e))}};const on=class{constructor(t){this.a=new Gr(t,Br),this.b=new Gr(t,Pr),this.c=new Gr(t,Br)}d(){var t=this;t.a&&(t.a.e(),t.a=null),t.b&&(t.b.e(),t.b=null),t.c&&(t.c.e(),t.c=null)}};const ln=class{constructor(t){var e=this;e.a=t.getInt32(),e.b=t.getInt32(),e.c=we(t.getFloat(),t.getFloat(),t.getFloat()),e.d=-1}e(){this.c=null}};const hn=class{constructor(t){this.a=new Gr(t,Br),this.b=new Gr(t,zr)}c(){var t=this;t.a&&t.a.e(),t.b&&t.b.e()}d(t){return!!this.a&&this.a.c(t)}e(t){return!!this.b&&this.b.c(t)}f(t){return this.d(t)||this.e(t)}g(t,e,i){var r=this;i?i[0]=i[1]=i[2]=i[3]=1:i=er(1,1,1,1);let n=we(1,1,1);return r.d(t.a.a)&&r.a.d(t,e,n,n),r.e(t.a.a)&&(i[3]=r.b.d(t,e,i[3])/32767),i[0]=n[0],i[1]=n[1],i[2]=n[2],i}};const un=class{constructor(t){this.a=new Gr(t,zr)}b(){this.a.e(),this.a=null}c(t){return this.a.c(t)}d(t,e){var i=1;this.c(t.a.a)&&(i=this.a.d(t,e,i)/32767);return i>1?i=1:i<0&&(i=0),i}};const cn=class{constructor(){this.a=0,this.b=0,this.c=-1,this.d=null,this.e=null}};class fn extends cn{}const dn=class{constructor(t,e){this.d=!1,this.a=t,this.b=e,this.c=new Array(e.length)}e(t){for(let e=0;e<this.b.length;e++)this.c[e]&&this.c[e].e&&this.c[e].e.setAnimation(t)}f(t){this.d=t}g(t){for(let e=0;e<this.b.length;e++)switch(this.b[e].EffectType){case 1:if(1==this.b[e].ProcEffectType){let t=this.b[e].Value[0];this.a.V=er((t>>16&255)/255,(t>>8&255)/255,(255&t)/255,this.a.V[3])}else if(14==this.b[e].ProcEffectType){let t=Math.min(Math.max(this.b[e].Value[0],0),1);this.a.V[3]=t}else if(22==this.b[e].ProcEffectType){let t=this.b[e].Value[3];this.a.V=er((t>>16&255)/255,(t>>8&255)/255,(255&t)/255,this.a.V[3])}break;case 2:this.h(e,t)}}h(t,e){if(!this.a)return;if(!this.a.d)return;if(!this.c[t]){let e=this.b[t].AttachmentID;this.b[t].Positioner>-1&&(e=this.b[t].Positioner),e<0&&(e=19);let i=this.a.bV(e);if(this.c[t]=new fn,this.c[t].d=i,this.c[t].c=i?i.b:-1,0==this.b[t].ModelType){let e={type:hi.PATH,id:this.b[t].Model,parent:this.a,shoulder:-1};this.c[t].e=new $n(this.a.aS,this.a.k,e,0,!1,!0,!1)}else if(1==this.b[t].ModelType){let e=this.a.n>0?this.a.n:1,i=-1!=this.a.o?this.a.o:0;this.a.n=e,this.a.o=i,this.c[t].ba=new _n(this.a,this.b[t].InvType,this.b[t].Model,e,i)}else if(2==this.b[t].ModelType){let e={type:hi.NPC,id:this.b[t].Model,parent:this.a,shoulder:-1};this.c[t].e=new $n(this.a.aS,this.a.k,e,0,!1,!0,!1)}}if(!(0!=this.b[t].ModelType||this.c[t].e&&this.c[t].e.d))return;if(!(1!=this.b[t].ModelType||this.c[t].ba&&this.c[t].ba.m))return;if(!(2!=this.b[t].ModelType||this.c[t].e&&this.c[t].e.d))return;let i=je();Qe(i,i,-this.b[t].Yaw),$e(i,i,this.b[t].Pitch),Ke(i,i,this.b[t].Roll),Je(i,i,[this.b[t].Scale1,this.b[t].Scale1,this.b[t].Scale1]),Je(i,i,[this.b[t].Scale2,this.b[t].Scale2,this.b[t].Scale2]);let r=je();if(this.c[t].d){let e=this.c[t].d.c;Ye(r,r,this.a.ap[this.c[t].c].m),Ze(r,r,we(e[0],e[1],e[2]))}if(Ze(r,r,we(this.b[t].Offset[0],-this.b[t].Offset[1],this.b[t].Offset[2])),Ye(r,r,i),0==this.b[t].ModelType){let i=this.c[t].e;i.setAnimPaused(this.d),i.bs(this.a.U,r,null,null),i.bY(e)}else if(1==this.b[t].ModelType)for(let i=0;i<this.c[t].ba.i.length;i++){let n=this.c[t].ba.i[i].e;n.d&&(n.setAnimPaused(this.d),n.bs(this.a.U,r,null,null),n.bY(e))}else if(2==this.b[t].ModelType){let i=this.c[t].e;i.setAnimPaused(this.d),i.bs(this.a.U,r,null,null),i.bY(e)}}};const bn=class{constructor(t,e,i){var r=this;r.a=t,r.d=e,r.b=[],r.c=!1,r.f=[],i&&r.h(i)}g(){var t=this;if(t.a=null,t.b){for(var e=0;e<t.b.length;++e){var i=t.b[e];i&&(i.e&&i.e.ba(),i.e=null,i.d=null,t.b[e]=null)}t.b=null}}h(t){var e=this;e.e=t;var i=e.a.k.contentPath+"meta/itemvisual/"+e.e+".json";$.getJSON(i,(function(t){e.i(t)}))}i(t){var e=this;if(e.b=new Array(7),t.ItemEffects)for(let r=0;r<t.ItemEffects.length;++r){let n=t.ItemEffects[r];if(-1==n.SubClass||this.d==n.SubClass){if(n.Model){e.b[n.Slot-1]=new cn;var i={type:hi.PATH,id:n.Model,parent:e.a,shoulder:-1};e.b[n.Slot-1].e=new $n(e.a.aS,e.a.k,i,0,!1,!0,!1)}n.kit&&(this.a.E,this.a.E.push(new dn(this.a,n.kit.effects)))}}for(var r=0;r<e.b.length;++r)if(t.Equipment[r]&&null==e.b[r]){e.b[r]=new cn;i={type:hi.PATH,id:t.Equipment[r],parent:e.a,shoulder:-1};e.b[r].e=new $n(e.a.aS,e.a.k,i,r,!1,!0,!1)}e.c=!0,e.a.bH()}j(t){if(this.a.d){for(var e=0;e<this.f.length;e++)this.f[e].g(t);for(var i=0;i<this.b.length;i++){var r=this.b[i];if(r){let e=we(0,0,0);if(i>=5||r&&r.d&&(e=r.d.c),-1!=r.c){let i=this.a.ap[r.c].m;r.e.bs(this.a.U,i,e,null),r.e.bY(t)}}}}}};class gn{static a(t,e,i,r,n){let a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];if(!e)return WH.debug("selectBestTexture:","textures are null"),null;for(let t=0;t<e.length;t++){let s=e[t],o=s.Gender,l=s.Class,h=s.Race,u=s.ExtraData,c=0;if(i>1||o!=i){if(o<2)continue;c=0}else c=2;let f=1;if(r>0&&l==r)f=0;else if(l>0)continue;let d=1;if(n>0&&h==n)d=0;else if(h>0)continue;a[u+3*(d+2*(c+f))]=s.FileDataId}for(let t=0;t<2;t++)for(let e=0;e<2;e++)for(let i=0;i<2;i++){let r=3*(t+2*(e+2*i));if(a[r]>0){let t;return t={a:a[r],b:a[r+1],c:a[r+2]},t}}if(t){let a=t.bR(i,n,!0);if(a&&0!=a[0])return n=a[0],i=a[1],gn.a(t,e,i,r,n)}return null}static b(t,e,i,r,n,a){let s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(let t=0;t<e.length;t++){let o=e[t],l=o.Gender,h=o.Class,u=o.Race,c=o.ExtraData,f=0;if(r>1||l!=r){if(l<2)continue;f=0}else f=2;let d=1;if(n>0&&h==n)d=0;else if(h>0)continue;let b=1;if(a>0&&u==a)b=0;else if(u>0)continue;let g=1;if(-1==i||c!=i){if(-1!=c&&-1!=i)continue}else g=0;s[g+2*(b+2*(f+d))]=o.FileDataId}for(let t=0;t<2;t++)for(let e=0;e<2;e++)for(let i=0;i<2;i++)for(let r=0;r<2;r++){let n=r+2*(t+2*(e+2*i));if(s[n])return s[n]}if(t){var o=t.bR(r,a,!1);if(o&&0!=o[0])return a=o[0],r=o[1],gn.b(t,e,i,r,n,a)}return 0}}const _n=class{constructor(t,e,i,r,n){this.q=null,this.r=[],WH.debug("Creating item",i),this.a=t,this.b=e,this.s=i,this.t=r,this.u=n,this.e=pi[e],this.f=mi[e],this.i=null,this.j=null,this.k=null,this.g=0,this.h=0,this.m=!1,this.n=!1,this.o=0,this.p=3,i&&this.y()}x(){var t=this;if(t.i){for(let e=0;e<t.i.length;++e)t.i[e].e&&t.i[e].e.ba(),t.i[e].e=null,t.i[e].d=null,t.i[e]=null;t.i=null}if(t.j){for(let e=0;e<t.j.length;++e)t.j[e].texture&&t.j[e].texture.h(),t.j[e].texture=null,t.j[e]=null;t.j=null}if(t.k=null,t.l=null,t.r){for(let e=0;e<t.r.length;e++)t.r[e].g();t.r=null}t.m=!1,t.q&&(t.q.ba(),t.q=null),t.a&&(t.a.bB(),t.a=null),WH.debug("Destroyed item",this.s)}y(){let t=this;WH.debug("Loading item",this.s);let e="meta/item/";const i=this.b;i!=Ti&&i!=wi&&i!=yi&&i!=Ai&&i!=Ei&&i!=Ci&&i!=Si&&i!=Mi&&i!=ki&&i!=Ii&&i!=Ui&&i!=Bi||(e="meta/armor/"+i+"/");let r=t.a.k.contentPath+e+t.s+".json";$.getJSON(r).done((function(e){t.z(e)})).fail((function(e,i,r){let n=i+", "+r;WH.debug("Error loading item metadata",t.s,n),t.n=!0}))}z(t){if(!this.a)return void WH.debug("Item was destroyed before it was loaded",this.s);if(this.h=parseInt(t.Item.Flags),this.g=parseInt(t.Item.InventoryType),this.c=parseInt(t.Item.ItemClass),this.d=parseInt(t.Item.ItemSubClass),t.ComponentTextures){this.j=[];for(let e in t.ComponentTextures){const i=parseInt(e),r=gn.a(this.a,t.TextureFiles[t.ComponentTextures[e]],this.a.o,this.a.p,this.a.n);if(r){let t;t={region:i,gender:this.a.o,file:r.a,texture:null},i!=Wi?t.texture=new an(this.a,i,r.a):this.b==Ii&&(this.a.B[2]=new an(this.a,2,r.a)),this.j.push(t)}}}if(this.k=t.Item.GeosetGroup,this.l=t.Item.AttachGeosetGroup,this.b==Ti){0==this.a.o?this.v=t.Item.HideGeosetMale:this.w=t.Item.HideGeosetFemale}if(this.b==wi?this.i=new Array(2):xi[this.b]!=hi.ARMOR&&(this.i=new Array(1)),this.i)for(let e=0;e<this.i.length;++e){const i={race:this.t,gender:this.u,bone:-1,attachment:null,model:null},r={type:xi[this.b],id:this.s,parent:this.a,shoulder:0};this.b==wi&&(r.shoulder=e+1),i.e=new $n(this.a.aS,this.a.k,r,e,!1,!1,!0),i.e.n=this.t,i.e.o=this.u,i.e.bS(t,r.type),this.i[e]=i}if((this.b==Ei||this.b==Ii)&&t.ComponentModels){let e=0;if(this.b==Ii&&(e=1),t.ComponentModels[e]){const i={type:xi[this.b],id:this.s,parent:this.a,shoulder:0},r=new $n(this.a.aS,this.a.k,i,0,!1,!1,!0);r.u=t;const n={race:0,gender:0,bone:-1,attachment:null,model:null};n.e=r,this.i=[n];let a=1,s=0,o=1;this.a&&(a=this.a.n,s=this.a.o,o=this.a.p);const l=t.ComponentModels[e],h=gn.b(r,t.ModelFiles[l],-1,s,o,a);if(h){r.bQ(hi.PATH,h);const i=0==e?t.Textures:t.Textures2;if(i)for(let t in i)0!=i[t]&&(r.B[+t]=new an(r,parseInt(t),i[t]))}}}const e=this.b;if((e==yi||e==Ai||e==Bi||e==Ei||e==Ci||e==ki||e==Si||e==Ti||e==Ii)&&t.ComponentModels){let i=0;if(e!=Ti&&e!=Ei||(i=1),t.ComponentModels[i]){const r=t.ComponentModels[i];if(r&&t.ModelFiles&&t.ModelFiles[r]){const n={type:xi[e],id:this.s,parent:this.a,shoulder:0},a=new $n(this.a.aS,this.a.k,n,0,!1,!1,!0);a.u=t;let s=1,o=0,l=1;this.a&&(s=this.a.n,o=this.a.o,l=this.a.p);const h=gn.b(a,t.ModelFiles[r],-1,o,l,s);if(h){this.q=a,a.bQ(hi.PATH,h);const e=0==i?t.Textures:t.Textures2;if(e)for(let t in e)0!=e[t]&&(a.B[+t]=new an(a,parseInt(t),e[t]))}}}}if(e==Ci&&this.k[2]>0&&(this.f+=2),0!=this.o){const t=2==this.c?this.d:-1;for(let e=0;e<this.i.length;e++)this.r.push(new bn(this.i[e].e,t,this.o))}this.a.bH(),this.m=!0,WH.debug("Loaded item",this.s)}A(t){for(let t=0;t<this.r.length;t++)this.r[t].g();this.r=[],this.o=t}B(t){this.p=t}C(t){if(!this.i)return;if(this.a.d){const t=this.a.bN(this.e,this);for(let e=0;e<this.i.length;++e)if(this.i[e]&&t.length>e){let i=this.a.aB[t[e]];if(this.i[e].c=i.b,this.i[e].d=i,this.r[e]&&this.r[e].b){const t=this.i[e].e;for(let r=0;r<this.r[e].b.length;r++)if(t.aB&&this.r[e].b[r]){if(r<5){if(!t.aB[r])continue;i=t.aB[r]}else i=t.bV(19);this.r[e].b[r].c=i.b,this.r[e].b[r].d=i}}}}let e=je(),i=ve();for(let r=0;r<this.i.length;++r){const n=this.i[r];if(n&&n.e){if(this.b==wi){if(1==n.e.a.shoulder&&0==(1&this.p))continue;if(2==n.e.a.shoulder&&0==(2&this.p))continue}if(n.c>-1&&n.c<this.a.ap.length){this.r[r]&&n.e.d&&this.r[r].j(t);let a=!1,s=si[n.e.a.id];if(qe(e),s&&(Ae(i,1,1,-1),Je(e,e,i),a=!0),this.b!=zi&&this.b!=Oi&&this.e!=zi||0==(256&this.h)||(Ae(i,1,-1,1),Je(e,e,i),a=!0,n.e.h=!0),n.e.aY=a,5==this.a.H&&this.b==Ni&&2==this.c&&18==this.d&&(qe(e),Ke(e,e,-Math.PI/2)),27==this.b){let t=n.e.u.Scale;Ae(i,t,t,t),Je(e,e,i)}n.e.bs(this.a.U,this.a.ap[n.c].m,n.d.c,e),n.e.bW(),n.e.bY(t)}else-1==n.c&&this.a.bG(n.e,t)}}}};const pn=class{constructor(t){this.c=t,this.b=267320826^t;let e=new ArrayBuffer(4);this.a=new DataView(e)}d(){let t=this.b;return t^=t<<13,t^=t>>17,t^=t<<5,this.b=t,t}e(){let t,e=this.d();return this.a.setInt32(0,1065353216|8388607&e),t=2147483648&e?2-this.a.getFloat32(0):this.a.getFloat32(0)-2,t}f(){let t=this.d();return this.a.setInt32(0,1065353216|8388607&t),this.a.getFloat32(0)-1}};const mn=class{constructor(){this.a=0,this.b=0,this.c=0,this.d=0,this.e=ve(),this.f=0,this.g=0,this.h=0,this.i=0,this.j=0}};const vn=class{constructor(t,e){this.b=t,this.c=e,this.a=new mn}d(){return this.a.d+this.b.e()*this.c.u}e(){return this.a.d+this.c.u}f(){return this.a.c+this.c.s}g(t){return this.a.c+30518509e-12*t*this.c.s}h(){let t=this.a.a;return t*=1+this.a.b*this.b.e(),t}i(){return this.a}j(t){ye(t,this.a.e)}};const xn=class extends vn{k(t,e){let i,r=e*this.b.f(),n=this.b.e();i=n<1?n>-1?Math.trunc(32767*n+.5):-32767:32767,t.d=i;let a=this.g(i);a<.001&&(a=.001),t.b=function(t,e){let i=Math.abs(t),r=Math.abs(e);return Number((i-Math.floor(i/r)*r).toPrecision(8))*Math.sign(t)}(r,a),t.e=65535&this.b.d(),Ae(t.a,this.b.e()*this.a.g*.5,this.b.e()*this.a.h*.5,0);let s=this.h(),o=this.a.f;if(o<.001){let e=this.a.i*this.b.e(),i=this.a.j*this.b.e(),r=Math.sin(e),n=Math.sin(i),a=Math.cos(e),o=Math.cos(i);Ae(t.c,o*r*s,n*r*s,a*s)}else{let e=ve();ye(e,t.a),e[2]=e[2]-o,Te(e)>1e-4&&(Ue(e,e),Fe(t.c,e,s))}}};const Tn=class extends vn{constructor(t,e,i){super(t,e),this.ba=i}k(t,e){let i,r=e*this.b.f(),n=this.b.e();i=n<1?n>-1?Math.trunc(32767*n+.5):-32767:32767,t.d=i;let a=this.g(i);a<.001&&(a=.001),t.b=function(t,e){let i=Math.abs(t),r=Math.abs(e);return Number((i-Math.floor(i/r)*r).toPrecision(8))*Math.sign(t)}(r,a),t.e=65535&this.b.d();let s=this.a.h-this.a.g,o=this.a.g+s*this.b.f(),l=this.a.i*this.b.e(),h=this.a.j*this.b.e(),u=Math.cos(l),c=we(u*Math.cos(h),u*Math.sin(h),Math.sin(l));Fe(t.a,c,o);let f=this.h(),d=this.a.f,b=we(.5,.5,.5);0==d?this.ba?Ae(b,0,0,1):Ae(b,u*Math.cos(h),u*Math.sin(h),Math.sin(l)):(Ae(b,0,0,d),Ce(b,t.a,b),Te(b)>1e-4&&Ue(b,b)),Fe(t.c,b,f)}};const wn=class{constructor(t){this.a=t.getInt32(),this.b=t.getUint32(),this.c=we(t.getFloat(),t.getFloat(),t.getFloat()),this.d=t.getInt16(),this.e=t.getInt16(),0!=(268435456&this.b)&&(this.f=[0,0,0],this.f[0]=31&this.e,this.f[1]=this.e>>5&31,this.f[2]=this.e>>10&31),this.g=t.getUint8(),this.h=t.getUint8(),this.i=t.getUint16(),this.j=t.getUint16(),this.k=t.getUint16(),this.l=t.getUint16(),this.m=new Gr(t,Or),this.n=new Gr(t,Or),this.o=new Gr(t,Or),this.p=new Gr(t,Or),this.q=new Gr(t,Br),this.r=new Gr(t,Or),this.s=t.getFloat(),this.t=new Gr(t,Or),this.u=t.getFloat(),this.v=new Gr(t,Or),this.w=new Gr(t,Or),this.x=new Gr(t,Or),this.y=new Vr(t),this.z=new jr(t),this.A=new Hr(t),this.B=[t.getFloat(),t.getFloat()],this.C=new jr(t),this.D=new jr(t),this.E=t.getFloat(),this.F=t.getFloat(),this.G=t.getFloat(),this.H=[t.getFloat(),t.getFloat()],this.I=t.getFloat(),this.J=t.getFloat(),this.K=t.getFloat(),this.L=t.getFloat(),this.M=t.getFloat(),this.N=t.getFloat(),this.O=we(t.getFloat(),t.getFloat(),t.getFloat()),this.P=we(t.getFloat(),t.getFloat(),t.getFloat()),this.Q=we(t.getFloat(),t.getFloat(),t.getFloat()),this.R=t.getFloat(),this.S=t.getFloat(),this.T=t.getFloat(),this.U=t.getFloat(),this.V=t.getFloat();var e=t.getInt32();this.W=new Array(e);for(var i=0;i<e;i++)this.W[i]=we(t.getFloat(),t.getFloat(),t.getFloat());this.X=new Gr(t,Nr),this.Y=dr(t.getFloat(),t.getFloat()),this.Z=[dr(t.getFloat(),t.getFloat()),dr(t.getFloat(),t.getFloat())],this.aa=[dr(t.getFloat(),t.getFloat()),dr(t.getFloat(),t.getFloat())]}};const yn=class{constructor(){this.a=ve(),this.b=0,this.c=ve(),this.d=0,this.e=2147483647*Math.random()>>0,this.f=[fr(),fr()],this.g=[fr(),fr()]}};let An=new Array(128);for(let t=0;t<128;t++)An[t]=Math.random();const En=Xe(0,1,0,0,-1,0,0,0,0,0,1,0,0,0,0,1);class Cn{}class Sn{constructor(){this.a=ve(),this.b=0,this.c={a:fr(),b:ve(),c:0,d:0,e:0}}}function Mn(t){return er((t>>16&255)/255,(t>>8&255)/255,(t>>0&255)/255,(t>>24&255)/255)}const kn=class{constructor(t,e){this.E=0,this.U=!1,this.a=(new Date).getTime(),this.b=t;let i=new wn(e);if(i.i>=11&&i.i<=13){let e;t.u.Item&&t.u.Item.ParticleColor?e=t.u.Item.ParticleColor:t.u.Creature&&t.u.Creature.ParticleColor&&(e=t.u.Creature.ParticleColor),e&&(this.H=[Qi(),Qi(),Qi()],ir(this.H[0],Mn(e.Start[i.i-11])),ir(this.H[1],Mn(e.Mid[i.i-11])),ir(this.H[2],Mn(e.End[i.i-11])))}this.c=i,this.d=je(),this.e=je(),this.f=je(),this.g=je(),this.h=Qi(),this.i=pr(),this.j=ve(),this.k=1,this.l=ve(),this.m=0,this.n=ve(),this.o=ve(),this.p=[],this.q=ve(),this.r=0,this.s=0,this.t=0,this.u=0,this.v=ve(),this.w=ve(),this.x=0,this.y=0,this.z=0,this.A=0,this.B=0,this.C=0,this.D=0,this.F=[],this.G=[];for(let t=0;t<1e3;t++)this.G.push(4*t+0),this.G.push(4*t+1),this.G.push(4*t+2),this.G.push(4*t+3),this.G.push(4*t+2),this.G.push(4*t+1);switch(this.J=new pn(2147483647*Math.random()>>0),this.c.h){case 1:this.I=new xn(this.J,i);break;case 2:this.I=new Tn(this.J,i,0!=(256&this.c.b));break;default:this.I=null,WH.debug("Found unimplemented generator ",this.c.h)}const r=this.c.U-this.c.S;0!=r?(this.s=(this.c.V-this.c.T)/r,this.t=this.c.T-this.c.S*this.s):(this.s=0,this.t=0);let n=this.c.l;n<=0&&(n=1);let a=this.c.k;a<=0&&(a=1),this.y=n*a-1,this.z=0;let s=n,o=-1;do{++o,s>>=1}while(s);if(this.A=o,this.B=n-1,this.z=0,(32768&this.c.b)>0){let t=(this.y+1)*this.J.d();this.z=t/4294967296|0}if(this.C=1/n,this.D=1/a,(269484032&this.c.b)>0){const t=0!=(1&this.c.b>>28);this.r=t?2:3}else this.r=0;this.K=i.g>1}W(){var t=this;t.b=null,t.c.c=null,t.c.O=null,t.c.P=null,t.c.m=t.c.m.e(),t.c.n=t.c.n.e(),t.c.o=t.c.o.e(),t.c.p=t.c.p.e(),t.c.q=t.c.q.e(),t.c.r=t.c.r.e(),t.c.t=t.c.t.e(),t.c.v=t.c.v.e(),t.c.w=t.c.w.e(),t.c.x=t.c.x.e(),t.c.X=t.c.X.e(),t.c.y=t.c.y.d(),t.c.z=t.c.z.d(),t.c.A=t.c.A.d(),t.c.C=t.c.C.d(),t.c.D=t.c.D.d(),t.p=null}X(t,e,i){if(!this.I)return;let r=je(),n=this.I.i(),a=!0;this.c.X.c(t.a.a)&&(a=this.c.X.d(t,this.b.aX)>0),this.T=a;const s=we(0,0,0);a&&(n.a=this.c.m.d(t,this.b.aX,0),n.b=this.c.n.d(t,this.b.aX,0),n.i=this.c.o.d(t,this.b.aX,0),n.j=this.c.p.d(t,this.b.aX,0),this.c.q.d(t,this.b.aX,s,n.e),n.c=this.c.r.d(t,this.b.aX,0),n.d=this.c.t.d(t,this.b.aX,0),n.h=this.c.w.d(t,this.b.aX,0),n.g=this.c.v.d(t,this.b.aX,0),n.f=i?i.a:this.c.x.d(t,this.b.aX,0)),Ye(r,r,this.b.U),Ye(r,r,this.b.ap[this.c.d].m);let o=je();ti(o,we(this.c.c[0],this.c.c[1],this.c.c[2])),Ye(r,r,o),Ye(r,r,En);let l=je(),h=ve();We(l,this.b.aS.viewMatrix),ii(h,l),this.aa(e,r,h,null,this.b.aS.viewMatrix),this.ak(this.b.aS.viewMatrix);let u=this.b.aS.context;this.L?(u.bindBuffer(u.ARRAY_BUFFER,this.L),u.bufferData(u.ARRAY_BUFFER,new Float32Array(this.F),u.DYNAMIC_DRAW)):(this.L=u.createBuffer(),u.bindBuffer(u.ARRAY_BUFFER,this.L),u.bufferData(u.ARRAY_BUFFER,new Float32Array(this.F),u.DYNAMIC_DRAW)),this.M||(this.M=u.createBuffer(),u.bindBuffer(u.ELEMENT_ARRAY_BUFFER,this.M),u.bufferData(u.ELEMENT_ARRAY_BUFFER,new Uint16Array(this.G),u.DYNAMIC_DRAW))}Y(t){if(this.p.length<=0)return;const e=this.b.aS.context;if(this.V||(this.V=new en,this.V.a=se(e,[" attribute vec3 aPosition;\n attribute vec4 aColor; attribute vec2 aTexcoord0; attribute vec2 aTexcoord1; attribute vec2 aTexcoord2; varying vec4 vColor; varying vec2 vTexcoord0; varying vec2 vTexcoord1; varying vec2 vTexcoord2; uniform mat4 uModelMatrix; uniform mat4 uViewMatrix; uniform mat4 uProjMatrix; void main(void) { vec4 pos = vec4(aPosition, 1); gl_Position = uProjMatrix * pos; vColor = aColor; vTexcoord0 = aTexcoord0; vTexcoord1 = aTexcoord1; vTexcoord2 = aTexcoord2; } "," precision mediump float;\n varying vec4 vColor; varying vec2 vTexcoord0; varying vec2 vTexcoord1; varying vec2 vTexcoord2; uniform bool uHasTexture; uniform bool uHasTexture2; uniform bool uHasTexture3; uniform bool uHasAlpha; uniform int uBlendMode; uniform int uPixelShader; uniform sampler2D uTexture; uniform sampler2D uTexture2; uniform sampler2D uTexture3; uniform float uAlphaTreshold; void main(void) { float lo_thresh = 0.01; vec4 color = vec4(1, 1, 1, 1); vec4 tex = vec4(1, 1, 1, 1); vec4 tex2 = vec4(1, 1, 1, 1); vec4 tex3 = vec4(1, 1, 1, 1); if (uHasTexture) { tex = texture2D(uTexture, vTexcoord0).rgba; } if (uHasTexture2) { tex2 = texture2D(uTexture2, vTexcoord1).rgba; } if (uHasTexture3) { tex3 = texture2D(uTexture3, vTexcoord2).rgba; } vec4 finalColor = vec4((tex * vColor ).rgb, tex.a*vColor.a ); if (uPixelShader == 0) { vec3 matDiffuse = vColor.xyz * tex.rgb; finalColor = vec4(matDiffuse.rgb, tex.a*vColor.a); } else if (uPixelShader == 1) { vec4 textureMod = tex*tex2; float texAlpha = (textureMod.w * tex3.w); float opacity = texAlpha*vColor.a; vec3 matDiffuse = vColor.xyz * textureMod.rgb; finalColor = vec4(matDiffuse.rgb, opacity); } else if (uPixelShader == 2) { vec4 textureMod = tex*tex2*tex3; float texAlpha = (textureMod.w); float opacity = texAlpha*vColor.a; vec3 matDiffuse = vColor.xyz * textureMod.rgb; finalColor = vec4(matDiffuse.rgb, opacity); } else if (uPixelShader == 3) { vec4 textureMod = tex*tex2*tex3; float texAlpha = (textureMod.w); float opacity = texAlpha*vColor.a; vec3 matDiffuse = vColor.xyz * textureMod.rgb; finalColor = vec4(matDiffuse.rgb, opacity); }; if (finalColor.a < uAlphaTreshold ) discard; gl_FragColor = finalColor; } "],null,null),this.V.b={},this.V.a.attributes=[{loc:e.getAttribLocation(this.V.a.program,"aPosition"),type:e.FLOAT,size:3,offset:0,stride:52},{loc:e.getAttribLocation(this.V.a.program,"aColor"),type:e.FLOAT,size:4,offset:12,stride:52},{loc:e.getAttribLocation(this.V.a.program,"aTexcoord0"),type:e.FLOAT,size:2,offset:28,stride:52},{loc:e.getAttribLocation(this.V.a.program,"aTexcoord1"),type:e.FLOAT,size:2,offset:36,stride:52},{loc:e.getAttribLocation(this.V.a.program,"aTexcoord2"),type:e.FLOAT,size:2,offset:44,stride:52}],this.V.c=this.L,this.V.d=this.M,this.V.m=this.c.j),!this.S)if(this.S=[null,null,null],0!=(268435456&this.c.b)){WH.debug("multitexture particle",this.c.f[0],this.c.f[1],this.c.f[2],this);for(let t=0;t<this.c.f.length;t++){const e=this.c.f[t];e>-1&&e<this.b.aw.length&&(this.S[t]=this.b.aw[e])}}else this.c.e>-1&&this.c.e<this.b.aw.length&&(this.S[0]=this.b.aw[this.c.e]);if(!this.S[0].f||!this.S[0].f.f)return;this.V.b.uViewMatrix=this.b.aS.viewMatrix,this.V.b.uProjMatrix=this.b.aS.projMatrix,this.V.b.uBlendMode=this.c.g,this.V.b.uPixelShader=this.r>1?this.r-1:0;let i=[this.S[0]&&this.S[0].f&&this.S[0].f.f,this.S[1]&&this.S[1].f&&this.S[1].f.f,this.S[2]&&this.S[2].f&&this.S[2].f.f];this.V.b.uTexture=this.S[0].f.d,this.V.b.uTexture2=i[1]?this.S[1].f.d:null,this.V.b.uTexture3=i[2]?this.S[2].f.d:null,this.V.b.uHasTexture=i[0]?1:0,this.V.b.uHasTexture2=i[1]?1:0,this.V.b.uHasTexture3=i[2]?1:0;let r=this.c.g;4==r&&(r=3),this.V.e=r,this.V.i=!this.b.aY;let n=-1;1==r?n=.501960814:r>1&&(n=1/255),this.V.b.uAlphaTreshold=n,this.V.h=!1,this.V.f=!1,this.V.j=e.TRIANGLES,this.V.k=6*this.E>>0,this.V.l=0,t.push(this.V)}Z(t,e){if(0==(16&this.c.b))for(let i=0;i<this.p.length;i++){const r=this.p[i];Oe(r.a,r.a,t),Ne(r.c,r.c,e)}}aa(t,e,i,r,n){if(null==this.I)return;if(this.b.S)return;ii(this.l,this.d);let a=Qi();ii(a,e),a[3]=1,lr(a,a,n),this.m=a[2];let s=ve();if(ii(s,n),this.ab(e,s,r),t>0){let e=ve();if(ii(e,this.d),16384&this.c.b){Ce(this.o,e,this.l);let i=this.s*(Te(this.o)/t)+this.t;i>=0&&(i=Math.min(i,1)),Fe(this.n,this.o,i)}if(64&this.c.b){this.u+=t;let i=.03;if(this.u>i)if(this.u=0,0==this.p.length){let t=i/this.u,r=ve();Ce(r,e,this.l);let n=t*this.c.I;Se(this.v,r,we(n,n,n))}else Ae(this.v,0,0,0)}this.ac(t)}}ab(t,e,i){if(ye(this.w,e),null==i||16&this.c.b)Ge(this.d,t);else{let e=je();We(e,i),Ye(this.d,e,t)}let r=ve();ri(r,t),this.k=r[0]}ac(t){if((t=Math.max(t,0))<.1)ye(this.n,this.o);else{let e=Math.floor(t/.1);t=-.1*e+t;let i=Math.min(Math.floor(this.I.i().lifespan/.1),e),r=i+1,n=1;n=r<0?(1&r|r>>1)+(1&r|r>>1):r,Fe(this.n,this.o,1/n);for(let t=0;t<i;t++)this.ad(.1)}this.ad(t)}ad(t){let e=new Cn;if(t<0)return;this.c.b,this.ae(e,t),this.af(t);let i=0;for(;i<this.p.length;){let r=this.p[i];r.b=r.b+t,r.b>Math.max(this.I.g(r.e),.001)?(this.ai(i),i--):this.aj(r,t,e)||(this.ai(i),i--),i++}}ae(t,e){t.a=ve(),t.b=ve(),t.c=ve(),t.d=0;let i=we(e,e,e),r=e*e*.5,n=we(r,r,r);Se(t.a,this.c.Q,i);let a=ve();this.I.j(a),Se(t.b,a,i),Se(t.c,a,n),t.d=this.c.J*e}af(t){if(!this.T)return;let e=this.I.d();for(this.x=this.x+t*e;this.x>1;)this.ag(t),this.x-=1}ag(t){let e=this.ah();if(this.I.k(e,t),!(16&this.c.b)){let t=er(e.a[0],e.a[1],e.a[2],1),i=er(e.c[0],e.c[1],e.c[2],0);lr(t,t,this.d),lr(i,i,this.d),ye(e.a,t),ye(e.c,i),8192&this.c.b&&(e.a[2]=0)}if(64&this.c.b){let t=1+this.I.i().speedVariation*this.J.e(),i=ve();Fe(i,this.v,t),Ee(e.c,e.c,i)}if(this.r>=2)for(let t=0;t<2;t++){e.f[t][0]=this.J.f(),e.f[t][1]=this.J.f();let a=fr();_r(a,this.c.aa[t],this.J.e()),i=e.g[t],r=a,n=this.c.Z[t],i[0]=r[0]+n[0],i[1]=r[1]+n[1]}var i,r,n}ah(){let t=new yn;return this.p.push(t),t}ai(t){this.p.splice(t,1)}aj(t,e,i){if(this.r>=2)for(let i=0;i<2;i++){let r=t.f[i][0]+e*t.g[i][0];t.f[i][0]=r-Math.floor(r),r=t.f[i][1]+e*t.g[i][1],t.f[i][1]=r-Math.floor(r)}Ee(t.c,t.c,i.a),16384&this.c.b&&2*e<t.b&&Ee(t.a,t.a,this.n);let r=we(e,e,e),n=ve();if(Se(n,t.c,r),Ee(t.c,t.c,i.b),Fe(t.c,t.c,1-i.d),Ee(t.a,t.a,n),Ee(t.a,t.a,i.c),2==this.c.h&&128&this.c.b){let e=ve();if(ye(e,t.a),16&this.c.b){if(Be(e,n)>0)return!1}else{let i=ve();if(ii(i,this.d),Ce(e,t.a,i),Be(e,n)>0)return!1}}return!0}ak(t){if(this.F.length=0,0==this.p.length&&null!=this.I)return;We(this.f,t),mr(pr(),t),this.al(null,t);let e=0;for(let t=0;t<this.p.length;t++){let i=this.p[t],r=new Sn;if(this.an(i,r)&&(131072&this.c.b&&(this.ap(i,r),e++),262144&this.c.b&&(this.aq(i,r),e++)),e>=1e3)break}this.E=e}al(t,e){var i,r,n;16&this.c.b?Ye(this.g,e,this.d):null!=t?Ye(this.g,e,t):Ge(this.g,e),ii(this.h,e),4096&this.c.b&&(mr(this.i,this.g),16&this.c.b&&Math.abs(this.k)>0&&(i=this.i,r=this.i,n=1/this.k,i[0]=r[0]*n,i[1]=r[1]*n,i[2]=r[2]*n,i[3]=r[3]*n,i[4]=r[4]*n,i[5]=r[5]*n,i[6]=r[6]*n,i[7]=r[7]*n,i[8]=r[8]*n),Ae(this.j,this.i[6],this.i[7],this.i[8]),De(this.j)<=2.3841858e-7?Ae(this.j,0,0,1):Ue(this.j,this.j))}am(t){let e=0,i=0;if(0!=this.c.K||0!=this.c.N){let r=new pn(t.e);e=0==this.c.L?this.c.K:this.c.K+r.e()*this.c.L,i=0==this.c.N?this.c.M:this.c.M+r.e()*this.c.N}else e=this.c.K,i=this.c.M;return{deltaSpin:i,baseSpin:e}}an(t,e){let i=this.c.G,r=this.c.H,n=r[0],a=r[1]-n,s=0,o=t.e,l=t.b;if((i<1||0!=a)&&(s=127&l*this.c.F+o),i<An[s])return 0;this.ao(t,e,o);let h=a*An[s]+n;_r(e.c.a,e.c.a,h),32&this.c.b&&_r(e.c.a,e.c.a,this.k);let u=er(t.a[0],t.a[1],t.a[2],1);return lr(u,u,this.g),ye(e.a,u),e.b=1,1}ao(t,e,i){let r=t.b/this.I.f(),n=new pn(i);Math.min(r,1)<=0?r=0:r>=1&&(r=1);let a=we(255,255,255),s=dr(1,1),o=1,l=e.c;this.c.y.i(r,a,l.b,this.H),this.H||Fe(l.b,l.b,1/255),this.c.A.i(r,s,l.a),l.e=this.c.z.i(r,1)/32767;let h=0;this.c.C.a.length>0?(o=0,l.c=this.c.C.i(r,o),l.c=this.y&l.c+this.z):65536&this.c.b?(h=(this.y+1)*n.d(),l.c=h/4294967296|0):l.c=0,o=0,l.d=this.c.D.i(r,o),l.d=l.d+this.z&this.y;let u=1;524288&this.c.b?(u=Math.max(1+n.e()*this.c.B[1],99999997e-12),l.a[0]=Math.max(1+n.e()*this.c.B[0],99999997e-12)*l.a[0]):(u=Math.max(1+n.e()*this.c.B[0],99999997e-12),l.a[0]=u*l.a[0]),l.a[1]=u*l.a[1]}ap(t,e){let i=dr((e.c.c&this.B)*this.C,(e.c.c>>this.A)*this.D),r=0,n=0,a=this.am(t);r=a.baseSpin,n=a.deltaSpin;let s=0,o=we(0,0,0),l=we(0,0,0),h=!1,u=!1;if(4&this.c.b&&De(t.c)>2.3841858e-7)if(s=1,4096&this.c.b)h=!0;else{let i=er(-t.c[0],-t.c[1],-t.c[2],0);lr(i,i,this.g);let r=ve();ye(r,i);let n=0,a=De(r);n=a<=2.3841858e-7?0:1/Math.sqrt(a);let s=ve();ye(s,r),Fe(s,s,n),ye(o,s),Fe(o,o,e.c.a[0]),l=we(s[1],-s[0],0),Fe(l,l,e.c.a[1]),u=!0,h=!1}if((4096&this.c.b||h)&&!u){let i=pr();c=i,f=this.i,c[0]=f[0],c[1]=f[1],c[2]=f[2],c[3]=f[3],c[4]=f[4],c[5]=f[5],c[6]=f[6],c[7]=f[7],c[8]=f[8];let a=e.c.a[0];if(s){let r=0,n=we(-t.c[0],-t.c[1],-t.c[2]),s=De(n);r=s<=2.3841858e-7?0:1/Math.sqrt(s),vr(i,this.i,function(t,e,i,r,n,a,s,o,l){var h=new me(9);return h[0]=t,h[1]=e,h[2]=i,h[3]=r,h[4]=n,h[5]=a,h[6]=s,h[7]=o,h[8]=l,h}(n[0]*r,n[1]*r,0,-n[1]*r,n[0]*r,0,0,0,1)),r>2.3841858e-7&&(a=e.c.a[0]*(1/Math.sqrt(De(t.c))/r))}if(this.r,Ae(o,i[0],i[1],i[2]),Fe(o,o,a),Ae(l,i[3],i[4],i[5]),Fe(l,l,e.c.a[1]),n=l[0],u=!0,0!=this.c.M||0!=this.c.N){let e=r+n*t.b;512&this.c.b&&1&t.e&&(e=-e);let i=ve();ye(i,this.j),this.r;let a=pr(),s=xr();Tr(s,i,e),function(t,e){var i=e[0],r=e[1],n=e[2],a=e[3],s=i+i,o=r+r,l=n+n,h=i*s,u=r*s,c=r*o,f=n*s,d=n*o,b=n*l,g=a*s,_=a*o,p=a*l;t[0]=1-c-b,t[3]=u-p,t[6]=f+_,t[1]=u+p,t[4]=1-h-b,t[7]=d-g,t[2]=f-_,t[5]=d+g,t[8]=1-h-c}(a,s),Ne(o,o,a),Ae(l,n,l[1],l[2]),Ne(l,l,a)}}var c,f;if(!u)if(0!=this.c.M||0!=this.c.N){let i=r+n*t.b;512&this.c.b&&1&t.e&&(i=-i);let a=Math.cos(i),s=Math.sin(i);Ae(o,a,s,0),Fe(o,o,e.c.a[0]),Ae(l,-s,a,0),Fe(l,l,e.c.a[1]),134217728&this.c.b&&Ee(e.a,e.a,we(l[0],l[1],0))}else Ae(o,e.c.a[0],0,0),Ae(l,0,e.c.a[1],0);return this.ar(o,l,e.a,e.c.b,e.c.e,i[0],i[1],t.f),0}aq(t,e){let i=dr((e.c.d&this.B)*this.C,(e.c.d>>this.A)*this.D),r=we(0,0,0),n=we(0,0,0),a=this.c.E;1024&this.c.b&&(a=Math.min(t.b,a));let s=Qi();Fe(s,t.c,-1),s[3]=0,lr(s,s,this.g),Fe(s,s,a);let o=we(s[0],s[1],0);if(Be(o,o)>1e-4){let t=1/Te(o);_r(e.c.a,e.c.a,t),gr(o,o,e.c.a),n=we(-o[1],o[0],0),Fe(r,s,.5),Ee(e.a,e.a,r)}else r=we(.05*e.c.a[0],0,0),n=we(0,.05*e.c.a[1],0);return this.ar(r,n,e.a,e.c.b,e.c.e,i[0],i[1],t.f),1}ar(t,e,i,r,n,a,s,o){const l=[-1,-1,1,1],h=[1,-1,1,-1],u=[0,0,1,1],c=[0,1,0,1];let f=ve(),d=fr(),b=fr(),g=fr();for(let _=0;_<4;_++)Ae(f,0,0,0),Re(f,f,t,l[_]),Re(f,f,e,h[_]),Ee(f,f,i),br(d,u[_]*this.C+a,c[_]*this.D+s),br(b,u[_]*this.c.Y[0]+o[0][0],c[_]*this.c.Y[0]+o[0][1]),br(g,u[_]*this.c.Y[1]+o[1][0],c[_]*this.c.Y[1]+o[1][1]),this.F.push(f[0]),this.F.push(f[1]),this.F.push(f[2]),this.F.push(r[0]),this.F.push(r[1]),this.F.push(r[2]),this.F.push(n),this.F.push(d[0]),this.F.push(d[1]),this.F.push(b[0]),this.F.push(b[1]),this.F.push(g[0]),this.F.push(g[1])}};const Fn=class{constructor(t){this.a=t.getFloat()}};const Rn=class{constructor(t){this.buffer=new DataView(t),this.position=0}getBool(){var t=0!=this.buffer.getUint8(this.position);return this.position+=1,t}getUint8(){var t=this.buffer.getUint8(this.position);return this.position+=1,t}getInt8(){var t=this.buffer.getInt8(this.position);return this.position+=1,t}getUint16(){var t=this.buffer.getUint16(this.position,!0);return this.position+=2,t}getInt16(){var t=this.buffer.getInt16(this.position,!0);return this.position+=2,t}getUint32(){var t=this.buffer.getUint32(this.position,!0);return this.position+=4,t}getInt32(){var t=this.buffer.getInt32(this.position,!0);return this.position+=4,t}getFloat(){var t=this.buffer.getFloat32(this.position,!0);return this.position+=4,t}getString(t){void 0===t&&(t=this.getUint16());for(var e="",i=0;i<t;++i)e+=String.fromCharCode(this.getUint8());return e}setBool(t){this.buffer.setUint8(this.position,t?1:0),this.position+=1}setUint8(t){this.buffer.setUint8(this.position,t),this.position+=1}setInt8(t){this.buffer.setInt8(this.position,t),this.position+=1}setUint16(t){this.buffer.setUint16(this.position,t,!0),this.position+=2}setInt16(t){this.buffer.setInt16(this.position,t,!0),this.position+=2}setUint32(t){this.buffer.setUint32(this.position,t,!0),this.position+=4}setInt32(t){this.buffer.setInt32(this.position,t,!0),this.position+=4}setFloat(t){this.buffer.setFloat32(this.position,t,!0),this.position+=4}};class Dn{constructor(){this.a=ve(),this.b=Qi(),this.c=fr()}}class In{}const Un=[0,1,2,10,3,4,5,13];function Bn(t,e){return we(t[4*e+0],t[4*e+1],t[4*e+2])}class Pn{}const zn=class{constructor(t,e){this.g=ve(),this.h=ve(),this.p=new In,this.q=ve(),this.r=ve(),this.s=ve(),this.t=ve(),this.u=ve(),this.v=ve(),this.w=ve(),this.x=ve(),this.y=ve(),this.z=ve(),this.A=ve(),this.B=ve(),this.O=ve(),this.V=t.aS.context,this.a=t;let i=new Pn;var r;if(i.a=e.getInt32(),i.b=e.getInt32(),i.c=we(e.getFloat(),e.getFloat(),e.getFloat()),(r=e.getInt32())>0){i.j=new Array(r);for(let t=0;t<r;++t)i.j[t]=e.getInt16()}if((r=e.getInt32())>0){i.k=new Array(r);for(let t=0;t<r;++t)i.k[t]=e.getInt16()}i.l=new Gr(e,Br),i.m=new Gr(e,zr),i.n=new Gr(e,Or),i.o=new Gr(e,Or),i.d=e.getFloat(),i.e=e.getFloat(),i.f=e.getFloat(),i.g=e.getInt16(),i.h=e.getInt16(),i.p=new Gr(e,zr),i.q=new Gr(e,Nr),i.r=e.getInt16(),this.U=i,this.ab=new Array(i.k.length),this.ae=new Array(i.k.length);for(let e=0;e<i.k.length;e++)this.ae[e]=t.av[i.k[e]];let n=er(255,255,255,255),a=new In;a.a=0,a.b=0,a.c=1,a.d=1,this.au(i.d,i.e,n,a,i.h,i.g),this.ag(i.f),this.af(!1)}af(t){this.L=t,this.L||(this.J=!1)}ag(t){this.S=t}ah(){return this.e==this.d}ai(t){this.R=t}aj(t){this.Q=t}ak(t){this.F[3]=Math.max(t,0)}al(){let t=ve();He(t,this.g,this.O);let e=De(t);Fe(t,this.q,this.R),Ce(this.w,this.g,t),Fe(t,this.r,this.R),Ce(this.x,this.O,t),Fe(t,this.q,this.Q),Ee(this.y,this.g,t),Fe(t,this.r,this.Q),Ee(this.z,this.O,t),Fe(this.u,this.s,e),Fe(this.v,this.t,e)}am(t,e,i){let r;if(this.M&&this.L){r=t;let i=ve();ii(i,r),Ee(i,i,e),ye(this.h,e),this.J?(ye(this.g,this.O),ye(this.s,this.t),ye(this.q,this.r)):(ye(this.g,i),this.s=Bn(r,2),this.q=Bn(r,1),this.f=0,this.J=!0),this.O=i,this.t=Bn(r,2),this.r=Bn(r,1)}}an(t){var e=pr();mr(e,t),this.s=Ne(this.s,this.s,e),this.q=Ne(this.q,this.q,e),this.t=Ne(this.t,this.t,e),this.r=Ne(this.r,this.r,e),this.g=Oe(this.g,this.g,t),this.O=Oe(this.O,this.O,t);for(var i=0;i<this.i.length;i++)Oe(this.i[i].a,this.i[i].a,t)}ao(t,e,i){this.F[2]=i,this.F[1]=e,this.F[0]=t}ap(t){if(this.P!=t){this.P=t;let e=t%this.I,i=e;0!=(2147483648&e)&&(i=(1&e|e>>1)+(1&e|e>>1));let r=i*this.l+this.G.b;this.p.b=r;let n=t/this.I,a=n;0!=(2147483648&n)&&(n=1&n|n>>1,a=n+n,r=this.p.b);let s=a*this.m+this.G.a;this.p.a=s,this.p.d=r+this.l,this.p.c=s+this.m}}aq(t,e,i){let r,n=this.i[2*this.d],a=this.i[2*this.d+1],s=ve();Fe(s,this.v,1-e),Ce(s,this.x,s),Fe(n.a,s,e),Fe(s,this.u,e),Ee(s,this.w,s),Fe(s,s,1-e),Ee(n.a,n.a,s),Fe(s,this.v,1-e),Ce(s,this.z,s),Fe(a.a,s,e),Fe(s,this.u,e),Ee(s,this.y,s),Fe(s,s,1-e),Ee(a.a,a.a,s),this.c[this.d]=t,r=i,this.d=this.d+r,this.d>=this.c.length&&(this.d-=this.c.length)}ar(t,e){if(this.a.S)return;let i=ve(),r=1;i=this.U.l.d(t,this.a.aX,i),r=this.U.m.d(t,this.a.aX),this.ao(i[0],i[1],i[2]),this.ak(r/32767);let n=this.U.n.d(t,this.a.aX);this.aj(n);let a=this.U.o.d(t,this.a.aX);this.ai(a);let s=this.U.p.d(t,this.a.aX);this.ap(s);let o=this.U.q.d(t,this.a.aX,1);this.af(0!=o);let l=je();ai(l,this.a.U,this.a.ap[this.U.b].m),Ze(l,l,this.U.c);let h=ve();this.am(l,h,null),this.as(e,!1)}as(t,e){let i,r,n,a,s,o,l,h,u,c,f,d,b,g,_,p,m,v,x,T,w,y,A,E,C,S,M,k,F,R,D,I,U,B,P,z,O,N,L,H,V,j,G,X,q,W,Y,Z;for(this.N||this.C>0&&(t=1/this.C+99999997e-12),t>=0?this.D<=t&&(t=this.D):t=0,v=this.e;v!=this.d&&!(t+this.c[v]<=this.D);v=this.e)this.e=this.at(this.e,1);if(!e&&this.M&&this.L&&this.J){D=t*this.C+this.f,Z=this.F,this.al();let e=!1;if(B=0,D<1?e=!0:(Y=this.f,U=1/(D-Y),m=Math.floor(D-1),B=Math.ceil(Math.max(m,0))),-1==B||e);else for(I=1,v=1;R=this.d,N=this.i.length,this.i[2*R].b=Z,x=2*this.d+1,L=this.i.length,this.i[x].b=Z,this.aq((v-Y)*U*-t,(v-Y)*U,1),-1!=--B;v=I)I+=1,Y=this.f;T=Math.floor(D),this.f=D-T,this.aq(0,1,0),F=this.d,H=this.i.length,w=this.i[2*F],y=this.p.b,w.c[1]=this.p.a,w.c[0]=y,A=2*this.d+1,V=this.i.length,E=this.i[A],C=this.p.b,E.c[1]=this.p.c,E.c[0]=C,k=this.d,j=this.i.length,this.i[2*k].b=Z,S=2*this.d+1,G=this.i.length,this.i[S].b=Z}this.A[2]=34028235e31,this.A[1]=34028235e31,this.A[0]=34028235e31,this.B[2]=-34028235e31,this.B[1]=-34028235e31,this.B[0]=-34028235e31,P=this.e;for(let e=this.e;e!=this.d;P=e)p=2*e,W=this.i.length,M=P,O=this.i[2*e],i=p+1,r=this.i[2*e+1],n=(this.S+this.S)*this.c[M]*t+t*this.S*t,O.a[2]=O.a[2]+n,r.a[2]=n+r.a[2],a=O.a[0],s=this.A[0],s>O.a[0]&&(s=O.a[0],this.A[0]=a,a=O.a[0]),o=O.a[1],l=this.A[1],l>o&&(l=O.a[1],this.A[1]=o,o=O.a[1]),h=O.a[2],u=this.A[2],u>h&&(u=O.a[2],this.A[2]=h,h=O.a[2]),a>this.B[0]&&(this.B[0]=a),o>this.B[1]&&(this.B[1]=o),h>this.B[2]&&(this.B[2]=h),c=r.a[0],s>r.a[0]&&(this.A[0]=c,c=r.a[0]),f=r.a[1],l>f&&(this.A[1]=f,f=r.a[1]),d=r.a[2],u>d&&(this.A[2]=d,d=r.a[2]),c>this.B[0]&&(this.B[0]=c),f>this.B[1]&&(this.B[1]=f),d>this.B[2]&&(this.B[2]=d),X=this.c.length,this.c[M]=t+this.c[M],b=this.l,q=this.c.length,g=b*this.c[M]*this.k+this.p.b,O.c[1]=this.p.a,O.c[0]=g,r.c[1]=this.p.c,r.c[0]=g,_=this.c.length,z=P+1,e=z-_,_>z&&(e=z);this.N=!0}at(t,e){let i=e+t;t=i;let r=this.c.length;return i>=r&&(t=i-r),t}au(t,e,i,r,n,a){let s,o,l,h,u,c,f,d;f=Math.ceil(t),d=Math.max(.25,e),s=Math.ceil(d*f),o=Math.ceil(Math.max(s+1+1,0)),this.c=new Array(o),this.e=0,this.d=0,this.f=0,this.J=!1,this.i=new Array(2*o);for(let t=0;t<this.i.length;t++){this.i[t]=new Dn;let e=this.i[t];e.a[0]=0,e.a[1]=0,e.a[2]=0,e.b=er(0,0,0,0),e.c[0]=0,e.c[1]=0}this.j=new Array(4*o);for(let t=0;t<this.j.length;t++)this.j[t]=t%(2*o);this.k=1/d,l=a,0!=(2147483648&a)&&(l=(1&a|a>>1)+(1&a|a>>1)),this.l=(r.d-r.b)/l,h=n,0!=(2147483648&n)&&(h=(1&n|n>>1)+(1&n|n>>1)),this.m=(r.c-r.a)/h,this.n=1/this.l,this.o=1/this.m,this.C=f,this.D=d,ar(i,i,1/255),this.F=i,this.G=r,this.H=n,this.I=a,this.P=0,u=0*this.l+this.G.b,this.p.b=u,c=0*this.m+this.G.a,this.p.a=c,this.p.d=u+this.l,this.p.c=c+this.m,this.Q=10,this.R=10,this.S=0,this.M=!0,this.L=!0,this.K=!0}av(){let t=new Array(this.i.length);for(let e=0,i=0;e<this.i.length;++e)t[i++]=this.i[e].a[0],t[i++]=this.i[e].a[1],t[i++]=this.i[e].a[2],t[i++]=this.i[e].b[0],t[i++]=this.i[e].b[1],t[i++]=this.i[e].b[2],t[i++]=this.i[e].b[3],t[i++]=this.i[e].c[0],t[i++]=this.i[e].c[1];if(this.ah())return;let e=this.V;this.W?(e.bindBuffer(e.ARRAY_BUFFER,this.W),e.bufferData(e.ARRAY_BUFFER,new Float32Array(t),e.DYNAMIC_DRAW)):(this.W=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.W),e.bufferData(e.ARRAY_BUFFER,new Float32Array(t),e.DYNAMIC_DRAW)),this.X?(e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.X),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array(this.j),e.DYNAMIC_DRAW)):(this.X=e.createBuffer(),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.X),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array(this.j),e.DYNAMIC_DRAW))}aw(t){if(this.ah())return;let e=this.V;for(let r=0;r<this.U.j.length;r++){if(!this.ab[r]){let t=new en;t.a=se(e,[" attribute vec3 aPosition;\n attribute vec4 aColor;\n attribute vec2 aTexcoord0;\n uniform mat4 uViewMatrix;\n uniform mat4 uProjMatrix;\n varying vec4 vColor;\n varying vec2 vTexcoord0;\n void main() {\n vec4 aPositionVec4 = vec4(aPosition, 1);\n vColor = aColor;\n vTexcoord0 = aTexcoord0;\n gl_Position = uProjMatrix * uViewMatrix * aPositionVec4;\n }"," precision mediump float; varying vec4 vColor;\n varying vec2 vTexcoord0;\n uniform sampler2D uTexture;\n void main() {\n vec4 tex = texture2D(uTexture, vTexcoord0).rgba;\n gl_FragColor = vec4((vColor.rgb*tex.rgb), tex.a * vColor.a );\n }"],null,null),t.b={},t.a.attributes=[{loc:e.getAttribLocation(t.a.program,"aPosition"),type:e.FLOAT,size:3,offset:0,stride:36},{loc:e.getAttribLocation(t.a.program,"aColor"),type:e.FLOAT,size:4,offset:12,stride:36},{loc:e.getAttribLocation(t.a.program,"aTexcoord0"),type:e.FLOAT,size:2,offset:28,stride:36}],t.c=this.W,t.d=this.X,this.ab[r]=t}var i=this.U.j[r];if(i<=-1||i>this.a.aw.length)continue;let n=this.a.aw[i];if(!n.f||!n.f.f)continue;let a=r;a>=this.U.k.length&&(a=0);let s=this.a.av[this.U.k[a]];this.ab[r].b.uViewMatrix=this.a.aS.viewMatrix,this.ab[r].b.uProjMatrix=this.a.aS.projMatrix,this.ab[r].b.uTexture=n.f.d,this.ab[r].h=!1,this.ab[r].f=!1,this.ab[r].e=Un[s.b],this.ab[r].i=!this.a.aY;let o=this.d>this.e?2*(this.d-this.e)+2:2*(this.c.length+this.d-this.e)+2;this.ab[r].j=e.TRIANGLE_STRIP,this.ab[r].k=o,this.ab[r].l=2*this.e*2,t.push(this.ab[r])}}},On="uniform float x;\r\nuniform float y;\r\nuniform float width;\r\nuniform float height;\r\n\r\nattribute vec2 aTextCoord;\r\nvarying vec2 vTextCoords;\r\nvoid main() {\r\n vTextCoords = aTextCoord;\r\n\r\n vec2 pos = vec2(\r\n (x + aTextCoord.x*width)* 2.0 - 1.0,\r\n (y + aTextCoord.y*height)* 2.0 - 1.0\r\n );\r\n\r\n gl_Position = vec4(pos.x, pos.y, 0, 1);\r\n}";class Nn{constructor(){this.a=null,this.b=null,this.c=null}d(){null!=this.a&&this.a.h(),null!=this.b&&this.b.h(),null!=this.c&&this.c.h()}e(){return!(this.a&&!this.a.g())&&(!(this.b&&!this.b.g())&&!(this.c&&!this.c.g()))}}class Ln{constructor(){this.a=null,this.b=null,this.c=null,this.d={},this.i=new be}}let Hn=null,Vn=null,jn=null;class Gn{constructor(t,e,i){this.h=!1,this.e=t,this.f=e,this.g=i,function(t){Vn=t.createTexture(),t.bindTexture(t.TEXTURE_2D,Vn),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,new Uint8Array([0,0,0,0])),t.bindTexture(t.TEXTURE_2D,null),jn=t.createTexture(),t.bindTexture(t.TEXTURE_2D,jn),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,new Uint8Array([0,0,0,255])),t.bindTexture(t.TEXTURE_2D,null),Hn=new Ln;let e=Hn;e.a=se(t,[On,"precision mediump float;\r\nvarying vec2 vTextCoords;\r\nuniform sampler2D uDiffuseTexture;\r\nuniform sampler2D uSpecularTexture;\r\nuniform sampler2D uEmissiveTexture;\r\nuniform sampler2D renderResultTexture;\r\nuniform int uBlendMode;\r\nuniform int layer;\r\nuniform vec2 screenResolution;\r\n\r\nfloat overlayBlend(float a, float b) {\r\n if (b <= 0.5) {\r\n return 2.0 * a * b;\r\n } else {\r\n return 1.0 - ((2.0 * (1.0 - a) * (1.0 - b)));\r\n// return (1.0 - (1.0 - 2.0 * (a - 0.5)) * (1.0 - b));\r\n }\r\n}\r\n\r\nfloat alphaStraightBlend(float a, float b, float alpha) {\r\n return (a * alpha) + (b * (1.0 - alpha));\r\n}\r\n\r\nvoid main() {\r\n vec4 diffuse = texture2D( uDiffuseTexture, vTextCoords.xy );\r\n vec4 backGround = texture2D( renderResultTexture, gl_FragCoord.xy / screenResolution );\r\n\r\n //Blit and Inferior Alpha\r\n if (uBlendMode == 0 || uBlendMode == 4) {\r\n if (diffuse.a < 0.001) discard;\r\n\r\n vec3 finalColor = mix(backGround.rgb, diffuse.rgb, diffuse.a);\r\n\r\n diffuse = vec4(finalColor.rgb, 1.0);\r\n } else\r\n if (uBlendMode == 1) {\r\n // Multiply blending //\r\n if (diffuse.a < 0.001) discard;\r\n\r\n vec4 multTexture = diffuse;\r\n vec3 finalColor = (diffuse.rgb * backGround.rgb);\r\n\r\n diffuse = vec4(finalColor.rgb, 1.0);\r\n } else if (uBlendMode == 2) {\r\n // Overlay Blending //\r\n if (diffuse.a < 0.001) discard;\r\n\r\n vec4 overlayTex = diffuse;\r\n\r\n vec3 finalColor = vec3(\r\n overlayBlend(overlayTex.r, backGround.r),\r\n overlayBlend(overlayTex.g, backGround.g),\r\n overlayBlend(overlayTex.b, backGround.b)\r\n );\r\n\r\n diffuse = vec4(finalColor, 1.0);\r\n// diffuse = vec4(finalColor.rgb, overlayTex.a);\r\n } else if (uBlendMode == 3) {\r\n// if (diffuse.a > 0.5) discard;\r\n // Alpha Straight //\r\n vec4 overlayTex = diffuse;\r\n\r\n float alphaMult = 1.0;\r\n vec3 finalColor = vec3(\r\n alphaStraightBlend(overlayTex.r, backGround.r, alphaMult*overlayTex.a),\r\n alphaStraightBlend(overlayTex.g, backGround.g, alphaMult*overlayTex.a),\r\n alphaStraightBlend(overlayTex.b, backGround.b, alphaMult*overlayTex.a)\r\n );\r\n\r\n diffuse = vec4(finalColor.rgb, 1.0);\r\n// diffuse = vec4(1.0,1.0,1.0, 1.0-overlayTex.a);\r\n }\r\n\r\n gl_FragColor = diffuse;\r\n}"],null,null),e.b=se(t,[On,"precision mediump float;\r\n\r\nvarying vec2 vTextCoords;\r\nuniform sampler2D uDiffuseTexture;\r\nuniform sampler2D uSpecularTexture;\r\nuniform sampler2D uEmissiveTexture;\r\nuniform sampler2D renderResultTexture;\r\nuniform int uBlendMode;\r\n\r\nvoid main() {\r\n vec4 diffuse = texture2D( uDiffuseTexture, vTextCoords.xy );\r\n vec4 specular = texture2D( uSpecularTexture, vTextCoords.xy );\r\n if (diffuse.a < 0.001) discard;\r\n gl_FragColor = vec4(specular.rgb, 1.0);\r\n}"],null,null),e.c=se(t,[On,"precision mediump float;\r\n\r\nvarying vec2 vTextCoords;\r\nuniform sampler2D uDiffuseTexture;\r\nuniform sampler2D uSpecularTexture;\r\nuniform sampler2D uEmissiveTexture;\r\nuniform sampler2D renderResultTexture;\r\nuniform vec2 screenResolution;\r\nuniform int uBlendMode;\r\nuniform float emissiveAlphaOverride;\r\nuniform int layer;\r\n\r\nvoid main() {\r\n vec4 diffuse = texture2D( uDiffuseTexture, vTextCoords.xy );\r\n vec4 emissive = texture2D( uEmissiveTexture, vTextCoords.xy );\r\n vec4 backGround = texture2D( renderResultTexture, gl_FragCoord.xy / screenResolution );\r\n\r\n if (diffuse.a < 0.001) discard;\r\n// if (emissive.a < 0.001) discard;\r\n\r\n //TODO: This is a hack from what was obeserved in Nightbourn texture customization with tatoos.\r\n //TODO: But Maybe switch should be over layer or something else instead of blend\r\n float alpha = 1.0;\r\n\r\n if (emissiveAlphaOverride > -1.0) {\r\n alpha = emissiveAlphaOverride;\r\n } else if (layer <= 1) {\r\n alpha = 0.0;\r\n } else {\r\n alpha = emissive.a;\r\n }\r\n\r\n\r\n gl_FragColor = vec4(emissive.rgb, alpha);\r\n}"],null,null),e.d={},e.f=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,e.f),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),t.STATIC_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),e.e=t.createBuffer(),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.e),t.bufferData(t.ELEMENT_ARRAY_BUFFER,new Int16Array([0,1,2,1,3,2]),t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null),e.g=t.createFramebuffer(),e.h={loc:t.getAttribLocation(e.a.program,"aTextCoord"),type:t.FLOAT,size:2,offset:0,stride:0}}(t)}i(){let t=this.e;this.d&&t.deleteTexture(this.d),this.a&&t.deleteTexture(this.a),this.b&&t.deleteTexture(this.b),this.c&&t.deleteTexture(this.c),this.d=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.d),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.f,this.g,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),this.a=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.a),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.f,this.g,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),this.b=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.b),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.f,this.g,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),this.c=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.c),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.f,this.g,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.bindTexture(t.TEXTURE_2D,null),t.bindFramebuffer(t.FRAMEBUFFER,Hn.g),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.a,0),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.b,0),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.c,0),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),t.useProgram(Hn.b.program),t.bindBuffer(t.ARRAY_BUFFER,Hn.f),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,Hn.e),Hn.i.disableAll(),Hn.i.enable(t,[Hn.h]),t.viewport(0,0,this.f,this.g)}j(t,e,i,r,n,a,s,o){let l=this.e;Hn.d.x=e,Hn.d.y=i,Hn.d.width=r,Hn.d.height=n,null==t.b&&null==t.c||(this.h=!0);let h=0;4==a?h=1:6==a?h=2:9==a?h=3:15==a&&(h=4),Hn.d.uBlendMode=h,Hn.d.screenResolution=new Float32Array([this.f,this.g]),Hn.d.uDiffuseTexture=null!=t.a?t.a.d:Vn,Hn.d.uSpecularTexture=null!=t.b?t.b.d:Vn,Hn.d.uEmissiveTexture=null!=t.c?t.c.d:jn,Hn.d.renderResultTexture=null!=this.d?this.d:Vn,Hn.d.layer=s,Hn.d.emissiveAlphaOverride=o,l.disable(l.CULL_FACE),l.disable(l.DEPTH_TEST),l.disable(l.BLEND),l.useProgram(Hn.a.program),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,this.a,0),l.bindTexture(l.TEXTURE_2D,this.d),l.copyTexImage2D(l.TEXTURE_2D,0,l.RGBA,0,0,this.f,this.g,0),l.bindTexture(l.TEXTURE_2D,null),re(Hn.a,Hn.d),l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0),l.useProgram(Hn.b.program),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,this.b,0),l.bindTexture(l.TEXTURE_2D,this.d),l.copyTexImage2D(l.TEXTURE_2D,0,l.RGBA,0,0,this.f,this.g,0),l.bindTexture(l.TEXTURE_2D,null),re(Hn.b,Hn.d),l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0),l.useProgram(Hn.c.program),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,this.c,0),l.bindTexture(l.TEXTURE_2D,this.d),l.copyTexImage2D(l.TEXTURE_2D,0,l.RGBA,0,0,this.f,this.g,0),l.bindTexture(l.TEXTURE_2D,null),re(Hn.c,Hn.d),l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0),l.useProgram(null)}k(){let t=this.e;t.bindFramebuffer(t.FRAMEBUFFER,null),t.enable(t.CULL_FACE),t.enable(t.DEPTH_TEST)}}class Xn{constructor(t,e){this.a=t,this.b=e}c(){const t=[];for(let e of this.b.Options)for(let i of e.Choices)for(let e of i.Elements)e.SkinnedModel&&t.push(e.SkinnedModel.CollectionFileDataID);const e=new Set(t);if(0!=e.size){e.size>1&&WH.debug("more than 1 skinned model detected!");let i=t[0],r={type:hi.PATH,id:i,parent:this.a,shoulder:0};this.a.aR=new $n(this.a.aS,this.a.k,r,0,!1,!1,!1)}}d(t){return gn.a(this.a,this.b.TextureFiles[t],this.a.o,this.a.p,this.a.n)}e(t){WH.debug("applyCustomization options",t),this.a.M=[],this.a.bu(0);for(let t=0;t<this.a.K.length;t++)this.a.K[t]=-1;if(this.a.aR)for(let t=0;t<this.a.aR.K.length;t++)this.a.aR.K[t]=-1;for(let e=0;e<t.length;e++){let i=this.b.Options.find((i=>i.Id==t[e].optionId));if(WH.debug("option",i),i){let r=i.Choices.find((i=>i.Id==t[e].choiceId));if(WH.debug("choice",r),r){let e=r.Elements.filter((e=>e.BoneSet&&e.BoneSet.BoneFileDataID&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID)))));e.length>0&&this.a.bu(e[0].BoneSet.BoneFileDataID);let n=r.Elements.filter((e=>e.Material&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID)))));n.sort(((t,e)=>e.VariationChoiceID-t.VariationChoiceID)),n.forEach((t=>{WH.debug("element material",t);let e=this.d(t.Material.MaterialResourcesID);if(!e)return void WH.debug("element material: can't get texture files for material",t);let i=this.b.TextureLayers.find((e=>e.ChrModelTextureTargetID==t.Material.TextureTarget));i?1==i.TextureType?t.Material.TextureTarget==Li?this.a.C[1][0]=this.a.bA(1,e):this.a.D[t.Material.TextureTarget]||(this.a.D[t.Material.TextureTarget]=this.a.bA(i.TextureSection,e)):6==i.TextureType?this.a.C[6][0]=this.a.bA(6,e):7==i.TextureType?this.a.C[7][0]=this.a.bA(7,e):8==i.TextureType?this.a.C[8][0]=this.a.bA(8,e):10==i.TextureType?this.a.C[10][0]=this.a.bA(10,e):19==i.TextureType?this.a.C[19][0]=this.a.bA(19,e):20==i.TextureType?this.a.C[20][0]=this.a.bA(20,e):21==i.TextureType?this.a.C[21][0]=this.a.bA(21,e):22==i.TextureType?this.a.C[22][0]=this.a.bA(22,e):WH.debug("unhandled texture type",i.TextureType,"target",t.Material.TextureTarget):WH.debug("element material: can't get texture layer for material",t)})),r.Elements.filter((e=>e.Geoset&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID))))).forEach((t=>{WH.debug("element geoset",t),this.a.bD(t.Geoset)})),r.Elements.filter((e=>e.SkinnedModel&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID))))).forEach((t=>{WH.debug("element skinnedmodel",t),this.a.aR&&this.a.aR.bD(t.SkinnedModel)}));let a=r.Elements.find((e=>0!=e.CondModelFileDataId&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID)))));if(24==i.Id||353==i.Id)if(a&&!this.a.c){WH.debug("element condModel",a);let e=this.a.aS,i=this.a.a,r=e.models.indexOf(this.a);if(r>-1){e.models.splice(r,1),WH.debug("test 1!",t,e.options,i),e.options.charCustomization=this.a.q;let n=new $n(e,e.options,i,r,!0,!1,!1,a.CondModelFileDataId);return n.q=this.a.q,e.models.push(n),void this.a.ba()}}else if(!a&&this.a.c){let e=this.a.aS,i=this.a.a,r=e.models.indexOf(this.a);if(r>-1){e.models.splice(r,1),WH.debug("test 2!",t,e.options,i),e.options.charCustomization=this.a.q;let n=new $n(e,e.options,i,r,!0,!1,!1);return n.q=this.a.q,e.models.push(n),void this.a.ba()}}r.Elements.filter((e=>e.ChrCustItemGeoModifyID&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID))))).forEach((t=>{WH.debug("element ChrCustItemGeoModify",t),this.a&&this.a.M.push(t.ChrCustItemGeoModifyID)}))}}}if(!this.a.C[6][0]){let e=this.b.Options.find((t=>t.Id==this.b.HairStyleOptionId));if(e){let i=e.Choices[1];if(i){let e=i.Elements.filter((e=>e.Material&&e.Material.TextureTarget==Hi&&(0==e.VariationChoiceID||t.some((t=>t.choiceId==e.VariationChoiceID)))));if(e.length>0){let t=this.d(e[0].Material.MaterialResourcesID);t&&(this.a.C[6][0]=this.a.bA(6,t))}}}}}f(){let t=[];for(let e=0;e<this.b.Options.length;e++){let i=this.b.Options[e];if(i){let e=i.Choices[0];e&&t.push({optionId:i.Id,choiceId:e.Id})}}this.e(t)}g(t){let e={options:t,sheathMain:-1,sheathOff:-1};for(let t of this.b.Options)e.options.some((e=>e.optionId==t.Id))||e.options.push({optionId:t.Id,choiceId:t.Choices[0].Id});return e}}const qn=function(t,e){const i=Math.abs(t),r=Math.abs(e);return Number((i-Math.floor(i/r)*r).toPrecision(8))*Math.sign(t)},Wn=44,Yn=4400,Zn="DressingRoom",Jn="Stand";class Kn{constructor(t,e,i,r,n,a,s,o){this.e=!1,this.r=0,this.s=null,this.t=null,this.E=[],this.M=[],this.R=new Ir,this.T=!1,this.an=[],this.aG=[],this.aH=[],this.aJ=null,this.aQ=!1,this.aT=null,this.aU=null,this.aV=null,this.aX=[],this.aY=!1;var l=this;if(l.e=n,l.aS=t,l.a=i,l.b=r,l.c=o,l.d=!1,l.f=!0,l.g=!0,this.h=!1,l.ad=a,l.k=e,"classic"==l.k.gameDataEnv?(pi[14]=14,pi[15]=15):(pi[14]=22,pi[15]=22),l.i=null,l.l=l.k.mount&&l.k.mount.type==hi.NPC&&l.k.mount.id==l.a.id,l.j=null,l.m=l.k.pet&&l.k.pet.type==hi.NPC&&l.k.pet.id==l.a.id,l.a.type==hi.CHARACTER&&l.k.mount&&l.k.mount.type==hi.NPC&&l.k.mount.id&&(l.k.mount.parent=l,l.i=new Kn(t,e,l.k.mount,0,!1,!1,!1)),l.a.type==hi.CHARACTER&&l.k.pet&&l.k.pet.type==hi.NPC&&l.k.pet.id&&(l.k.pet.parent=l,l.j=new Kn(t,e,l.k.pet,0,!1,!1,!1)),l.k.extraModels&&!l.a.parent){l.A=[];const i=l.k.extraModels;if($.isArray(i))for(let r=0;r<i.length;++r){const n={type:hi.PATH,id:i[r][0],parent:l,shoulder:-1};l.A.push(new Kn(t,e,n,0,!1,!1,!1))}}l.n=0,l.o=-1,l.p=l.k.cls?parseInt(l.k.cls):0,l.u=null,l.v=l.a.parent||null,l.x=new Map,this.y=[null,null],l.w=!1,l.B={},l.aJ=null,l.aK=null,l.C=[];for(let t=0;t<25;t++)l.C.push({});l.D={},l.H=-1,l.I=-1,l.J=new Array(Wn),l.K=new Array(Wn),l.L=[1,1,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,2,1,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,0,1,1,0,1],l.N=null,l.O=0;for(let t=0;t<Wn;t++)l.J[t]=100*t+l.L[t];l.P=0,l.Q=0,l.R.c=0,l.R.a.a=-1,l.S=!1,l.U=je(),l.V=er(1,1,1,1),l.W=[.35,.35,.35,1],l.X=[1,1,1,1],l.Y=[.35,.35,.35,1],l.Z=ve(),l.aa=ve(),l.ab=ve(),Ue(l.Z,[5,-3,3]),Ue(l.aa,[5,5,5]),Ue(l.ab,[-5,-5,-5]),l.ac=!1,l.ae=we(0,0,0),l.af=we(0,0,0),l.ag=we(0,0,0),l.boundsSize=we(0,0,0),l.ak=null,l.al=null,l.an=null,l.ao=null,l.ap=null,l.aq=null,l.ar=null,l.as=null,l.at=null,l.au=null,l.av=null,l.aw=null,l.ax=null,l.ay=null,l.az=null,l.aA=null,l.aB=null,l.aC=null,l.aD=null,l.aE=null,l.aF=null,l.aG=null,l.aH=null,l.aM=je(),l.aN=ve(),l.aO=ve(),l.aP=Qi(),s||l.bP()}bZ(t){if(this[t]){for(var e=this[t],i=0;i<e.length;++i)e[i]&&e[i].destroy&&e[i].destroy(),e[i]=null;this[t]=null}}ba(){var t=this;if(this.aQ=!0,this.d=!1,t.aK&&t.aK.d(),t.C)for(let e=0;e<t.C.length;++e)for(const i in t.C[e])t.C[e][i].d();if(t.B)for(const e in t.B)t.B[e].h();if(t.al&&(t.al=null),t.ao&&(t.ao=null),t.aq&&(t.aq=null),t.ar&&(t.ar=null),t.au&&(t.au=null),t.ax&&(t.ax=null),t.az&&(t.az=null),t.aA&&(t.aA=null),t.aC&&(t.aC=null),t.aF&&(t.aF=null),t.av)for(let e=0;e<t.av.length;++e)t.av[e]=null;t.av=null,this.bZ("vertices"),this.bZ("animations"),this.bZ("bones"),this.bZ("meshes"),this.bZ("texUnits"),this.bZ("materials"),this.bZ("textureAnims"),this.bZ("attachments"),this.bZ("colors"),this.bZ("alphas"),this.bZ("particleEmitters"),this.bZ("ribbonEmitters"),this.bZ("skins"),this.bZ("faces"),this.bZ("hairs"),this.an=null,t.x&&t.x.forEach(((e,i)=>{e.x(),t.x.set(i,null)})),t.i&&t.i.ba(),t.i=null,t.j&&t.j.ba(),t.j=null,t.aR&&t.aR.ba(),t.aR=null,t.a=null,t.x=null,t.B=null,t.C=null,t.J=null,t.U=null,t.W=null,t.X=null,t.Y=null,t.Z=null,t.aa=null,t.ab=null,t.ae=null,t.af=null,t.ag=null,t.boundsSize=null,t.aM=null,t.aN=null,t.aO=null,t.aP=null}getNumAnimations(){const t=this.i?this.i:this;return t.an?t.an.length+1:0}getAnimation(t){const e=this.i?this.i:this;return e.an&&t>-1&&t<e.an.length?e.an[t].j:t==e.an.length?Zn:""}resetAnimation(){(this.i?this.i:this).setAnimation(Jn)}setAnimPaused(t){var e;this.S=t,null===(e=this.i)||void 0===e||e.setAnimPaused(t),this.E.forEach((e=>e.f(t)))}setAnimNoSubAnim(t){this.T=t}bg(t){var e;null===(e=this.j)||void 0===e||e.setAnimation(t)}setItems(t){WH.debug("setItems",t);const e=[];for(let i=0;i<t.length;i++)e.push([t[i].slot,t[i].display,t[i].visual]);e.forEach((t=>{const e=[parseInt(t[0]),parseInt(t[1])];this.k.items.push(e)})),this.bK(e),this.w=!0}attachList(t){WH.debug("attachList",t);const e=t.split(","),i=[];for(let t=0;t<e.length;t+=2)i.push([e[t],e[t+1]]);i.forEach((t=>{const e=[parseInt(t[0]),parseInt(t[1])];this.k.items.push(e)})),this.bK(i),this.w=!0}clearSlots(t){WH.debug("clearSlots",t);const e=t.split(",");for(let t=0;t<e.length;++t){this.bM(parseInt(e[t]));const i=[];this.k.items.forEach((e=>{0!=this.k.items[t].indexOf(parseInt(e))&&i.push(e)})),this.k.items=i}this.bJ(),this.w=!0}setShouldersOverride(t){if(WH.debug("setShouldersOverride",t),!t||2!=t.length)return;for(let t=0;t<2;t++){const e=this.y[t];e&&e.x(),this.y[t]=null}for(let e=0;e<2;e++)if(null!=t[e]){const i=new _n(this,wi,t[e],this.n,this.o);let r=0;r=0==e?1:2,i.B(r),this.y[e]=i}const e=this.x.get(wi);if(e){let t=3;for(let e=0;e<2;e++)this.y[e]&&(t&=~(1<<e));e.B(t)}}setSheath(t,e){this.H=t,this.I=e,this.bJ()}setAppearance(t){var e;const i=function(t,e){t[e].d(),delete t[e]};if(this.C[1][0]&&i(this.C[1],0),this.C[6][0]&&i(this.C[6],0),this.C[8][0]&&i(this.C[8],0),this.C[19][0]&&i(this.C[19],0),this.C[19][1]&&i(this.C[19],1),this.D)for(const t in this.D)this.D[t].d(),delete this.D[t];this.q=t,this.H=t.sheathMain,this.I=t.sheathOff,null===(e=this.F)||void 0===e||e.e(t.options),this.w=!0,this.bB(),this.bJ()}setCustomizationsLoadedCallback(t){this.G=t}isLoaded(){return this.i?this.i.d&&this.d:this.d}setParticlesEnabled(t){this.f=t,this.x.forEach((function(e){if(e.i)for(let i=0;i<e.i.length;++i)if(e.i[i]&&(e.i[i].e.setParticlesEnabled(t),e.r[i]&&e.r[i].b)){const r=e.i[i].e;for(let n=0;n<e.r[i].b.length;n++)r.aB&&r.aB[n]&&e.r[i].b[n]&&e.r[i].b[n].e.setParticlesEnabled(t)}}))}setRibbonsEnabled(t){this.g=t}getTexUnits(){return this.aL}bs(t,e,i,r){Ge(this.U,t),Ye(this.U,this.U,e),i&&Ze(this.U,this.U,i),r&&Ye(this.U,this.U,r)}bt(t,e){let i=!1;const r=t==Zn;r&&(t=Jn);for(let n=0;n<this.an.length;++n){const a=this.an[n];if(a.j&&(a.j==t&&0==a.b)){i=!0,e.a.a=n,e.a.b=a,e.a.c=0,e.b=new Dr,e.c=0,e.d=r,WH.debug("Set animation to",a.a,a.j);break}}t==Jn||i||this.bt(Jn,e)}bu(t){if(this.r==t)return;if(this.d)for(let t=0;t<this.ap.length;t++)this.ap[t].v=null;if(this.r=t,t<=0)return;let e=this.k.contentPath+"bone/"+t+".bone",i=this;$.ajax({url:e,type:"GET",dataType:"binary",responseType:"arraybuffer",processData:!1,renderer:this.aS,success:function(t){i.bv(t)},error:function(t,e,i){console.log(i)}})}bv(t){let e=new Rn(t);e.getInt32();for(;e.position<e.buffer.byteLength;){let t=String.fromCharCode(e.getUint8(),e.getUint8(),e.getUint8(),e.getUint8()),i=e.getUint32();if("BIDA"==t){let t=i/2;this.s=new Array(t);for(let i=0;i<t;i++)this.s[i]=e.getUint16()}if("BOMT"==t){let t=i/64;this.t=new Array(t);for(let i=0;i<t;i++){let t=Xe(e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat(),e.getFloat());this.t[i]=t}}}this.d&&this.bw()}bw(){if(!(this.r<=0)&&this.s&&this.s.length)for(let t=0;t<this.s.length;t++)this.ap[this.s[t]].v=this.t[t]}setAnimation(t){this.an&&(this.i&&(this.i.setAnimation(t),t=oi[this.i.a.id]?"StealthStand":"Mount"),this.bt(t,this.R),this.x.forEach((e=>{if(e.i)for(let i=0;i<e.i.length;i++)e.i[i].e.setAnimation(t)})),this.E&&this.E.forEach((e=>e.e(t))))}by(t){let e=this,i=e.aS.context;if(!e.ak||!e.al)return;const r=10*e.ak.length;if(e.aT||(e.aT=new Float32Array(r)),t){var n=e.aT,a=e.ak;for(let t=0,e=0;t<r;++e)n[t+0]=a[e].i[0],n[t+1]=a[e].i[1],n[t+2]=a[e].i[2],n[t+3]=a[e].j[0],n[t+4]=a[e].j[1],n[t+5]=a[e].j[2],n[t+6]=a[e].c,n[t+7]=a[e].d,n[t+8]=a[e].e,n[t+9]=a[e].f,t+=10}e.aU?(i.bindBuffer(i.ARRAY_BUFFER,e.aU),i.bufferSubData(i.ARRAY_BUFFER,0,e.aT)):(e.aU=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,e.aU),i.bufferData(i.ARRAY_BUFFER,e.aT,i.DYNAMIC_DRAW),e.aV=i.createBuffer(),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,e.aV),i.bufferData(i.ELEMENT_ARRAY_BUFFER,new Uint16Array(e.al),i.STATIC_DRAW))}bz(){let t,e=this,i=er(1,1,1,1),r=e.ae,n=e.af,a=e.aN;if(Ae(r,9999,9999,999),Ae(n,-9999,-9999,-9999),!e.at)return qe(e.U),e.v||(e.aS.distance=1),!1;for(let a=0;a<e.at.length;++a){let s=e.at[a];if(!s.show)continue;if(i[0]=i[1]=i[2]=i[3]=1,e.R.a.a>0&&(s.v&&(i=s.v.g(e.R,this.aX)),s.w[0]&&(i[3]*=s.w[0].d(e.R,this.aX))),i[3]<.01)continue;let o=s.p;for(let i=0;i<o.f;++i)t=e.ak[e.al[o.e+i]].i,Me(r,r,t),ke(n,n,t)}const s=e.aR;if(s&&s.d&&s.at&&s.at.length>0)for(let e=0;e<s.at.length;++e){let i=s.at[e];if(!i.show)continue;let a=i.p;for(let e=0;e<a.f;++e)t=s.ak[s.al[a.e+e]].i,Me(r,r,t),ke(n,n,t)}e.i&&e.i.d&&e.i.bz()&&(ye(r,Fe(r,e.i.ae,1.1)),ye(n,Fe(n,e.i.af,1.1)),n[2]*=1.75),e.a.type==hi.NPC&&(Fe(r,r,e.u.Scale),Fe(n,n,e.u.Scale)),Ce(e.boundsSize,n,r),Re(e.ag,r,e.boundsSize,.5);let o,l,h=e.boundsSize[2];const u=e.u&&e.u.Scale?e.u.Scale:1;if(e.a.type!=hi.ITEM?(o=e.boundsSize[1],l=e.boundsSize[0]):(o=e.boundsSize[0],l=e.boundsSize[1]),!e.v){const t=e.aS.width/e.aS.height,i=2*Math.tan(e.aS.fov/2*.0174532925),r=1.2*h/i,n=1.2*o/(i*t);e.aS.distance=Math.max(Math.max(r,n),2*l)}return qe(e.U),e.a.type!=hi.ITEM&&Qe(e.U,e.U,Math.PI/2),Ze(e.U,e.U,Ie(a,e.ag)),Ae(e.aN,u,u,u),Je(e.U,e.U,e.aN),!0}bA(t,e){let i=new Nn;return e.a>0&&(i.a=new an(this,t,e.a)),e.b>0&&(i.b=new an(this,t,e.b)),e.c>0&&(i.c=new an(this,t,e.c)),i}bB(){this.aQ||(this.a.type!=hi.CHARACTER&&this.a.type!=hi.NPC&&this.a.type!=hi.HUMANOIDNPC||this.n<1?this.bF():(this.bH(),this.aK||(this.w=!0)))}bC(t){t&&(this.J[t.geosetType]=100*t.geosetType+t.geosetID)}bD(t){t&&(this.K[t.GeosetType]=100*t.GeosetType+t.GeosetID)}bE(t,e,i){if(!this.at||0==this.at.length)return!1;let r;for(let n=0;n<this.at.length;++n)r=this.at[n],r.meshId>=t&&r.meshId<=e&&(r.show=i);return!0}bF(){if(this.bE(0,0,!0),0!=this.O&&(this.bE(1,1699,!1),this.N))for(let t of this.N){let e=100*(t.GeosetIndex+1),i=e+t.GeosetValue;this.bE(e,e+99,!1),this.bE(i,i,!0)}}bG(t,e){let i=[];for(let t=0;t<this.ap.length;t++)i[this.ap[t].g]=t;let r=t.ap;if(r){for(let t=0;t<r.length;t++){let e=i[r[t].g];if("number"!=typeof e)continue;let n=r[t].m,a=this.ap[e].m;r[t].s=!0,Ge(n,a)}qe(this.aM),t.bs(this.U,this.aM),t.bW(),t.bY(e)}}bH(){var t=this;if(!t.at||0==t.at.length)return;for(let e=0;e<Wn;e++)t.J[e]=100*e+t.L[e];t.bE(0,Yn,!1),t.bE(0,0,!0);for(let e=0;e<t.K.length;e++)-1!=this.K[e]&&(this.J[e]=this.K[e]);for(let e=0;e<t.J.length;e++)t.bE(t.J[e],t.J[e],!0);let e=t.x.get(Ti),i=t.x.get(yi),r=t.x.get(Ai),n=t.x.get(Ei),a=t.x.get(Ci),s=t.x.get(Si),o=t.x.get(Mi),l=t.x.get(ki),h=t.x.get(Ui),u=t.x.get(Ii);function c(t,e,i){if(!t.at)return;let r=i+1,n=e>0?i+e:r,a=t.at.some((t=>t.meshId==n));n=a?n:r,t.bE(n,n,!0)}function f(t,e,i){if(!t.at)return;let r=100*i,n=r+t.L[i]+e;t.bE(r,r+99,!1),t.bE(n,n,!0)}if(t.x.forEach((t=>{if(t&&t.q){let e=t.q;e.bE(0,Yn,!1),t.b==Ti?(c(e,t.k[0],2700),c(e,t.k[1],2100)):t.b==wi?c(e,t.k[0],2600):t.b==yi?(c(e,t.k[0],800),c(e,t.k[1],1e3)):t.b==Ai||t.b==Bi?(c(e,t.k[0],800),c(e,t.k[1],1e3),c(e,t.k[2],1300),c(e,t.k[3],2200),c(e,t.k[4],2800)):t.b==Ei?c(e,t.k[0],1800):t.b==Ci?(c(e,t.k[0],1100),c(e,t.k[1],900),c(e,t.k[2],1300)):t.b==Si?(c(e,t.k[0],500),c(e,t.k[1],2e3)):t.b==ki?(c(e,t.k[0],400),c(e,t.k[1],2300)):t.b==Ii?c(e,t.k[0],1500):t.b==Ui&&c(e,t.k[0],1200)}})),t.x.forEach((t=>{if(t&&t.i)for(let e of t.i){let i=e.e;t.b==Ti?(f(i,t.l[0],27),f(i,t.l[1],21)):t.b==wi?f(i,t.l[0],26):t.b==yi?(f(i,t.l[0],8),f(i,t.l[1],10)):t.b==Ai||t.b==Bi?(f(i,t.l[0],8),f(i,t.l[1],10),f(i,t.l[2],13),f(i,t.l[3],22),f(i,t.l[4],28)):t.b==Ei?f(i,t.l[0],18):t.b==Ci?(f(i,t.l[0],11),f(i,t.l[1],9),f(i,t.l[2],13)):t.b==Si?(f(i,t.l[0],5),f(i,t.l[1],20)):t.b==ki?(f(i,t.l[0],4),f(i,t.l[1],23)):t.b==Ii?f(i,t.l[0],15):t.b==Ui&&f(i,t.l[0],12)}})),e){const i=t.n,r=t.o==ui.MALE?e.v:e.w;if(r)for(let e=0;e<r.length;e++)if(r[e].RaceId==i){const n=r[e].GeosetGroup;if(i==ci&&(1==n||2==n))continue;if(n<Wn)if(0==n)t.bE(1,99,!1);else{const e=100*n;t.bE(e,e+99,!1)}}}let d=0;if(h&&(d|=16),l&&l.k&&l.k[0]){let e=401+l.k[0];t.bE(401,499,!1),t.bE(e,e,!0),l.f+=2}else if(r&&r.k&&r.k[0]){let e=801+r.k[0];t.bE(e,e,!0)}if(!(r||n||o)&&i&&i.k&&i.k[0]){let e=801+i.k[0];t.bE(e,e,!0)}if(h)0==(1048576&h.h)&&(t.bE(2200,2299,!1),t.bE(2202,2202,!0));else if(r&&r.k&&r.k[3]){let e=2201+r.k[3];t.bE(2200,2299,!1),t.bE(e,e,!0)}let b=!1;n&&n.k&&n.k[0]&&(b=0!=(512&n.h));let g,_=!1,p=!1;if(r&&r.k&&r.k[2]){p=!0,t.bE(501,599,!1),t.bE(902,999,!1),t.bE(1100,1199,!1),t.bE(1300,1399,!1);let e=1301+r.k[2];t.bE(e,e,!0)}else if(a&&a.k&&a.k[2]){_=!0,t.bE(501,599,!1),t.bE(902,999,!1),t.bE(1100,1199,!1),t.bE(1300,1399,!1);let e=1301+a.k[2];t.bE(e,e,!0)}else if(s&&s.k&&s.k[0]){t.bE(501,599,!1),t.bE(901,901,!0);let e=501+s.k[0];t.bE(e,e,!0)}else{let e;e=a&&a.k&&a.k[1]?901+a.k[1]:901,t.bE(e,e,!0)}g=s&&s.k&&s.k[1]?2e3+s.k[1]:s&&0==(1048576&s.h)?2002:2001,t.bE(2001,2099,!1),t.bE(g,g,!0);let m=!1,v=p||_;if(!v&&h&&h.k&&h.k[0]){let e;m=!1,b?(m=!0,e=1203):(m=!0,e=1201+h.k[0]),t.bE(e,e,!0)}else 16&d&&(t.bE(1201,1201,!0),v||(t.bE(1202,1202,!0),m=!0));if(!m&&!p)if(r&&r.k&&r.k[1]){let e=1001+r.k[1];t.bE(e,e,!0)}else if(i&&i.k&&i.k[1]){let e=1001+i.k[1];t.bE(e,e,!0)}if(!p&&a&&a.k&&a.k[0]){let e=a.k[0],i=1101+e;e>2?(t.bE(1300,1399,!1),t.bE(i,i,!0)):m||t.bE(i,i,!0)}if(u&&u.k&&u.k[0]){t.bE(1500,1599,!1);let e=1501+u.k[0];if(this.M.length>0)for(let t of this.M){const i=li[t];i&&15==i.a&&i.b==u.k[0]+1&&(e=1500+i.c)}t.bE(e,e,!0)}if(n&&n.k&&n.k[0]){t.bE(1800,1899,!1);let e=1801+n.k[0];t.bE(e,e,!0)}if(a||p||_||m||b?t.bE(1400,1499,!1):t.bE(1401,1401,!0),t.aR){let e=t.aR;e.bE(0,Yn,!1);for(let t=0;t<e.K.length;t++)if(e.bE(e.K[t],e.K[t],!0),e.at){let i=e.K[t];if(e.at.some((t=>t.meshId==i))){let e=100*t;this.bE(e,e+99,!1)}}}}bI(){var t=this;let e=!1;if(t.x.forEach((t=>{if(t.m||t.n){if(t.j)for(let i=0;i<t.j.length;++i)t.j[i].texture&&!t.j[i].texture.g()&&(e=!0)}else e=!0})),e)return;if(!t.C[1][0]||t.C[1][0]&&!t.C[1][0].e())return;if(!this.aJ){var i=t.C[1][0].a,r=i.a.width,n=i.a.height;this.aJ=new Gn(t.aS.context,r,n)}let a=this.aJ;a.i();let s=!0,o=!0;t.n!=fi&&t.n!=di||(o=!1),t.x.forEach((t=>{let e=t.e;e!=yi&&e!=Ai&&e!=Ui||(s=!1),e==Ci&&(o=!1)}));let l,h=Yi;a.f!=a.g&&(h=Zi);let u=this.F.b.TextureLayers,c=this.F.b.TextureSections,f=-1;if(this.n==bi)for(let t of u)9==t.BlendMode&&1==t.TextureType&&t.Layer>f&&(f=t.Layer);for(let e of u){if(1!=e.TextureType)continue;if(0==e.Layer){a.j(t.C[1][0],0,0,1,1,0,0,0);continue}let i=-1;e.Layer==f&&(i=0);let r=this.D[e.ChrModelTextureTargetID];if(r){if(!r.e())return void WH.debug("texture target",e.ChrModelTextureTargetID,"layer",e.Layer,"not ready!");let t=e.TextureSection;if(t!=Gi&&t!=Xi||s&&t==Gi||o&&t==Xi){let n=0,s=0,o=1,u=1;if(-1!=t)if(c){let e=c.find((e=>e.SectionType==t));n=e.X,s=e.Y,o=e.Width,u=e.Height}else l=h[t],n=l.x,s=l.y,o=l.w,u=l.h;a.j(r,n,s,o,u,e.BlendMode,e.Layer,i)}}}let d=[];t.x.forEach((t=>{d.push(t)})),d.sort((function(t,e){return t.f-e.f}));for(let e=0;e<d.length;++e){let i=d[e];if(i.j)for(let e=0;e<i.j.length;++e){let r=i.j[e];if(r.gender==t.o&&r.texture&&r.texture.g()&&r.region!=Wi){if(0!=(2&t.u.RaceFlags)&&r.region==qi)continue;l=h[r.region];let e=new Nn;e.a=r.texture,a.j(e,l.x,l.y,l.w,l.h,0,-1,-1)}}}a.k(),t.w=!1}bJ(){if(!this.d)return;let t=(-1==this.I||!this.I)&&null!=this.x.get(zi),e=!(-1!=this.H&&this.H||null==this.x.get(Fi)&&null==this.x.get(Pi));for(let e of Vi){let i=this.ar[e];i>0&&i<this.ap.length&&this.ap[i].A(t?"HandsClosed":"")}for(let t of ji){let i=this.ar[t];i>0&&i<this.ap.length&&this.ap[i].A(e?"HandsClosed":"")}}bK(t){if($.isArray(t))for(let e=0;e<t.length;++e)this.bL(t[e][0],t[e][1],t[e][2]);else for(let e in t)this.bL(parseInt(e),t[e]);this.bJ()}bL(t,e,i){let r=new _n(this,t,e,this.n,this.o);i&&r.A(i);let n=r.e,a=vi[t];this.x.get(n)&&0!=a?(r.e=a,this.x.set(a,r)):this.x.set(n,r)}bM(t){var e=this.x.get(t);e||(t=pi[t],e=this.x.get(t)),e&&(this.x.delete(t),e.x())}bN(t,e){const i=[],r={[Ri]:t=>[0],[Ni]:t=>2==t.c&&18==t.d?[1]:null};if(this.aB&&this.aC){const n={1:t=>[11],3:t=>[6,5],22:t=>{var e;return(null===(e=r[t.b])||void 0===e?void 0:e.call(r,t))||[2]},21:t=>[1],17:t=>[1],15:t=>[2],25:t=>[1],13:t=>[1],14:t=>[0],23:t=>[2],6:t=>[53],26:t=>[1],16:t=>[57],27:t=>[55]};if(n[t]){const r=n[t](e);for(let n=0;n<r.length;++n){let a=r[n];(this.H>=0||this.I>=0||this.i)&&Ki[t]&&(a=Ki[t]),this.H>=0&&t==Pi&&$i[this.H][t]&&(a=$i[this.H][t]),this.I>=0&&t==zi&&$i[this.I][t]&&(a=$i[this.I][t]),e.g==Di&&this.I>=0&&t==zi&&$i[this.I][e.b]&&(a=$i[this.I][e.b]),a>=this.aC.length||-1==this.aC[a]||i.push(this.aC[a])}}}return i}bO(){if(this.at){for(let t=0;t<this.at.length;++t)this.at[t].K(this);this.aL=this.at.concat()}this.setAnimation(Jn),this.by(!0),this.bz(),this.bB(),this.d=!0,this.bw(),this.bJ(),this.l&&this.v.d&&this.v.bz(),this.m&&this.v.d&&this.v.bz(),this.v&&this.v.d&&!this.ad&&this.v.bH()}bP(){this.a&&this.a.type&&this.a.id&&this.bQ(this.a.type,this.a.id)}bQ(t,e){let i,r=this;t==hi.ITEM?i="meta/item/":t==hi.HELM?i="meta/armor/1/":t==hi.SHOULDER?i="meta/armor/3/":t==hi.NPC||t==hi.HUMANOIDNPC?i="meta/npc/":t==hi.OBJECT?i="meta/object/":t==hi.CHARACTER?i="meta/character/":t==hi.ITEMVISUAL&&(i="meta/itemvisual/"),i?(i=this.k.contentPath+i+e+".json",function(t){$.getJSON(i).done((function(e){r.bS(e,t)})).fail((function(t,e,i){let r=e+", "+i;console.log("Model:_load Error loading metadata: "+r)}))}(t)):t==hi.PATH&&(this.u||(this.u={}),i=this.k.contentPath+"mo3/"+e+".mo3",$.ajax({url:i,type:"GET",dataType:"binary",responseType:"arraybuffer",processData:!1,renderer:this.aS,success:function(t){r.bT(t)},error:function(t,e,i){console.log(i)}}))}bR(t,e,i){const r=Ji[e];if(r){const e=i?4:0;return r.slice(2*t+e,2*t+e+2)}}bS(t,e){var i,r,n=this;if(e||(e=n.a.type),n.u||(n.u=t),e==hi.CHARACTER){let e=this.c?this.c:t.Model;n.n=t.Race,n.o=t.Gender,n.k.cls&&(n.p=parseInt(n.k.cls));let a=n.k.contentPath+"meta/charactercustomization2/"+t.Race+"_"+t.Gender+".json";if($.getJSON(a,(function(t){var e,i,r;if(WH.debug("Got customization data v2",t),n.F=new Xn(n,t),null===(e=n.G)||void 0===e||e.call(n,n.F.b),n.F.c(),n.q)n.setAppearance(n.q);else if(n.a.type!=hi.CHARACTER&&n.u.Race>0&&(null===(r=null===(i=n.u)||void 0===i?void 0:i.Creature)||void 0===r?void 0:r.CreatureCustomizations)){let t=n.F.g(n.u.Creature.CreatureCustomizations);n.setAppearance(t)}else n.F.f();n.w&&n.bB()})),n.u.Creature&&n.u.Creature.Texture&&(n.aK=this.bA(-1,gn.a(null,n.u.TextureFiles[n.u.Creature.Texture],3,0,0))),n.bQ(hi.PATH,e),n.u.Equipment&&n.bK(n.u.Equipment),n.k.items&&n.bK(n.k.items),n.k.shouldersOverride&&n.setShouldersOverride(n.k.shouldersOverride),n.a.type!=hi.CHARACTER&&n.u.Race>0){if(n.F&&(null===(r=null===(i=n.u)||void 0===i?void 0:i.Creature)||void 0===r?void 0:r.CreatureCustomizations)){let t=n.F.g(n.u.Creature.CreatureCustomizations);n.q=t}}else n.k.charCustomization&&(n.q=n.k.charCustomization)}else if(e==hi.HELM){let e=1,i=0,r=1;if(n.v&&(e=n.v.n,i=n.v.o,r=n.v.p),t.ComponentModels){let a=t.ComponentModels[0];a&&t.ModelFiles&&t.ModelFiles[a]&&(27==t.Item.InventoryType?n.bQ(hi.PATH,t.ModelFiles[a][0].FileDataId):(n.v||t.ModelFiles[a].some((t=>t.Race==e))||(e=t.ModelFiles[a][0].Race),n.bQ(hi.PATH,gn.b(n,t.ModelFiles[a],-1,i,r,e))))}if(t.Textures)for(let e in t.Textures)0!=t.Textures[e]&&(n.B[parseInt(e)]=new an(n,parseInt(e),t.Textures[e]))}else if(e==hi.SHOULDER){let e=1,i=0,r=1;if(n.v&&(e=n.v.n,i=n.v.o,r=n.v.p),t.ComponentModels){let a=t.ComponentModels[0],s=t.ComponentModels[1];if(1==n.a.shoulder||void 0===n.a.shoulder&&a){if(a&&t.ModelFiles[a]&&n.bQ(hi.PATH,gn.b(n,t.ModelFiles[a],0,i,r,e)),t.Textures)for(let e in t.Textures)0!=t.Textures[e]&&(n.B[+e]=new an(n,parseInt(e),t.Textures[e]))}else if((2==n.a.shoulder||void 0===n.a.shoulder&&s)&&(s&&t.ModelFiles[s]&&n.bQ(hi.PATH,gn.b(n,t.ModelFiles[s],1,i,r,e)),t.Textures2))for(let e in t.Textures2)0!=t.Textures2[e]&&(n.B[+e]=new an(n,parseInt(e),t.Textures2[e]))}}else if(e==hi.ITEMVISUAL)n.bQ(hi.PATH,t.Equipment[n.b]);else if(e==hi.ITEM){let e=1,i=0,r=1;if(n.v&&(e=n.v.n,i=n.v.o,r=n.v.p),t.ComponentModels){let a=t.ComponentModels[0];a&&t.ModelFiles&&t.ModelFiles[a]&&n.bQ(hi.PATH,gn.b(n,t.ModelFiles[a],-1,i,r,e))}if(t.Textures)for(let e in t.Textures)0!=t.Textures[e]&&(n.B[+e]=new an(n,parseInt(e),t.Textures[e]))}else{if(t.stateKit&&this.E.push(new dn(this,t.stateKit.effects)),t.Creature&&(n.N=t.Creature.CreatureGeosetData,n.O=t.Creature.CreatureGeosetDataID),t.Textures)for(let e in t.Textures)0!=t.Textures[e]&&(n.B[+e]=new an(n,parseInt(e),t.Textures[e]));else if(t.ComponentTextures&&n.v){let e=n.v.o;for(let i in t.ComponentTextures){let r=t.TextureFiles[t.ComponentTextures[i]];for(let t=0;t<r.length;t++){let a=r[t];a.Gender!=e&&3!=a.Gender||(n.B[+i]=new an(n,parseInt(i),a.FileDataId))}}}if(t.Model)n.bQ(hi.PATH,t.Model);else if(t.Race>0){const e=_i[t.Race]+ui[t.Gender];n.n=t.Race,n.o=t.Gender,n.bQ(hi.CHARACTER,e)}}}bT(t){if(!t)return void console.error("Bad buffer for DataView");let e=this,i=new Rn(t);if(604210112!=i.getUint32())return void console.log("Bad magic value");if(i.getUint32()<2e3)return void console.log("Bad version");e.aj=i.getUint32();var r=i.getUint32(),n=i.getUint32(),a=i.getUint32(),s=i.getUint32(),o=i.getUint32(),l=i.getUint32(),h=i.getUint32(),u=i.getUint32(),c=i.getUint32(),f=i.getUint32(),d=i.getUint32(),b=i.getUint32(),g=i.getUint32(),_=i.getUint32(),p=i.getUint32(),m=i.getUint32(),v=i.getUint32(),x=i.getUint32(),T=i.getUint32(),w=i.getUint32(),y=i.getUint32(),A=i.getUint32(),E=i.getUint32(),C=i.getUint32(),S=i.getUint32(),M=i.getUint32();let k=new Uint8Array(t,i.position),F=null;try{F=(0,Zr.inflate)(k)}catch(t){return void console.log("Decompression error: "+t)}if(F.length<M)console.log("Unexpected data size",F.length,M);else{i=new Rn(F.buffer),i.position=r;var R,D=i.getInt32();if(D>0){e.ak=new Array(D);for(let t=0;t<D;++t)e.ak[t]=new ur(i)}if(i.position=n,(R=i.getInt32())>0){e.al=new Array(R);for(let t=0;t<R;++t)e.al[t]=i.getUint16()}if(i.position=a,(R=i.getInt32())>0){e.am=new Array(R),e.aX=new Array(R);for(let t=0;t<R;++t)e.am[t]=i.getUint32(),e.aX[t]=0}i.position=s;var I=i.getInt32();if(I>0){e.an=new Array(I);for(let t=0;t<I;++t)e.an[t]=new cr(i)}i.position=o;var U=i.getInt32();if(U>0){e.ao=new Array(U);for(let t=0;t<U;++t)e.ao[t]=i.getInt16()}i.position=l;var B=i.getInt32();if(B>0){e.ap=new Array(B);for(let t=0;t<B;++t)e.ap[t]=new Wr(e,t,i);this.ai=new Array(B);for(let t=0;t<B;t++){this.ai[t]=[];for(let i=0;i<B;i++)e.ap[i].e==t&&this.ai[t].push(i)}}i.position=h;var P=i.getInt32();if(P>0){e.aq=new Array(P);for(let t=0;t<P;++t)e.aq[t]=i.getInt16()}i.position=u;var z=i.getInt32();if(z>0){e.ar=new Array(z);for(let t=0;t<z;++t)e.ar[t]=i.getInt16()}i.position=c;var O=i.getInt32();if(O>0){e.as=new Array(O);for(let t=0;t<O;++t)e.as[t]=new Yr(i)}i.position=f;var N=i.getInt32();if(N>0){e.at=new Array(N);for(let t=0;t<N;++t)e.at[t]=new nn(i)}i.position=d;var L=i.getInt32();if(L>0){e.au=new Array(L);for(let t=0;t<L;++t)e.au[t]=i.getInt16()}i.position=b;var H=i.getInt32();if(H>0){e.av=new Array(H);for(let t=0;t<H;++t)e.av[t]=new Jr(i)}i.position=g;var V=i.getInt32();if(V>0){e.aw=new Array(V);for(let t=0;t<V;++t)e.aw[t]=new sn(e,t,i)}i.position=_;var j=i.getInt32();if(j>0){e.ax=new Array(j);for(let t=0;t<j;++t)e.ax[t]=i.getInt16()}i.position=p;var G=i.getInt32();if(G>0){e.ay=new Array(G);for(let t=0;t<G;++t)e.ay[t]=new on(i)}i.position=m;var X=i.getInt32();if(X>0){e.az=new Array(X);for(let t=0;t<X;++t)e.az[t]=i.getInt16()}i.position=v;var q=i.getInt32();if(q>0){e.aA=new Array(q);for(let t=0;t<q;++t)e.aA[t]=i.getInt16()}i.position=x;var W=i.getInt32();if(W>0){e.aB=new Array(W);for(let t=0;t<W;++t)e.aB[t]=new ln(i)}i.position=T;var Y=i.getInt32();if(Y>0){e.aC=new Array(Y);for(let t=0;t<Y;++t)e.aC[t]=i.getInt16()}i.position=w;var Z=i.getInt32();if(Z>0){e.aD=new Array(Z);for(let t=0;t<Z;++t)e.aD[t]=new hn(i)}i.position=y;var J=i.getInt32();if(J>0){e.aE=new Array(J);for(let t=0;t<J;++t)e.aE[t]=new un(i)}i.position=A;var K=i.getInt32();if(K>0){e.aF=new Array(K);for(let t=0;t<K;++t)e.aF[t]=i.getInt16()}i.position=E;var $=i.getInt32();if($>0){e.aG=new Array($);for(let t=0;t<$;++t)e.aG[t]=new kn(e,i)}i.position=S;var Q=i.getInt32();if(Q>0&&S>0){e.aI=new Array(Q);for(let t=0;t<Q;++t)e.aI[t]=new Fn(i)}i.position=C;var tt=i.getInt32();if(tt>0){e.aH=new Array(tt);for(let t=0;t<tt;++t)e.aH[t]=new zn(e,i)}e.bO()}}bU(t){var e=pr();if(mr(e,t),this.aG)for(var i=0;i<this.aG.length;i++)this.aG[i].Z(t,e);if(this.aH)for(i=0;i<this.aH.length;i++)this.aH[i].an(t)}bV(t){let e=null;return this.aC&&this.aC.length?(e=t<this.aC.length?this.aB[this.aC[t]]:this.aB[this.aC[0]],e):null}bW(){const t=this;if(!t.d)return;t.Q++;let e=t.aS.time-t.P;if(e>0&&(t.P=t.aS.time),this.e&&this.R.a&&this.R.a.b){let i=ve();const r=[4,119,233,242,348,526,527,544,545];[5,143,234,524,525,540,541,556,557].indexOf(this.R.a.b.a)>-1?i=we(0,-5*e/1e3,0):r.indexOf(this.R.a.b.a)>-1&&(i=we(0,-3*e/1e3,0));let n=je();if(ti(n,i),this.bU(n),this.i&&this.i.bU(n),this.aR&&this.aR.bU(n),t.A)for(let e=0;e<t.A.length;e++)this.aR.bU(n)}if(!this.S&&t.R.a.a>-1){let t=e;for(let e=0;e<this.aX.length;e++)this.aX[e]+=t,this.am[e]>0&&(this.aX[e]%=this.am[e]);this.bX(this.R,t)}let i,r,n,a=t.at?t.at.length:0;for(let e=0;e<a;++e)if(n=t.at[e],n.show){i=n.p.f,r=n.p.e;for(let e=0;e<i;++e)t.ak[t.al[r+e]].k=t.Q}t.aL&&t.aL.sort((function(t,e){return t.b!=e.b?t.b-e.b:t.meshId-e.meshId}));let s=t.ap.length,o=t.aT;if(t.ap&&t.an){for(let e=0;e<s;++e)t.ap[e].r=!1;for(let i=0;i<s;++i)t.ap[i].C(e);if(t.ak){let e,i,r,n,a=t.ak.length,s=t.aO,l=t.aP;for(let h=0;h<a;++h){if(e=t.ak[h],e.k!=t.Q)continue;n=h*10,o[n]=o[n+1]=o[n+2]=o[n+3]=o[n+4]=o[n+5]=0;for(let a=0;a<4;++a)r=e.g[a]/255,r>0&&(i=t.ap[e.h[a]],Oe(s,e.a,i.m),lr(l,e.b,i.m),o[n+0]+=s[0]*r,o[n+1]+=s[1]*r,o[n+2]+=s[2]*r,o[n+3]+=l[0]*r,o[n+4]+=l[1]*r,o[n+5]+=l[2]*r);e.i[0]=o[n+0],e.i[1]=o[n+1],e.i[2]=o[n+2],e.j[0]=o[n+3],e.j[1]=o[n+4],e.j[2]=o[n+5]}t.by(!1),t.ac||(t.ac=!0,t.bz())}}if(t.i&&t.i.d){const e=t.i.aB[t.i.aC[0]],i=1/t.i.u.Scale;Ae(t.aN,i,i,i),qe(t.aM),Je(t.aM,t.aM,t.aN),t.bs(t.i.U,t.i.ap[e.b].m,e.c,t.aM)}if(t.j&&t.j.d){const e=t.aB[t.aC[19]],i=t.k.pet.scale||.2/t.j.u.Scale;Ae(t.aN,i,i,i),qe(t.aM),Je(t.aM,t.aM,t.aN);const r=xe(e.c);Ee(r,r,t.k.pet.offset||we(0,-1.25,0)),t.j.bs(t.U,t.ap[e.b].m,r,t.aM)}si[t.a.id]&&!t.v&&(qe(t.U),Ae(t.aN,1,1,-1),Je(t.U,t.U,t.aN)),t.w&&t.bI()}bX(t,e){if(t.a.c+=e,t.b.a<0&&!this.T&&!t.d)if(t.a.b.h>-1){let e=32767*Math.random(),i=0,r=t.a.a,n=this.an[r];for(i+=n.d;i<e&&n.h>-1;)r=n.h,n=this.an[r],i+=n.d;t.b.a=r,t.b.b=this.an[r],t.b.c=0}else{let e=this.an.find((e=>e.a==t.a.b.a&&0==e.b));e&&(t.b.a=e.i,t.b.b=e,t.b.c=0)}let i=t.a,r=t.b,n=i.b.g-i.c,a=0,s=null;if(r.a>-1&&(s=this.an[r.a],a=s.e),a>0&&n<a?(r.c=qn(a-n,s.g),t.c=n/a):t.c=1,i.c>=i.b.g)if(r.a>-1){if(r.a>-1)for(;0==(32&this.an[r.a].c)&&(64&this.an[r.a].c)>0&&(r.a=this.an[r.a].i,r.b=this.an[r.a],!(r.a<0)););t.a=r,t.b=new Dr,t.c=1}else i.b.g>0&&(i.c=qn(i.c,i.b.g))}bY(t){var e=this;if(this.v?ir(e.V,this.v.V):e.V=er(1,1,1,1),e.i&&e.i.bY(t),e.d){if(e.j&&e.j.bY(t),e.bW(),this.E&&this.E.forEach((e=>e.g(t))),e.aW={uModelMatrix:e.U,uViewMatrix:e.aS.viewMatrix,uProjMatrix:e.aS.projMatrix,uCameraPos:e.aS.eye,uAmbientColor:e.W,uDiffuseColor:e.V,uPrimaryColor:e.X,uSecondaryColor:e.Y,uLightDir1:e.Z,uLightDir2:e.aa,uLightDir3:e.ab},e.aU&&e.aL)for(let i=0;i<e.aL.length;++i)e.aL[i].show&&e.aL[i].N(t);if(e.aG&&e.f)for(let i=0;i<e.aG.length;++i){let r=e.aI?e.aI[i]:null;e.aG[i].X(e.R,e.aS.delta,r),e.aG[i].Y(t)}if(e.aH&&e.g)for(let i=0;i<e.aH.length;++i)e.aH[i].ar(e.R,e.aS.delta),e.aH[i].av(),e.aH[i].aw(t);if(e.aR&&e.bG(e.aR,t),e.x.forEach(((i,r)=>{if(i){if(2==i.c&&13==i.d){if(i.e==Pi&&-1!=e.H)return;if(i.e==zi&&-1!=e.I)return}i.C(t)}})),e.y.forEach(((e,i)=>{e&&e.i&&e.C(t)})),e.A)for(let i=0;i<e.A.length;i++)for(let i=0;i<e.A.length;i++){let r=e.A[i];if(!r.d)continue;let n=e.aC[e.k.extraModels[i][1]];if(-1==n){console.log("invalid extra model attachment",e.k.extraModels[i][1]);continue}let a=e.aB[n],s=e.k.extraModels[i][2];Ae(e.aN,s,s,s),qe(e.aM),Je(e.aM,e.aM,e.aN),Ke(e.aM,e.aM,e.k.extraModels[i][3]),$e(e.aM,e.aM,e.k.extraModels[i][4]),Qe(e.aM,e.aM,e.k.extraModels[i][5]),r.bs(e.U,e.ap[a.b].m,a.c,e.aM),r.bW(),r.bY(t)}e.x.forEach(((i,r)=>{i&&i.q&&e.bG(i.q,t)}))}}}const $n=Kn,Qn={2:"Wowhead",3:"LolKing",6:"HeroKing",7:"DestinyDB"};class ta{constructor(t){if(!t.type||!Qn[t.type])throw"Viewer error: Bad viewer type given";if(!t.container)throw"Viewer error: Bad container given";if(!t.aspect)throw"Viewer error: Bad aspect ratio given";if(!t.contentPath)throw"Viewer error: No content path given";console.log("Creating viewer with options",t),this.type=t.type,this.container=t.container,this.aspect=parseFloat(t.aspect),this.renderer=null,this.options=t;const e=this.container.width(),i=Math.round(e/this.aspect);this.init(e,i)}destroy(){this.renderer&&this.renderer.destroy(),this.options=null,this.container=null}init(t,e){if(void 0!==typeof window.Uint8Array&&void 0!==typeof window.DataView)try{const t=document.createElement("canvas");if(!(t.getContext("webgl",{alpha:!1})||t.getContext("experimental-webgl",{alpha:!1})))return void console.log("viewer init failed")}catch(t){return void console.log("viewer init failed")}this.mode=1,this.renderer=new ia(this),this.renderer.resize(t,e),this.renderer.init()}setAdaptiveMode(t){this.renderer.setAdaptiveMode(t)}setZoom(t){this.renderer.zoom.target=t}setOffset(t,e){this.renderer.setTranslation(t,e,0)}setFullscreen(t){t?ta.requestFullscreen(this.renderer.canvas[0]):ta.exitFullscreen()}method(t,e){return void 0===e&&(e=[]),this.renderer?this.renderer.method(t,[].concat(e)):null}option(t,e){return void 0!==e&&(this.options[t]=e),this.options[t]}static isFullscreen(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}static requestFullscreen(t){document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||(t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):t.mozRequestFullScreen?t.mozRequestFullScreen():t.msRequestFullscreen&&t.msRequestFullscreen())}static exitFullscreen(){(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)&&(document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen())}}const ea=ta;const ia=class{constructor(t){this.currFrame=0,this.clearColor=we(0,0,0),this.addedCss=!1,this.progressShown=!1,this.attributeState=new be,this.onContextMenu=function(t){return!1};var e=this;e.viewer=t,e.options=t.options,e.downloads={},e.context=null,e.width=0,e.height=0,e.time=0,e.delta=0,e.models=[],e.screenshotDataURL=null,e.makeDataURL=!1,e.screenshotCallback=null,e.azimuth=1.5*Math.PI,e.zenith=Math.PI/2,e.distance=15,e.fov=30,e.zoom={rateStep:.1,rateAccelerationDecay:.4,interpolationRate:.3,range:[.3,4],rateCurrent:0,target:1,current:1},e.zoom.range=e.zoom.range.map((function(t){return Math.log(t)/Math.log(1+e.zoom.rateStep)})),e.translation=we(0,0,0),e.target=we(0,0,0),e.eye=we(0,0,0),e.up=we(0,0,1),e.lookDir=ve(),e.fullscreen=!1,e.projMatrix=je(),e.viewMatrix=je(),e.panningMatrix=je(),e.viewOffset=ve(),e.aniFilterExt=null,e.aniFilterMax=0,this.addedCss||(this.addedCss=!0,$("head").append('<link rel="stylesheet" href="//wow.zamimg.com/modelviewer/viewer/viewer.css" type="text/css" />'))}updateProgress(){var t=this,e=0,i=0;for(var r in t.downloads)e+=t.downloads[r].total,i+=t.downloads[r].loaded;if(e<=0)t.progressShown&&(t.progressBg.hide(),t.progressBar.hide(),t.progressShown=!1);else{t.progressShown||(t.progressBg.show(),t.progressBar.show(),t.progressShown=!0);var n=i/e;t.progressBar.width(Math.round(t.width*n)+"px")}}destroy(){var t=this;if(t.stop=!0,t.canvas&&(t.canvas.detach(),t.progressBg.detach(),t.progressBar.detach(),t.canvas.off("mousedown touchstart",t.onMouseDown).off("DOMMouseScroll",t.onMouseScroll).off("mousewheel",t.onMouseWheel).off("dblclick",t.onDoubleClick).off("contextmenu",t.onContextMenu),$(window).off("resize",t.onFullscreen),$(document).off("mouseup touchend",t.onMouseUp).off("mousemove touchmove",t.onMouseMove),t.canvas=t.progressBg=t.progressBar=null),t.context){var e=t.context;t.bgTexture&&e.deleteTexture(t.bgTexture),t.bgTexture=null,t.program&&e.deleteProgram(t.program),t.program=null,t.vb&&e.deleteBuffer(t.vb),t.vs&&e.deleteShader(t.vs),t.fs&&e.deleteShader(t.fs),t.vb=t.vs=t.fs=null}t.bgImg&&(t.bgImg=null);for(var i=0;i<t.models.length;++i)t.models[i].ba(),t.models[i]=null;t.models=[]}method(t,e){if(this.models.length>0&&this.models[0]){const i=this.models[0][t];return i?i.apply(this.models[0],e):void WH.debug("Unknown viewer method",t,"args",e)}}getTime(){return window.performance&&window.performance.now?window.performance.now():Date.now()}draw(t){var e,i=this,r=i.context;i.delta=.001*(t-i.time),i.time=t,i.currFrame++,i.updateCamera(),r.bindFramebuffer(r.FRAMEBUFFER,null),r.viewport(0,0,i.width,i.height),r.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],0),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),i.bgTexture&&i.program&&(r.useProgram(i.program),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,i.bgTexture),r.uniform1i(i.uTexture,0),r.bindBuffer(r.ARRAY_BUFFER,i.vb),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,null),r.enableVertexAttribArray(i.aPosition),r.vertexAttribPointer(i.aPosition,2,r.FLOAT,!1,16,0),r.enableVertexAttribArray(i.aTexCoord),r.vertexAttribPointer(i.aTexCoord,2,r.FLOAT,!1,16,8),r.depthMask(!1),r.disable(r.CULL_FACE),r.blendFunc(r.ONE,r.ZERO),r.drawArrays(r.TRIANGLE_STRIP,0,4),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),r.enable(r.CULL_FACE),r.depthMask(!0),r.disableVertexAttribArray(i.aPosition),r.disableVertexAttribArray(i.aTexCoord));let n=new Array;for(e=0;e<i.models.length;++e)i.models[e].bY(n);n.sort(((t,e)=>{let i=t.e>1,r=e.e>1;return i>r?1:i<r?-1:t.m!=e.m?e.m>t.m?-1:1:t.n>e.n?-1:t.n<e.n?1:e.o!=t.o?e.o<t.o?1:-1:e.e!=t.e?t.e<e.e?-1:1:0})),r.viewport(0,0,i.width,i.height),this.attributeState.disableAll(),n.forEach((t=>{r.useProgram(t.a.program),r.bindBuffer(r.ARRAY_BUFFER,t.c),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t.d),this.attributeState.enable(r,t.a.attributes),re(t.a,t.b),t.h?r.enable(r.CULL_FACE):r.disable(r.CULL_FACE),t.i?r.frontFace(r.CCW):r.frontFace(r.CW),this.setBlendMode(r,t.e),r.depthMask(t.f),r.drawElements(t.j,t.k,r.UNSIGNED_SHORT,t.l)})),this.attributeState.disableAll()}setAdaptiveMode(t){this.addaptiveMode=t,t&&$(window).trigger("resize")}setTranslation(t,e,i){this.translation=we(t,e,i)}setBlendMode(t,e){switch(0==e?t.disable(t.BLEND):(t.enable(t.BLEND),t.blendEquation(t.FUNC_ADD)),e){case 0:break;case 1:t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ONE);break;case 2:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE);break;case 3:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE,t.ONE,t.ONE);break;case 4:t.blendFuncSeparate(t.DST_COLOR,t.ZERO,t.ONE,t.ONE);break;case 5:t.blendFuncSeparate(t.DST_COLOR,t.SRC_COLOR,t.ONE,t.ONE);break;case 6:t.blendFuncSeparate(t.DST_COLOR,t.ONE,t.ONE,t.ONE);break;case 10:t.blendFunc(t.ONE,t.ONE);break;case 7:t.blendFuncSeparate(t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE,t.ONE);break;case 8:t.blendFuncSeparate(t.ONE_MINUS_SRC_ALPHA,t.ZERO,t.ONE,t.ONE);break;case 13:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE);break;default:throw 3735927486}}updateCamera(){var t=this;t.zoom.target+=t.zoom.rateCurrent,t.zoom.rateCurrent*=1-t.zoom.rateAccelerationDecay,t.zoom.target=-Math.max(Math.min(-t.zoom.target,t.zoom.range[1]),t.zoom.range[0]),t.zoom.current+=(t.zoom.target-t.zoom.current)*t.zoom.interpolationRate;var e=t.distance*Math.pow(t.zoom.rateStep+1,-t.zoom.current),i=t.azimuth,r=t.zenith;1==t.up[2]?(t.eye[0]=-e*Math.sin(r)*Math.cos(i)+t.target[0],t.eye[1]=-e*Math.sin(r)*Math.sin(i)+t.target[1],t.eye[2]=-e*Math.cos(r)+t.target[2]):(t.eye[0]=-e*Math.sin(r)*Math.cos(i)+t.target[0],t.eye[1]=-e*Math.cos(r)+t.target[1],t.eye[2]=-e*Math.sin(r)*Math.sin(i)+t.target[2]),Ce(t.lookDir,t.target,t.eye),Ue(t.lookDir,t.lookDir),function(t,e,i,r){var n,a,s,o,l,h,u,c,f,d,b=e[0],g=e[1],_=e[2],p=r[0],m=r[1],v=r[2],x=i[0],T=i[1],w=i[2];Math.abs(b-x)<pe&&Math.abs(g-T)<pe&&Math.abs(_-w)<pe?qe(t):(u=b-x,c=g-T,f=_-w,n=m*(f*=d=1/Math.hypot(u,c,f))-v*(c*=d),a=v*(u*=d)-p*f,s=p*c-m*u,(d=Math.hypot(n,a,s))?(n*=d=1/d,a*=d,s*=d):(n=0,a=0,s=0),o=c*s-f*a,l=f*n-u*s,h=u*a-c*n,(d=Math.hypot(o,l,h))?(o*=d=1/d,l*=d,h*=d):(o=0,l=0,h=0),t[0]=n,t[1]=o,t[2]=u,t[3]=0,t[4]=a,t[5]=l,t[6]=c,t[7]=0,t[8]=s,t[9]=h,t[10]=f,t[11]=0,t[12]=-(n*b+a*g+s*_),t[13]=-(o*b+l*g+h*_),t[14]=-(u*b+c*g+f*_),t[15]=1)}(t.viewMatrix,t.eye,t.target,t.up),qe(t.panningMatrix),1==t.up[2]?Ae(t.viewOffset,t.translation[0],-t.translation[1],0):Ae(t.viewOffset,t.translation[0],0,t.translation[1]),Ze(t.panningMatrix,t.panningMatrix,t.viewOffset),Ye(t.viewMatrix,t.panningMatrix,t.viewMatrix)}init(){var t,e=this,i=e.context;this.blackPixelTexture=i.createTexture(),i.bindTexture(i.TEXTURE_2D,this.blackPixelTexture),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,1,1,0,i.RGBA,i.UNSIGNED_BYTE,new Uint8Array([0,0,0,1])),i.bindTexture(i.TEXTURE_2D,null),ni(e.projMatrix,.0174532925*e.fov,e.viewer.aspect,.1,5e3),e.updateCamera(),i.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],0),i.enable(i.DEPTH_TEST),i.depthFunc(i.LEQUAL),i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA),i.enable(i.BLEND);var r=null;if(2===e.viewer.type)r=$n;if((e.options.models||e.options.items)&&r){var n=[].concat(e.options.models);if(n.length>0)for(t=0;t<n.length;++t)e.models.push(new r(e,e.options,n[t],t,!0,!1,!1))}!function t(){if(!e.stop){window.requestAnimationFrame(t);var r=e.getTime();if(!1!==e.makeDataURL){if(e.canvas[0].toDataURL){var n=e.clearColor,a=e.bgTexture;e.options.transparent&&(e.bgTexture=null,e.clearColor=we(0,0,0)),e.draw(r);var s=e.width*e.height*4,o=new Uint8Array(s);i.readPixels(0,0,e.width,e.height,i.RGBA,i.UNSIGNED_BYTE,o);let t=null;e.options.transparent?(e.clearColor=we(1,1,1),e.draw(r),t=new Uint8Array(s),i.readPixels(0,0,e.width,e.height,i.RGBA,i.UNSIGNED_BYTE,t)):t=o;for(var l=new Uint8Array(s),h=0,u=e.height-1;u>=0;u--)for(var c=0;c<e.width;c++){var f=4*(u*e.width+c),d=255-(t[h+0]-o[h+0]),b=o[h+0],g=o[h+1],_=o[h+2];o[h+3];l[f+0]=b,l[f+1]=g,l[f+2]=_,l[f+3]=d,h+=4}var p=document.createElement("canvas"),m=p.getContext("2d");p.width=e.width,p.height=e.height;var v=m.createImageData(e.width,e.height);v.data.set(l),m.putImageData(v,0,0),e.screenshotDataURL=p.toDataURL.apply(p,e.makeDataURL),e.screenshotCallback&&(e.screenshotCallback(),e.screenshotCallback=null),e.clearColor=n,e.bgTexture=a}e.makeDataURL=!1}e.draw(r)}}()}onDoubleClick(t){ea.isFullscreen()?ea.exitFullscreen():ea.requestFullscreen(this.canvas[0])}onFullscreen(t){let e=this;if(e.viewer.container)if(!e.fullscreen&&ea.isFullscreen()||this.addaptiveMode){if(e.restoreWidth=e.width,e.restoreHeight=e.height,e.fullscreen=!0,ea.isFullscreen()){var i=$(window);let t=window.screen.width||i.width(),e=window.screen.height||i.height();this.onResize(t,e,t/e)}else if(this.addaptiveMode){var r=e.viewer.container;this.onResize(r.width(),r.height(),r.width()/r.height())}}else e.fullscreen&&!ea.isFullscreen()&&(e.fullscreen=!1,this.onResize(e.restoreWidth,e.restoreHeight,e.viewer.aspect))}onResize(t,e,i){this.resize(t,e),ni(this.projMatrix,.0174532925*this.fov,i,.1,5e3)}onMouseDown(t){let e=this;3==t.which||t.ctrlKey?e.rightMouseDown=!0:e.mouseDown=!0,"touchstart"==t.type?(e.mouseX=t.originalEvent.touches[0].clientX,e.mouseY=t.originalEvent.touches[0].clientY):(e.mouseX=t.clientX,e.mouseY=t.clientY),$("body").addClass("unselectable")}onMouseScroll(t){return this.zoom.rateCurrent+=t.originalEvent.detail>0?1:-1,t.preventDefault(),!1}onMouseWheel(t){if(!this.options.wheelEventValidation||this.options.wheelEventValidation.call(this,t))return this.zoom.rateCurrent+=t.originalEvent.wheelDelta>0?1:-1,t.preventDefault(),!1}onMouseUp(t){let e=this;(e.mouseDown||e.rightMouseDown)&&($("body").removeClass("unselectable"),e.mouseDown=!1,e.rightMouseDown=!1)}onMouseMove(t){let e=this;if((e.mouseDown||e.rightMouseDown)&&void 0!==e.mouseX){var i,r;"touchmove"==t.type?(t.preventDefault(),i=t.originalEvent.touches[0].clientX,r=t.originalEvent.touches[0].clientY):(i=t.clientX,r=t.clientY);var n=(i-e.mouseX)/e.width*Math.PI*2,a=(r-e.mouseY)/e.width*Math.PI*2;if(e.mouseDown){1==e.up[2]?e.azimuth-=n:e.azimuth+=n,e.zenith+=a;for(var s=2*Math.PI;e.azimuth<0;)e.azimuth+=s;for(;e.azimuth>s;)e.azimuth-=s;e.zenith<1e-4&&(e.zenith=1e-4),e.zenith>=Math.PI&&(e.zenith=Math.PI-1e-4)}else e.translation[0]+=n,e.translation[1]+=a;e.mouseX=i,e.mouseY=r}}resize(t,e){var i=this;if(i.width!==t||i.height!==e){if(i.fullscreen||i.viewer.container.css({height:e+"px",position:"relative"}),i.width=t,i.height=e,i.canvas)i.canvas.attr({width:t,height:e}),i.canvas.css({width:t+"px",height:e+"px"}),i.context.viewport(0,0,i.width,i.height);else{if(i.canvas=$("<canvas/>"),i.canvas.attr({width:t,height:e}),i.viewer.container.append(i.canvas),i.context=i.canvas[0].getContext("webgl",{alpha:!0,premultipliedAlpha:!1})||i.canvas[0].getContext("experimental-webgl",{alpha:!0,premultipliedAlpha:!1}),i.progressBg=$("<div/>",{css:{display:"none",position:"absolute",bottom:0,left:0,right:0,height:"10px",backgroundColor:"#000"}}),i.progressBar=$("<div/>",{css:{display:"none",position:"absolute",bottom:0,left:0,width:0,height:"10px",backgroundColor:"#ccc"}}),i.viewer.container.append(i.progressBg),i.viewer.container.append(i.progressBar),!i.context)return alert("No WebGL support, sorry! You should totally use Chrome."),i.canvas.detach(),void(i.canvas=null);const r=i.context.getExtension("EXT_texture_filter_anisotropic")||i.context.getExtension("MOZ_EXT_texture_filter_anisotropic")||i.context.getExtension("WEBKIT_EXT_texture_filter_anisotropic");r?(i.aniFilterExt=r,i.aniFilterMax=i.context.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT),WH.debug("Texture anisotropy enabled",i.aniFilterMax)):WH.debug("Texture anisotropy disabled (not supported)"),i.canvas.on("mousedown touchstart",i.onMouseDown.bind(i)).on("DOMMouseScroll",i.onMouseScroll.bind(i)).on("mousewheel",i.onMouseWheel.bind(i)).on("dblclick",i.onDoubleClick.bind(i)).on("contextmenu",i.onContextMenu.bind(i)),$(window).on("resize",i.onFullscreen.bind(i)),$(document).on("mouseup touchend",i.onMouseUp.bind(i)).on("mousemove touchmove",i.onMouseMove.bind(i)),i.onFullscreen(null)}i.options.background&&i.loadBackground()}}loadBackground(){var t=this,e=t.context;const i=function(){t.vb=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t.vb),e.bufferData(e.ARRAY_BUFFER,new Float32Array(16),e.DYNAMIC_DRAW);var i=t.compileShader(e.VERTEX_SHADER," attribute vec2 aPosition; attribute vec2 aTexCoord; varying vec2 vTexCoord; void main(void) { vTexCoord = aTexCoord; gl_Position = vec4(aPosition, 0, 1); } "),r=t.compileShader(e.FRAGMENT_SHADER," precision mediump float; varying vec2 vTexCoord; uniform sampler2D uTexture; void main(void) { gl_FragColor = texture2D(uTexture, vTexCoord); } "),n=e.createProgram();e.attachShader(n,i),e.attachShader(n,r),e.linkProgram(n),e.getProgramParameter(n,e.LINK_STATUS)?(t.vs=i,t.fs=r,t.program=n,t.uTexture=e.getUniformLocation(n,"uTexture"),t.aPosition=e.getAttribLocation(n,"aPosition"),t.aTexCoord=e.getAttribLocation(n,"aTexCoord")):console.error("Error linking shaders")},r=function(){var i=t.width/t.bgImg.width,r=t.height/t.bgImg.height;const n=[-1,-1,0,r,1,-1,i,r,-1,1,0,0,1,1,i,0];e.bindBuffer(e.ARRAY_BUFFER,t.vb),e.bufferSubData(e.ARRAY_BUFFER,0,new Float32Array(n))};t.bgImg?t.bgImg.loaded&&(t.vb||i(),r()):(t.bgImg=new Image,t.bgImg.crossOrigin="",t.bgImg.onload=function(){t.bgImg.loaded=!0,t.bgTexture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,t.bgTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.bgImg),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t.vb||i(),r()},t.bgImg.onerror=function(){t.bgImg=null},t.bgImg.src=t.options.contentPath+t.options.background)}compileShader(t,e){var i=this.context,r=i.createShader(t);if(i.shaderSource(r,e),i.compileShader(r),!i.getShaderParameter(r,i.COMPILE_STATUS))throw"Shader compile error: "+i.getShaderInfoLog(r);return r}};let ra={Types:hi};const na=Object.assign(ea,{Tools:_e,WebGL:ia,WEBGL:1,WOW:2,FLASH:2,Wow:ra});window.ZamModelViewer=na})()})();