!function(X,L,Z){"use strict";function x(){var i=[],Q=[];return function(){return 0===arguments.length?Q.join("")+V.apply(String,i):(i.length+arguments.length>1024&&(Q.push(V.apply(String,i)),i.length=0),Array.prototype.push.apply(i,arguments),void 0)}}function D(U,J,R,o,S){var Z,E,P=8*S-o-1,G=(1<>1,I=-7,$=R?S-1:0,O=R?-1:1,a=U[J+$];for($+=O,Z=a&(1<<-I)-1,a>>=-I,I+=P;I>0;Z=256*Z+U[J+$],$+=O,I-=8);for(E=Z&(1<<-I)-1,Z>>=-I,I+=o;I>0;E=256*E+U[J+$],$+=O,I-=8);if(0===Z)Z=1-e;else{if(Z===G)return E?0/0:1/0*(a?-1:1);E+=Math.pow(2,o),Z-=e}return(a?-1:1)*E*Math.pow(2,Z-o)}var I="ht",r=X[I],K=null,b=Math,W=b.abs,Q=b.max,y=Number.MAX_VALUE,G=r.Default,u=G.getInternal(),j=G.clone,N=u.vec3TransformMat4,l=[0,0],v=u.appendArray,q=function(){function q(O,L,k,v){if(O){var P=O[v];if(P){k.ignoreColor||(L.color=P.kd),!k.ignoreTransparent&&P.d>0&&P.d<1&&(L.transparent=!0,L.opacity=P.d);var p;if(!k.ignoreImage&&(p=P.map_kd)){p=p.split(" ");for(var q=-1,S=0;S=0?Y[H-1]:Y[H+Y.length]},H=function(M,A,n,l,Q){if(M.lvs){var e=p(A,l),D=p(A,Q),$=n.matrix,U=M.lvs;$?(v(U,N(j(e),$)),v(U,N(j(D),$))):(v(U,e),v(U,D))}},S=function(l,P,d,h,x,Z){if(l.vs){var t=p(P,h),E=p(P,x),z=p(P,Z),X=d.matrix,m=l.vs;if(d.flipFace){var o=E;E=z,z=o}X?(v(m,N(j(t),X)),v(m,N(j(E),X)),v(m,N(j(z),X))):(v(m,t),v(m,E),v(m,z))}},I=function(r,M,D,m,F,h){if(r.vs){var B=D.flipY,c=m===Z?l:p(M,m),s=F===Z?l:p(M,F),b=h===Z?l:p(M,h);if(D.flipFace){var X=s;s=b,b=X}r.uv.push(c[0],B?1-c[1]:c[1],s[0],B?1-s[1]:s[1],b[0],B?1-b[1]:b[1])}},m=function(G,y,U,u,S,T){if(G.vs){var X=p(y,u),d=p(y,S),M=p(y,T),b=U.normalMatrix,E=G.ns;if(U.flipFace){var o=d;d=M,M=o}b?(v(E,N(j(X),b)),v(E,N(j(d),b)),v(E,N(j(M),b))):(v(E,X),v(E,d),v(E,M))}},i=function(O,S,h,z){for(var e=z.length-1,D=0;e>D;++D)H(O,S,h,z[D],z[D+1]);H(O,S,h,z[e],z[0])},w=function(K,x,Y,P,c,R,d,l){var e=P&&P.length&&l;R[3]===Z?(S(K,x,c,R[0],R[1],R[2]),d?I(K,Y,c,d[0],d[1],d[2]):K.uv&&K.uv.length&&I(K,Y,c),e&&m(K,P,c,l[0],l[1],l[2])):(S(K,x,c,R[0],R[1],R[3]),S(K,x,c,R[1],R[2],R[3]),d?(I(K,Y,c,d[0],d[1],d[3]),I(K,Y,c,d[1],d[2],d[3])):K.uv&&K.uv.length&&(I(K,Y,c),I(K,Y,c)),e&&(m(K,P,c,l[0],l[1],l[3]),m(K,P,c,l[1],l[2],l[3])))},z=function(N,q,s,U){var n,_,k,H,K,u,R,a,J=y,P=y,d=y,c=-y,i=-y,V=-y;for(n in N)for(u=N[n].vs,a=u.length,_=0;a>_;_+=3)k=u[_+0],H=u[_+1],K=u[_+2],J>k&&(J=k),P>H&&(P=H),d>K&&(d=K),k>c&&(c=k),H>i&&(i=H),K>V&&(V=K);var p;if(s){var b=J+(c-J)/2,z=P+(i-P)/2,G=d+(V-d)/2;for(n in N){for(u=N[n].vs,a=u.length,_=0;a>_;_+=3)u[_+0]-=b,u[_+1]-=z,u[_+2]-=G;if(R=N[n].lvs)for(a=R.length,_=0;a>_;_+=3)R[_+0]-=b,R[_+1]-=z,R[_+2]-=G}p=[b,z,G]}var j,D,v;s?(j=c-J,D=i-P,v=V-d):(j=2*Q(W(J),W(c)),D=2*Q(W(P),W(i)),v=2*Q(W(d),W(V))),0===j&&(j=Math.min(D,v)/1e3||.001),0===D&&(D=Math.min(j,v)/1e3||.001),0===v&&(v=Math.min(j,D)/1e3||.001),U.rawS3=[j,D,v];for(n in N){if(u=N[n].vs,R=N[n].lvs,q){for(a=u.length,_=0;a>_;_+=3)j&&(u[_+0]/=j),D&&(u[_+1]/=D),v&&(u[_+2]/=v);if(R)for(a=R.length,_=0;a>_;_+=3)j&&(R[_+0]/=j),D&&(R[_+1]/=D),v&&(R[_+2]/=v);var Z=N[n].ns;if(Z){a=Z.length;var x=new r.Math.Vector3;for(_=0;a>_;_+=3)x.set(Z[_+0]*j,Z[_+1]*D,Z[_+2]*v).normalize(),Z[_+0]=x.x,Z[_+1]=x.y,Z[_+2]=x.z}}N[n].rawS3=U.rawS3,p&&(N[n].center=p)}};return function(I,m,o){if(!I)return K;(u.isString(m)||m instanceof ArrayBuffer)&&(m=O(m)),o||(o={}),o.flipY==K&&(o.flipY=!0),(o.s3||o.r3||o.t3||o.mat)&&(o.matrix=u.createWorldMatrix(o.mat,o.s3,o.r3,o.rotationMode,o.t3));var d,b,v,Q,A=r.Style["wf.loadQuadWireframe"],Z=[],_=[],F=o.ignoreNormal?K:[],P=o.reverseFlipMtls,S={vs:[],uv:[],ns:F?[]:K},C={htdefault:S},N=new e(I),W="",L="";for(F&&o.matrix&&(o.normalMatrix=u.createNormalMatrix(o.matrix));null!=(b=N.stepNext());)if(b=b.trim(),0!==b.length&&"#"!==b.charAt(0))if(b.indexOf("\\")!==b.length-1){if(W&&(b=W+b,W=""),b.indexOf("#QNAN0")>=0&&(b=b.replace(/#QNAN0/gi,"0")),v=E.exec(b))Z.push([parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3])]);else if(v=Y.exec(b))_.push([parseFloat(v[1]),parseFloat(v[2])]);else if(F&&(v=J.exec(b)))o.flipFace?F.push([parseFloat(-v[1]),parseFloat(-v[2]),parseFloat(-v[3])]):F.push([parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3])]);else if("f"===b[0]){var V=b.split(/\s+/);if(V.length<4)continue;var D,d,f,X=[],l=[],U=[];for(d=1,f=V.length;f>d;d++)D=V[d].split("/"),X.push(parseInt(D[0],10)),D.length>1&&D[1].length>0&&U.push(parseInt(D[1],10)),D.length>2&&D[2].length>0&&l.push(parseInt(D[2],10));for(d=0,f=X.length-2;f>d;d++)w(S,Z,_,F,o,[X[0],X[d+1],X[d+2]],U.length?[U[0],U[d+1],U[d+2]]:K,l.length?[l[0],l[d+1],l[d+2]]:K);A&&i(S,Z,o,X)}else if(o.part&&null!==(v=t.exec(b)))L=(" "+v[0].substr(1).trim()).substr(1);else if(/^usemtl /.test(b)){var x=b.substring(7).trim();x.split(" ").forEach(function(t){var w=o.part?L+"_"+t:t;(S=C[w])||(S=C[w]={name:w,vs:[],uv:[],ns:F?[]:K,lvs:A?[]:K},o.ignoreMtls&&o.ignoreMtls.indexOf(t)>=0&&delete S.vs,(o.reverseFlip||"*"===P||P&&P.indexOf(t)>=0)&&(S.reverseFlip=!0),q(m,S,o,t))})}}else W+=b.substring(0,b.length-1);var g=[];for(var y in C){var k=C[y].vs;if(k&&0!==k.length){var T=C[y].uv;if(T)for(var p=2*k.length/3-T.length;p-->0;)T.push(0)}else g.push(y)}g.forEach(function(d){delete C[d]}),z(C,o.cube,o.center,o);var B=o.shape3d;if(B){var H=[];for(var Q in C){var S=C[Q];H.rawS3=S.rawS3,S.center&&(H.center=S.center),H.push(S)}G.setShape3dModel(B,H)}return C}}(),O=function(M){var w={};if(M)for(var b,m,l,z,$,j,n=new e(M),p=/\s+/;null!=(m=n.stepNext());)m=m.trim(),0!==m.length&&"#"!==m.charAt(0)&&(l=m.indexOf(" "),z=(l?m.substring(0,l):m).toLowerCase(),$=(l?m.substring(l+1):"").trim(),"newmtl"===z?w[$]=b={name:$}:b&&("ka"===z||"kd"===z||"ks"===z?(j=$.split(p,3),b[z]=[parseFloat(j[0]),parseFloat(j[1]),parseFloat(j[2]),1]):b[z]="ns"===z||"d"===z?parseFloat($):$));return w},e=function(E){var k=this;if(E instanceof ArrayBuffer){k.isBuffer=!0;var o=0,Q=new Uint8Array(E),S=Q.length,i=Q.length;k.stepNext=function(){for(var X,b,A=o;S>o;)if(X=Q[o],b=X>>4,12===b||13==b)o+=2;else if(14===b)o+=3;else if(o++,10===X)return String.fromCharCode.apply(null,Q.subarray(A,o));return o>A?String.fromCharCode.apply(null,Q.subarray(A,o)):null}}else{k.isBuffer=!1;var $=E.split("\n"),l=0,i=$.length;k.stepNext=function(){return i>l?$[l++]:null}}};e.prototype={},e.prototype.constructor=e,u.addMethod(G,{loadObj:function(r,m,M){M=M||{};var $=!1;/(MSIE |Trident\/|Edge\/)/.test(X.navigator.userAgent)&&($=!0);var A=function(Z){var E,D=M.finishFunc,R=M.shape3d,s=Z?q(Z[0],Z[1],M):null;if(s){if(R)E=G.getShape3dModel(R);else{E=[];for(var v in s){var u=s[v];E.rawS3=u.rawS3,E.push(u)}}D&&D(s,E,E.rawS3)}else D&&D(null)};if($){M.responseType="arraybuffer";var V=function(b){G.xhrLoad(r,function(y){A([y,b])},M)};m?G.xhrLoad(m,function(T){V(T)},M):V()}else G.xhrLoad(m?[r,m]:[r],A,M)},parseObj:function(o,B,P){return q(o,B,P)}});var i=r.ByteBuffer=function($,b,k){if("undefined"==typeof $&&($=i.DEFAULT_CAPACITY),"undefined"==typeof b&&(b=i.DEFAULT_ENDIAN),"undefined"==typeof k&&(k=i.DEFAULT_NOASSERT),!k){if($=0|$,0>$)throw RangeError("Illegal capacity");b=!!b,k=!!k}this.buffer=0===$?E:new ArrayBuffer($),this.view=0===$?null:new Uint8Array(this.buffer),this.offset=0,this.markedOffset=-1,this.limit=$,this.littleEndian=b,this.noAssert=k,this.bufferId=0},E=new ArrayBuffer(0);L.defineProperties(i.prototype,{offset:{get:function(){return this._offset},set:function(i){this._offset=i,i&&i>=this.limit&&this.trySwitchNextBuffer()}}}),i.LITTLE_ENDIAN=!0,i.BIG_ENDIAN=!1,i.DEFAULT_CAPACITY=16,i.DEFAULT_ENDIAN=i.BIG_ENDIAN,i.DEFAULT_NOASSERT=!1,i.METRICS_BYTES="b";var V=String.fromCharCode,a=i.prototype;a.trySwitchNextBuffer=function(){var Z=this.buffers[++this.bufferId];Z&&(this.buffer=Z,this.limit=Z.byteLength,this.offset=0,this.view=Z.byteLength>0?new Uint8Array(Z):null)},a.readUint8=function(j){var M="undefined"==typeof j;if(M&&(j=this.offset),!this.noAssert){if("number"!=typeof j||0!==j%1)throw TypeError("Illegal offset: "+j+" (not an integer)");if(j>>>=0,0>j||j+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+j+" (+"+1+") <= "+this.buffer.byteLength)}var h=this.view[j];return M&&(this.offset+=1),h},a.readUint16=function(W){var b="undefined"==typeof W;if(b&&(W=this.offset),!this.noAssert){if("number"!=typeof W||0!==W%1)throw TypeError("Illegal offset: "+W+" (not an integer)");if(W>>>=0,0>W||W+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+W+" (+"+2+") <= "+this.buffer.byteLength)}var A=0;return this.littleEndian?(A=this.view[W],A|=this.view[W+1]<<8):(A=this.view[W]<<8,A|=this.view[W+1]),b&&(this.offset+=2),A},a.readUint24=function(C){var D="undefined"==typeof C;if(D&&(C=this.offset),!this.noAssert){if("number"!=typeof C||0!==C%1)throw TypeError("Illegal offset: "+C+" (not an integer)");if(C>>>=0,0>C||C+3>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+C+" (+"+4+") <= "+this.buffer.byteLength)}var o=0;return this.littleEndian?(o=this.view[C+2]<<16,o|=this.view[C+1]<<8,o|=this.view[C]):(o=this.view[C+1]<<8,o|=this.view[C+2],o+=this.view[C]<<16>>>0),o|=0,D&&(this.offset+=3),o},a.readUint32=function(q){var d="undefined"==typeof q;if(d&&(q=this.offset),!this.noAssert){if("number"!=typeof q||0!==q%1)throw TypeError("Illegal offset: "+q+" (not an integer)");if(q>>>=0,0>q||q+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+q+" (+"+4+") <= "+this.buffer.byteLength)}var N=0;return this.littleEndian?(N=this.view[q+2]<<16,N|=this.view[q+1]<<8,N|=this.view[q],N+=this.view[q+3]<<24>>>0):(N=this.view[q+1]<<16,N|=this.view[q+2]<<8,N|=this.view[q+3],N+=this.view[q]<<24>>>0),d&&(this.offset+=4),N},a.readFloat32=function(J){var H="undefined"==typeof J;if(H&&(J=this.offset),!this.noAssert){if("number"!=typeof J||0!==J%1)throw TypeError("Illegal offset: "+J+" (not an integer)");if(J>>>=0,0>J||J+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+J+" (+"+4+") <= "+this.buffer.byteLength)}var q=D(this.view,J,this.littleEndian,23,4);return H&&(this.offset+=4),q};var n=function(){var K={};return K.MAX_CODEPOINT=1114111,K.decodeUTF8=function(l,f){for(var m,h,P,_,H=function(Y){Y=Y.slice(0,Y.indexOf(null));var L=Error(Y.toString());throw L.name="TruncatedError",L.bytes=Y,L};null!==(m=l());)if(0===(128&m))f(m);else if(192===(224&m))null===(h=l())&&H([m,h]),f((31&m)<<6|63&h);else if(224===(240&m))(null===(h=l())||null===(P=l()))&&H([m,h,P]),f((15&m)<<12|(63&h)<<6|63&P);else{if(240!==(248&m))throw RangeError("Illegal starting byte: "+m);(null===(h=l())||null===(P=l())||null===(_=l()))&&H([m,h,P,_]),f((7&m)<<18|(63&h)<<12|(63&P)<<6|63&_)}},K.UTF16toUTF8=function(s,A){for(var F,v=null;;){if(null===(F=null!==v?v:s()))break;F>=55296&&57343>=F&&null!==(v=s())&&v>=56320&&57343>=v?(A(1024*(F-55296)+v-56320+65536),v=null):A(F)}null!==v&&A(v)},K.UTF8toUTF16=function(w,o){var B=null;for("number"==typeof w&&(B=w,w=function(){return null});null!==B||null!==(B=w());)65535>=B?o(B):(B-=65536,o((B>>10)+55296),o(B%1024+56320)),B=null},K.decodeUTF8toUTF16=function(L,m){K.decodeUTF8(L,function(B){K.UTF8toUTF16(B,m)})},K.calculateCodePoint=function(e){return 128>e?1:2048>e?2:65536>e?3:4},K.calculateUTF8=function(S){for(var d,h=0;null!==(d=S());)h+=128>d?1:2048>d?2:65536>d?3:4;return h},K.calculateUTF16asUTF8=function(B){var j=0,O=0;return K.UTF16toUTF8(B,function(Z){++j,O+=128>Z?1:2048>Z?2:65536>Z?3:4}),[j,O]},K}();a.readString=function(t,M,b){"number"==typeof M&&(b=M,M=Z);var S="undefined"==typeof b;if(S&&(b=this.offset),"undefined"==typeof M&&(M=i.METRICS_CHARS),!this.noAssert){if("number"!=typeof t||0!==t%1)throw TypeError("Illegal length: "+t+" (not an integer)");if(t|=0,"number"!=typeof b||0!==b%1)throw TypeError("Illegal offset: "+b+" (not an integer)");if(b>>>=0,0>b||b+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+0+") <= "+this.buffer.byteLength)}var a,V=0,N=b;if(M===i.METRICS_CHARS){if(a=x(),n.decodeUTF8(function(){return t>V&&b>>=0,0>b||b+t>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+b+" (+"+t+") <= "+this.buffer.byteLength)}var C=b+t;if(n.decodeUTF8toUTF16(function(){return C>b?this.view[b++]:null}.bind(this),a=x(),this.noAssert),b!==C)throw RangeError("Illegal range: Truncated data, "+b+" == "+C);return S?(this.offset=b,a()):{string:a(),length:b-N}}throw TypeError("Unsupported metrics: "+M)};var $=function(z){if(z.length){for(var p=0;p0?new Uint8Array(A):null,$.buffers=z;var H=[],e=$.readUint8(10);return Y(H,$),h(H,$),s(H,$,e),H}},Y=function(Z,I){I.offset+=19},h=function(d,J){var E=J.readUint8();1&E&&(d.center=k(J)),2&E&&(d.rawS3=k(J))},d=function(m){return[m.readFloat32(),m.readFloat32()]},k=function(t){return[t.readFloat32(),t.readFloat32(),t.readFloat32()]},p=function(G){var E=G.readUint32();return G.readString(E,i.METRICS_BYTES)},s=function(c,J,U){for(var w=((U||0)<<8)+J.readUint8(),r=0;w>r;r++)c.push(F(J))},F=function(C){var H={},z=C.readUint32(),V=0,W=z&1<>14)/g,E=(16383&W)/g,z=Math.sqrt(1-c*c-E*E)||0;return[c*(U?1:-1),E*(b?1:-1),z*(K?1:-1)]},g=function(I,R,Q,r,d){var K=R.readUint32();R.readUint8();var A,D,H,g=R.readUint32(),E=R.readUint32(),p=[];if("uv"===r)for(A=0;K>A;A++)D=T(R),H=T(R),p.push([D,H]);else if("ns"===r)for(A=0;K>A;A++)p.push(c(R));else for(var A=0;K>A;A++)p.push(k(R));var P;P=256>K?"readUint8":65536>K?"readUint16":16777216>K?"readUint24":"readUint32";var l,G,F;if(g)for(l=I[r]=[],A=0;g>A;A++)G=R[P](),F=p[G],"uv"===r?l.push(F[0],F[1]):l.push(F[0],F[1],F[2]);if(E)for(l=I[d]=[],A=0;E>A;A++)G=R[P](),F=p[G],l.push(F[0],F[1],F[2])};G.getInternal().addMethod(G,{loadBin:function(_,s){s=s||{};var J=function(y){var j,f=s.finishFunc,d=s.shape3d,h=$(y);if(h){if(d)j=G.getShape3dModel(d);else{j=[];for(var l in h){var T=h[l];j.rawS3=T.rawS3,j.push(T)}}f&&f(h,j,j.rawS3)}else f&&f(null)},P=function(l){var j=s.finishFunc;if(!l)return j&&j(null),void 0;if(l.byteLength<50){var x=new Uint8Array(l),r=x[9];if(r>1){for(var M=[],U=_.substr(0,_.length-4),i=1;r>i;i++)M.push(U+i+".bin");return G.xhrLoad(M,function(B){B.splice(0,0,l),J(B)},s),void 0}}J([l])};s.responseType="arraybuffer",G.xhrLoad(_,function(d){P(d)},s)},parseBin:function(J){return $([J])}})}("undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:(0,eval)("this"),Object);