Repository navigation
Expand file tree
/
Copy pathlmvworker.min.js
More file actions
5 lines (5 loc) · 151 KB
/
Copy pathlmvworker.min.js
File metadata and controls
5 lines (5 loc) · 151 KB
1
2
3
4
5
function launchFullscreen(a,b){a.requestFullscreen?a.requestFullscreen(b):a.mozRequestFullScreen?a.mozRequestFullScreen(b):a.webkitRequestFullscreen?a.webkitRequestFullscreen(b):a.msRequestFullscreen&&a.msRequestFullscreen(b)}function exitFullscreen(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen()}function inFullscreen(){return"webkitIsFullScreen"in document?document.webkitIsFullScreen:!!(document.mozFullScreenElement||document.msFullscreenElement||document.fullscreenEnabled||document.querySelector(".viewer-fill-browser"))}function fullscreenElement(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement}function isFullscreenAvailable(a){return a.requestFullscreen||a.mozRequestFullScreen||a.webkitRequestFullscreen||a.msRequestFullscreen}function getAndroidVersion(a){var a=a||navigator.userAgent,b=a.match(/Android\s([0-9\.]*)/);return b?b[1]:!1}function isTouchDevice(){return"ontouchstart"in window}function isIOSDevice(){return/ip(ad|hone|od)/.test(navigator.userAgent.toLowerCase())}function isAndroidDevice(){return-1!==navigator.userAgent.toLowerCase().indexOf("android")}function isMobileDevice(){return isIOSDevice()||isAndroidDevice()}function isSafari(){var a=navigator.userAgent.toLowerCase();return-1!==a.indexOf("safari")&&-1===a.indexOf("chrome")}function detectWebGL(){if(window.WebGLRenderingContext){for(var a=document.createElement("canvas"),b=["webgl","experimental-webgl","moz-webgl","webkit-3d"],c=!1,d=0;4>d;d++)try{if(c=a.getContext(b[d]),c=rescueFromPolymer(c),c&&"function"==typeof c.getParameter)return 1}catch(e){}return 0}return-1}function touchStartToClick(a){a.preventDefault(),a.stopPropagation(),a.target.click()}function InputStream(a){this.buffer=a,this.offset=0,this.byteLength=a.length,this.convBuf=new ArrayBuffer(8),this.convUint8=new Uint8Array(this.convBuf),this.convUint16=new Uint16Array(this.convBuf),this.convInt32=new Int32Array(this.convBuf),this.convUint32=new Uint32Array(this.convBuf),this.convFloat32=new Float32Array(this.convBuf),this.convFloat64=new Float64Array(this.convBuf)}function PackFileReader(a){if(31==a[0]&&139==a[1]){var b=new Zlib.Gunzip(a);a=b.decompress()}var c=this.stream=new InputStream(a),d=c.getInt32();this.type=c.getString(d),this.version=c.getInt32(),this.types=null,this.entryOffsets=[],c.seek(c.byteLength-8);var e=c.getUint32();this.typesOffset=c.getUint32(),c.seek(this.typesOffset);var f=this.readU32V();this.types=[];for(var g=0;f>g;++g)this.types.push({entryClass:this.readString(),entryType:this.rea
8000
dString(),version:this.readU32V()});c.seek(e);for(var h=this.readU32V(),i=this.entryOffsets,g=0;h>g;++g)i.push(c.getUint32());c.seek(0)}function readOpenCTM_RAW(a,b){var c=function(){return a.getString(a.getInt32())},d=a.getString(4);if("INDX"!=d)return null;for(var e=b.vertexCount,f=b.triangleCount,g=b.indices=new Uint16Array(3*f),h=0,i=3*f;i>h;h++)g[h]=a.getInt32();if(d=a.getString(4),"VERT"!=d)return null;var j,k=b.vbstride,l=b.vb;b.vblayout.normal&&2===b.vblayout.normal.itemSize&&(j=new Uint16Array(l.buffer));for(var h=0,m=b.vblayout.position.offset;e>h;h++,m+=k)l[m]=a.getFloat32(),l[m+1]=a.getFloat32(),l[m+2]=a.getFloat32();if(1&b.flags){if(d=a.getString(4),"NORM"!=d)return null;for(var h=0,m=b.vblayout.normal.offset;e>h;h++,m+=k)if(j){var n=a.getFloat32(),o=a.getFloat32(),p=a.getFloat32(),q=.5*(Math.atan2(o,n)/Math.PI+1),r=.5*(p+1);j[2*m]=65535*q|0,j[2*m+1]=65535*r|0}else l[m]=a.getFloat32(),l[m+1]=a.getFloat32(),l[m+2]=a.getFloat32()}for(var s=0;s<b.texMapCount;s++){if(d=a.getString(4),"TEXC"!=d)return null;var t={name:c(),file:c()};b.uvs.push(t);var u="uv";s&&(u+=(s+1).toString());for(var h=0,m=b.vblayout[u].offset;e>h;h++,m+=k)l[m]=a.getFloat32(),l[m+1]=a.getFloat32()}for(var v=k-3*(b.attribMapCount||0),s=0;s<b.attribMapCount;s++){if(d=a.getString(4),"ATTR"!=d)return null;var w,x={name:c()};if(-1!=x.name.indexOf("Color"))w="color";else{if(-1==x.name.indexOf("UVW")){b.attrs.push(x),a.getBytes(16*e);continue}w="uvw"}b.vblayout[w]={offset:v,itemSize:3};for(var h=0,m=v;e>h;h++,m+=k)l[m]=a.getFloat32(),l[m+1]=a.getFloat32(),l[m+2]=a.getFloat32(),a.getFloat32();v+=3}}function readGeometry(a,b,c){var d=a.seekToEntry(b);return d?"Autodesk.CloudPlatform.OpenCTM"==d.entryType?readOpenCTM(a.stream):"Autodesk.CloudPlatform.Lines"==d.entryType?readLines(a,d):null:null}function readLightDefinition(a,b){var c=a.seekToEntry(b);if(!c)return null;if(c.version>1)return null;var d=a.stream,e={position:a.readVector3f(),dir:a.readVector3f(),r:d.getFloat32(),g:d.getFloat32(),b:d.getFloat32(),intensity:d.getFloat32(),spotAngle:d.getFloat32(),size:d.getFloat32(),type:d.getUint8()};return e}function readCameraDefinition(a,b){var c=b.definition,d=a.seekToEntry(c);if(!d)return null;if(d.version>2)return null;var e=a.stream,f={isPerspective:!e.getUint8(),position:a.readVector3f(),target:a.readVector3f(),up:a.readVector3f(),aspect:e.getFloat32(),fov:e.getFloat32()*(180/Math.PI)};return d.version<2&&(e.getFloat32(),e.getFloat32()),f.orthoScale=e.getFloat32(),f}function FragList(){this.length=0,this.numLoaded=0,this.boxes=null,this.transforms=null,this.materials=null,this.packIds=null,this.entityIndexes=null,this.fragId2dbId=null,this.mesh2frag=null,this.topoIndexes=null}function readGeometryMetadataIntoFragments(a,b){var c=b.geomDataIndexes.length,d=a.stream,e=0,f={};b.polygonCounts=b.geomDataIndexes;for(var g=0;c>g;g++){var h=b.geomDataIndexes[g];if(f[h]){var i=f[h];b.polygonCounts[g]=b.polygonCounts[i],b.packIds[g]=b.packIds[i],b.entityIndexes[g]=b.entityIndexes[i],e+=b.polygonCounts[g]}else{var j=a.seekToEntry(h);if(!j)return;d.getUint8(),d.seek(d.offset+24),b.polygonCounts[g]=d.getUint16(),b.packIds[g]=parseInt(a.readString()),b.entityIndexes[g]=a.readU32V(),e+=b.polygonCounts[g],f[h]=g}}return b.geomDataIndexes=null,f=null,e}function readGeometryMetadata(a,b){var c=a.getEntryCounts(),d=a.stream;b.length=c;for(var e,f=b.fragTypes=new Uint8Array(c),g=b.primCounts=new Uint16Array(c),h=b.packIds=new Int32Array(c),i=b.entityIndexes=new Int32Array(c),j=0,k=c;k>j;j++){var l=a.seekToEntry(j);if(!l)return;if(f[j]=d.getUint8(),d.seek(d.offset+24),g[j]=d.getUint16(),h[j]=parseInt(a.readString()),i[j]=a.readU32V(),l.version>2){var m=d.getInt32();if(-1!=m&&void 0===e){e=b.topoIndexes=new Int32Array(c);for(var n=0;j>n;n++)e[n]=-1}void 0!=e&&(e[j]=m)}}}function objectIds2FragmentIndices(a,b){var c=[];if(!b)return c;for(var d=a.getEntryCounts(),e=a.stream,f=0;d>f;f++){var g=a.seekToEntry(f);if(!g)return;if(g.version>5)return;g.version>4&&a.readU8(),a.readU32V(),g.version>2?a.readU32V():(a.readString(),a.readU32V()),a.readTransform(f,null,12*f);for(var h=0;6>h;h++)e.getFloat32();if(g.version>1){var i=a.readU32V();b.indexOf(i)>=0&&c.push(f)}}return c}function readFragments(a,b,c,d,e){function f(a){if(d){var b=6*a;l.setFromArray(n,b),l.applyMatrix4(m),l.copyToArray(n,b)}}function g(a){for(var b=6*a,c=0;6>c;c++)n[b++]=k.getFloat32()}function h(a,b,c){for(var d=6*a,e=0;6>e;e++)n[d++]=k.getFloat32()+b[c+e%3]}var i=objectIds2FragmentIndices(a,e),j=i.length?i.length:a.getEntryCounts(),k=a.stream;NUM_FRAGMENT_LIMITS&&j>NUM_FRAGMENT_LIMITS&&(j=NUM_FRAGMENT_LIMITS),b.length=j,b.numLoaded=0;var l,m,n=b.boxes=new Float32Array(6*j),o=b.transforms=new Float32Array(12*j),p=b.materials=new Int32Array(j),q=b.packIds=new Int32Array(j),r=b.entityIndexes=new Int32Array(j),s=b.geomDataIndexes=new Int32Array(j),t=b.fragId2dbId=new Int32Array(j);d&&(l=new LmvBox3,m=(new LmvMatrix4).fromArray(d.elements));for(var u=0,v=b.length;v>u;u++){var w=i.length?a.seekToEntry(i[u]):a.seekToEntry(u);if(!w)return;if(w.version>5)return;var x=!0;if(w.version>4){var y=a.readU8();x=0!=(1&y)}if(p[u]=a.readU32V(),w.version>2?s[u]=a.readU32V():(q[u]=parseInt(a.readString()),r[u]=a.readU32V()),a.readTransform(u,o,12*u,c),w.version>3)h(u,o,12*u+9),f(u);else if(g(u),f(u),c){var z=6*u;n[z++]-=c.x,n[z++]-=c.y,n[z++]-=c.z,n[z++]-=c.x,n[z++]-=c.y,n[z++]-=c.z}w.version>1&&(t[u]=a.readU32V())}b.finishLoading=!0}function filterFragments(a,b){a.length=b.length,a.numLoaded=0;for(var c=a.length,d=[1/0,1/0,1/0,-(1/0),-(1/0),-(1/0)],e=new Float32Array(6*c),f=new Float32Array(12*c),g=new Int32Array(c),h=new Int32Array(c),i=new Int32Array(c),j={},k=0;k<b.length;++k){for(var l=b[k],m=6*l,n=6*k,o=0;6>o;++o)e[n++]=a.boxes[m++];m=12*l,n=12*k;for(var o=0;12>o;++o)f[n++]=a.transforms[m++];g[k]=a.materials[l],h[k]=a.packIds[l],i[k]=a.entityIndexes[l];var p=a.packIds[l]+":"+a.entityIndexes[l],q=j[p];void 0==q?j[p]=k:Array.isArray(q)?q.push(k):j[p]=[q,k];for(var r=6*k,o=0;3>o;++o)e[r+o]<d[o]&&(d[o]=e[r+o]);for(var o=3;6>o;++o)e[r+o]>d[o]&&(d[o]=e[r+o])}return a.boxes=e,a.transforms=f,a.materials=g,a.packIds=h,a.entityIndexes=i,a.mesh2frag=j,d}function readInstance(a,b,c){var d=a.seekToEntry(b);if(!d)return null;if(d.version>2)return null;var e=!0;if(d.version>1){var f=a.readU8();e=0!=(1&f)}return{definition:a.stream.getUint32(),transform:a.readTransform(void 0,void 0,void 0,c),instanceNodePath:a.readPathID()}}function Package(a){this.unzip=new Zlib.Unzip(a),this.manifest=null,this.materials=null,this.metadata=null,this.fragments=null,this.geompacks=[],this.instances=[],this.cameras=[],this.lights=[],this.propertydb={attrs:[],avs:[],ids:[],values:[],offsets:[]},this.bbox=null,this.animations=null,this.pendingRequests=0,this.globalOffset={x:0,y:0,z:0},this.topology=null,this.memoryOptimizedMode=!1}function PropertyDatabase(a){function b(a){for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);var d=decodeURIComponent(escape(b));return JSON.parse(d)}function c(a,b){for(var c=b,d="";c<a.length-1;){var e=a[c];if(44==e&&(10==a[c+1]||13==a[c+1]))break;if(10==e||13==e)break;d+=String.fromCharCode(e),c++}try{var f=decodeURIComponent(escape(d));return JSON.parse(f)}catch(g){return console.error("Error parsing property blob to JSON : "+d),d}}function d(a,b){var c=0,d=b;for(34==a[d]&&d++;d<a.length-1;){var e=a[d];if(44==e&&(10==a[d+1]||13==a[d+1]))break;if(10==e||13==e||34==e)break;e>=48&&57>=e&&(c=10*c+(e-48)),d++}return c}function e(a,b){for(var c=0,d=0,e=a.length;e>d;d++)44==a[d]&&c++;c++;var f=new Uint32Array(c+(b?1:0));d=0;for(var g=a.length;91!=a[d]&&g>d;)d++;if(d==a.length)return null;d++;var h=!1;c=0;for(var i=0;g>d;){var j=a[d];j>=48&&57>=j?(i=10*i+(j-48),h=!0):44==j||93==j?h&&(f[c++]=i,h=!1,i=0):(h=!1,i=0),d++}return f}function f(a){for(var b=0,c=a.length-1,d=0;c>d;d++)44!=a[d]||10!=a[d+1]&&13!=a[d+1]||b++;if(!b)return null;b++;var e=new Uint32Array(b);for(d=0,b=0;91!=a[d]&&c>d;)d++;d++,e[b++]=d;for(var f=!1;c>d;)10==a[d]||13==a[d]?f=!0:f&&(f=!1,e[b++]=d),d++;return e}var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;for(var v in a.attrs){g=b(a.attrs[v]);for(var w=0;w<g.length;w++){var x=g[w][1];switch(x){case"__parent__":o=w;break;case"__child__":n=w;break;case"__name__":p=w;break;case"__instanceof__":q=w;break;case"__viewable_in__":r=w;break;case"__externalref__":s=w;break;case"__node_flags__":t=w}}break}for(var v in a.avs){i=e(a.avs[v],0),delete a.avs;break}for(var v in a.offsets){h=e(a.offsets[v],1),h[h.length-1]=i.length/2,delete a.offsets;break}for(var v in a.values){j=a.values[v],k=f(j);break}for(var v in a.ids){l=a.ids[v],m=f(l);break}this.getObjectCount=function(){return h.length-1},this.getValueAt=function(a){return c(j,k[a])},this.getIntValueAt=function(a){return d(j,k[a])},this.getIdAt=function(a){return c(l,m[a])},this.getObjectProperties=function(a,b){var c={dbId:a,properties:[]};b&&-1===b.indexOf("externalId")||(c.externalId=this.getIdAt(a));for(var d=null,e=2*h[a],f=2*h[a+1],j=e;f>j;j+=2){var k=i[j],l=g[k];if(!b||-1!==b.indexOf(l[0]))if(k==p){var m=this.getValueAt(i[j+1]);c.name=m}else if(k==q){var t=this.getObjectProperties(this.getValueAt(i[j+1]));t&&t.properties&&(d=t)}else{var u=l[6]?l[6]:0,v=l[5]?l[5]:l[0],w=1&u||k==o||k==n||k==r||k==s;c.properties.push({displayName:v,displayValue:this.getValueAt(i[j+1]),displayCategory:l[1],type:l[2],units:l[3],hidden:w})}}if(d){for(var x={},y=c.properties,j=0;j<y.length;j++)x[y[j].displayName]=1;c.name||(c.name=d.name);for(var z=d.properties,j=0;j<z.length;j++)x.hasOwnProperty(z[j].displayName)||y.push(z[j])}return b&&!c.properties.length?null:c},this.getExternalIdMapping=function(){if(!u&&(u={},m&&"length"in m))for(var a=1,b=m.length;b>a;++a){var c=this.getIdAt(a);u[c]=a}return u},this.findRootNodes=function(){for(var a=[],b=1,c=h.length;c>b;b++){for(var d=!1,e=!1,f=!1,g=2*h[b],j=2*h[b+1],k=g;j>k;k+=2){var l=i[k];l==o?this.getIntValueAt(i[k+1])&&(e=!0):l==n?d=!0:l==p&&(f=!0)}d&&f&&!e&&a.push(b)}return a},this.getNodeNameAndChildren=function(a,b){for(var c,d=a.dbId,e=2*h[d],f=2*h[d+1],g=e;f>g;g+=2){var j,k=i[g];if(k==o);else if(k!=n||b)k==p?a.name=this.getValueAt(i[g+1]):k==t&&(a.flags=this.getIntValueAt(i[g+1]));else{j=this.getIntValueAt(i[g+1]);var l={dbId:j,parent:a.dbId};c?c.push(l):c=[l]}}if(!a.name)for(var g=e;f>g;g+=2){var k=i[g];if(k==q){var m={dbId:this.getIntValueAt(i[g+1]),name:null};this.getNodeNameAndChildren(m,!0),m&&m.name&&!a.name&&(a.name=m.name)}}return c},this.buildObjectTree=function(a,b,c,d){c>d[0]&&(d[0]=c);var e=this.getNodeNameAndChildren(a);if(e){for(var f=0;f<e.length;f++)this.buildObjectTree(e[f],b,c+1,d);for(f=0;f<e.length;f++)(!b||e[f].children||void 0!==e[f].fragIds)&&(a.children?a.children.push(e[f]):a.children=[e[f]])}if(b){var g=b[a.dbId];void 0!==g&&(a.fragIds=g)}},this.bruteForceSearch=function(a,b){a=a.toLowerCase();for(var c=a.match(/"[^"]+"|[^\s]+/g)||[],d=c.length;d--;)c[d]=c[d].replace(/"/g,"");for(var e=[],d=0;d<c.length;d++)c[d].length>1&&e.push(c[d]);if(0===e.length)return[];for(var f=[],j=0;j<e.length;j++){for(var l=[],m=[],d=0,n=k.length;n>d;d++){var o=this.getValueAt(d);"string"==typeof o?-1!=o.toLowerCase().indexOf(e[j])&&m.push(d):-1!=o.toString().toLowerCase().indexOf(e[j])&&m.push(d)}for(var p=1,q=h.length;q>p;p++)for(var r=2*h[p],s=2*h[p+1],d=r;s>d;d+=2)if(-1!=m.indexOf(i[d+1])){if(b&&b.length&&-1===b.indexOf(g[i[d]][0]))continue;l.push(p);break}f.push(l)}if(1===f.length)return f[0];for(var t={},u=f[0],d=0;d<u.length;d++)t[u[d]]=1;for(var v=1;v<f.length;v++){u=f[v];for(var w={},d=0;d<u.length;d++)1===t[u[d]]&&(w[u[d]]=1);t=w}var l=[];for(var j in t)l.push(parseInt(j));return l},this.getAttributeToIdMap=function(){for(var a={},b=null,c=0;c<h.length;c++)for(var d=this.getObjectProperties(c),e=0;e<d.properties.length;e++){var f=d.properties[e];f.displayName in a||(a[f.displayName]={values:[],units:f.units,category:f.displayCategory,isnumber:!0}),b=a[f.displayName],isNaN(f.displayValue)&&(b.isnumber=!1),b.values.push({value:f.displayValue,id:c})}return a}}function CheckedInputStream(a){this.buffer=a,this.offset=0,this.byteLength=a.length,this.convBuf=new ArrayBuffer(8),this.convUint8=new Uint8Array(this.convBuf),this.convUint16=new Uint16Array(this.convBuf),this.convInt32=new Int32Array(this.convBuf),this.convUint32=new Uint32Array(this.convBuf)}function OutOfBoundsBufferAccessException(a){this.offset=a,this.message="try to access an offset that is out of bounds: "+this.offset,this.toString=function(){return this.message}}function NodeArray(a,b){b?this.bytes_per_node=32:this.bytes_per_node=36;var c,d;a instanceof ArrayBuffer?(c=a.byteLength/this.bytes_per_node,d=a,this.nodeCount=c):(c=0|a,d=new ArrayBuffer(this.bytes_per_node*c),this.nodeCount=0),this.nodeCapacity=c,this.nodesRaw=d,this.is_lean_node=b,this.node_stride=this.bytes_per_node/4,this.node_stride_short=this.bytes_per_node/2,this.nodesF=new Float32Array(this.nodesRaw),this.nodesI=new Int32Array(this.nodesRaw),this.nodesS=new Uint16Array(this.nodesRaw)}function BVHBuilder(a,b){this.boxes=a.boxes,this.polygonCounts=a.polygonCounts,this.materials=a.materials,this.materialDefs=b,this.prim_count=a.length,this.frags_per_leaf_node=-1,this.frags_per_inner_node=-1,this.nodes=null,this.work_buf=new ArrayBuffer(4*this.prim_count),this.sort_prims=new Int32Array(this.work_buf),this.primitives=new Int32Array(this.prim_count),this.centroids=new Float32Array(POINT_STRIDE*this.prim_count),this.boxv_o=new Float32Array(6),this.boxc_o=new Float32Array(6),this.boxv_t=new Float32Array(6),this.boxc_t=new Float32Array(6),this.recursion_stack=[]}function doGeomLoad(a,b){function c(c){a.postMessage({url:b.url,workerId:b.workerId,progress:.5});try{var d=new PackFileReader(new Uint8Array(c))}catch(e){return a.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"Unhandled exception while reading pack file",{url:b.url,exception:e.toString(),stack:e.stack}),void a.postMessage(null)}for(var f=!1,g=!1,h={packId:b.packId,meshIndex:0,mesh:null,workerId:b.workerId,progress:0},i=0,j=d.getEntryCounts();j>i;i++){try{var k=readGeometry(d,i,null)}catch(e){g||(a.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"Unhandled exception while reading geometry",{url:b.url,exception:e.toString(),stack:e.stack}),g=!0,f=!0,debug(e.stack));var k=null}if(h.meshIndex=i,h.mesh=k,h.progress=.5+.5*((i+1)/j),k){var l=[];l.push(k.vb.buffer),a.postMessage(h,l)}else f||(a.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"Unable to load geometry",{url:b.url}),f=!0),a.postMessage(h)}}Autodesk.Viewing.Private.ViewingService.get(b.viewing_url,"items",b.url,c,b.onFailureCallback,{withCredentials:!!b.auth,responseType:"arraybuffer",asynchronous:!1,headers:b.headers,queryParams:b.queryParams,oss_url:b.oss_url})}function guardFunction(a,b,c){try{c()}catch(d){a.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"Unhandled exception while loading SVF",{url:b.url,exception:d.toString(),stack:d.stack}),a.postMessage(null)}}function doLoadSvfContinued(a,b){guardFunction(a,b,function(){function c(c,e){if("svf"==c){var f=d.fragments,g=[f.transforms.buffer,f.packIds.buffer,f.entityIndexes.buffer,f.fragId2dbId.buffer];if(d.bvh){var h={nodes:d.bvh.nodes.getRawData(),primitives:d.bvh.primitives,useLeanNodes:32==d.bvh.nodes.bytes_per_node};g.push(h.nodes),g.push(h.primitives.buffer),g.push(f.boxes.buffer),g.push(f.polygonCounts.buffer),g.push(f.materials.buffer);var i={svf:d,bvh:h,progress:1}}else var i={svf:d,progress:.8};a.postMessage(i,g)}else if("bvh"==c){var h={nodes:d.bvh.nodes.getRawData(),primitives:d.bvh.primitives,useLeanNodes:32==d.bvh.nodes.bytes_per_node};a.postMessage({bvh:h,basePath:d.basePath,progress:1},[h.nodes,h.primitives.buffer])}else if("mesh"==c){var i=e,j=[];i.mesh&&j.push(i.mesh.vb.buffer),a.postMessage(i,j)}else"done"==c?a.postMessage({progress:1}):(a.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"Failure while loading SVF",{url:b.url}),a.postMessage(null))}var d=a.svf;b.loadDoneCB=c,a.svf.loadRemainingSvf(b)})}function doLoadSvf(a,b){function c(c){a.postMessage({progress:.5}),guardFunction(a,b,function(){"gltf"===d||"glb"===d?a.svf=new GltfPackage(c):a.svf=new Package(new Uint8Array(c)),a.svf.loadManifest(b),b.interceptManifest?a.postMessage({manifest:svf.manifest}):(b.manifest=a.svf.manifest,doLoadSvfContinued(a,b))})}var d="svf",e=b.url.toLocaleLowerCase();e.lastIndexOf(".gltf")===e.length-5&&(d="gltf"),e.lastIndexOf(".glb")===e.length-4&&(d="glb"),Autodesk.Viewing.Private.ViewingService.get(b.viewing_url,"items",b.url,c,b.onFailureCallback,{withCredentials:!!b.auth,responseType:"gltf"===d?"json":"arraybuffer",asynchronous:!1,headers:b.headers,queryParams:b.queryParams,oss_url:b.oss_url})}function loadPropertyPacks(a,b,c){function d(){var a=[];return a.push({filename:"objects_attrs.json",storage:g.attrs}),a.push({filename:"objects_vals.json",storage:g.values}),a.push({filename:"objects_avs.json",storage:g.avs}),a.push({filename:"objects_offs.json",storage:g.offsets}),a.push({filename:"objects_ids.json",storage:g.ids}),a}function e(b){if(!b){if(j)return propdbFailed=!0,void c(null);j=!0,h=d()}if(0===h.length)propdb=new PropertyDatabase(g),c(propdb),propdbFailed=!1,propdbURL=a.url;else{var f=h.shift();requestFile(f.filename,a,e,f.storage)}}if(propdb)return void c(propdb);if(propdbFailed)return void c(null);var f=a.propertydb;if(!f)return propdbFailed=!0,void c(null);var g={ids:{},attrs:{},offsets:{},values:{},avs:{}},h=[];h.push({filename:f.attrs.length?f.attrs[0]:"objects_attrs.json.gz",storage:g.attrs}),h.push({filename:f.values.length?f.values[0]:"objects_vals.json.gz",storage:g.values}),h.push({filename:f.avs.length?f.avs[0]:"objects_avs.json.gz",storage:g.avs}),h.push({filename:f.offsets.length?f.offsets[0]:"objects_offs.json.gz",storage:g.offsets}),h.push({filename:f.ids.length?f.ids[0]:"objects_ids.json.gz",storage:g.ids});for(var i=0;i<h.length;i++)h[i].filename=h[i].filename.replace(/\\/g,"/");var j=!1,k=h.shift();requestFile(k.filename,a,e,k.storage)}function doPropertyGet(a,b){function c(c){if(c)if(Array.isArray(e)){for(var g=[],h=0;h<e.length;h++){var i=c.getObjectProperties(e[h],f);i&&g.push(i)}a.postMessage({cbId:b.cbId,result:g})}else{var i=c.getObjectProperties(d,f);a.postMessage({cbId:b.cbId,result:i})}}var d=b.dbId,e=b.dbIds,f=b.propFilter;loadPropertyPacks(b,d,c)}function computeTreeBBoxes(a,b,c){var d=6*a.dbId;b[d]=b[d+1]=b[d+2]=1/0,b[d+3]=b[d+4]=b[d+5]=-(1/0);var e=a.children;if(e)for(var f=0,g=e.length;g>f;f++){computeTreeBBoxes(e[f],b,c);for(var h=6*(0|e[f].dbId),i=0;3>i;i++)b[d+i]>b[h+i]&&(b[d+i]=b[h+i]),b[d+i+3]<b[h+i+3]&&(b[d+i+3]=b[h+i+3])}if(void 0!==a.fragIds)if(Array.isArray(a.fragIds)){if(a.fragIds.length)for(var j=0;j<a.fragIds.length;j++){k=6*(0|a.fragIds[j]);for(var i=0;3>i;i++)b[d+i]>c[k+i]&&(b[d+i]=c[k+i]),b[d+i+3]<c[k+i+3]&&(b[d+i+3]=c[k+i+3])}}else for(var k=6*(0|a.fragIds),i=0;3>i;i++)b[d+i]>c[k+i]&&(b[d+i]=c[k+i]),b[d+i+3]<c[k+i+3]&&(b[d+i+3]=c[k+i+3])}function buildDbIdToFragMap(a){for(var b={},c=0,d=a.length;d>c;c++){var e=a[c];Array.isArray(e)||(e=[e]);for(var f=0;f<e.length;f++){var g=e[f],h=b[g];void 0===h?b[g]=c:Array.isArray(h)?h.push(c):b[g]=[h,c]}}return b}function doObjectTreeParse(a,b){function c(c){if(!c)return void a.postMessage({cbId:b.cbId,error:{instanceTree:null,maxTreeDepth:0}});var d;b.fragToDbId&&(d=buildDbIdToFragMap(b.fragToDbId));var e,f=c.findRootNodes(),g=[0],h=c.getObjectCount();if(f&&f.length)if(1==f.length)e={dbId:f[0]},c.buildObjectTree(e,d,0,g);else{e={dbId:0,children:[]};for(var i=0;i<f.length;i++){var j={dbId:f[i]};e.children.push(j),c.buildObjectTree(j,d,0,g)}}var k;b.fragBoxes&&(k=new Float32Array(6*c.getObjectCount()),computeTreeBBoxes(e,k,b.fragBoxes)),a.postMessage({cbId:b.cbId,result:{instanceTree:e,instanceBoxes:k,maxTreeDepth:g[0],objectCount:h}})}loadPropertyPacks(b,null,c)}function requestFile(a,b,c,d){function e(a,d,e){404!==a&&b.onFailureCallback(a,d,e),c(null)}var f=b.url+a,g=null;g=-1!==f.indexOf(".gz",f.length-3)?function(b){try{var e=new Uint8Array(b);31==e[0]&&139==e[1]&&(e=new Zlib.Gunzip(e).decompress()),d[a]=e,c(e)}catch(g){self.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"Malformed data received when requesting file",{url:f,exception:g.toString(),stack:g.stack}),c(null)}}:function(b){var e=new Uint8Array(b);d[a]=e,c(e)},Autodesk.Viewing.Private.ViewingService.get(b.viewing_url,"items",f,g,e,{withCredentials:!!b.auth,responseType:"arraybuffer",asynchronous:!1,headers:b.headers,queryParams:b.queryParams,oss_url:b.oss_url})}function doPropertySearch(a,b){function c(c){if(c){var d=c.bruteForceSearch(b.searchText,b.attributeNames);a.postMessage({cbId:b.cbId,result:d})}}loadPropertyPacks(b,null,c)}function doBuildExternalIdMapping(a,b){function c(c){if(c){var d=c.getExternalIdMapping();a.postMessage({cbId:b.cbId,result:d})}}loadPropertyPacks(b,null,c)}function doAttributeToIdMap(a,b){function c(c){if(c){var d=c.getAttributeToIdMap();a.postMessage({cbId:b.cbId,result:d})}}loadPropertyPacks(b,null,c)}function doDecompressDelta(a,b){var c=base64.decode(b.delta);c=c.split("").map(function(a){return a.charCodeAt(0)});for(var d=new Zlib.Inflate(c),e=d.decompress(),f="",g=0;g<e.length;g++)f+=String.fromCharCode(e[g]);f=JSON.parse(f),a.postMessage({cbId:b.cbId,index:b.index,res:f})}function doParseF2D(a,b){function c(b){if(b){var c={f2d:d};a.postMessage(c)}else a.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"",{}),a.postMessage(null)}if(b.data){a.postMessage({progress:.5});var d=new Autodesk.LMVTK.F2D(b.metadata,b.manifest,b.basePath,b.f2dLoadOptions);b.loadDoneCB=c;try{d.load(b,new Uint8Array(b.data))}catch(e){return a.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"",{exception:e.toString(),stack:e.stack}),void a.postMessage(null)}}else a.postMessage(null)}function doParseF2DFrame(a,b){function c(c){if(c){if(!f2d.meshes.length)return;var d={f2dframe:!0,meshes:f2d.meshes,baseIndex:f2d.F2D_MESH_COUNT_OLD,bbox:f2d.bbox};b.finalFrame&&(d.cumulativeProps={maxObjectNumber:f2d.maxObjectNumber,viewports:f2d.viewports,clips:f2d.clips,strings:f2d.strings,stringDbIds:f2d.stringDbIds},d.finalFrame=!0);for(var e=[],f=0,g=f2d.meshes.length;g>f;++f)e.push(f2d.meshes[f].vb.buffer),e.push(f2d.meshes[f].indices.buffer);a.postMessage(d,e),f2d.F2D_MESH_COUNT_OLD+=f2d.meshes.length,f2d.meshes=[]}else a.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"",{}),a.postMessage(null)}if(!f2d){a.postMessage({progress:.5}),f2d=new Autodesk.LMVTK.F2D(b.metadata,b.manifest,b.basePath,b.f2dLoadOptions),f2d.F2D_MESH_COUNT_OLD=0;var d={f2dframe:f2d};a.postMessage(d)}b.loadDoneCB=c;try{f2d.loadFrames(b)}catch(e){return a.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"",{exception:e.toString(),stack:e.stack}),void a.postMessage(null)}}function requestFileF2D(a,b){b.errorHandler.ignoreFileNotFound=!0;var c=new Xhr(b.errorHandler,b.auth,b.viewing_url);if(-1===a.indexOf(".gz",a.length-3)){var d=c.get(a,b.headers,"arraybuffer");return c.success?new Uint8Array(d):null}var e=c.get(a,b.headers,"arraybuffer",null,null,b.queryParams,b.oss_url);if(!c.success)return null;try{var f=new Uint8Array(e);return 31==f[0]&&139==f[1]&&(f=new Zlib.Gunzip(f).decompress()),f}catch(g){return self.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"Malformed data received when requesting file",{url:a,exception:g.toString(),stack:g.stack}),null}}function generateOSSURL(a,b){var c="urn:adsk.objects:os.object:",d=decodeURIComponent(a),e=d.indexOf(c);if(-1!==e){var f=d.substr(e+c.length),g=f.substr(0,f.indexOf("/")),h=f.substr(f.indexOf("/")+1),i=h.indexOf("?");-1!==i&&(h=encodeURIComponent(h.substr(0,i))+h.substr(i)),a=b+"/buckets/"+g+"/objects/"+h}return a}function doStreamF2D(a,b){function c(a){for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);var d=decodeURIComponent(escape(b));return JSON.parse(d)}function d(a,b){for(var c=a.length-b,d=new ArrayBuffer(c),e=new Uint8Array(d,0),f=0,g=b;c>f;f++,g++)e[f]=255&a.charCodeAt(g);return d}var e=b.url;b.queryParams&&(e+="?"+b.queryParams);var f=b.basePath+"metadata.json.gz",g=b.basePath+"manifest.json.gz",h=requestFileF2D(f,b),i=requestFileF2D(g,b),j=[];j.push([g,b.headers,null]),j.push([f,b.headers,null]);try{h&&(h=c(h)),i&&(i=c(i))}catch(k){h=null,i=null}if(!h)return void self.raiseError(Autodesk.Viewing.ErrorCodes.BAD_DATA,"");var l;if(i&&i.assets)for(var m=i.assets,n=0;n<m.length;n++)if(-1!=e.indexOf(m[n].URI)){l=m[n].usize||0;break}var o=new XMLHttpRequest;o.withCredentials=!!b.auth;var p=new Autodesk.LMVTK.F2DProbe,q=0,r=0,s=!1;o. c=o.responseText,e={type:"F2DSTREAM",finalFrame:!0,finished:!0,progress:1},f=[];if(s||(e.manifest=i,e.metadata=h,e.basePath=b.basePath,s=!0),c.length>r){var g=d(c,r),k=new Uint8Array(g),m=p.load(k),n=g.slice(m.frameStart,m.frameEnd);m.frameEnd>m.frameStart&&(f.push(n),e.frames=n)}return debug("Total text bytes count : "+o.responseText.length),void a.postMessage(e,f)}var c=o.responseText,g=d(c,0),e={type:"F2DBLOB",metadata:h,manifest:i,basePath:b.basePath,progress:1,buffer:g},f=[];f.push(g),a.postMessage(e,f)}if(o.readyState>2){if(!ENABLE_F2D_STREAMING_MODE)return;var c=o.responseText;if(r+65536>c.length)return;var g=d(c,r);if(!q){++q;var t=new Uint8Array(g);if(31==t[0]&&139==t[1])return void(ENABLE_F2D_STREAMING_MODE=!1)}var k=new Uint8Array(g),m=p.load(k);if(m.frameEnd>m.frameStart){var n=g.slice(m.frameStart,m.frameEnd);r+=m.frameEnd;var f=[];f.push(n);var e={type:"F2DSTREAM",frames:n,finalFrame:!1};l&&(e.progress=r/l),s||(e.manifest=i,e.metadata=h,e.basePath=b.basePath,s=!0),a.postMessage(e,f)}}}catch(u){debug(u.message)}};try{if(o.open("GET",e,!0),b.headers)for(var t in b.headers)o.setRequestHeader(t,b.headers[t]);o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(),j.push([e,b.headers,null])}catch(k){debug(k.message)}}function debug(a){self.postMessage({debug:1,message:a})}var IS_CONCAT_BUILD=!0,BUILD_LMV_WORKER_URL="lmvworker.min.js",LMV_WORKER_URL=BUILD_LMV_WORKER_URL,ENABLE_DEBUG=!1,ENABLE_TRACE=!1,ENABLE_INLINE_WORKER=!0,AutodeskNamespace=function(a){for(var b="undefined"!=typeof window&&null!==window?window:self,c=a.split("."),d=0;d<c.length;++d)b[c[d]]=b[c[d]]||{},b=b[c[d]];return b};AutodeskNamespace("Autodesk.Viewing.Private"),AutodeskNamespace("Autodesk.Viewing.Extensions"),AutodeskNamespace("Autodesk.Viewing.Shaders"),AutodeskNamespace("Autodesk.Viewing.UI"),AutodeskNamespace("Autodesk.LMVTK");var _isIE11=!!navigator.userAgent.match(/Trident\/7\./);"undefined"!=typeof window&&_isIE11&&!function(){function a(a,b){b=b||{bubbles:!1,cancelable:!1,detail:void 0};var c=document.createEvent("CustomEvent");return c.initCustomEvent(a,b.bubbles,b.cancelable,b.detail),c}a.prototype=window.CustomEvent.prototype,window.CustomEvent=a}(),ArrayBuffer.prototype.slice||(ArrayBuffer.prototype.slice=function(a,b){if(!b||b>this.byteLength?b=this.byteLength:0>b&&(b=this.byteLength+b,0>b&&(b=0)),0>a&&(a=this.byteLength+a,0>a&&(a=0)),a>=b)return new ArrayBuffer;for(var c=b-a,d=new Uint8Array(this,a,c),e=new Uint8Array(c),f=0;c>f;f++)e[f]=d[f];return e.buffer}),"undefined"!=typeof window&&(window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder);var rescueFromPolymer=function(){return isSafari()?function(a){if(!window.Polymer)return a;for(var b in a)if(-1!==b.indexOf("__impl"))return a[b];return a}:function(a){return a}}();!function(){var a="undefined"!=typeof window&&null!==window?window:self;a.performance||(a.performance=Date)}(),LmvVector3=function(a,b,c){this.x=a||0,this.y=b||0,this.z=c||0},LmvVector3.prototype={constructor:LmvVector3,set:function(a,b,c){return this.x=a,this.y=b,this.z=c,this},setX:function(a){return this.x=a,this},setY:function(a){return this.y=a,this},setZ:function(a){return this.z=a,this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;default:throw new Error("index is out of range: "+a)}},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+a)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(a){return this.x=a.x,this.y=a.y,this.z=a.z,this},add:function(a,b){return void 0!==b?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b)):(this.x+=a.x,this.y+=a.y,this.z+=a.z,this)},addScalar:function(a){return this.x+=a,this.y+=a,this.z+=a,this},addVectors:function(a,b){return this.x=a.x+b.x,this.y=a.y+b.y,this.z=a.z+b.z,this},addScaledVector:function(a,b){return this.x+=a.x*b,this.y+=a.y*b,this.z+=a.z*b,this},sub:function(a,b){return void 0!==b?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b)):(this.x-=a.x,this.y-=a.y,this.z-=a.z,this)},subScalar:function(a){return this.x-=a,this.y-=a,this.z-=a,this},subVectors:function(a,b){return this.x=a.x-b.x,this.y=a.y-b.y,this.z=a.z-b.z,this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(a,b)):(this.x*=a.x,this.y*=a.y,this.z*=a.z,this)},multiplyScalar:function(a){return this.x*=a,this.y*=a,this.z*=a,
this},multiplyVectors:function(a,b){return this.x=a.x*b.x,this.y=a.y*b.y,this.z=a.z*b.z,this},applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z,e=a.elements;return this.x=e[0]*b+e[3]*c+e[6]*d,this.y=e[1]*b+e[4]*c+e[7]*d,this.z=e[2]*b+e[5]*c+e[8]*d,this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,e=a.elements;return this.x=e[0]*b+e[4]*c+e[8]*d+e[12],this.y=e[1]*b+e[5]*c+e[9]*d+e[13],this.z=e[2]*b+e[6]*c+e[10]*d+e[14],this},applyProjection:function(a){var b=this.x,c=this.y,d=this.z,e=a.elements,f=1/(e[3]*b+e[7]*c+e[11]*d+e[15]);return this.x=(e[0]*b+e[4]*c+e[8]*d+e[12])*f,this.y=(e[1]*b+e[5]*c+e[9]*d+e[13])*f,this.z=(e[2]*b+e[6]*c+e[10]*d+e[14])*f,this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,f=a.y,g=a.z,h=a.w,i=h*b+f*d-g*c,j=h*c+g*b-e*d,k=h*d+e*c-f*b,l=-e*b-f*c-g*d;return this.x=i*h+l*-e+j*-g-k*-f,this.y=j*h+l*-f+k*-e-i*-g,this.z=k*h+l*-g+i*-f-j*-e,this},transformDirection:function(a){var b=this.x,c=this.y,d=this.z,e=a.elements;return this.x=e[0]*b+e[4]*c+e[8]*d,this.y=e[1]*b+e[5]*c+e[9]*d,this.z=e[2]*b+e[6]*c+e[10]*d,this.normalize(),th
8000
is},divide:function(a){return this.x/=a.x,this.y/=a.y,this.z/=a.z,this},divideScalar:function(a){if(0!==a){var b=1/a;this.x*=b,this.y*=b,this.z*=b}else this.x=0,this.y=0,this.z=0;return this},min:function(a){return this.x>a.x&&(this.x=a.x),this.y>a.y&&(this.y=a.y),this.z>a.z&&(this.z=a.z),this},max:function(a){return this.x<a.x&&(this.x=a.x),this.y<a.y&&(this.y=a.y),this.z<a.z&&(this.z=a.z),this},clamp:function(a,b){return this.x<a.x?this.x=a.x:this.x>b.x&&(this.x=b.x),this.y<a.y?this.y=a.y:this.y>b.y&&(this.y=b.y),this.z<a.z?this.z=a.z:this.z>b.z&&(this.z=b.z),this},clampScalar:function(){var a,b;return function(c,d){return void 0===a&&(a=new LmvVector3,b=new LmvVector3),a.set(c,c,c),b.set(d,d,d),this.clamp(a,b)}}(),floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(a){var b=this.length();return 0!==b&&a!==b&&this.multiplyScalar(a/b),this},lerp:function(a,b){return this.x+=(a.x-this.x)*b,this.y+=(a.y-this.y)*b,this.z+=(a.z-this.z)*b,this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a),this},cross:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(a,b);var c=this.x,d=this.y,e=this.z;return this.x=d*a.z-e*a.y,this.y=e*a.x-c*a.z,this.z=c*a.y-d*a.x,this},crossVectors:function(a,b){var c=a.x,d=a.y,e=a.z,f=b.x,g=b.y,h=b.z;return this.x=d*h-e*g,this.y=e*f-c*h,this.z=c*g-d*f,this},projectOnVector:function(){var a,b;return function(c){return void 0===a&&(a=new LmvVector3),a.copy(c).normalize(),b=this.dot(a),this.copy(a).multiplyScalar(b)}}(),projectOnPlane:function(){var a;return function(b){return void 0===a&&(a=new LmvVector3),a.copy(this).projectOnVector(b),this.sub(a)}}(),reflect:function(){var a;return function(b){return void 0===a&&(a=new LmvVector3),this.sub(a.copy(b).multiplyScalar(2*this.dot(b)))}}(),distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y,d=this.z-a.z;return b*b+c*c+d*d},setEulerFromRotationMatrix:function(a,b){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(a,b){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(a){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(a)},getScaleFromMatrix:function(a){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(a)},getColumnFromMatrix:function(a,b){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(a,b)},setFromMatrixPosition:function(a){return this.x=a.elements[12],this.y=a.elements[13],this.z=a.elements[14],this},setFromMatrixScale:function(a){var b=this.set(a.elements[0],a.elements[1],a.elements[2]).length(),c=this.set(a.elements[4],a.elements[5],a.elements[6]).length(),d=this.set(a.elements[8],a.elements[9],a.elements[10]).length();return this.x=b,this.y=c,this.z=d,this},setFromMatrixColumn:function(a,b){var c=4*a,d=b.elements;return this.x=d[c],this.y=d[c+1],this.z=d[c+2],this},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){return void 0===b&&(b=0),this.x=a[b],this.y=a[b+1],this.z=a[b+2],this},toArray:function(a,b){return void 0===a&&(a=[]),void 0===b&&(b=0),a[b]=this.x,a[b+1]=this.y,a[b+2]=this.z,a},fromAttribute:function(a,b,c){return void 0===c&&(c=0),b=b*a.itemSize+c,this.x=a.array[b],this.y=a.array[b+1],this.z=a.array[b+2],this}};var LmvBox3=function(a,b){this.min=void 0!==a?a:new LmvVector3(1/0,1/0,1/0),this.max=void 0!==b?b:new LmvVector3(-(1/0),-(1/0),-(1/0))};LmvBox3.prototype={constructor:LmvBox3,set:function(a,b){return this.min.copy(a),this.max.copy(b),this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;c>b;b++)this.expandByPoint(a[b]);return this},setFromArray:function(a,b){return this.min.x=a[b],this.min.y=a[b+1],this.min.z=a[b+2],this.max.x=a[b+3],this.max.y=a[b+4],this.max.z=a[b+5],this},copyToArray:function(a,b){a[b]=this.min.x,a[b+1]=this.min.y,a[b+2]=this.min.z,a[b+3]=this.max.x,a[b+4]=this.max.y,a[b+5]=this.max.z},setFromCenterAndSize:function(){var a=new LmvVector3;return function(b,c){var d=a.copy(c).multiplyScalar(.5);return this.min.copy(b).sub(d),this.max.copy(b).add(d),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){return this.min.copy(a.min),this.max.copy(a.max),this},makeEmpty:function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-(1/0),this},empty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},center:function(a){var b=a||new LmvVector3;return b.addVectors(this.min,this.max).multiplyScalar(.5)},size:function(a){var b=a||new LmvVector3;return b.subVectors(this.max,this.min)},expandByPoint:function(a){return this.min.min(a),this.max.max(a),this},expandByVector:function(a){return this.min.sub(a),this.max.add(a),this},expandByScalar:function(a){return this.min.addScalar(-a),this.max.addScalar(a),this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y||a.z<this.min.z||a.z>this.max.z?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z?!0:!1},getParameter:function(a,b){var c=b||new LmvVector3;return c.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},isIntersectionBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y||a.max.z<this.min.z||a.min.z>this.max.z?!1:!0},clampPoint:function(a,b){var c=b||new LmvVector3;return c.copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new LmvVector3;return function(b){var c=a.copy(b).clamp(this.min,this.max);return c.sub(b).length()}}(),intersect:function(a){return this.min.max(a.min),this.max.min(a.max),this},union:function(a){return this.min.min(a.min),this.max.max(a.max),this},applyMatrix4:function(){var a=[new LmvVector3,new LmvVector3,new LmvVector3,new LmvVector3,new LmvVector3,new LmvVector3,new LmvVector3,new LmvVector3];return function(b){return a[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(b),a[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(b),a[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(b),a[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(b),a[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(b),a[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(b),a[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(b),a[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(b),this.makeEmpty(),this.setFromPoints(a),this}}(),translate:function(a){return this.min.add(a),this.max.add(a),this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}},LmvMatrix4=function(a){a?this.elements=new Float64Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]):this.elements=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])},LmvMatrix4.prototype={constructor:LmvMatrix4,set:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){var q=this.elements;return q[0]=a,q[4]=b,q[8]=c,q[12]=d,q[1]=e,q[5]=f,q[9]=g,q[13]=h,q[2]=i,q[6]=j,q[10]=k,q[14]=l,q[3]=m,q[7]=n,q[11]=o,q[15]=p,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},copy:function(a){return this.elements.set(a.elements),this},makeRotationFromQuaternion:function(a){var b=this.elements,c=a.x,d=a.y,e=a.z,f=a.w,g=c+c,h=d+d,i=e+e,j=c*g,k=c*h,l=c*i,m=d*h,n=d*i,o=e*i,p=f*g,q=f*h,r=f*i;return b[0]=1-(m+o),b[4]=k-r,b[8]=l+q,b[1]=k+r,b[5]=1-(j+o),b[9]=n-p,b[2]=l-q,b[6]=n+p,b[10]=1-(j+m),b[3]=0,b[7]=0,b[11]=0,b[12]=0,b[13]=0,b[14]=0,b[15]=1,this},multiply:function(a){return this.multiplyMatrices(this,a)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements,e=this.elements,f=c[0],g=c[4],h=c[8],i=c[12],j=c[1],k=c[5],l=c[9],m=c[13],n=c[2],o=c[6],p=c[10],q=c[14],r=c[3],s=c[7],t=c[11],u=c[15],v=d[0],w=d[4],x=d[8],y=d[12],z=d[1],A=d[5],B=d[9],C=d[13],D=d[2],E=d[6],F=d[10],G=d[14],H=d[3],I=d[7],J=d[11],K=d[15];return e[0]=f*v+g*z+h*D+i*H,e[4]=f*w+g*A+h*E+i*I,e[8]=f*x+g*B+h*F+i*J,e[12]=f*y+g*C+h*G+i*K,e[1]=j*v+k*z+l*D+m*H,e[5]=j*w+k*A+l*E+m*I,e[9]=j*x+k*B+l*F+m*J,e[13]=j*y+k*C+l*G+m*K,e[2]=n*v+o*z+p*D+q*H,e[6]=n*w+o*A+p*E+q*I,e[10]=n*x+o*B+p*F+q*J,e[14]=n*y+o*C+p*G+q*K,e[3]=r*v+s*z+t*D+u*H,e[7]=r*w+s*A+t*E+u*I,e[11]=r*x+s*B+t*F+u*J,e[15]=r*y+s*C+t*G+u*K,this},multiplyToArray:function(a,b,c){var d=this.elements;return this.multiplyMatrices(a,b),c[0]=d[0],c[1]=d[1],c[2]=d[2],c[3]=d[3],c[4]=d[4],c[5]=d[5],c[6]=d[6],c[7]=d[7],c[8]=d[8],c[9]=d[9],c[10]=d[10],c[11]=d[11],c[12]=d[12],c[13]=d[13],c[14]=d[14],c[15]=d[15],this},multiplyScalar:function(a){var b=this.elements;return b[0]*=a,b[4]*=a,b[8]*=a,b[12]*=a,b[1]*=a,b[5]*=a,b[9]*=a,b[13]*=a,b[2]*=a,b[6]*=a,b[10]*=a,b[14]*=a,b[3]*=a,b[7]*=a,b[11]*=a,b[15]*=a,this},determinant:function(){var a=this.elements,b=a[0],c=a[4],d=a[8],e=a[12],f=a[1],g=a[5],h=a[9],i=a[13],j=a[2],k=a[6],l=a[10],m=a[14],n=a[3],o=a[7],p=a[11],q=a[15];return n*(+e*h*k-d*i*k-e*g*l+c*i*l+d*g*m-c*h*m)+o*(+b*h*m-b*i*l+e*f*l-d*f*m+d*i*j-e*h*j)+p*(+b*i*k-b*g*m-e*f*k+c*f*m+e*g*j-c*i*j)+q*(-d*g*j-b*h*k+b*g*l+d*f*k-c*f*l+c*h*j)},transpose:function(){var a,b=this.elements;return a=b[1],b[1]=b[4],b[4]=a,a=b[2],b[2]=b[8],b[8]=a,a=b[6],b[6]=b[9],b[9]=a,a=b[3],b[3]=b[12],b[12]=a,a=b[7],b[7]=b[13],b[13]=a,a=b[11],b[11]=b[14],b[14]=a,this},flattenToArrayOffset:function(a,b){var c=this.elements;return a[b]=c[0],a[b+1]=c[1],a[b+2]=c[2],a[b+3]=c[3],a[b+4]=c[4],a[b+5]=c[5],a[b+6]=c[6],a[b+7]=c[7],a[b+8]=c[8],a[b+9]=c[9],a[b+10]=c[10],a[b+11]=c[11],a[b+12]=c[12],a[b+13]=c[13],a[b+14]=c[14],a[b+15]=c[15],a},setPosition:function(a){var b=this.elements;return b[12]=a.x,b[13]=a.y,b[14]=a.z,this},getInverse:function(a,b){var c=this.elements,d=a.elements,e=d[0],f=d[4],g=d[8],h=d[12],i=d[1],j=d[5],k=d[9],l=d[13],m=d[2],n=d[6],o=d[10],p=d[14],q=d[3],r=d[7],s=d[11],t=d[15];c[0]=k*p*r-l*o*r+l*n*s-j*p*s-k*n*t+j*o*t,c[4]=h*o*r-g*p*r-h*n*s+f*p*s+g*n*t-f*o*t,c[8]=g*l*r-h*k*r+h*j*s-f*l*s-g*j*t+f*k*t,c[12]=h*k*n-g*l*n-h*j*o+f*l*o+g*j*p-f*k*p,c[1]=l*o*q-k*p*q-l*m*s+i*p*s+k*m*t-i*o*t,c[5]=g*p*q-h*o*q+h*m*s-e*p*s-g*m*t+e*o*t,c[9]=h*k*q-g*l*q-h*i*s+e*l*s+g*i*t-e*k*t,c[13]=g*l*m-h*k*m+h*i*o-e*l*o-g*i*p+e*k*p,c[2]=j*p*q-l*n*q+l*m*r-i*p*r-j*m*t+i*n*t,c[6]=h*n*q-f*p*q-h*m*r+e*p*r+f*m*t-e*n*t,c[10]=f*l*q-h*j*q+h*i*r-e*l*r-f*i*t+e*j*t,c[14]=h*j*m-f*l*m-h*i*n+e*l*n+f*i*p-e*j*p,c[3]=k*n*q-j*o*q-k*m*r+i*o*r+j*m*s-i*n*s,c[7]=f*o*q-g*n*q+g*m*r-e*o*r-f*m*s+e*n*s,c[11]=g*j*q-f*k*q-g*i*r+e*k*r+f*i*s-e*j*s,c[15]=f*k*m-g*j*m+g*i*n-e*k*n-f*i*o+e*j*o;var u=e*c[0]+i*c[4]+m*c[8]+q*c[12];if(0==u){var v="Matrix4.getInverse(): can't invert matrix, determinant is 0";if(b)throw new Error(v);return console.warn(v),this.identity(),this}return this.multiplyScalar(1/u),this},scale:function(a){var b=this.elements,c=a.x,d=a.y,e=a.z;return b[0]*=c,b[4]*=d,b[8]*=e,b[1]*=c,b[5]*=d,b[9]*=e,b[2]*=c,b[6]*=d,b[10]*=e,b[3]*=c,b[7]*=d,b[11]*=e,this},makeTranslation:function(a,b,c){return this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1),this},makeRotationX:function(a){var b=Math.cos(a),c=Math.sin(a);return this.set(1,0,0,0,0,b,-c,0,0,c,b,0,0,0,0,1),this},makeRotationY:function(a){var b=Math.cos(a),c=Math.sin(a);return this.set(b,0,c,0,0,1,0,0,-c,0,b,0,0,0,0,1),this},makeRotationZ:function(a){var b=Math.cos(a),c=Math.sin(a);return this.set(b,-c,0,0,c,b,0,0,0,0,1,0,0,0,0,1),this},makeRotationAxis:function(a,b){var c=Math.cos(b),d=Math.sin(b),e=1-c,f=a.x,g=a.y,h=a.z,i=e*f,j=e*g;return this.set(i*f+c,i*g-d*h,i*h+d*g,0,i*g+d*h,j*g+c,j*h-d*f,0,i*h-d*g,j*h+d*f,e*h*h+c,0,0,0,0,1),this},makeScale:function(a,b,c){return this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1),this},compose:function(a,b,c){return this.makeRotationFromQuaternion(b),this.scale(c),this.setPosition(a),this},transformPoint:function(a){var b=a.x,c=a.y,d=a.z,e=this.elements;return a.x=e[0]*b+e[4]*c+e[8]*d+e[12],a.y=e[1]*b+e[5]*c+e[9]*d+e[13],a.z=e[2]*b+e[6]*c+e[10]*d+e[14],a},transformDirection:function(a){var b=a.x,c=a.y,d=a.z,e=this.elements;a.x=e[0]*b+e[4]*c+e[8]*d,a.y=e[1]*b+e[5]*c+e[9]*d,a.z=e[2]*b+e[6]*c+e[10]*d;var f=Math.sqrt(a.x*a.x+a.y*a.y+a.z*a.z);if(f>0){var g=1/f;a.x*=g,a.y*=g,a.z*=g}return a},fromArray:function(a){return this.elements.set(a),this},toArray:function(){var a=this.elements;return[a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15]]},clone:function(){return(new LmvMatrix4).fromArray(this.elements)}},function(){"use strict";function a(a){throw a}function b(a,b){var c=a.split("."),d=l;!(c[0]in d)&&d.execScript&&d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||b===k?d=d[e]?d[e]:d[e]={}:d[e]=b}function c(a,b,c){var d,e="number"==typeof b?b:b=0,f="number"==typeof c?c:a.length;for(d=-1,e=7&f;e--;++b)d=d>>>8^r[255&(d^a[b])];for(e=f>>3;e--;b+=8)d=d>>>8^r[255&(d^a[b])],d=d>>>8^r[255&(d^a[b+1])],d=d>>>8^r[255&(d^a[b+2])],d=d>>>8^r[255&(d^a[b+3])],d=d>>>8^r[255&(d^a[b+4])],d=d>>>8^r[255&(d^a[b+5])],d=d>>>8^r[255&(d^a[b+6])],d=d>>>8^r[255&(d^a[b+7])];return(4294967295^d)>>>0}function d(){}function e(a){var b,c,d,e,f,g,h,i,j,k=a.length,l=0,n=Number.POSITIVE_INFINITY;for(i=0;k>i;++i)a[i]>l&&(l=a[i]),a[i]<n&&(n=a[i]);for(b=1<<l,c=new(m?Uint32Array:Array)(b),d=1,e=0,f=2;l>=d;){for(i=0;k>i;++i)if(a[i]===d){for(g=0,h=e,j=0;d>j;++j)g=g<<1|1&h,h>>=1;for(j=g;b>j;j+=f)c[j]=d<<16|i;++e}++d,e<<=1,f<<=1}return[c,l,n]}function f(b,c){switch(this.i=[],this.j=32768,this.d=this.f=this.c=this.n=0,this.input=m?new Uint8Array(b):b,this.o=!1,this.k=w,this.w=!1,(c||!(c={}))&&(c.index&&(this.c=c.index),c.bufferSize&&(this.j=c.bufferSize),c.bufferType&&(this.k=c.bufferType),c.resize&&(this.w=c.resize)),this.k){case v:this.a=32768,this.b=new(m?Uint8Array:Array)(32768+this.j+258);break;case w:this.a=0,this.b=new(m?Uint8Array:Array)(this.j),this.e=this.D,this.q=this.A,this.l=this.C;break;default:a(Error("invalid inflate mode"))}}function g(b,c){for(var d,e=b.f,f=b.d,g=b.input,h=b.c;c>f;)d=g[h++],d===k&&a(Error("input buffer is broken")),e|=d<<f,f+=8;return d=e&(1<<c)-1,b.f=e>>>c,b.d=f-c,b.c=h,d}function h(a,b){for(var c,d,e,f=a.f,g=a.d,h=a.input,i=a.c,j=b[0],l=b[1];l>g&&(c=h[i++],c!==k);)f|=c<<g,g+=8;return d=j[f&(1<<l)-1],e=d>>>16,a.f=f>>e,a.d=g-e,a.c=i,65535&d}function i(a){function b(a,b,c){var d,e,f,i;for(i=0;a>i;)switch(d=h(this,b)){case 16:for(f=3+g(this,2);f--;)c[i++]=e;break;case 17:for(f=3+g(this,3);f--;)c[i++]=0;e=0;break;case 18:for(f=11+g(this,7);f--;)c[i++]=0;e=0;break;default:e=c[i++]=d}return c}var c,d,f,i,j=g(a,5)+257,k=g(a,5)+1,l=g(a,4)+4,n=new(m?Uint8Array:Array)(A.length);for(i=0;l>i;++i)n[A[i]]=g(a,3);c=e(n),d=new(m?Uint8Array:Array)(j),f=new(m?Uint8Array:Array)(k),a.l(e(b.call(a,j,c,d)),e(b.call(a,k,c,f)))}function j(a){this.input=a,this.c=0,this.m=[],this.s=!1}var k=void 0,l=this,m="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array;new(m?Uint8Array:Array)(256);var n;for(n=0;256>n;++n)for(var o=n,p=7,o=o>>>1;o;o>>>=1)--p;var q=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],r=m?new Uint32Array(q):q;d.prototype.getName=function(){return this.name},d.prototype.getData=function(){return this.data},d.prototype.G=function(){return this.H},b("Zlib.GunzipMember",d),b("Zlib.GunzipMember.prototype.getName",d.prototype.getName),b("Zlib.GunzipMember.prototype.getData",d.prototype.getData),b("Zlib.GunzipMember.prototype.getMtime",d.prototype.G);var s,t=[];for(s=0;288>s;s++)switch(!0){case 143>=s:t.push([s+48,8]);break;case 255>=s:t.push([s-144+400,9]);break;case 279>=s:t.push([s-256+0,7]);break;case 287>=s:t.push([s-280+192,8]);break;default:a("invalid literal: "+s)}var u=function(){function b(b){switch(!0){case 3===b:return[257,b-3,0];case 4===b:return[258,b-4,0];case 5===b:return[259,b-5,0];case 6===b:return[260,b-6,0];case 7===b:return[261,b-7,0];case 8===b:return[262,b-8,0];case 9===b:return[263,b-9,0];case 10===b:return[264,b-10,0];case 12>=b:return[265,b-11,1];case 14>=b:return[266,b-13,1];case 16>=b:return[267,b-15,1];case 18>=b:return[268,b-17,1];case 22>=b:return[269,b-19,2];case 26>=b:return[270,b-23,2];case 30>=b:return[271,b-27,2];case 34>=b:return[272,b-31,2];case 42>=b:return[273,b-35,3];case 50>=b:return[274,b-43,3];case 58>=b:return[275,b-51,3];case 66>=b:return[276,b-59,3];case 82>=b:return[277,b-67,4];case 98>=b:return[278,b-83,4];case 114>=b:return[279,b-99,4];case 130>=b:return[280,b-115,4];case 162>=b:return[281,b-131,5];case 194>=b:return[282,b-163,5];case 226>=b:return[283,b-195,5];case 257>=b:return[284,b-227,5];case 258===b:return[285,b-258,0];default:a("invalid length: "+b)}}var c,d,e=[];for(c=3;258>=c;c++)d=b(c),e[c]=d[2]<<24|d[1]<<16|d[0];return e}();m&&new Uint32Array(u);var v=0,w=1;f.prototype.g=function(){for(;!this.o;){var b=g(this,3);switch(1&b&&(this.o=!0),b>>>=1){case 0:var c=this.input,d=this.c,e=this.b,f=this.a,h=k,j=k,l=k,n=e.length,o=k;switch(this.d=this.f=0,h=c[d++],h===k&&a(Error("invalid uncompressed block header: LEN (first byte)")),j=h,h=c[d++],h===k&&a(Error("invalid uncompressed block header: LEN (second byte)")),j|=h<<8,h=c[d++],h===k&&a(Error("invalid uncompressed block header: NLEN (first byte)")),l=h,h=c[d++],h===k&&a(Error("invalid uncompressed block header: NLEN (second byte)")),l|=h<<8,j===~l&&a(Error("invalid uncompressed block header: length verify")),d+j>c.length&&a(Error("input buffer is broken")),this.k){case v:for(;f+j>e.length;){if(o=n-f,j-=o,m)e.set(c.subarray(d,d+o),f),f+=o,d+=o;else for(;o--;)e[f++]=c[d++];this.a=f,e=this.e(),f=this.a}break;case w:for(;f+j>e.length;)e=this.e({t:2});break;default:a(Error("invalid inflate mode"))}if(m)e.set(c.subarray(d,d+j),f),f+=j,d+=j;else for(;j--;)e[f++]=c[d++];this.c=d,this.a=f,this.b=e;break;case 1:this.l(M,O);break;case 2:i(this);break;default:a(Error("unknown BTYPE: "+b))}}return this.q()};var x,y,z=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],A=m?new Uint16Array(z):z,B=[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,258,258],C=m?new Uint16Array(B):B,D=[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,0,0],E=m?new Uint8Array(D):D,F=[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],G=m?new Uint16Array(F):F,H=[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],I=m?new Uint8Array(H):H,J=new(m?Uint8Array:Array)(288);for(x=0,y=J.length;y>x;++x)J[x]=143>=x?8:255>=x?9:279>=x?7:8;var K,L,M=e(J),N=new(m?Uint8Array:Array)(30);for(K=0,L=N.length;L>K;++K)N[K]=5;var O=e(N);f.prototype.l=function(a,b){var c=this.b,d=this.a;this.r=a;for(var e,f,i,j,k=c.length-258;256!==(e=h(this,a));)if(256>e)d>=k&&(this.a=d,c=this.e(),d=this.a),c[d++]=e;else for(f=e-257,j=C[f],0<E[f]&&(j+=g(this,E[f])),e=h(this,b),i=G[e],0<I[e]&&(i+=g(this,I[e])),d>=k&&(this.a=d,c=this.e(),d=this.a);j--;)c[d]=c[d++-i];for(;8<=this.d;)this.d-=8,this.c--;this.a=d},f.prototype.C=function(a,b){var c=this.b,d=this.a;this.r=a;for(var e,f,i,j,k=c.length;256!==(e=h(this,a));)if(256>e)d>=k&&(c=this.e(),k=c.length),c[d++]=e;else for(f=e-257,j=C[f],0<E[f]&&(j+=g(this,E[f])),e=h(this,b),i=G[e],0<I[e]&&(i+=g(this,I[e])),d+j>k&&(c=this.e(),k=c.length);j--;)c[d]=c[d++-i];for(;8<=this.d;)this.d-=8,this.c--;this.a=d},f.prototype.e=function(){var a,b,c=new(m?Uint8Array:Array)(this.a-32768),d=this.a-32768,e=this.b;if(m)c.set(e.subarray(32768,c.length));else for(a=0,b=c.length;b>a;++a)c[a]=e[a+32768];if(this.i.push(c),this.n+=c.length,m)e.set(e.subarray(d,d+32768));else for(a=0;32768>a;++a)e[a]=e[d+a];return this.a=32768,e},f.prototype.D=function(a){var b,c,d,e,f=this.input.length/this.c+1|0,g=this.input,h=this.b;return a&&("number"==typeof a.t&&(f=a.t),"number"==typeof a.z&&(f+=a.z)),2>f?(c=(g.length-this.c)/this.r[2],e=258*(c/2)|0,d=e<h.length?h.length+e:h.length<<1):d=h.length*f,m?(b=new Uint8Array(d),b.set(h)):b=h,this.b=b},f.prototype.q=function(){var a,b,c,d,e,f=0,g=this.b,h=this.i,i=new(m?Uint8Array:Array)(this.n+(this.a-32768));if(0===h.length)return m?this.b.subarray(32768,this.a):this.b.slice(32768,this.a);for(b=0,c=h.length;c>b;++b)for(a=h[b],d=0,e=a.length;e>d;++d)i[f++]=a[d];for(b=32768,c=this.a;c>b;++b)i[f++]=g[b];return this.i=[],this.buffer=i},f.prototype.A=function(){var a,b=this.a;return m?this.w?(a=new Uint8Array(b),a.set(this.b.subarray(0,b))):a=this.b.subarray(0,b):(this.b.length>b&&(this.b.length=b),a=this.b),this.buffer=a},j.prototype.F=function(){return this.s||this.g(),this.m.slice()},j.prototype.g=function(){for(var b=this.input.length;this.c<b;){var e=new d,g=k,h=k,i=k,j=k,l=k,n=k,o=k,p=k,q=k,r=this.input,s=this.c;switch(e.u=r[s++],e.v=r[s++],(31!==e.u||139!==e.v)&&a(Error("invalid file signature:"+e.u+","+e.v)),e.p=r[s++],e.p){case 8:break;default:a(Error("unknown compression method: "+e.p))}if(e.h=r[s++],p=r[s++]|r[s++]<<8|r[s++]<<16|r[s++]<<24,e.H=new Date(1e3*p),e.N=r[s++],e.M=r[s++],0<(4&e.h)&&(e.I=r[s++]|r[s++]<<8,s+=e.I),0<(8&e.h)){for(o=[],n=0;0<(l=r[s++]);)o[n++]=String.fromCharCode(l);e.name=o.join("")}if(0<(16&e.h)){for(o=[],n=0;0<(l=r[s++]);)o[n++]=String.fromCharCode(l);e.J=o.join("")}0<(2&e.h)&&(e.B=65535&c(r,0,s),e.B!==(r[s++]|r[s++]<<8)&&a(Error("invalid header crc16"))),g=r[r.length-4]|r[r.length-3]<<8|r[r.length-2]<<16|r[r.length-1]<<24,r.length-s-4-4<512*g&&(j=g),h=new f(r,{index:s,bufferSize:j}),e.data=i=h.g(),s=h.c,e.K=q=(r[s++]|r[s++]<<8|r[s++]<<16|r[s++]<<24)>>>0,c(i,k,k)!==q&&a(Error("invalid CRC-32 checksum: 0x"+c(i,k,k).toString(16)+" / 0x"+q.toString(16))),e.L=g=(r[s++]|r[s++]<<8|r[s++]<<16|r[s++]<<24)>>>0,(4294967295&i.length)!==g&&a(Error("invalid input size: "+(4294967295&i.length)+" / "+g)),this.m.push(e),this.c=s}this.s=!0;var t,u,v,w=this.m,x=0,y=0;for(t=0,u=w.length;u>t;++t)y+=w[t].data.length;if(m)for(v=new Uint8Array(y),t=0;u>t;++t)v.set(w[t].data,x),x+=w[t].data.length;else{for(v=[],t=0;u>t;++t)v[t]=w[t].data;v=Array.prototype.concat.apply([],v)}return v},b("Zlib.Gunzip",j),b("Zlib.Gunzip.prototype.decompress",j.prototype.g),b("Zlib.Gunzip.prototype.getMembers",j.prototype.F)}.call(this),function(){"use strict";function a(a){throw a}function b(a,b){var c=a.split("."),d=p;!(c[0]in d)&&d.execScript&&d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||b===o?d=d[e]?d[e]:d[e]={}:d[e]=b}function c(a){var b,c,d,e,f,g,h,i,j,k=a.length,l=0,m=Number.POSITIVE_INFINITY;for(i=0;k>i;++i)a[i]>l&&(l=a[i]),a[i]<m&&(m=a[i]);for(b=1<<l,c=new(q?Uint32Array:Array)(b),d=1,e=0,f=2;l>=d;){for(i=0;k>i;++i)if(a[i]===d){for(g=0,h=e,j=0;d>j;++j)g=g<<1|1&h,h>>=1;for(j=g;b>j;j+=f)c[j]=d<<16|i;++e}++d,e<<=1,f<<=1}return[c,l,m]}function d(b,c){switch(this.l=[],this.m=32768,this.d=this.f=this.c=this.t=0,this.input=q?new Uint8Array(b):b,this.u=!1,this.n=A,this.K=!1,(c||!(c={}))&&(c.index&&(this.c=c.index),c.bufferSize&&(this.m=c.bufferSize),c.bufferType&&(this.n=c.bufferType),c.resize&&(this.K=c.resize)),this.n){case z:this.a=32768,this.b=new(q?Uint8Array:Array)(32768+this.m+258);break;case A:this.a=0,this.b=new(q?Uint8Array:Array)(this.m),this.e=this.W,this.B=this.R,this.q=this.V;break;default:a(Error("invalid inflate mode"))}}function e(b,c){for(var d,e=b.f,f=b.d,g=b.input,h=b.c;c>f;)d=g[h++],d===o&&a(Error("input buffer is broken")),e|=d<<f,f+=8;return d=e&(1<<c)-1,b.f=e>>>c,b.d=f-c,b.c=h,d}function f(a,b){for(var c,d,e,f=a.f,g=a.d,h=a.input,i=a.c,j=b[0],k=b[1];k>g&&(c=h[i++],c!==o);)f|=c<<g,g+=8;return d=j[f&(1<<k)-1],e=d>>>16,a.f=f>>e,a.d=g-e,a.c=i,65535&d}function g(a){function b(a,b,c){var d,g,h,i;for(i=0;a>i;)switch(d=f(this,b)){case 16:for(h=3+e(this,2);h--;)c[i++]=g;break;case 17:for(h=3+e(this,3);h--;)c[i++]=0;g=0;break;case 18:for(h=11+e(this,7);h--;)c[i++]=0;g=0;break;default:g=c[i++]=d}return c}var d,g,h,i,j=e(a,5)+257,k=e(a,5)+1,l=e(a,4)+4,m=new(q?Uint8Array:Array)(E.length);for(i=0;l>i;++i)m[E[i]]=e(a,3);d=c(m),g=new(q?Uint8Array:Array)(j),h=new(q?Uint8Array:Array)(k),a.q(c(b.call(a,j,d,g)),c(b.call(a,k,d,h)))}function h(a){a=a||{},this.files=[],this.v=a.comment}function i(a,b){b=b||{},this.input=q&&a instanceof Array?new Uint8Array(a):a,this.c=0,this.ba=b.verify||!1,this.j=b.password}function j(a,b){this.input=a,this.offset=b}function k(a,b){this.input=a,this.offset=b}function l(b){var c,d,e,f,g=[],h={};if(!b.i){if(b.o===o){var i,k=b.input;if(!b.D)a:{var l,m=b.input;for(l=m.length-12;l>0;--l)if(m[l]===W[0]&&m[l+1]===W[1]&&m[l+2]===W[2]&&m[l+3]===W[3]){b.D=l;break a}a(Error("End of Central Directory Record not found"))}i=b.D,(k[i++]!==W[0]||k[i++]!==W[1]||k[i++]!==W[2]||k[i++]!==W[3])&&a(Error("invalid signature")),b.ha=k[i++]|k[i++]<<8,b.ja=k[i++]|k[i++]<<8,b.ka=k[i++]|k[i++]<<8,b.aa=k[i++]|k[i++]<<8,b.Q=(k[i++]|k[i++]<<8|k[i++]<<16|k[i++]<<24)>>>0,b.o=(k[i++]|k[i++]<<8|k[i++]<<16|k[i++]<<24)>>>0,b.w=k[i++]|k[i++]<<8,b.v=q?k.subarray(i,i+b.w):k.slice(i,i+b.w)}for(c=b.o,e=0,f=b.aa;f>e;++e)d=new j(b.input,c),d.parse(),c+=d.length,g[e]=d,h[d.filename]=e;b.Q<c-b.o&&a(Error("invalid file header size")),b.i=g,b.G=h}}function m(a,b,c){return c^=a.s(b),a.k(b,c),c}var n,o=void 0,p=this,q="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array;new(q?Uint8Array:Array)(256);var r;for(r=0;256>r;++r)for(var s=r,t=7,s=s>>>1;s;s>>>=1)--t;var u,v=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989
8BD0
,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],w=q?new Uint32Array(v):v,x=[];
for(u=0;288>u;u++)switch(!0){case 143>=u:x.push([u+48,8]);break;case 255>=u:x.push([u-144+400,9]);break;case 279>=u:x.push([u-256+0,7]);break;case 287>=u:x.push([u-280+192,8]);break;default:a("invalid literal: "+u)}var y=function(){function b(b){switch(!0){case 3===b:return[257,b-3,0];case 4===b:return[258,b-4,0];case 5===b:return[259,b-5,0];case 6===b:return[260,b-6,0];case 7===b:return[261,b-7,0];case 8===b:return[262,b-8,0];case 9===b:return[263,b-9,0];case 10===b:return[264,b-10,0];case 12>=b:return[265,b-11,1];case 14>=b:return[266,b-13,1];case 16>=b:return[267,b-15,1];case 18>=b:return[268,b-17,1];case 22>=b:return[269,b-19,2];case 26>=b:return[270,b-23,2];case 30>=b:return[271,b-27,2];case 34>=b:return[272,b-31,2];case 42>=b:return[273,b-35,3];case 50>=b:return[274,b-43,3];case 58>=b:return[275,b-51,3];case 66>=b:return[276,b-59,3];case 82>=b:return[277,b-67,4];case 98>=b:return[278,b-83,4];case 114>=b:return[279,b-99,4];case 130>=b:return[280,b-115,4];case 162>=b:return[281,b-131,5];case 194>=b:return[282,b-163,5];case 226>=b:return[283,b-195,5];case 257>=b:return[284,b-227,5];case 258===b:return[285,b-258,0];default:a("invalid length: "+b)}}var c,d,e=[];for(c=3;258>=c;c++)d=b(c),e[c]=d[2]<<24|d[1]<<16|d[0];return e}();q&&new Uint32Array(y);var z=0,A=1;d.prototype.r=function(){for(;!this.u;){var b=e(this,3);switch(1&b&&(this.u=!0),b>>>=1){case 0:var c=this.input,d=this.c,f=this.b,h=this.a,i=o,j=o,k=o,l=f.length,m=o;switch(this.d=this.f=0,i=c[d++],i===o&&a(Error("invalid uncompressed block header: LEN (first byte)")),j=i,i=c[d++],i===o&&a(Error("invalid uncompressed block header: LEN (second byte)")),j|=i<<8,i=c[d++],i===o&&a(Error("invalid uncompressed block header: NLEN (first byte)")),k=i,i=c[d++],i===o&&a(Error("invalid uncompressed block header: NLEN (second byte)")),k|=i<<8,j===~k&&a(Error("invalid uncompressed block header: length verify")),d+j>c.length&&a(Error("input buffer is broken")),this.n){case z:for(;h+j>f.length;){if(m=l-h,j-=m,q)f.set(c.subarray(d,d+m),h),h+=m,d+=m;else for(;m--;)f[h++]=c[d++];this.a=h,f=this.e(),h=this.a}break;case A:for(;h+j>f.length;)f=this.e({H:2});break;default:a(Error("invalid inflate mode"))}if(q)f.set(c.subarray(d,d+j),h),h+=j,d+=j;else for(;j--;)f[h++]=c[d++];this.c=d,this.a=h,this.b=f;break;case 1:this.q(Q,S);break;case 2:g(this);break;default:a(Error("unknown BTYPE: "+b))}}return this.B()};var B,C,D=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],E=q?new Uint16Array(D):D,F=[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,258,258],G=q?new Uint16Array(F):F,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,0,0],I=q?new Uint8Array(H):H,J=[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],K=q?new Uint16Array(J):J,L=[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],M=q?new Uint8Array(L):L,N=new(q?Uint8Array:Array)(288);for(B=0,C=N.length;C>B;++B)N[B]=143>=B?8:255>=B?9:279>=B?7:8;var O,P,Q=c(N),R=new(q?Uint8Array:Array)(30);for(O=0,P=R.length;P>O;++O)R[O]=5;var S=c(R);n=d.prototype,n.q=function(a,b){var c=this.b,d=this.a;this.C=a;for(var g,h,i,j,k=c.length-258;256!==(g=f(this,a));)if(256>g)d>=k&&(this.a=d,c=this.e(),d=this.a),c[d++]=g;else for(h=g-257,j=G[h],0<I[h]&&(j+=e(this,I[h])),g=f(this,b),i=K[g],0<M[g]&&(i+=e(this,M[g])),d>=k&&(this.a=d,c=this.e(),d=this.a);j--;)c[d]=c[d++-i];for(;8<=this.d;)this.d-=8,this.c--;this.a=d},n.V=function(a,b){var c=this.b,d=this.a;this.C=a;for(var g,h,i,j,k=c.length;256!==(g=f(this,a));)if(256>g)d>=k&&(c=this.e(),k=c.length),c[d++]=g;else for(h=g-257,j=G[h],0<I[h]&&(j+=e(this,I[h])),g=f(this,b),i=K[g],0<M[g]&&(i+=e(this,M[g])),d+j>k&&(c=this.e(),k=c.length);j--;)c[d]=c[d++-i];for(;8<=this.d;)this.d-=8,this.c--;this.a=d},n.e=function(){var a,b,c=new(q?Uint8Array:Array)(this.a-32768),d=this.a-32768,e=this.b;if(q)c.set(e.subarray(32768,c.length));else for(a=0,b=c.length;b>a;++a)c[a]=e[a+32768];if(this.l.push(c),this.t+=c.length,q)e.set(e.subarray(d,d+32768));else for(a=0;32768>a;++a)e[a]=e[d+a];return this.a=32768,e},n.W=function(a){var b,c,d,e,f=this.input.length/this.c+1|0,g=this.input,h=this.b;return a&&("number"==typeof a.H&&(f=a.H),"number"==typeof a.P&&(f+=a.P)),2>f?(c=(g.length-this.c)/this.C[2],e=258*(c/2)|0,d=e<h.length?h.length+e:h.length<<1):d=h.length*f,q?(b=new Uint8Array(d),b.set(h)):b=h,this.b=b},n.B=function(){var a,b,c,d,e,f=0,g=this.b,h=this.l,i=new(q?Uint8Array:Array)(this.t+(this.a-32768));if(0===h.length)return q?this.b.subarray(32768,this.a):this.b.slice(32768,this.a);for(b=0,c=h.length;c>b;++b)for(a=h[b],d=0,e=a.length;e>d;++d)i[f++]=a[d];for(b=32768,c=this.a;c>b;++b)i[f++]=g[b];return this.l=[],this.buffer=i},n.R=function(){var a,b=this.a;return q?this.K?(a=new Uint8Array(b),a.set(this.b.subarray(0,b))):a=this.b.subarray(0,b):(this.b.length>b&&(this.b.length=b),a=this.b),this.buffer=a},h.prototype.L=function(a){this.j=a},h.prototype.s=function(a){var b=65535&a[2]|2;return b*(1^b)>>8&255},h.prototype.k=function(a,b){a[0]=(w[255&(a[0]^b)]^a[0]>>>8)>>>0,a[1]=(6681*(20173*(a[1]+(255&a[0]))>>>0)>>>0)+1>>>0,a[2]=(w[255&(a[2]^a[1]>>>24)]^a[2]>>>8)>>>0},h.prototype.T=function(a){var b,c,d=[305419896,591751049,878082192];for(q&&(d=new Uint32Array(d)),b=0,c=a.length;c>b;++b)this.k(d,255&a[b]);return d};var T={O:0,M:8},U=[80,75,1,2],V=[80,75,3,4],W=[80,75,5,6];j.prototype.parse=function(){var b=this.input,c=this.offset;(b[c++]!==U[0]||b[c++]!==U[1]||b[c++]!==U[2]||b[c++]!==U[3])&&a(Error("invalid file header signature")),this.version=b[c++],this.ia=b[c++],this.Z=b[c++]|b[c++]<<8,this.I=b[c++]|b[c++]<<8,this.A=b[c++]|b[c++]<<8,this.time=b[c++]|b[c++]<<8,this.U=b[c++]|b[c++]<<8,this.p=(b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24)>>>0,this.z=(b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24)>>>0,this.J=(b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24)>>>0,this.h=b[c++]|b[c++]<<8,this.g=b[c++]|b[c++]<<8,this.F=b[c++]|b[c++]<<8,this.ea=b[c++]|b[c++]<<8,this.ga=b[c++]|b[c++]<<8,this.fa=b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24,this.$=(b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24)>>>0,this.filename=String.fromCharCode.apply(null,q?b.subarray(c,c+=this.h):b.slice(c,c+=this.h)),this.X=q?b.subarray(c,c+=this.g):b.slice(c,c+=this.g),this.v=q?b.subarray(c,c+this.F):b.slice(c,c+this.F),this.length=c-this.offset};var X={N:1,ca:8,da:2048};k.prototype.parse=function(){var b=this.input,c=this.offset;(b[c++]!==V[0]||b[c++]!==V[1]||b[c++]!==V[2]||b[c++]!==V[3])&&a(Error("invalid local file header signature")),this.Z=b[c++]|b[c++]<<8,this.I=b[c++]|b[c++]<<8,this.A=b[c++]|b[c++]<<8,this.time=b[c++]|b[c++]<<8,this.U=b[c++]|b[c++]<<8,this.p=(b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24)>>>0,this.z=(b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24)>>>0,this.J=(b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24)>>>0,this.h=b[c++]|b[c++]<<8,this.g=b[c++]|b[c++]<<8,this.filename=String.fromCharCode.apply(null,q?b.subarray(c,c+=this.h):b.slice(c,c+=this.h)),this.X=q?b.subarray(c,c+=this.g):b.slice(c,c+=this.g),this.length=c-this.offset},n=i.prototype,n.Y=function(){var a,b,c,d=[];for(this.i||l(this),c=this.i,a=0,b=c.length;b>a;++a)d[a]=c[a].filename;return d},n.r=function(b,c){var e;this.G||l(this),e=this.G[b],e===o&&a(Error(b+" not found"));var f;f=c||{};var g,h,i,j,n,p,r,s,t=this.input,u=this.i;if(u||l(this),u[e]===o&&a(Error("wrong index")),h=u[e].$,g=new k(this.input,h),g.parse(),h+=g.length,i=g.z,0!==(g.I&X.N)){for(!f.password&&!this.j&&a(Error("please set password")),p=this.S(f.password||this.j),r=h,s=h+12;s>r;++r)m(this,p,t[r]);for(h+=12,i-=12,r=h,s=h+i;s>r;++r)t[r]=m(this,p,t[r])}switch(g.A){case T.O:j=q?this.input.subarray(h,h+i):this.input.slice(h,h+i);break;case T.M:j=new d(this.input,{index:h,bufferSize:g.J}).r();break;default:a(Error("unknown compression type"))}if(this.ba){var v,x=o,y="number"==typeof x?x:x=0,z=j.length;for(v=-1,y=7&z;y--;++x)v=v>>>8^w[255&(v^j[x])];for(y=z>>3;y--;x+=8)v=v>>>8^w[255&(v^j[x])],v=v>>>8^w[255&(v^j[x+1])],v=v>>>8^w[255&(v^j[x+2])],v=v>>>8^w[255&(v^j[x+3])],v=v>>>8^w[255&(v^j[x+4])],v=v>>>8^w[255&(v^j[x+5])],v=v>>>8^w[255&(v^j[x+6])],v=v>>>8^w[255&(v^j[x+7])];n=(4294967295^v)>>>0,g.p!==n&&a(Error("wrong crc: file=0x"+g.p.toString(16)+", data=0x"+n.toString(16)))}return j},n.L=function(a){this.j=a},n.k=h.prototype.k,n.S=h.prototype.T,n.s=h.prototype.s,b("Zlib.Unzip",i),b("Zlib.Unzip.prototype.decompress",i.prototype.r),b("Zlib.Unzip.prototype.getFilenames",i.prototype.Y),b("Zlib.Unzip.prototype.setPassword",i.prototype.L)}.call(this),function(){"use strict";function a(a){throw a}function b(a,b){var c=a.split("."),d=j;!(c[0]in d)&&d.execScript&&d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||b===i?d=d[e]?d[e]:d[e]={}:d[e]=b}function c(a){var b,c,d,e,f,g,h,i,j,l=a.length,m=0,n=Number.POSITIVE_INFINITY;for(i=0;l>i;++i)a[i]>m&&(m=a[i]),a[i]<n&&(n=a[i]);for(b=1<<m,c=new(k?Uint32Array:Array)(b),d=1,e=0,f=2;m>=d;){for(i=0;l>i;++i)if(a[i]===d){for(g=0,h=e,j=0;d>j;++j)g=g<<1|1&h,h>>=1;for(j=g;b>j;j+=f)c[j]=d<<16|i;++e}++d,e<<=1,f<<=1}return[c,m,n]}function d(b,c){switch(this.g=[],this.h=32768,this.d=this.f=this.a=this.l=0,this.input=k?new Uint8Array(b):b,this.m=!1,this.i=m,this.r=!1,(c||!(c={}))&&(c.index&&(this.a=c.index),c.bufferSize&&(this.h=c.bufferSize),c.bufferType&&(this.i=c.bufferType),c.resize&&(this.r=c.resize)),this.i){case l:this.b=32768,this.c=new(k?Uint8Array:Array)(32768+this.h+258);break;case m:this.b=0,this.c=new(k?Uint8Array:Array)(this.h),this.e=this.z,this.n=this.v,this.j=this.w;break;default:a(Error("invalid inflate mode"))}}function e(b,c){for(var d,e=b.f,f=b.d,g=b.input,h=b.a;c>f;)d=g[h++],d===i&&a(Error("input buffer is broken")),e|=d<<f,f+=8;return d=e&(1<<c)-1,b.f=e>>>c,b.d=f-c,b.a=h,d}function f(a,b){for(var c,d,e,f=a.f,g=a.d,h=a.input,j=a.a,k=b[0],l=b[1];l>g&&(c=h[j++],c!==i);)f|=c<<g,g+=8;return d=k[f&(1<<l)-1],e=d>>>16,a.f=f>>e,a.d=g-e,a.a=j,65535&d}function g(a){function b(a,b,c){var d,g,h,i;for(i=0;a>i;)switch(d=f(this,b)){case 16:for(h=3+e(this,2);h--;)c[i++]=g;break;case 17:for(h=3+e(this,3);h--;)c[i++]=0;g=0;break;case 18:for(h=11+e(this,7);h--;)c[i++]=0;g=0;break;default:g=c[i++]=d}return c}var d,g,h,i,j=e(a,5)+257,l=e(a,5)+1,m=e(a,4)+4,n=new(k?Uint8Array:Array)(r.length);for(i=0;m>i;++i)n[r[i]]=e(a,3);d=c(n),g=new(k?Uint8Array:Array)(j),h=new(k?Uint8Array:Array)(l),a.j(c(b.call(a,j,d,g)),c(b.call(a,l,d,h)))}function h(b,c){var e,f;switch(this.input=b,this.a=0,(c||!(c={}))&&(c.index&&(this.a=c.index),c.verify&&(this.A=c.verify)),e=b[this.a++],f=b[this.a++],15&e){case G:this.method=G;break;default:a(Error("unsupported compression method"))}0!==((e<<8)+f)%31&&a(Error("invalid fcheck flag:"+((e<<8)+f)%31)),32&f&&a(Error("fdict flag is not supported")),this.q=new d(b,{index:this.a,bufferSize:c.bufferSize,bufferType:c.bufferType,resize:c.resize})}var i=void 0,j=this,k="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,l=0,m=1,n={t:l,s:m};d.prototype.k=function(){for(;!this.m;){var b=e(this,3);switch(1&b&&(this.m=!0),b>>>=1){case 0:var c=this.input,d=this.a,f=this.c,h=this.b,j=i,n=i,o=i,p=f.length,q=i;switch(this.d=this.f=0,j=c[d++],j===i&&a(Error("invalid uncompressed block header: LEN (first byte)")),n=j,j=c[d++],j===i&&a(Error("invalid uncompressed block header: LEN (second byte)")),n|=j<<8,j=c[d++],j===i&&a(Error("invalid uncompressed block header: NLEN (first byte)")),o=j,j=c[d++],j===i&&a(Error("invalid uncompressed block header: NLEN (second byte)")),o|=j<<8,n===~o&&a(Error("invalid uncompressed block header: length verify")),d+n>c.length&&a(Error("input buffer is broken")),this.i){case l:for(;h+n>f.length;){if(q=p-h,n-=q,k)f.set(c.subarray(d,d+q),h),h+=q,d+=q;else for(;q--;)f[h++]=c[d++];this.b=h,f=this.e(),h=this.b}break;case m:for(;h+n>f.length;)f=this.e({p:2});break;default:a(Error("invalid inflate mode"))}if(k)f.set(c.subarray(d,d+n),h),h+=n,d+=n;else for(;n--;)f[h++]=c[d++];this.a=d,this.b=h,this.c=f;break;case 1:this.j(D,F);break;case 2:g(this);break;default:a(Error("unknown BTYPE: "+b))}}return this.n()};var o,p,q=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],r=k?new Uint16Array(q):q,s=[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,258,258],t=k?new Uint16Array(s):s,u=[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,0,0],v=k?new Uint8Array(u):u,w=[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],x=k?new Uint16Array(w):w,y=[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],z=k?new Uint8Array(y):y,A=new(k?Uint8Array:Array)(288);for(o=0,p=A.length;p>o;++o)A[o]=143>=o?8:255>=o?9:279>=o?7:8;var B,C,D=c(A),E=new(k?Uint8Array:Array)(30);for(B=0,C=E.length;C>B;++B)E[B]=5;var F=c(E);d.prototype.j=function(a,b){var c=this.c,d=this.b;this.o=a;for(var g,h,i,j,k=c.length-258;256!==(g=f(this,a));)if(256>g)d>=k&&(this.b=d,c=this.e(),d=this.b),c[d++]=g;else for(h=g-257,j=t[h],0<v[h]&&(j+=e(this,v[h])),g=f(this,b),i=x[g],0<z[g]&&(i+=e(this,z[g])),d>=k&&(this.b=d,c=this.e(),d=this.b);j--;)c[d]=c[d++-i];for(;8<=this.d;)this.d-=8,this.a--;this.b=d},d.prototype.w=function(a,b){var c=this.c,d=this.b;this.o=a;for(var g,h,i,j,k=c.length;256!==(g=f(this,a));)if(256>g)d>=k&&(c=this.e(),k=c.length),c[d++]=g;else for(h=g-257,j=t[h],0<v[h]&&(j+=e(this,v[h])),g=f(this,b),i=x[g],0<z[g]&&(i+=e(this,z[g])),d+j>k&&(c=this.e(),k=c.length);j--;)c[d]=c[d++-i];for(;8<=this.d;)this.d-=8,this.a--;this.b=d},d.prototype.e=function(){var a,b,c=new(k?Uint8Array:Array)(this.b-32768),d=this.b-32768,e=this.c;if(k)c.set(e.subarray(32768,c.length));else for(a=0,b=c.length;b>a;++a)c[a]=e[a+32768];if(this.g.push(c),this.l+=c.length,k)e.set(e.subarray(d,d+32768));else for(a=0;32768>a;++a)e[a]=e[d+a];return this.b=32768,e},d.prototype.z=function(a){var b,c,d,e,f=this.input.length/this.a+1|0,g=this.input,h=this.c;return a&&("number"==typeof a.p&&(f=a.p),"number"==typeof a.u&&(f+=a.u)),2>f?(c=(g.length-this.a)/this.o[2],e=258*(c/2)|0,d=e<h.length?h.length+e:h.length<<1):d=h.length*f,k?(b=new Uint8Array(d),b.set(h)):b=h,this.c=b},d.prototype.n=function(){var a,b,c,d,e,f=0,g=this.c,h=this.g,i=new(k?Uint8Array:Array)(this.l+(this.b-32768));if(0===h.length)return k?this.c.subarray(32768,this.b):this.c.slice(32768,this.b);for(b=0,c=h.length;c>b;++b)for(a=h[b],d=0,e=a.length;e>d;++d)i[f++]=a[d];for(b=32768,c=this.b;c>b;++b)i[f++]=g[b];return this.g=[],this.buffer=i},d.prototype.v=function(){var a,b=this.b;return k?this.r?(a=new Uint8Array(b),a.set(this.c.subarray(0,b))):a=this.c.subarray(0,b):(this.c.length>b&&(this.c.length=b),a=this.c),this.buffer=a},h.prototype.k=function(){var b,c,d=this.input;if(b=this.q.k(),this.a=this.q.a,this.A){c=(d[this.a++]<<24|d[this.a++]<<16|d[this.a++]<<8|d[this.a++])>>>0;var e=b;if("string"==typeof e){var f,g,h=e.split("");for(f=0,g=h.length;g>f;f++)h[f]=(255&h[f].charCodeAt(0))>>>0;e=h}for(var i,j=1,k=0,l=e.length,m=0;l>0;){i=l>1024?1024:l,l-=i;do j+=e[m++],k+=j;while(--i);j%=65521,k%=65521}c!==(k<<16|j)>>>0&&a(Error("invalid adler-32 checksum"))}return b};var G=8;b("Zlib.Inflate",h),b("Zlib.Inflate.prototype.decompress",h.prototype.k);var H,I,J,K,L={ADAPTIVE:n.s,BLOCK:n.t};if(Object.keys)H=Object.keys(L);else for(I in H=[],J=0,L)H[J++]=I;for(J=0,K=H.length;K>J;++J)I=H[J],b("Zlib.Inflate.BufferType."+I,L[I])}.call(this),function(a){var b="object"==typeof exports&&exports,c="object"==typeof module&&module&&module.exports==b&&module,d="object"==typeof global&&global;(d.global===d||d.window===d)&&(a=d);var e=function(a){this.message=a};e.prototype=new Error,e.prototype.name="InvalidCharacterError";var f=function(a){throw new e(a)},g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=/<%= spaceCharacters %>/g,i=function(a){a=String(a).replace(h,"");var b=a.length;b%4==0&&(a=a.replace(/==?$/,""),b=a.length),(b%4==1||/[^+a-zA-Z0-9\/]/.test(a))&&f("Invalid character: the string to be decoded is not correctly encoded.");for(var c,d,e=0,i="",j=-1;++j<b;)d=g.indexOf(a.charAt(j)),c=e%4?64*c+d:d,e++%4&&(i+=String.fromCharCode(255&c>>(-2*e&6)));return i},j=function(a){a=String(a),/[^\0-\xFF]/.test(a)&&f("The string to be encoded contains characters outside of the Latin1 range.");for(var b,c,d,e,h=a.length%3,i="",j=-1,k=a.length-h;++j<k;)b=a.charCodeAt(j)<<16,c=a.charCodeAt(++j)<<8,d=a.charCodeAt(++j),e=b+c+d,i+=g.charAt(e>>18&63)+g.charAt(e>>12&63)+g.charAt(e>>6&63)+g.charAt(63&e);return 2==h?(b=a.charCodeAt(j)<<8,c=a.charCodeAt(++j),e=b+c,i+=g.charAt(e>>10)+g.charAt(e>>4&63)+g.charAt(e<<2&63)+"="):1==h&&(e=a.charCodeAt(j),i+=g.charAt(e>>2)+g.charAt(e<<4&63)+"=="),i},k={encode:j,decode:i,version:"<%= version %>"};if("function"==typeof define&&"object"==typeof define.amd&&define.amd)define(function(){return k});else if(b&&!b.nodeType)if(c)c.exports=k;else for(var l in k)k.hasOwnProperty(l)&&(b[l]=k[l]);else a.base64=k}(this),InputStream.prototype.seek=function(a){this.offset=a},InputStream.prototype.getBytes=function(a){var b=new Uint8Array(this.buffer.buffer,this.offset,a);return this.offset+=a,b},InputStream.prototype.getVarints=function(){var a,b=0,c=0;do a=this.buffer[this.offset++],b|=(127&a)<<c,c+=7;while(128&a);return b},InputStream.prototype.getUint8=function(){return this.buffer[this.offset++]},InputStream.prototype.getUint16=function(){return this.convUint8[0]=this.buffer[this.offset++],this.convUint8[1]=this.buffer[this.offset++],this.convUint16[0]},InputStream.prototype.getInt16=function(){var a=this.getUint16();return a>32767&&(a=4294901760|a),a},InputStream.prototype.getInt32=function(){var a=this.buffer,b=this.convUint8,c=this.offset;return b[0]=a[c],b[1]=a[c+1],b[2]=a[c+2],b[3]=a[c+3],this.offset+=4,this.convInt32[0]},InputStream.prototype.getUint32=function(){var a=this.buffer,b=this.convUint8,c=this.offset;return b[0]=a[c],b[1]=a[c+1],b[2]=a[c+2],b[3]=a[c+3],this.offset+=4,this.convUint32[0]},InputStream.prototype.getFloat32=function(){var a=this.buffer,b=this.convUint8,c=this.offset;return b[0]=a[c],b[1]=a[c+1],b[2]=a[c+2],b[3]=a[c+3],this.offset+=4,this.convFloat32[0]},InputStream.prototype.getFloat64=function(){for(var a=this.buffer,b=this.convUint8,c=this.offset,d=0;8>d;d++)b[d]=a[c+d];return this.offset+=8,this.convFloat64[0]},InputStream.prototype.getString=function(a){for(var b=this.buffer,c="",d=this.offset,e=this.offset+a;e>d;d++)c+=String.fromCharCode(b[d]);this.offset+=a;var f;try{f=decodeURIComponent(escape(c))}catch(g){f=c,debug("Failed to decode string "+f)}return f},InputStream.prototype.reset=function(a){this.buffer=a,this.offset=0,this.byteLength=a.length},VBUtils={deduceUVRepetition:function(a){for(var b in a.vblayout)if(0==b.indexOf("uv")&&0!=b.indexOf("uvw"))for(var c=a.vblayout[b].offset,d=a.vbstride,e=a.vb,f=a.vb.length/d,g=0,h=c;f>g;g++,h+=d){var i=e[h],j=e[h+1];if(i>2||0>i||j>2||0>j){a.vblayout[b].isPattern=!0;break}}},computeBounds3D:function(a){var b,c,d,e,f,g=1/0,h=1/0,i=1/0,j=-(1/0),k=-(1/0),l=-(1/0),m=a.vbstride,n=a.vblayout.position.offset,o=a.vb,p=a.vb.length/m;for(b=0,c=n;p>b;b++,c+=m)d=o[c],e=o[c+1],f=o[c+2],g>d&&(g=d),h>e&&(h=e),i>f&&(i=f),d>j&&(j=d),e>k&&(k=e),f>l&&(l=f);var q=(a.boundingBox={min:{x:g,y:h,z:i},max:{x:j,y:k,z:l}},.5*(g+j)),r=.5*(h+k),s=.5*(i+l),t=a.boundingSphere={};t.center={x:q,y:r,z:s};var u=0;for(b=0,c=n;p>b;b++,c+=m){d=o[c],e=o[c+1],f=o[c+2];var v=d-q,w=e-r,x=f-s,y=v*v+w*w+x*x;y>u&&(u=y)}t.radius=Math.sqrt(u)},bboxUnion:function(a,b){b.min.x<a.min.x&&(a.min.x=b.min.x),b.min.y<a.min.y&&(a.min.y=b.min.y),b.min.z<a.min.z&&(a.min.z=b.min.z),b.max.x>a.max.x&&(a.max.x=b.max.x),b.max.y>a.max.y&&(a.max.y=b.max.y),b.max.z>a.max.z&&(a.max.z=b.max.z)}},function(a){"use strict";function b(a,b){var c=b||65536;this.useInstancing=a,this.stride=12,this.vb=new ArrayBuffer(4*this.stride*(this.useInstancing?c/4:c)),this.vbf=new Float32Array(this.vb),this.vbi=new Int32Array(this.vb),this.vcount=0,this.ib=this.useInstancing?null:new Uint16Array(c),this.icount=0,this.minx=this.miny=1/0,this.maxx=this.maxy=-(1/0),this.dbIds={},this.numEllipticals=0,this.numCirculars=0,this.numTriangleGeoms=0}var c=2*Math.PI,d=0,e=1,f=2,g=3,h=4,i=5,j=0,k=1,l=2,m=3,n=6,o=7,p=8,q=9,r=[0,1,3,0,3,2];b.prototype.expandStride=function(){},b.prototype.addToBounds=function(a,b){a<this.minx&&(this.minx=a),a>this.maxx&&(this.maxx=a),b<this.miny&&(this.miny=b),b>this.maxy&&(this.maxy=b)},b.prototype.setCommonVertexAttribs=function(a,b,c,d,e,f,g,h){b=255&b,c=255&c,h=255&h,f=65535&f,g=65535&g,this.vbi[a+p]=b|c<<8|h<<16,this.vbi[a+n]=d,this.vbi[a+o]=e,this.vbi[a+q]=f|g<<16,this.dbIds[e]=1},b.prototype.addVertexTriangleGeom=function(a,b,c,d,e,f,g,h,k,l){for(var m=this.vcount,n=this.vbf,o=this.useInstancing?1:4,p=0;o>p;p++){var q=(m+p)*this.stride;n[q]=a,n[q+1]=b,n[q+2]=c,n[q+3]=d,n[q+4]=e,n[q+5]=f,this.setCommonVertexAttribs(q,j+p,i,g,h,k,l,0),this.vcount++}return m},b.prototype.addVertexLine=function(a,b,c,d,f,g,h,i,k,l,m){for(var n=this.vcount,o=this.vbf,p=this.useInstancing?1:4,q=0;p>q;q++){var r=(n+q)*this.stride;o[r]=a,o[r+1]=b,o[r+2]=c,o[r+3]=d,o[r+4]=.5*g,o[r+5]=f,this.setCommonVertexAttribs(r,j+q,e,h,i,k,l,m),this.vcount++}return n},b.prototype.addVertexTexQuad=function(a,b,c,d,e,f,g,i,k){for(var l=this.vcount,m=this.vbf,n=this.useInstancing?1:4,o=0;n>o;o++){var p=(l+o)*this.stride;m[p]=a,m[p+1]=b,m[p+2]=e,m[p+3]=c,m[p+4]=d,this.setCommonVertexAttribs(p,j+o,h,f,g,i,k,0),this.vcount++}return l},b.prototype.addVertexArc=function(a,b,c,d,e,h,i,k,l,m,n,o){for(var p=this.vcount,q=this.vbf,r=e==h?f:g,s=this.useInstancing?1:4,t=0;s>t;t++){var u=(p+t)*this.stride;q[u]=a,q[u+1]=b,q[u+2]=c,q[u+3]=d,q[u+4]=.5*k,q[u+5]=e,r===g&&(q[u+10]=h,q[u+11]=i),this.setCommonVertexAttribs(u,j+t,r,l,m,n,o,0),this.vcount++}return p},b.prototype.addVertex=function(a,b,c,e,f,g){if(!this.useInstancing){var h=this.vcount,i=this.stride*h,j=this.vbf;return j[i]=a,j[i+1]=b,this.setCommonVertexAttribs(i,0,d,c,e,f,g,0),this.vcount++,h}},b.prototype.addVertexPolytriangle=function(a,b,c,d,e,f){this.useInstancing||(this.addVertex(a,b,c,d,e,f),this.addToBounds(a,b))},b.prototype.addIndices=function(a,b){if(!this.useInstancing){var c=this.ib,d=this.icount;if(d+a.length>=c.length){for(var e=new Uint16Array(2*c.length),f=0;d>f;++f)e[f]=c[f];this.ib=c=e}for(var f=0;f<a.length;++f)c[d+f]=b+a[f];this.icount+=a.length}},b.prototype.finalizeQuad=function(a){this.useInstancing||this.addIndices(r,a)},b.prototype.addSegment=function(a,b,c,d,e,f,g,h,i,j,k){var l=c-a,m=d-b,n=l||m?Math.atan2(m,l):0,o=l||m?Math.sqrt(l*l+m*m):0,p=this.addVertexLine(a,b,n,o,e,f,g,h,i,j,k);this.finalizeQuad(p),this.addToBounds(a,b),this.addToBounds(c,d)},b.prototype.addTriangleGeom=function(a,b,c,d,e,f,g,h,i,j){this.numTriangleGeoms++;var k=this.addVertexTriangleGeom(a,b,c,d,e,f,g,h,i,j);this.finalizeQuad(k),this.addToBounds(a,b),this.addToBounds(c,d),this.addToBounds(e,f)},b.prototype.addArc=function(a,b,d,e,f,g,h,i,j,k,l,m){f==g?this.numCirculars++:this.numEllipticals++;var n=s(d,e);d=n.start,e=n.end,0==d&&0==e&&(e=c);var o=Math.abs(d-e);if(o>1e-4&&Math.abs(o-c)>1e-4){var p=a+f*Math.cos(d),q=b+g*Math.sin(d);this.addSegment(p,q,p,q,0,i,j,k,l,m);var r=a+f*Math.cos(e),t=b+g*Math.sin(e);this.addSegment(r,t,r,t,0,i,j,k,l,m)}else this.addToBounds(a-f,b-g),this.addToBounds(a+f,b+g);var u=this.addVertexArc(a,b,d,e,f,g,h,i,j,k,l,m);this.finalizeQuad(u);var o,p,q,r,t},b.prototype.addTexturedQuad=function(a,b,c,d,e,f,g,h,i){var j=this.addVertexTexQuad(a,b,c,d,e,f,g,h,i);this.finalizeQuad(j);var k=.5*Math.cos(e),l=.5*Math.sin(e),m=Math.abs(c*k)+Math.abs(d*l),n=Math.abs(c*l)+Math.abs(d*k);this.addToBounds(a-m,b-n),this.addToBounds(a+m,b+n)},b.prototype.isFull=function(a){a=a||3;var b=this.useInstancing?4:1;return this.vcount*b+a>32767},b.prototype.toMesh=function(){var a={};a.vb=new Float32Array(this.vb.slice(0,this.vcount*this.stride*4)),a.vbstride=this.stride;var b=this.useInstancing?1:0;if(a.vblayout={fields1:{offset:0,itemSize:3,bytesPerItem:4,divisor:b,normalize:!1},fields2:{offset:3,itemSize:3,bytesPerItem:4,divisor:b,normalize:!1},color4b:{offset:n,itemSize:4,bytesPerItem:1,divisor:b,normalize:!0},dbId4b:{offset:o,itemSize:4,bytesPerItem:1,divisor:b,normalize:!1},flags4b:{offset:p,itemSize:4,bytesPerItem:1,divisor:b,normalize:!1},layerVp4b:{offset:q,itemSize:4,bytesPerItem:1,divisor:b,normalize:!1}},this.stride>10&&(a.vblayout.extraParams={offset:10,itemSize:2,bytesPerItem:4,divisor:b,normalize:!1}),this.useInstancing){a.numInstances=this.vcount;var c=new Int32Array([j,k,l,m]);a.vblayout.instFlags4b={offset:0,itemSize:4,bytesPerItem:1,divisor:0,normalize:!1},a.vblayout.instFlags4b.array=c.buffer;a.indices=new Uint16Array(r)}else a.indices=new Uint16Array(this.ib.buffer.slice(0,2*this.icount));a.dbIds=this.dbIds;var d=this.maxx-this.minx,e=this.maxy-this.miny,f=Math.max(d,e);a.boundingBox={min:{x:this.minx,y:this.miny,z:.001*-f},max:{x:this.maxx,y:this.maxy,z:.001*f}};a.boundingSphere={center:{x:.5*(this.minx+this.maxx),y:.5*(this.miny+this.maxy),z:0},radius:.5*Math.sqrt(d*d+e*e)};return a};var s=function(a,b){function d(){function d(a,b){return Math.abs(a-b)<.001}d(a,0)&&(a=0),d(b,0)&&(b=0),d(a,c)&&(a=c),d(b,c)&&(b=c)}if(d(),a>b)for(;a>c;)a-=c,b-=c;else for(;b>c;)a-=c,b-=c;return d(),0>a&&b>0&&(a+=c),{start:a,end:b}};a.VertexBufferBuilder=b}(Autodesk.Viewing.Private),PackFileReader.prototype.readVarint=function(){var a,b=0,c=0;do a=this.stream.getUint8(),b|=(127&a)<<c,c+=7;while(128&a);return b},PackFileReader.prototype.readU32V=PackFileReader.prototype.readVarint,PackFileReader.prototype.readU16=function(){return this.stream.getUint16()},PackFileReader.prototype.readU8=function(){return this.stream.getUint8()},PackFileReader.prototype.readString=function(){return this.stream.getString(this.readU32V())},PackFileReader.prototype.readVector3f=function(){var a=this.stream;return{x:a.getFloat32(),y:a.getFloat32(),z:a.getFloat32()}},PackFileReader.prototype.readVector3d=function(){var a={x:0,y:0,z:0};return function(b){var c=this.stream;return a.x=c.getFloat64(),a.y=c.getFloat64(),a.z=c.getFloat64(),b&&(a.x-=b.x,a.y-=b.y,a.z-=b.z),a}}(),PackFileReader.prototype.readQuaternionf=function(){var a={x:0,y:0,z:0,w:0};return function(){var b=this.stream;return a.x=b.getFloat32(),a.y=b.getFloat32(),a.z=b.getFloat32(),a.w=b.getFloat32(),a}}(),PackFileReader.prototype.readMatrix3f=function(){var a=new LmvMatrix4;return function(b){b||(b=a);var c=this.stream;b.identity();for(var d=0;3>d;++d)for(var e=0;3>e;++e)b.elements[4*d+e]=c.getFloat32();return b}}(),PackFileReader.prototype.readTransform=function(){var a={x:1,y:1,z:1},b=new LmvMatrix4;return function(c,d,e,f){var g,h,i=this.stream,j=i.getUint8();switch(j){case 4:b.identity(),f&&(b.elements[12]-=f.x,b.elements[13]-=f.y,b.elements[14]-=f.z);break;case 0:g=this.readVector3d(f),b.makeTranslation(g.x,g.y,g.z);break;case 1:h=this.readQuaternionf(),g=this.readVector3d(f),a.x=1,a.y=1,a.z=1,b.compose(g,h,a);break;case 2:var k=i.getFloat32();h=this.readQuaternionf(),g=this.readVector3d(f),a.x=k,a.y=k,a.z=k,b.compose(g,h,a);break;case 3:this.readMatrix3f(b),g=this.readVector3d(f),b.setPosition(g)}if(void 0===c)return(new LmvMatrix4).copy(b);var l=b.elements;d&&(d[e+0]=l[0],d[e+1]=l[1],d[e+2]=l[2],d[e+3]=l[4],d[e+4]=l[5],d[e+5]=l[6],d[e+6]=l[8],d[e+7]=l[9],d[e+8]=l[10],d[e+9]=l[12],d[e+10]=l[13],d[e+11]=l[14])}}(),PackFileReader.prototype.getEntryCounts=function(){return this.entryOffsets.length},PackFileReader.prototype.seekToEntry=function(a){var b=this.getEntryCounts();if(a>=b)return null;this.stream.seek(this.entryOffsets[a]);var c=this.stream.getUint32();return c>=this.types.length?null:this.types[c]},PackFileReader.prototype.readPathID=function(){var a=this.stream;if(this.version<2){var b=a.getUint16();if(!b)return null;if(a.getUint16(),1==b)return"";for(var c=a.getUint16(),d=2;b>d;++d)c+="/"+a.getUint16()}else{var b=this.readU32V();if(!b)return null;if(this.readU32V(),1==b)return"";for(var c=this.readU32V(),d=2;b>d;++d)c+="/"+this.readU32V()}return c};var readOpenCTM=function(a){var b=function(){return a.getString(a.getInt32())},c=a.getString(4);if("OCTM"!=c)return null;var d=a.getInt32();if(5!=d)return null;var e=a.getString(3);a.getUint8();var f={stream:null,vertices:null,indices:null,normals:null,colors:null,uvs:[],attrs:[]};f.vertexCount=a.getInt32(),f.triangleCount=a.getInt32(),f.texMapCount=a.getInt32(),f.attribMapCount=a.getInt32(),f.flags=a.getInt32(),f.comment=b();var g=!0;f.vbstride=3,1&f.flags&&(f.vbstride+=g?1:3),f.vbstride+=2*(f.texMapCount||0),f.vbstride+=3*(f.attribMapCount||0),f.vblayout={};var h=0;if(f.vblayout.position={offset:h,itemSize:3},h+=3,1&f.flags&&(f.vblayout.normal={offset:h,itemSize:g?2:3,bytesPerItem:g?2:4,normalize:g},h+=g?1:3),f.texMapCount)for(var i=0;i<f.texMapCount;i++){var j="uv";i&&(j+=(i+1).toString()),f.vblayout[j]={offset:h,itemSize:2},h+=2}return f.vb=new Float32Array(f.vertexCount*f.vbstride),"RAW"==e?(readOpenCTM_RAW(a,f),VBUtils.deduceUVRepetition(f),VBUtils.computeBounds3D(f),f):"MG2"==e?(readOpenCTM_MG2(a,f),VBUtils.deduceUVRepetition(f),VBUtils.computeBounds3D(f),f):null},readLines=function(a,b){var c,d,e={isLines:!0,vertices:null,indices:null,colors:null,normals:null,uvs:[],attrs:[]};b.version>1?(e.vertexCount=a.readU16(),c=a.readU16(),d=a.readU16()):(e.vertexCount=a.readU32V(),c=a.readU32V(),d=a.readU32V());var f=0!=a.stream.getUint8();e.vbstride=3,f&&(e.vbstride+=3),e.vblayout={};var g=0;e.vblayout.position={offset:g,itemSize:3},g+=3,f&&(e.vblayout.color={offset:g,itemSize:3}),e.vb=new Float32Array(e.vertexCount*e.vbstride);for(var h=e.vb,i=e.vbstride,j=a.stream,k=0,g=e.vblayout.position.offset,l=e.vertexCount;l>k;k++,g+=i)h[g]=j.getFloat32(),h[g+1]=j.getFloat32(),h[g+2]=j.getFloat32();if(f)for(var m=0,g=e.vblayout.color.offset,n=e.vertexCount;n>m;m++,g+=i)h[g]=j.getFloat32(),h[g+1]=j.getFloat32(),h[g+2]=j.getFloat32(),j.getFloat32();var o,p,q=function(a){return a.buffer.slice(a.byteOffset,a.byteOffset+a.length)};b.version>1?(o=new Uint16Array(q(j.getBytes(2*c))),p=new Uint16Array(q(j.getBytes(2*d)))):(o=new Int32Array(q(j.getBytes(4*c))),p=new Int32Array(q(j.getBytes(4*d))));var r=p[d-1]-d+1;e.indices=new Uint16Array(2*r);for(var s=0,k=0;d>k+1;k++)for(var t=p[k];t+1<p[k+1];t++)e.indices[s++]=o[t],e.indices[s++]=o[t+1];return VBUtils.computeBounds3D(e),e},NUM_FRAGMENT_LIMITS=(isAndroidDevice()||isIOSDevice(),null),MAX_FRAGMENT_PACK_SIZE=isAndroidDevice()||isIOSDevice()?6291456:33554432;Package.prototype.loadAsyncResource=function(a,b,c,d){function e(b){if(f.pendingRequests--,b){var c=new Uint8Array(b);if(31==c[0]&&139==c[1]){var e=new Zlib.Gunzip(c);c=e.decompress()}d(c)}0==f.pendingRequests&&f.postLoad(a)}if(c)return void d(c);var f=this;this.pendingRequests++,Autodesk.Viewing.Private.ViewingService.get(a.viewing_url,"items",a.basePath+b,e,a.onFailureCallback,{withCredentials:!!a.auth,responseType:"arraybuffer",asynchronous:!0,headers:a.headers,queryParams:a.queryParams,oss_url:a.oss_url})},Package.prototype.loadManifest=function(a){var b=this.unzip.decompress(&quo
10000
t;manifest.json");if(!b)return!1;var c=new InputStream(b);this.manifest=JSON.parse(c.getString(b.byteLength))},Package.prototype.loadRemainingSvf=function(a){var b=this,c=this.unzip;this.manifest=a.manifest;var d=this.manifest,e=d.assets,f=c.decompress("metadata.json"),g=new InputStream(f);if(f.byteLength>3&&0!==f[3]&&(this.metadata=JSON.parse(g.getString(f.byteLength)).metadata,this.metadata)){var h=this.metadata["world bounding box"],i={x:h.minXYZ[0],y:h.minXYZ[1],z:h.minXYZ[2]},j={x:h.maxXYZ[0],y:h.maxXYZ[1],z:h.maxXYZ[2]};this.bbox={min:i,max:j},this.globalOffset=a.globalOffset||{x:.5*(i.x+j.x),y:.5*(i.y+j.y),z:.5*(i.z+j.z)},i.x-=this.globalOffset.x,i.y-=this.globalOffset.y,i.z-=this.globalOffset.z,j.x-=this.globalOffset.x,j.y-=this.globalOffset.y,j.z-=this.globalOffset.z,this.metadata.hasOwnProperty("double sided geometry")&&this.metadata["double sided geometry"].value&&(this.doubleSided=!0)}d.manifestversion;this.packFileTotalSize=0,this.primitiveCount=0;for(var k=d.typesets,l={},m=0;m<k.length;m++){var n=k[m];l[n.id]=n.types}for(var o={},m=0;m<e.length;m++){var p=e[m],q=p.type;0==q.indexOf("Autodesk.CloudPlatform.")&&(q=q.substr(23));
var r=p.URI,s=p.typeset?l[p.typeset]:null;if(0!=r.indexOf("embed:/"))if("PackFile"==q){var t=s?s[0]["class"]:null;"Autodesk.CloudPlatform.Geometry"==t&&(this.packFileTotalSize+=p.usize||0,this.geompacks.push({id:p.id,uri:r}))}else"PropertyAttributes"==q?this.propertydb.attrs.push(r):"PropertyAVs"==q?this.propertydb.avs.push(r):"PropertyIDs"==q?this.propertydb.ids.push(r):"PropertyOffsets"==q?this.propertydb.offsets.push(r):"PropertyValues"==q&&this.propertydb.values.push(r);var u=p.URI,v=null;if(0==u.indexOf("embed:/")&&(u=u.substr(7),v=c.decompress(u)),"ProteinMaterials"==q)-1==u.indexOf("Protein")?this.loadAsyncResource(a,u,v,function(a){var c=new InputStream(a),d=a.byteLength;d>0?b.materials=JSON.parse(c.getString(d)):b.materials=null}):this.loadAsyncResource(a,u,v,function(a){var c=new InputStream(a),d=a.byteLength;d>0?b.proteinMaterials=JSON.parse(c.getString(d)):b.proteinMaterials=null});else if("FragmentList"==q){this.memoryOptimizedMode=p.size>MAX_FRAGMENT_PACK_SIZE&&(isAndroidDevice()||isIOSDevice());var w=this;this.loadAsyncResource(a,u,v,function(c){var d=new PackFileReader(c),e=b.fragments=new FragList;readFragments(d,e,b.globalOffset,a.placementTransform,a.objectIds),d=null,w.memoryOptimizedMode&&o.path&&b.loadAsyncResource(a,o.path,o.contents,function(a){d=new PackFileReader(a),b.primitiveCount=readGeometryMetadataIntoFragments(d,b.fragments),d=null,o.contents=null})})}else if("GeometryMetadataList"==q){var w=this;this.loadAsyncResource(a,u,v,function(a){var c=new PackFileReader(a);b.geomMetadata={},w.memoryOptimizedMode?b.fragments&&b.fragments.finishLoading?b.primitiveCount=readGeometryMetadataIntoFragments(c,b.fragments):(o.path=u,o.contents=v,v=null):readGeometryMetadata(c,b.geomMetadata)})}else"PackFile"==q?-1!=u.indexOf("CameraDefinitions.bin")?this.loadAsyncResource(a,u,v,function(a){b.camDefPack=new PackFileReader(a)}):-1!=u.indexOf("CameraList.bin")?this.loadAsyncResource(a,u,v,function(a){b.camInstPack=new PackFileReader(a)}):-1!=u.indexOf("LightDefinitions.bin")?this.loadAsyncResource(a,u,v,function(a){b.lightDefPack=new PackFileReader(a)}):-1!=u.indexOf("LightList.bin")&&this.loadAsyncResource(a,u,v,function(a){b.lightInstPack=new PackFileReader(a)}):"Animations"==q?this.loadAsyncResource(a,u,v,function(a){function c(a,b){a[0]-=b.x,a[1]-=b.y,a[2]-=b.z}var d=new InputStream(a),e=a.byteLength;if(e>0){b.animations=JSON.parse(d.getString(e));var f=b.animations.animations;if(f)for(var g=b.globalOffset,h=(new LmvMatrix4).makeTranslation(g.x,g.y,g.z),i=(new LmvMatrix4).makeTranslation(-g.x,-g.y,-g.z),j=new LmvMatrix4,k=new LmvMatrix4,l=0;l<f.length;l++){var m=f[l];if(m.hierarchy)for(var n=0;n<m.hierarchy.length;n++){var o=m.hierarchy[n].keys;if(o)for(var p=0;p<o.length;p++){var q=o[p].pos;if(q){var r=g,s=o[p].rot;s&&(j.makeRotationFromQuaternion({x:s[0],y:s[1],z:s[2],w:s[3]}),k.multiplyMatrices(h,j).multiply(i),r={x:k.elements[12],y:k.elements[13],z:k.elements[14]}),c(q,r)}var t=o[p].target;t&&c(t,g);var u=o[p].points;if(u)for(var v=0;v<u.length;v++)c(u[v],g)}}}}else b.animations=null}):"Topology"==q&&this.loadAsyncResource(a,u,v,function(a){var c=new InputStream(a),d=a.byteLength;d>0?b.topology=JSON.parse(c.getString(d)):b.topology=null})}0==this.pendingRequests&&this.postLoad(a),delete this.unzip},Package.prototype.addTransparencyFlagsToMaterials=function(a){for(var b in a){var c=a[b],d=c.userassets,e=c.materials,f=e[d[0]];c.transparent=f.transparent}},Package.prototype.postLoad=function(a){if(this.camDefPack&&this.camInstPack){for(var b=0,c=this.camInstPack.getEntryCounts();c>b;b++){var d=readInstance(this.camInstPack,b,this.globalOffset),e=readCameraDefinition(this.camDefPack,d);d.transform&&(d.transform.transformPoint(e.position),d.transform.transformPoint(e.target),d.transform.transformDirection(e.up)),this.cameras.push(e)}delete this.camDefPack,delete this.camInstPack}if(this.lightDefPack&&this.lightInstPack){for(var b=0,c=this.lightInstPack.getEntryCounts();c>b;b++){var d=readInstance(this.lightInstPack,b);this.lights.push(readLightDefinition(this.lightDefPack,d.definition))}delete this.lightInstPack,delete this.lightDefPack}var f=this.fragments;if(this.geomMetadata){f.polygonCounts=f.geomDataIndexes;var g=this.geomMetadata;void 0!=g.topoIndexes&&(f.topoIndexes=new Int32Array(f.length));for(var h=0,i=f.length;i>h;h++){var j=f.geomDataIndexes[h];f.entityIndexes[h]=g.entityIndexes[j],f.packIds[h]=g.packIds[j],f.polygonCounts[h]=g.primCounts[j],this.primitiveCount+=g.primCounts[j],void 0!=g.topoIndexes&&(f.topoIndexes[h]=g.topoIndexes[j])}f.geomDataIndexes=null,this.geomMetadata=null}for(var k=f.mesh2frag={},l=f.packIds,m=f.entityIndexes,h=0,i=f.length;i>h;h++){var n=l[h]+":"+m[h],o=k[n];void 0===o?k[n]=h:Array.isArray(o)?o.push(h):k[n]=[o,h]}if(!this.bbox||a.placementTransform){for(var p=[1/0,1/0,1/0,-(1/0),-(1/0),-(1/0)],q=f.boxes,r=0,s=f.length;s>r;r++){var h,t=6*r;for(h=0;3>h;h++)q[t+h]<p[h]&&(p[h]=q[t+h]);for(h=3;6>h;h++)q[t+h]>p[h]&&(p[h]=q[t+h])}this.bbox={min:{x:p[0],y:p[1],z:p[2]},max:{x:p[3],y:p[4],z:p[5]}}}var u=a.objectIds;if(null!=u){for(var l=[],v=[],h=0;h<u.length;++h)for(var w=0;w<this.fragments.length;++w)this.fragments.fragId2dbId[w]==u[h]&&(l.push(this.fragments.packIds[w]),v.push(w));for(var x=1,y=l.length,h=1;y>h;){for(;y>h&&l[h]==l[h-1];)++h;if(y==h)break;l[x++]=l[h++]}l.splice(x-1,y-x);for(var z=[],h=0;h<this.geompacks.length;++h)for(var w=0;w<l.length;++w)parseInt(this.geompacks[h].id)==l[w]&&z.push(this.geompacks[h]);this.geompacks=z;var A=filterFragments(this.fragments,v);this.bbox={min:{x:A[0],y:A[1],z:A[2]},max:{x:A[3],y:A[4],z:A[5]}}}if(this.memoryOptimizedMode||a.loadDoneCB("svf"),this.fragments.polygonCounts){var B=performance.now(),C=this.materials?this.materials.materials:null;C&&this.addTransparencyFlagsToMaterials(C),this.bvh=new BVHBuilder(this.fragments,C),this.bvh.build(a.bvhOptions);var D=performance.now();debug("BVH build time (worker thread):"+(D-B)),this.memoryOptimizedMode?a.loadDoneCB("svf"):a.loadDoneCB("bvh")}a.loadDoneCB("done")},function(){"use strict";function a(a,b,c,d){if(this.metadata=a,this.scaleX=1,this.scaleY=1,this.bbox={min:{x:0,y:0,z:0},max:{x:0,y:0,z:0}},this.is2d=!0,this.layersMap={},this.fontDefs={},this.fontCount=0,this.fontId=0,this.manifestAvailable=!1,this.objectMemberQueue=[],this.propertydb={attrs:[],avs:[],ids:[],values:[],offsets:[],rcv_offsets:[],rcvs:[],viewables:[]},a){var e=a.page_dimensions;this.paperWidth=e.page_width,this.paperHeight=e.page_height,this.scaleX=this.paperWidth/e.plot_width,this.scaleY=this.paperHeight/e.plot_height,this.hidePaper=e.hide_paper,this.bbox.max.x=this.paperWidth,this.bbox.max.y=this.paperHeight;var f=0;this.layersMap[0]=f++;for(var g in a.layers){var h=parseInt(g);this.layersMap[h]=f++}this.layerCount=f,this.createLayerGroups(a.layers)}if(this.hidePaper=this.hidePaper||d&&d.modelSpace,this.opCount=0,this.fontFaces=[],this.fontFamilies=[],this.viewports=[],this.currentVpId=0,this.clips=[],this.strings=[],this.stringDbIds=[],this.currentStringNumber=-1,this.objectNumber=0,this.currentFakeId=-2,this.imageNumber=0,this.maxObjectNumber=0,this.objectStack=[],this.objectNameStack=[],this.parseObjState={polyTriangle:{},viewport:{},clip:{},raster:{},text:{},fontDef:{},uknown:{}},this.layer=0,this.bgColor=d.bgColor?d.bgColor:4294967295,this.contrastColor=this.color=this.fillColor=4278190080,this.currentVbb=new Autodesk.Viewing.Private.VertexBufferBuilder(!1),this.meshes=[],this.numCircles=this.numEllipses=this.numPolylines=this.numLineSegs=0,this.numPolytriangles=this.numTriangles=0,this.error=!1,this.offsetX=0,this.offsetY=0,b){this.manifestAvailable=!0,this.imageId2URI={};for(var i=b.assets,j=0,k=i.length;k>j;++j){var l=i[j],m=l.mime;if(-1!=m.indexOf("image/")){var n=l.id;n=n.substr(0,n.indexOf(".")),this.imageId2URI[n]=c+l.URI}"Autodesk.CloudPlatform.PropertyAttributes"==l.type&&this.propertydb.attrs.push(l.URI),"Autodesk.CloudPlatform.PropertyValues"==l.type&&this.propertydb.values.push(l.URI),"Autodesk.CloudPlatform.PropertyIDs"==l.type&&this.propertydb.ids.push(l.URI),"Autodesk.CloudPlatform.PropertyViewables"==l.type&&this.propertydb.viewables.push(l.URI),"Autodesk.CloudPlatform.PropertyOffsets"==l.type&&(-1!=l.id.indexOf("rcv")?this.propertydb.rcv_offsets.push(l.URI):this.propertydb.offsets.push(l.URI)),"Autodesk.CloudPlatform.PropertyAVs"==l.type&&this.propertydb.avs.push(l.URI),"Autodesk.CloudPlatform.PropertyRCVs"==l.type&&this.propertydb.rcvs.push(l.URI)}debug(JSON.stringify(this.propertydb))}}var b={dt_object:0,dt_void:1,dt_byte:2,dt_int:3,dt_float:4,dt_double:5,dt_varint:6,dt_point_varint:7,dt_byte_array:32,dt_int_array:33,dt_float_array:34,dt_double_array:35,dt_varint_array:36,dt_point_varint_array:37,dt_arc:38,dt_circle:39,dt_circular_arc:40,dt_string:63,dt_last_data_type:127},c={st_object_member:0,st_fill:1,st_fill_off:2,st_clip_off:3,st_layer:4,st_link:5,st_line_weight:6,st_miter_angle:7,st_miter_length:8,st_line_pattern_ref:9,st_back_color:10,st_color:11,st_markup:12,st_object_id:13,st_markup_id:14,st_reset_rel_offset:15,st_font_ref:16,st_begin_object:32,st_clip:33,st_line_caps:34,st_line_join:35,st_line_pattern_def:36,st_font_def:37,st_viewport:38,st_sheet:42,st_arc:43,st_polyline:44,st_raster:45,st_text:46,st_polytriangle:47,st_dot:48,st_end_object:63,st_last_semantic_type:127};a.prototype.load=function(a,b){if(31==b[0]&&139==b[1]){var c=new Zlib.Gunzip(b);b=c.decompress()}this.data=b,this.parse(),a.loadDoneCB(!0)},a.prototype.loadFrames=function(a){a.data?this.data=new Uint8Array(a.data):a.finalFrame&&(this.data=null),this.parseFrames(a.finalFrame),a.loadDoneCB(!0)},a.prototype.flushBuffer=function(a,b){if(this.currentVbb.vcount){var c=b;if(c=c||this.currentVbb.isFull(a)){var d=this.currentVbb.toMesh();VBUtils.bboxUnion(this.bbox,d.boundingBox),this.meshes.push(d),d.material={skipEllipticals:!this.currentVbb.numEllipticals,skipCircles:!this.currentVbb.numCirculars,skipTriangleGeoms:!this.currentVbb.numTriangleGeoms,useInstancing:this.currentVbb.useInstancing},this.currentImage&&(d.material.image=this.currentImage,d.material.image.name=this.imageNumber++,this.currentImage=null),this.currentVbb=new Autodesk.Viewing.Private.VertexBufferBuilder}}},a.prototype.tx=function(a){return this.sx(a)},a.prototype.ty=function(a){return this.sy(a)},a.prototype.sx=function(a){return a*this.scaleX},a.prototype.sy=function(a){return a*this.scaleY},a.prototype.invertColor=function(a){var b=a>>24&255,c=a>>16&255,d=a>>8&255,e=255&a;return c=255-c,d=255-d,e=255-e,b<<24|c<<16|d<<8|e},a.prototype.mapColor=function(a){return a},a.prototype.restoreSignBitFromLSB=function(a){return 1&a?-(a>>>1):a>>>1},a.prototype.parsePointPositions=function(){var a=this.stream.getVarints(),b=this.stream.getVarints();return a=this.restoreSignBitFromLSB(a),b=this.restoreSignBitFromLSB(b),a+=this.offsetX,b+=this.offsetY,this.offsetX=a,this.offsetY=b,[this.tx(a),this.ty(b)]},a.prototype.parserAssert=function(a,b,c){return a!=b?(debug("Expect "+b+"; actual type is "+a+"; in function "+c),this.error=!0,!0):!1},a.prototype.unhandledTypeWarning=function(a,b){debug("Unhandled semantic type : "+b+" in function "+a)},a.prototype.parseObject=function(){var a=this.stream.getVarints();switch(this.objectStack.push(a),a){case c.st_sheet:this.objectNameStack.push("sheet"),this.objectMemberQueue.unshift("paperColor");break;case c.st_viewport:this.objectNameStack.push("viewport"),this.objectMemberQueue.unshift("units","transform");break;case c.st_clip:this.objectNameStack.push("clip"),this.objectMemberQueue.unshift("contourCounts","points");break;case c.st_polytriangle:this.objectNameStack.push("polyTriangle"),this.objectMemberQueue.unshift("points","indices","colors");break;case c.st_raster:this.objectNameStack.push("raster"),this.objectMemberQueue.unshift("position","width","height","imageId");break;case c.st_text:this.currentStringNumber=this.strings.length,0===this.objectNumber&&(this.objectNumber=this.currentFakeId--),this.objectNameStack.push("text"),this.objectMemberQueue.unshift("string","position","height","widthScale","rotation","oblique","charWidths");break;case c.st_font_def:this.objectNameStack.push("fontDef"),this.objectMemberQueue.unshift("name","fullName","flags","spacing","panose");break;case c.st_end_object:if(this.objectStack.pop(),this.objectStack.length){var b=this.objectStack.pop();switch(b){case c.st_polytriangle:this.actOnPolyTriangle();break;case c.st_viewport:this.actOnViewport();break;case c.st_clip:this.actOnClip();break;case c.st_raster:this.actOnRaster();break;case c.st_text:this.actOnText();break;case c.st_font_def:this.actOnFontDef()}var d=this.objectNameStack.pop(),e=this.parseObjState[d];for(var f in e)e[f]=null}else this.parserAssert(0,1,"parseEndObject (Stack Empty)");this.objectMemberQueue.length=0;break;default:this.objectNameStack.push("unknown"),this.error=!0,this.unhandledTypeWarning("parseObject",a)}},a.prototype.initSheet=function(a){if(this.bgColor=a,!this.hidePaper&&this.metadata){var b=this.paperWidth,c=this.paperHeight,d=this.currentVbb,e=.0075*b,f=4283782485,g=[0,0,b,0,b,c,0,c,e,-e,b+e,-e,b+e,0,e,0,b,0,b+e,0,b+e,c-e,b,c-e],h=[a,a,a,a,f,f,f,f,f,f,f,f],i=[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11],j=0,k=-1;this.addPolyTriangle(g,h,i,4294967295,k,j,!1),d.addSegment(0,0,b,0,0,1e-6,4278190080,k,j,this.currentVpId),d.addSegment(b,0,b,c,0,1e-6,4278190080,k,j,this.currentVpId),d.addSegment(b,c,0,c,0,1e-6,4278190080,k,j,this.currentVpId),d.addSegment(0,c,0,0,0,1e-6,4278190080,k,j,this.currentVpId)}},a.prototype.setObjectMember=function(a){if(!this.objectMemberQueue.length)return debug("Unexpected object member. "+a),!1;var b=this.objectMemberQueue.shift(),c=this.objectNameStack[this.objectNameStack.length-1];return"sheet"==c&&"paperColor"==b?(this.initSheet(a),!0):c?(this.parseObjState[c][b]=a,!0):!1},a.prototype.parseString=function(){var a=this.stream,b=a.getVarints(),d=a.getVarints(),e=a.getString(d);switch(b){case c.st_object_member:if(this.setObjectMember(e))return;break;default:debug("Unexpected opcode semantic type for string.")}return e},a.prototype.actOnFontDef=function(){var a=this.parseObjState.fontDef;this.fontDefs[++this.fontCount]=a,this.fontId=this.fontCount},a.prototype.parsePoint=function(){var a=this.stream,b=a.getVarints(),d=this.parsePointPositions();switch(b){case c.st_object_member:if(this.setObjectMember(d))return;break;default:debug("Unexpected opcode semantic type for point.")}return d},a.prototype.parsePointsArray=function(){var a=this.stream,b=a.getVarints(),d=a.getVarints();if(d){d/=2;for(var e,f=[],g=0;d>g;++g)e=this.parsePointPositions(),f.push(e[0]),f.push(e[1]);switch(b){case c.st_polyline:return void this.actOnPolylinePointsArray(f);case c.st_dot:return void this.actOnDot(f);case c.st_object_member:if(this.setObjectMember(f))return;break;default:debug("Unexpected opcode semantic type for points array.")}return f}},a.prototype.parseIntArray=function(){for(var a=this.stream,b=a.getVarints(),d=a.getVarints(),e=[],f=0;d>f;++f)e.push(a.getUint32());switch(b){case c.st_object_member:if(this.setObjectMember(e))return;break;default:this.unhandledTypeWarning("parseIntArray",b)}return e},a.prototype.parseDoubleArray=function(){for(var a=this.stream,b=a.getVarints(),d=a.getVarints(),e=[],f=0;d>f;++f)e.push(a.getFloat64());switch(b){case c.st_object_member:if(this.setObjectMember(e))return;break;default:this.unhandledTypeWarning("parseDoubleArray",b)}return e},a.prototype.parseByteArray=function(){for(var a=this.stream,b=a.getVarints(),d=a.getVarints(),e=[],f=0;d>f;++f)e.push(a.getUint8());switch(b){case c.st_object_member:if(this.setObjectMember(e))return;break;default:this.unhandledTypeWarning("parseByteArray",b)}return e},a.prototype.parseVarintArray=function(){for(var a=this.stream,b=a.getVarints(),d=[],e=a.getVarints(),f=0;e>f;++f)d.push(a.getVarints());switch(b){case c.st_object_member:if(this.setObjectMember(d))return;break;default:this.unhandledTypeWarning("parseVarIntArray",b)}return d},a.prototype.parseInt=function(){var a=this.stream,b=a.getVarints(),d=a.getUint32();switch(b){case c.st_color:this.color=d;break;case c.st_fill:this.fill=!0,this.fillColor=d;break;case c.st_object_member:if(this.setObjectMember(d))return;default:this.unhandledTypeWarning("parseInt",b)}return d},a.prototype.parseVoid=function(){var a=this.stream.getVarints();switch(a){case c.st_fill_off:this.fill=!1;break;default:this.unhandledTypeWarning("parseVoid",a)}},a.prototype.parseVarint=function(){var a=this.stream,b=a.getVarints(),d=a.getVarints();switch(b){case c.st_line_weight:this.lineWeight=this.tx(d);break;case c.st_object_id:case c.st_markup_id:this.objectNumber=d,this.maxObjectNumber=Math.max(this.maxObjectNumber,d);break;case c.st_layer:this.layer=this.layersMap[d];break;case c.st_font_ref:this.fontId=d;break;case c.st_object_member:if(this.setObjectMember(d))return}return d},a.prototype.parseFloat=function(){var a=this.stream,b=a.getVarints(),d=a.getFloat32();switch(b){case c.st_miter_angle:break;case c.st_miter_length:break;case c.st_object_member:if(this.setObjectMember(d))return}return d},a.prototype.parseCircularArc=function(){var a=this.stream,b=a.getVarints();if(!this.parserAssert(b,c.st_arc,"parseCircularArc")){var d=this.parsePointPositions(),e=a.getVarints(),f=a.getFloat32(),g=a.getFloat32();this.actOnCircularArc(d[0],d[1],f,g,this.sx(e))}},a.prototype.parseCircle=function(){var a=this.stream,b=a.getVarints();if(!this.parserAssert(b,c.st_arc,"parseCircle")){var d=this.parsePointPositions(),e=a.getVarints();this.actOnCompleteCircle(d[0],d[1],this.sx(e))}},a.prototype.parseArc=function(){var a=this.stream,b=a.getVarints();if(!this.parserAssert(b,c.st_arc,"parseArc")){var d=this.parsePointPositions(),e=a.getVarints(),f=a.getVarints(),g=a.getFloat32(),h=a.getFloat32(),i=a.getFloat32();this.actOnArc(d[0],d[1],h,i,this.sx(e),this.sy(f),g)}},a.prototype.parseDataType=function(){var a=this.stream.getVarints();switch(a){case b.dt_void:this.parseVoid();break;case b.dt_int:this.parseInt();break;case b.dt_object:this.parseObject();break;case b.dt_varint:this.parseVarint();break;case b.dt_point_varint:this.parsePoint();break;case b.dt_float:this.parseFloat();break;case b.dt_point_varint_array:this.parsePointsArray();break;case b.dt_circular_arc:this.parseCircularArc();break;case b.dt_circle:this.parseCircle();break;case b.dt_arc:this.parseArc();break;case b.dt_int_array:this.parseIntArray();break;case b.dt_varint_array:this.parseVarintArray();break;case b.dt_byte_array:this.parseByteArray();break;case b.dt_string:this.parseString();break;case b.dt_double_array:this.parseDoubleArray();break;default:this.error=!0,debug("Data type not supported yet: "+a)}},a.prototype.parse=function(){var a=this.stream=new InputStream(this.data),b=a.getString(3);if("F2D"!=b)return void debug("Invalid F2D header : "+b);var c=a.getString(2);if("01"!=c)return void debug("Only support f2d major version 1; actual version is : "+c);var d=a.getString(1);if("."!=d)return void debug("Invalid version delimiter.");for(a.getString(2);a.offset<a.byteLength&&(this.parseDataType(),!this.error);)this.opCount++;this.flushBuffer(0,!0),this.currentVbb=null,this.stream=null,this.data=null,debug("F2d parse: data types count : "+this.opCount)},a.prototype.parseFrames=function(a){if(this.data)for(var b=this.stream=new InputStream(this.data);b.offset<b.byteLength&&(this.parseDataType(),!this.error);)this.opCount++;else a||debug("Unexpected F2D parse state: If there is no data, we only expect a flush command, but flush was false.");a&&this.flushBuffer(0,!0),this.stream=null,this.data=null},a.prototype.actOnPolylinePointsArray=function(a){this.flushBuffer(),this.numPolylines++;for(var b=a.length/2,c=0,d=a[0],e=a[1],f=1;b>f;++f){var g=a[2*f],h=a[2*f+1];this.currentVbb.addSegment(d,e,g,h,c,this.lineWeight,this.color,this.objectNumber,this.layer,this.currentVpId),c+=Math.sqrt((g-d)*(g-d)+(h-e)*(h-e)),d=g,e=h}this.numLineSegs+=b-1},a.prototype.actOnDot=function(a){var b=a[0],c=a[1];this.actOnCompleteCircle(b,c,this.sx(1))},a.prototype.actOnCompleteCircle=function(a,b,c){this.flushBuffer(),this.numCircles++,this.fill?this.currentVbb.addSegment(a,b,a,b,0,2*c,this.color,this.objectNumber,this.layer,this.currentVpId,!0,!1,!0):this.currentVbb.addArc(a,b,0,2*Math.PI,c,c,0,this.lineWeight,this.color,this.objectNumber,this.layer,this.currentVpId)},a.prototype.actOnCircularArc=function(a,b,c,d,e){this.numCircles++,this.flushBuffer(),this.currentVbb.addArc(a,b,c,d,e,e,0,this.lineWeight,this.color,this.objectNumber,this.layer,this.currentVpId)},a.prototype.actOnArc=function(a,b,c,d,e,f,g){this.numEllipses++,this.flushBuffer(),this.currentVbb.addArc(a,b,c,d,e,f,g,this.lineWeight,this.color,this.objectNumber,this.layer,this.currentVpId)},a.prototype.actOnRaster=function(){if(this.manifestAvailable){this.flushBuffer(4,!0);var a=this.parseObjState.raster,b=a.position,c=a.imageId,d=this.imageId2URI[c],e=this.sx(a.width),f=this.sy(a.height),g=b[0]+.5*e,h=b[1]-.5*f;this.currentVbb.addTexturedQuad(g,h,e,f,0,4278255615,this.objectNumber,this.layer,this.currentVpId),this.currentImage={dataURI:d},this.flushBuffer(0,!0)}},a.prototype.actOnClip=function(){var a=this.parseObjState.clip;this.parseObjState.clip={},this.clips.push(a)},a.prototype.actOnText=function(){this.strings[this.currentStringNumber]=this.parseObjState.text.string,this.stringDbIds[this.currentStringNumber]=this.objectNumber,this.currentStringNumber=-1,this.objectNumber<-1&&(this.objectNumber=0)},a.prototype.addPolyTriangle=function(a,b,d,e,f,g,h){function i(a,b){if(a>b){var c=a;a=b,b=c}if(m[a]){var d=m[a],e=d.lastIndexOf(b);-1==e?d.push(b):d[e]=-1}else m[a]=[b]}function j(){for(var c=0,d=m.length;d>c;c++){var h=m[c];if(h)for(var i=0;i<h.length;i++){var j=h[i];-1!=j&&(l.flushBuffer(4),l.currentVbb.addSegment(a[2*c],a[2*c+1],a[2*j],a[2*j+1],0,n,b?b[c]:e,f,g,l.currentVpId),b&&b[c]!=b[j]&&debug("Gouraud triangle encountered. Will have incorrect antialiasing."))}}}function k(c,d){if(c>d){var h=c;c=d,d=h}var i=m[c];if(i){var j=i.indexOf(d);-1!=j&&(l.flushBuffer(4),l.currentVbb.addSegment(a[2*c],a[2*c+1],a[2*d],a[2*d+1],0,n,b?b[c]:e,f,g,l.currentVpId),b&&b[c]!=b[d]&&debug("Gouraud triangle encountered. Will have incorrect antialiasing."))}}var l=this,m=null,n=-1;if(this.objectStack[this.objectStack.length-1]==c.st_text&&(n=-.5),h){m=new Array(a.length/2);for(var o=0,p=d.length;p>o;o+=3){var q=d[o],r=d[o+1],s=d[o+2];i(q,r),i(r,s),i(s,q)}}if(this.currentVbb.useInstancing)for(var t=d.length,o=0;t>o;o+=3){var q=d[o],r=d[o+1],s=d[o+2];this.flushBuffer(4),this.currentVbb.addTriangleGeom(a[2*q],a[2*q+1],a[2*r],a[2*r+1],a[2*s],a[2*s+1],b?b[q]:e,f,g,this.currentVpId),h&&(k(q,r),k(r,s),k(s,q))}else{var t=a.length/2;this.flushBuffer(t);for(var u=this.currentVbb,v=u.vcount,o=0;t>o;++o){var w=a[2*o],x=a[2*o+1];u.addVertexPolytriangle(w,x,b?b[o]:e,f,g,this.currentVpId)}u.addIndices(d,v),h&&j()}},a.prototype.actOnPolyTriangle=function(){var a=this.parseObjState.polyTriangle;this.parseObjState.polyTriangle={};var b=a.points,c=a.indices,d=a.colors;return b&&c?(this.numPolytriangles++,this.numTriangles+=c.length/3,void this.addPolyTriangle(b,d,c,this.color,this.objectNumber,this.layer,!0)):void debug("Malformed polytriangle.")},a.prototype.actOnViewport=function(){var a=this.parseObjState.viewport;this.parseObjState.viewport={},this.viewports.push(a),this.currentVpId=this.viewports.length-1},a.prototype.createLayerGroups=function(a){function b(a){var c=Object.keys(a.childrenByName).map(function(b){return a.childrenByName[b]});if(delete a.childrenByName,c.length){a.children=c,a.childCount=0;for(var d=0;d<c.length;++d)a.childCount+=b(c[d]);c.sort(function(a,b){return a.isLayer&&!b.isLayer?-1:!a.isLayer&&b.isLayer?1:a.name.localeCompare(b.name,void 0,{sensitivity:"base",numeric:!0})})}return a.isLayer?1:a.childCount}var c=this.layersRoot={name:"root",id:"root",childrenByName:{},isLayer:!1},d=0,e=0;for(var f in a){var g=parseInt(f),h=a[f],i="string"==typeof h?h:h.name;i||(i=f);var j=i.split("|"),k=c;if(j.length>1)for(var l=0;l<j.length-1;++l){var m=j[l],n=k.childrenByName[m];n||(n={name:m,id:"group-"+d++,childrenByName:{},isLayer:!1},k.childrenByName[m]=n),k=n}k.childrenByName[i]={name:i,index:g,id:e++,childrenByName:{},isLayer:!0}}b(this.layersRoot)},Autodesk.LMVTK.F2D=a,Autodesk.LMVTK.F2dDataType=b,Autodesk.LMVTK.F2dSemanticType=c}(),function(){"use strict";function a(){this.data=null,this.frameStart=0,this.frameEnd=0,this.stream=null,this.opCount=0,this.marker={frameStart:this.frameStart,frameEnd:this.frameEnd}}a.prototype.load=function(a){return this.data=a,this.frameStart=0,this.stream?(this.stream.reset(this.data),this.stream.seek(0),this.frameEnd=0):(this.stream=new CheckedInputStream(this.data),this.stream.seek(8),this.frameStart=8,this.frameEnd=8),this.probe(),this.marker.frameStart=this.frameStart,this.marker.frameEnd=this.frameEnd,this.marker};var b=Autodesk.LMVTK.F2dDataType,c=Autodesk.LMVTK.F2dSemanticType;a.prototype.readColor=function(){var a=this.stream;a.getVarints(),a.getVarints(),a.skipUint32()},a.prototype.parsePointPositions=function(){this.stream.getVarints(),this.stream.getVarints()},a.prototype.unhandledTypeWarning=function(a,b){debug("Unhandled semantic type when probing F2d : "+b+" in function "+a)},a.prototype.parseObject=function(){this.stream.getVarints()},a.prototype.parseString=function(){var a=this.stream;a.getVarints();var b=a.getVarints();a.skipBytes(b)},a.prototype.parsePoint=function(){this.stream.getVarints(),this.parsePointPositions()},a.prototype.parseVarintArray=function(){var a=this.stream;a.getVarints();for(var b=a.getVarints(),c=0;b>c;++c)a.getVarints()},a.prototype.parseByteArray=function(){var a=this.stream;a.getVarints();var b=a.getVarints();a.skipBytes(b)},a.prototype.parseEndOfObject=function(){var a=this.stream;a.getVarints(),a.getVarints()},a.prototype.parsePointsArray=function(a){var b=this.stream,c=(b.getVarints(),b.getVarints());if(c){c/=2;for(var d=0;c>d;++d)this.parsePointPositions()}},a.prototype.parsePoint=function(a){var b=this.stream;b.getVarints();this.parsePointPositions()},a.prototype.parseInt=function(){var a=this.stream,b=a.getVarints();switch(b){case c.st_color:a.skipUint32();break;case c.st_fill:a.skipUint32();break;default:a.skipUint32(),this.unhandledTypeWarning("parseInt",b)}},a.prototype.parseVoid=function(){var a=this.stream.getVarints();switch(a){case c.st_fill_off:break;default:this.unhandledTypeWarning("parseVoid",a)}},a.prototype.parseVarint=function(){this.stream.getVarints(),this.stream.getVarints()},a.prototype.parseIntArray=function(){var a=this.stream;a.getVarints();for(var b=a.getVarints(),c=0;b>c;++c)a.skipUint32()},a.prototype.parseFloat=function(){var a=this.stream;a.getVarints(),a.getFloat32()},a.prototype.parseDoubleArray=function(){var a=this.stream;a.getVarints();for(var b=a.getVarints(),c=0;b>c;++c)a.skipFloat64()},a.prototype.parseCircularArc=function(){var a=this.stream;a.getVarints(),this.parsePointPositions(),a.getVarints(),a.getFloat32(),a.getFloat32()},a.prototype.parseCircle=function(){var a=this.stream;a.getVarints(),this.parsePointPositions(),a.getVarints()},a.prototype.parseArc=function(){var a=this.stream;a.getVarints(),this.parsePointPositions(),a.getVarints(),a.getVarints(),a.getFloat32(),a.getFloat32(),a.getFloat32()},a.prototype.parseDataType=function(){var a=this.stream.getVarints();switch(a){case b.dt_void:this.parseVoid();break;case b.dt_int:this.parseInt();break;case b.dt_object:this.parseObject();break;case b.dt_varint:this.parseVarint();break;case b.dt_float:this.parseFloat();break;case b.dt_point_varint:this.parsePoint();break;case b.dt_point_varint_array:this.parsePointsArray();break;case b.dt_circular_arc:this.parseCircularArc();break;case b.dt_circle:this.parseCircle();break;case b.dt_arc:this.parseArc();break;case b.dt_varint_array:this.parseVarintArray();break;case b.dt_int_array:this.parseIntArray();break;case b.dt_byte_array:this.parseByteArray();break;case b.dt_string:this.parseString();break;case b.dt_double_array:this.parseDoubleArray();break;default:this.error=!0,debug("Bad op code encountered : "+a+" , bail out.")}this.error||(this.frameEnd=this.stream.offset)},a.prototype.probe=function(){var a=this.stream;try{for(;a.offset<a.byteLength&&(this.parseDataType(),!this.error);)this.opCount++}catch(b){b.toString(),b.stack?b.stack.toString():"..."}},Autodesk.LMVTK.F2DProbe=a}(),CheckedInputStream.prototype.boundsCheck=function(a){if(a>=this.byteLength)throw new OutOfBoundsBufferAccessException(a)},CheckedInputStream.prototype.seek=function(a){this.boundsCheck(a),this.offset=a},CheckedInputStream.prototype.getBytes=function(a){this.boundsCheck(this.offset+a);var b=new Uint8Array(this.buffer.buffer,this.offset,a);return this.offset+=a,b},CheckedInputStream.prototype.skipBytes=function(a){this.boundsCheck(this.offset+a),this.offset+=a},CheckedInputStream.prototype.getVarints=function(){var a,b=0,c=0;do this.boundsCheck(this.offset),a=this.buffer[this.offset++],b|=(127&a)<<c,c+=7;while(128&a);return b},CheckedInputStream.prototype.getUint8=function(){return this.boundsCheck(this.offset+1),this.buffer[this.offset++]},CheckedInputStream.prototype.getUint16=function(){return this.boundsCheck(this.offset+2),this.convUint8[0]=this.buffer[this.offset++],this.convUint8[1]=this.buffer[this.offset++],this.convUint16[0]},CheckedInputStream.prototype.getInt16=function(){var a=this.getUint16();return a>32767&&(a=4294901760|a),a},CheckedInputStream.prototype.getInt32=function(){this.boundsCheck(this.offset+4);var a=this.buffer,b=this.convUint8,c=this.offset;return b[0]=a[c],b[1]=a[c+1],b[2]=a[c+2],b[3]=a[c+3],this.offset+=4,this.convInt32[0]},CheckedInputStream.prototype.getUint32=function(){this.boundsCheck(this.offset+4);var a=this.buffer,b=this.convUint8,c=this.offset;return b[0]=a[c],b[1]=a[c+1],b[2]=a[c+2],b[3]=a[c+3],this.offset+=4,this.convUint32[0]},CheckedInputStream.prototype.skipUint32=function(){this.boundsCheck(this.offset+4),this.offset+=4},CheckedInputStream.prototype.getFloat32=function(){return this.boundsCheck(this.offset+4),this.offset+=4,0},CheckedInputStream.prototype.getFloat64=function(){return this.boundsCheck(this.offset+8),this.offset+=8,0},CheckedInputStream.prototype.skipFloat64=function(){this.boundsCheck(this.offset+8),this.offset+=8},CheckedInputStream.prototype.reset=function(a){this.buffer=a,this.offset=0,this.byteLength=a.length};var GltfPackage=function(){function a(a){var b;if(void 0!==typeof TextDecoder)b=new TextDecoder("utf-8").decode(a);else{for(var c="",d=0;d<a.length;d++)c+=String.fromCharCode(a[d]);b=decodeURIComponent(escape(c))}return JSON.parse(b)}function b(b){if(this.loadedBuffers={},b instanceof ArrayBuffer){var c=new Int32Array(b,0,20);1179937895!==c[0]&&debug("glb header "+c[0]);var d=c[3],e=new Uint8Array(b,20,d),f=b.slice(20+d);this.loadedBuffers.KHR_binary_glTF=f,b=a(e)}this.gltf=b,this.manifest=null,this.metadata=this.gltf.asset||{},this.metadata.gltf=this.metadata.version||1,this.materials=this.gltfMaterials={name:"GLTF Materials",version:"1.0",scene:{SceneUnit:"m"},materials:{}},this.materialToIndex={},this.materialList=[],this.geomToIndex={},this.geomList=[],this.geomsLoaded=0,this.fragments={length:0,numLoaded:0,boxes:null,transforms:null,materials:null,fragId2dbId:null,entityIndexes:null,mesh2frag:{}},this.geompacks=[],this.instances=[],this.cameras=[],this.lights=[],this.bbox=null,this.animations=null,this.pendingRequests=0,this.globalOffset={x:0,y:0,z:0},this.bbox=new LmvBox3,this.nodeToDbId={},this.nextDbId=1,this.nextFragId=0}for(var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=new Uint8Array(256),e=0;e<c.length;e++)d[c.charCodeAt(e)]=e;var f=function(a){var b,c,e,f,g,h=.75*a.length,i=a.length,j=0;"="===a[a.length-1]&&(h--,"="===a[a.length-2]&&h--);var k=new ArrayBuffer(h),l=new Uint8Array(k);for(b=0;i>b;b+=4)c=d[a.charCodeAt(b)],e=d[a.charCodeAt(b+1)],f=d[a.charCodeAt(b+2)],g=d[a.charCodeAt(b+3)],l[j++]=c<<2|e>>4,l[j++]=(15&e)<<4|f>>2,l[j++]=(3&f)<<6|63&g;return k},g="data:application/octet-stream;base64,";
b.prototype.loadManifest=function(a){var b={name:"LMV Manifest",toolkitversion:"LMVTK 2.6.4",manifestversion:2,adskID:{sourceSystem:"",type:"",id:"",version:""},assets:[],typesets:[]};this.manifest=b;var c=this.gltf.buffers;for(var d in c)if("binary_glTF"!==d){var e=c[d];if(0!==e.uri.indexOf(g)){var h={id:d,URI:e.uri,uri:e.uri,usize:e.byteLength,type:e.type};this.manifest.assets.push(h)}else this.loadedBuffers[d]=f(e.uri.slice(g.length)),e.uri="embed://"+d}var i=this.gltf.images;for(var j in i){var k=i[j],h={id:j,URI:k.uri,uri:k.uri,name:k.name,type:"image"};this.manifest.assets.push(h)}},b.prototype.loadRemainingSvf=function(a){a.manifest&&(this.manifest=a.manifest),this.manifest.assetMap={};for(var b=0;b<this.manifest.assets.length;b++){var c=this.manifest.assets[b];this.manifest.assetMap[c.id]=c}this.processMeshesList(),this.processMaterialsList(),this.deriveInstanceTree(),a.loadDoneCB("svf");for(var d in this.loadedBuffers)this.loadGeometry(a,d);this.loadBuffers(a)},b.prototype.loadBuffers=function(a){function b(e){if(g<d.length-1){var f=d[g+1];Autodesk.Viewing.Private.ViewingService.get(a.viewing_url,"items",a.basePath+f.URI,b,a.onFailureCallback,{withCredentials:!!a.auth,responseType:f.type||"arraybuffer",asynchronous:!0,headers:a.headers,queryParams:a.queryParams,oss_url:a.oss_url})}if(e){var h=d[g];c.loadedBuffers[h.id]=e,c.loadGeometry(a,h.id)}g++}for(var c=this,d=[],e=this.manifest.assets,f=0;f<e.length;f++)"image"!==e[f].type&&d.push(e[f]);var g=-1;b(null)};var h={5120:1,5121:1,5122:2,5123:2,5126:4},i={SCALAR:1,VEC2:2,VEC3:3,VEC4:4};return b.prototype.loadGeometry=function(a,b){function c(a){var b=f.gltf.accessors[a],c=b.bufferView;if(c){var d=f.gltf.bufferViews[c].buffer;if(d)return!!f.loadedBuffers[d]}return!1}for(var d=this.gltf.buffers[b],e=d.meshes,f=this,g=0;g<e.length;g++)for(var j=this.gltf.meshes[e[g]],k=j.primitives,l=!0,m=0;m<k.length;m++){var n=k[m],j={vblayout:{},vbstride:0,packedNormals:l},o=!0;if(n.indices&&(o=o&&c(n.indices))){var p=f.gltf.accessors[n.indices];j.triangleCount=p.count/3;var q,r,s=p.byteStride,t=2,u=f.gltf.bufferViews[p.bufferView],v=p.byteOffset+u.byteOffset,d=f.loadedBuffers[u.buffer];5123===p.componentType?(r=j.indices=new Uint16Array(p.count),t=2,q=new Uint16Array(d)):debug("Unimplemented component type for index buffer");var w=v/t;0===s?s=1:s/=t;for(var x=0;x<p.count;x++)r[x]=q[w+x*s]}var y=0;for(var z in n.attributes){o=o&&c(n.attributes[z]);var A=f.gltf.accessors[n.attributes[z]];if(o)if("NORMAL"===z)j.vbstride+=l?1:3,j.vblayout.normal={offset:y,itemSize:l?2:3,bytesPerItem:l?2:4,normalize:l},y+=l?1:3;else{var B=z;if("POSITION"===z)B="position",j.vertexCount=A.count;else if(0===z.indexOf("TEXCOORD")){var C=parseInt(z.split("_")[1]);B="uv"+(C||"")}else 0===z.indexOf("COLOR")&&(B="color");var D=h[A.componentType]*i[A.type];j.vbstride+=D/4,j.vblayout[B]={offset:y,itemSize:i[A.type],bytesPerItem:h[A.componentType],normalize:!1},y+=D/4}}if(o){var E,F=j.vb=new Float32Array(j.vertexCount*j.vbstride);l&&(E=new Uint16Array(j.vb.buffer));for(var z in n.attributes){var A=f.gltf.accessors[n.attributes[z]],u=f.gltf.bufferViews[A.bufferView],v=A.byteOffset+u.byteOffset,G=f.loadedBuffers[u.buffer];if("NORMAL"===z){var H=j.vblayout.normal;A.count!=j.vertexCount&&debug("Normals count does not equal vertex count");for(var q=new Float32Array(G),I=v/4,y=H.offset,x=0;x<j.vertexCount;x++,y+=j.vbstride){var J=q[I],K=q[I+1],L=q[I+2];if(E){var M=.5*(Math.atan2(K,J)/Math.PI+1),N=.5*(L+1);E[2*y]=65535*M|0,E[2*y+1]=65535*N|0}else F[y]=J,F[y+1]=K,F[y+2]=L;I+=A.byteStride/4}}else{var B=z;if("POSITION"===z)B="position",j.vertexCount=A.count;else if(0===z.indexOf("TEXCOORD")){var C=parseInt(z.split("_")[1]);B="uv"+(C||"")}else 0===z.indexOf("COLOR")&&(B="color");var H=j.vblayout[B];4!==h[A.componentType]&&debug("Unimplemented size for vertex attribute.");for(var q=new Float32Array(G),I=v/4,y=H.offset,x=0;x<j.vertexCount;x++,y+=j.vbstride){for(var O=0;O<H.itemSize;O++)F[y+O]=q[I+O];I+=A.byteStride/4}}var P=f.gltf.buffers[u.buffer];P.refCount--,0===P.refCount&&delete f.loadedBuffers[u.buffer]}f.geomsLoaded++,VBUtils.computeBounds3D(j),a.loadDoneCB("mesh",{mesh:j,packId:e[g],meshIndex:m,progress:f.geomsLoaded/f.geomList.length})}}d.meshes=null},b.prototype.processMaterialsList=function(){var a=this.gltf.materials;for(var b in a){var c=this.materialList.length;this.materialToIndex[b]=c,this.gltfMaterials.materials[c]=a[b],this.materialList.push(b)}},b.prototype.processMeshesList=function(){function a(a){var b=c.gltf.accessors[a],e=b.bufferView;if(e){var g=c.gltf.bufferViews[e].buffer;if(g){var h=c.gltf.buffers[g];h.refCount?h.refCount++:h.refCount=1,h.meshes||(h.meshes=[]),f||(h.meshes.push(d),f=!0)}}}var b=this.gltf.meshes,c=this;for(var d in b)for(var e=b[d],f=!1,g=0;g<e.primitives.length;g++){var h=d+":"+g;this.geomToIndex[h]=this.geomList.length,this.geomList.push(h);var i=e.primitives[g];i.indices&&a(i.indices);for(var j in i.attributes)a(i.attributes[j])}},b.prototype.countFragments=function(){function a(b){var c=b.meshes;if(b.meshes)for(var g=0;g<c.length;g++)for(var h=f.gltf.meshes[c[g]].primitives,i=0;i<h.length;i++)e++;var j=b.children||b.nodes;if(j)for(var k=0;k<j.length;k++){var l=d[j[k]];a(l)}}var b=this.gltf.scene,c=this.gltf.scenes[b],d=this.gltf.nodes,e=0,f=this;a(c),this.fragments.length=e,this.fragments.boxes=new Float32Array(6*e),this.fragments.transforms=new Float32Array(12*e),this.fragments.materials=new Int32Array(e),this.fragments.entityIndexes=new Int32Array(e),this.fragments.fragId2dbId=new Int32Array(e),this.fragments.packIds=new Int32Array(e)},b.prototype.deriveInstanceTree=function(){function a(b,c,j,k){k>f&&(f=k);var l=j.clone();if(c.matrix){var m=new LmvMatrix4(!0);m.fromArray(c.matrix),l.multiply(m)}var n=new LmvBox3,o=c.meshes;if(c.meshes){b.fragIds=[];for(var p=0;p<o.length;p++)for(var q=g.gltf.meshes[o[p]].primitives,r=0;r<q.length;r++){var s=o[p]+":"+r,t=g.nextFragId++;b.fragIds.push(t),h.fragId2dbId[t]=b.dbId,h.entityIndexes[t]=g.geomToIndex[s],h.mesh2frag[s]?h.mesh2frag[s].push(t):h.mesh2frag[s]=[t],h.materials[t]=g.materialToIndex[q[r].material];var u=12*t,v=l.elements,w=h.transforms;w[u]=v[0],w[u+1]=v[1],w[u+2]=v[2],w[u+3]=v[4],w[u+4]=v[5],w[u+5]=v[6],w[u+6]=v[8],w[u+7]=v[9],w[u+8]=v[10],w[u+9]=v[12],w[u+10]=v[13],w[u+11]=v[14];var x=q[r].attributes.POSITION;if(x){var y=g.gltf.accessors[x];if(y.min&&y.max){i.min.x=y.min[0],i.min.y=y.min[1],i.min.z=y.min[2],i.max.x=y.max[0],i.max.y=y.max[1],i.max.z=y.max[2],i.applyMatrix4(l),u=6*t;var z=h.boxes;z[u]=i.min.x,z[u+1]=i.min.y,z[u+2]=i.min.z,z[u+3]=i.max.x,z[u+4]=i.max.y,z[u+5]=i.max.z,n.union(i)}else debug("unknown bbox for mesh",o[p])}}}var A=c.children||c.nodes;if(A){b.children=[];for(var B=0;B<A.length;B++){var C=d[A[B]],D={name:C.name||A[B],dbId:g.nextDbId++};g.nodeToDbId[A[B]]=D.dbId,b.children.push(D);var E=a(D,C,l,k+1);n.union(E)}}var F=6*b.dbId,z=e;return z[F]=n.min.x,z[F+1]=n.min.y,z[F+2]=n.min.z,z[F+3]=n.max.x,z[F+4]=n.max.y,z[F+5]=n.max.z,n}this.countFragments();var b=this.gltf.scene,c=this.gltf.scenes[b],d=this.gltf.nodes;this.instanceTree={name:b,dbId:this.nextDbId++,children:[]},this.nodeToDbId[b]=this.instanceTree.dbId;var e=[],f=1,g=this,h=this.fragments,i=new LmvBox3,j=a(this.instanceTree,c,new LmvMatrix4(!0),1);g.bbox.union(j),this.instanceBoxes=new Float32Array(e.length),this.instanceBoxes.set(e),this.objectCount=this.nextDbId,this.maxTreeDepth=f},b}();NodeArray.prototype.setLeftChild=function(a,b){this.nodesI[a*this.node_stride+6]=b},NodeArray.prototype.getLeftChild=function(a){return this.nodesI[a*this.node_stride+6]},NodeArray.prototype.setPrimStart=function(a,b){this.is_lean_node?this.nodesI[a*this.node_stride+6]=b:this.nodesI[a*this.node_stride+8]=b},NodeArray.prototype.getPrimStart=function(a){return this.is_lean_node?this.nodesI[a*this.node_stride+6]:this.nodesI[a*this.node_stride+8]},NodeArray.prototype.setPrimCount=function(a,b){this.nodesS[a*this.node_stride_short+14]=b},NodeArray.prototype.getPrimCount=function(a){return this.nodesS[a*this.node_stride_short+14]},NodeArray.prototype.setFlags=function(a,b,c,d){this.nodesS[a*this.node_stride_short+15]=d<<3|c<<2|3&b},NodeArray.prototype.getFlags=function(a){return this.nodesS[a*this.node_stride_short+15]},NodeArray.prototype.setBox0=function(a,b){var c=a*this.node_stride,d=this.nodesF;d[c]=b[0],d[c+1]=b[1],d[c+2]=b[2],d[c+3]=b[3],d[c+4]=b[4],d[c+5]=b[5]},NodeArray.prototype.getBoxThree=function(a,b){var c=a*this.node_stride,d=this.nodesF;b.min.x=d[c],b.min.y=d[c+1],b.min.z=d[c+2],b.max.x=d[c+3],b.max.y=d[c+4],b.max.z=d[c+5]},NodeArray.prototype.setBoxThree=function(a,b){var c=a*this.node_stride,d=this.nodesF;d[c]=b.min.x,d[c+1]=b.min.y,d[c+2]=b.min.z,d[c+3]=b.max.x,d[c+4]=b.max.y,d[c+5]=b.max.z},NodeArray.prototype.makeEmpty=function(a){var b=a*this.node_stride,c=this.nodesI;c[b+6]=-1,c[b+7]=0,this.is_lean_node||(c[b+8]=-1)},NodeArray.prototype.realloc=function(a){if(this.nodeCount+a>this.nodeCapacity){var b=0|3*this.nodeCapacity/2;b<this.nodeCount+a&&(b=this.nodeCount+a);var c=new ArrayBuffer(b*this.bytes_per_node),d=new Int32Array(c);d.set(this.nodesI),this.nodeCapacity=b,this.nodesRaw=c,this.nodesF=new Float32Array(c),this.nodesI=d,this.nodesS=new Uint16Array(c)}},NodeArray.prototype.nextNodes=function(a){this.realloc(a);var b=this.nodeCount;this.nodeCount+=a;for(var c=0;a>c;c++)this.makeEmpty(b+c);return b},NodeArray.prototype.getRawData=function(){return this.nodesRaw.slice(0,this.nodeCount*this.bytes_per_node)};var BOX_STRIDE=6,POINT_STRIDE=3,BOX_EPSILON=1e-5,BOX_SCALE_EPSILON=1e-5,MAX_DEPTH=15,MAX_BINS=16,BVHModule=function(){"use strict";function a(a,b,c,d){a[b]=.5*(c[d]+c[d+3]),a[b+1]=.5*(c[d+1]+c[d+4]),a[b+2]=.5*(c[d+2]+c[d+5])}function b(a,b,c){a[0]>b[c]&&(a[0]=b[c]),a[3]<b[c]&&(a[3]=b[c]),a[1]>b[c+1]&&(a[1]=b[c+1]),a[4]<b[c+1]&&(a[4]=b[c+1]),a[2]>b[c+2]&&(a[2]=b[c+2]),a[5]<b[c+2]&&(a[5]=b[c+2])}function c(a,b,c){a[0]>b[c]&&(a[0]=b[c]),a[1]>b[c+1]&&(a[1]=b[c+1]),a[2]>b[c+2]&&(a[2]=b[c+2]),a[3]<b[c+3]&&(a[3]=b[c+3]),a[4]<b[c+4]&&(a[4]=b[c+4]),a[5]<b[c+5]&&(a[5]=b[c+5])}function d(a,b){a[0]>b[0]&&(a[0]=b[0]),a[1]>b[1]&&(a[1]=b[1]),a[2]>b[2]&&(a[2]=b[2]),a[3]<b[3]&&(a[3]=b[3]),a[4]<b[4]&&(a[4]=b[4]),a[5]<b[5]&&(a[5]=b[5])}function e(a,b,c,d){for(var e=0;3>e;e++)a[b+e]=c[d+3+e]-c[d+e]}function f(a,b){a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[4]=b[4],a[5]=b[5]}function g(a){a[0]=s,a[1]=s,a[2]=s,a[3]=-s,a[4]=-s,a[5]=-s}function h(a,b){var c=a[b+3]-a[b],d=a[b+4]-a[b+1],e=a[b+5]-a[b+2];return 0>c||0>d||0>e?0:2*(c*d+d*e+e*c)}function i(a){var b=a[3]-a[0],c=a[4]-a[1],d=a[5]-a[2];return 0>b||0>c||0>d?0:2*(b*c+c*d+d*b)}function j(){this.vb_left=new Float32Array(6),this.vb_right=new Float32Array(6),this.cb_left=new Float32Array(6),this.cb_right=new Float32Array(6),this.num_left=0,this.best_split=-1,this.best_cost=-1,this.num_bins=-1}function k(){this.box_bbox=new Float32Array(6),this.box_centroid=new Float32Array(6),this.num_prims=0}function l(){this.BL=new Float32Array(6),this.CL=new Float32Array(6),this.NL=0,this.AL=0}function m(a,d,e,f,g,h,i){for(var j=a.centroids,k=a.primitives,l=a.boxes,m=i*(1-BOX_SCALE_EPSILON)/h[f],n=g[f],o=a.sort_prims,p=d;e>=p;p++){var q=0|k[p],r=m*(j[3*q+f]-n),s=0|r;0>s?s=0:s>=i&&(s=i-1),o[p]=s,t[s].num_prims++,c(t[s].box_bbox,l,6*q),b(t[s].box_centroid,j,3*q)}}function n(a,b,c,e,g,h,j){if(h[e]<a.scene_epsilon)return void(j.best_cost=1/0);var k=MAX_BINS;k>c-b+1&&(k=c-b+1);for(var l=0;k>l;l++)t[l].reset();for(var l=0;k-1>l;l++)v[l].reset();for(j.num_bins=k,m(a,b,c,e,g,h,k),f(v[0].BL,t[0].box_bbox),f(v[0].CL,t[0].box_centroid),v[0].AL=i(v[0].BL),v[0].NL=t[0].num_prims,l=1;k-1>l;l++){var n=t[l],o=v[l];f(o.BL,v[l-1].BL),d(o.BL,n.box_bbox),o.AL=i(o.BL),f(o.CL,v[l-1].CL),d(o.CL,n.box_centroid),o.NL=v[l-1].NL+n.num_prims}l=k-1,f(w,t[l].box_bbox),f(x,t[l].box_centroid);var p=i(w),q=t[l].num_prims,r=l,s=p*q+v[l-1].AL*v[l-1].NL;for(f(j.vb_right,w),f(j.cb_right,t[l].box_centroid),f(j.vb_left,v[l-1].BL),f(j.cb_left,v[l-1].CL),j.num_left=v[l-1].NL,l-=1;l>=1;l--){var n=t[l];d(w,n.box_bbox),d(x,n.box_centroid),p=i(w),q+=n.num_prims;var u=p*q+v[l-1].AL*v[l-1].NL;s>=u&&(s=u,r=l,f(j.vb_right,w),f(j.cb_right,x),f(j.vb_left,v[l-1].BL),f(j.cb_left,v[l-1].CL),j.num_left=v[l-1].NL)}j.best_split=r,j.best_cost=s}function o(a,b,c,d,e,f,g){var h,i,j=a.primitives,k=a.sort_prims,l=0,m=0|b,n=0|g.best_split;for(h=b;c>=h;h++){var o=0|j[h],p=k[h];n>p?j[m++]=o:k[l++]=o}for(i=0;l>i;i++)j[m+i]=k[i]}function p(a,c,d,f,h,i,j,k){var l=a.primitives,m=a.centroids,n=h-f+1;n>a.frags_per_inner_node&&(n=a.frags_per_inner_node),n>k&&(n=k),c.setPrimStart(d,f),c.setPrimCount(d,n),f+=n,g(i);for(var o=f;h>=o;o++)b(i,m,3*l[o]);e(j,0,i,0);var p=0;return j[1]>j[0]&&(p=1),j[2]>j[p]&&(p=2),p}function q(a,b,c,d,f,g,h,i){e(y,0,g,0);var k=a.nodes,l=h?a.frags_per_leaf_node_transparent:a.frags_per_leaf_node,m=h?a.frags_per_inner_node_transparent:a.frags_per_inner_node,q=a.max_polys_per_node,r=0;y[1]>y[0]&&(r=1),y[2]>y[r]&&(r=2),k.setBox0(b,f);var s=0,t=0;if(a.polygonCounts)for(var u=c;d>=u&&(s+=a.polygonCounts[a.primitives[u]],t++,!(s>q));u++);var v=d-c+1,w=l>=v&&q>s||1===v;if(w||i>MAX_DEPTH||y[r]<a.scene_epsilon)return k.setLeftChild(b,-1),k.setPrimStart(b,c),k.setPrimCount(b,d-c+1),void k.setFlags(b,0,0,h?1:0);m&&(r=p(a,k,b,c,d,g,y,t),c+=k.getPrimCount(b));var x=new j;if(n(a,c,d,r,g,y,x),x.num_bins<0)return void k.setPrimCount(b,k.getPrimCount(b)+d-c+1);o(a,c,d,r,g,y,x);var z=k.nextNodes(2),A=.5*(x.vb_left[3+r]+x.vb_left[r]),B=.5*(x.vb_right[3+r]+x.vb_right[r]);k.setFlags(b,r,B>A?0:1,h?1:0),k.setLeftChild(b,z),a.recursion_stack.push([a,z+1,c+x.num_left,d,x.vb_right,x.cb_right,h,i+1]),a.recursion_stack.push([a,z,c,c+x.num_left-1,x.vb_left,x.cb_left,h,i+1])}function r(d){var f=d.boxv_o,h=d.boxc_o,i=d.boxv_t,j=d.boxc_t;g(f),g(h),g(i),g(j);for(var k=d.centroids,l=d.boxes,m=0,n=d.prim_count;n>m;m++)a(k,3*m,l,6*m),m>=d.first_transparent?(b(j,k,3*m),c(i,l,6*m)):(b(h,k,3*m),c(f,l,6*m));e(y,0,d.boxv_o,0);var o=Math.max(y[0],y[1],y[2]);d.scene_epsilon=BOX_EPSILON*o}var s=1/0;j.prototype.reset=function(){this.num_left=0,this.best_split=-1,this.best_cost=-1,this.num_bins=-1},k.prototype.reset=function(){this.num_prims=0,g(this.box_bbox),g(this.box_centroid)},l.prototype.reset=function(){this.NL=0,this.AL=0,g(this.BL),g(this.CL)};for(var t=[],u=0;MAX_BINS>u;u++)t.push(new k);for(var v=[],u=0;MAX_BINS-1>u;u++)v.push(new l);var w=new Float32Array(6),x=new Float32Array(6),y=new Float32Array(3);return{bvh_subdivide:q,compute_boxes:r,box_area:h}}();BVHBuilder.prototype.sortPrimitives=function(){for(var a=new Float32Array(this.work_buf),b=this.materialDefs,c=this.materials,d=this.primitives,e=0,f=0,g=this.prim_count;g>f;f++){d[f]=f;var h=b&&b[c[f]]?b[c[f]].transparent:!1;h&&e++,i?(a[f]=BVHModule.box_area(this.boxes,BOX_STRIDE*f),h&&(a[f]=-a[f])):a[f]=h?-1:1}var i=!1;if(i)Array.prototype.sort.call(this.primitives,function(b,c){return a[c]-a[b]});else if(e&&e<this.prim_count){for(var j=new Int32Array(e),k=0,l=0,f=0,g=this.prim_count;g>f;f++)a[f]>=0?d[k++]=d[f]:j[l++]=d[f];d.set(j,this.prim_count-e)}this.first_transparent=this.prim_count-e},BVHBuilder.prototype.build=function(a){function b(b,c){a.hasOwnProperty(b)?d[b]=a[b]:d[b]=c}var c=a&&!!a.useSlimNodes,d=this;if(c)b("frags_per_leaf_node",1),b("frags_per_inner_node",0),b("frags_per_leaf_node_transparent",1),b("frags_per_inner_node_transparent",0),b("max_polys_per_node",1/0);else{var e=a.isWeakDevice?.5:1;b("frags_per_leaf_node",0|32*e),b("frags_per_inner_node",0|this.frags_per_leaf_node),b("frags_per_leaf_node_transparent",this.frags_per_leaf_node),b("frags_per_inner_node_transparent",0),b("max_polys_per_node",0|1e4*e)}if(this.nodes&&this.nodes.is_lean_node==c)this.nodes.nodeCount=0;else{for(var f=this.prim_count/this.frags_per_leaf_node,g=1;f>g;)g*=2;this.nodes=new NodeArray(g,a?a.useSlimNodes:!1)}this.sortPrimitives(),BVHModule.compute_boxes(this);var h=this.nodes.nextNodes(2);for(BVHModule.bvh_subdivide(this,h,0,this.first_transparent-1,this.boxv_o,this.boxc_o,!1,0);this.recursion_stack.length;){var i=this.recursion_stack.pop();BVHModule.bvh_subdivide(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7])}for(BVHModule.bvh_subdivide(this,h+1,this.first_transparent,this.prim_count-1,this.boxv_t,this.boxc_t,!0,0);this.recursion_stack.length;){var i=this.recursion_stack.pop();BVHModule.bvh_subdivide(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7])}},AutodeskNamespace("Autodesk.Viewing.Private"),function(){var a=Autodesk.Viewing.Private;a.inWorkerThread="undefined"!=typeof self&&"undefined"==typeof window,a.ViewingService={},a.ViewingService.generateUrl=function(b,c,d,e){if(0!==d.indexOf("urn:"))return d;var f=b+"/";return"items"!==c&&(d=d.substr(4)),f+="bubbles"===c&&0==a.env.indexOf("Autodesk")?d:c+"/"+d},a.ViewingService.get=function(b,c,d,e,f,g){function h(a){f(j.status,j.statusText,{url:d})}function i(a){200===j.status?e(j.response?j.response:j.responseText):h(a)}var g=g?g:{},d=a.ViewingService.generateUrl(b,c,d,g);g.queryParams&&(d=d+"?"+g.queryParams);var j=new XMLHttpRequest;try{var k=g.hasOwnProperty("asynchronous")?g.asynchronous:!0;if(j.open(g.noBody?"HEAD":"GET",d,k),g.hasOwnProperty("responseType")&&(j.responseType=g.responseType),j.withCredentials=!0,g.hasOwnProperty("withCredentials")&&(j.withCredentials=g.withCredentials),g.headers)for(var l in g.headers)j.setRequestHeader(l,g.headers[l]);k&&(j. Xhr=function(){var a=function(a,b,c){this.xhr=new XMLHttpRequest,this.errorHandler=a,this.success=!1,this.viewing_url=c,this.auth=b};return a.prototype.generateUrl=function(a,b,c){var d=a.indexOf("urn:");if(0===d&&this.viewing_url){var e=c&&c.feature?c.feature:null;e?"render"==e?(a=a.substr(4),a=this.viewing_url+"/"+e+"/"+encodeURIComponent(a)):"bubbles"==e?(a=a.substr(4),a=this.viewing_url+"/"+e+"/"+encodeURIComponent(a)):"comments"==e?(a=a.substr(4),a=this.viewing_url+"/"+e+"/file/"+encodeURIComponent(a)):a=this.viewing_url+"/"+e+"/"+encodeURIComponent(a.substr(d)):a=this.viewing_url+"/items/"+encodeURIComponent(a.substr(d))}return b&&(a=a+"?"+b),a},a.prototype.addHeaders=function(a){for(var b in a)this.xhr.setRequestHeader(b,a[b])},a.prototype.get=function(a,b,c,d,e,f,g){var h=this.generateUrl(a,f,{feature:e,oss_url:g});try{this.xhr.open("GET",h,!!d),this.xhr.responseType=c,this.success=!1,this.auth&&(this.xhr.withCredentials=!0),d&&(this.xhr. this.errorHandler&&this.errorHandler.networkFailure(h,i),null}return this.errorCheck(h,200),this.xhr.response},a.prototype.post=function(a,b,c,d,e,f){var g=this.generateUrl(a,null,{feature:f});b["Content-Type"]||(b["Content-Type"]="application/json");try{this.xhr.open("POST",g,!!e),this.xhr.responseType=d,this.success=!1,this.auth&&(this.xhr.withCredentials=!0),e&&(this.xhr. this.errorHandler&&this.errorHandler.networkFailure(g,h),null}return this.errorCheck(g,200,201),this.xhr.response},a.prototype.getRange=function(a,b,c,d,e,f){var a=this.generateUrl(path);b.Range="bytes="+d+"-"+e;try{this.xhr.open("GET",a,!!f),this.xhr.responseType=c,this.success=!1,this.auth&&(this.xhr.withCredentials=!0),f&&(this.xhr. this.errorHandler&&this.errorHandler.networkFailure(a,g),null}return this.errorCheck(a,206),this.xhr.response},a.prototype.head=function(a){var a=this.generateUrl(path);try{this.xhr.open("GET",a,!1),this.success=!1,this.auth&&(this.xhr.withCredentials=!0),this.addHeaders([]),this.xhr.send()}catch(b){return this.errorHandler&&this.errorHandler.networkFailure(a,b),null}this.errorCheck(a,200);var c=[];return c["Accept-Ranges"]=this.xhr.getResponseHeader("Accept-Ranges"),c["Content-Length"]=this.xhr.getResponseHeader("Content-Length"),c},a.prototype.errorCheck=function(a,b){if(4===this.xhr.readyState&&this.xhr.status){var c;for(c=1;c<arguments.length&&this.xhr.status!==arguments[c];c++);c===arguments.length&&this.errorHandler?this.errorHandler.unsuccessfulResponse(a,this.xhr.status,this.xhr.statusText):this.success=!0}else this.success=!0},a}(),XhrErrorHandler=function(){var a=function(a){this.host=a,this.ignoreFileNotFound=!1};return a.prototype.networkFailure=function(a,b){this.host.raiseError(Autodesk.Viewing.ErrorCodes.NETWORK_FAILURE,"Network failure",{url:a,exception:b.toString(),stack:b.stack})},a.prototype.unsuccessfulResponse=function(a,b,c){403==b?this.host.raiseError(Autodesk.Viewing.ErrorCodes.NETWORK_ACCESS_DENIED,"Access denied to remote resource",{url:a,httpStatus:b,httpStatusText:c}):404==b?this.ignoreFileNotFound||this.host.raiseError(Autodesk.Viewing.ErrorCodes.NETWORK_FILE_NOT_FOUND,"Remote resource not found",{url:a,httpStatus:b,httpStatusText:c}):b>=500&&600>b?this.host.raiseError(Autodesk.Viewing.ErrorCodes.NETWORK_SERVER_ERROR,"Server error when accessing resource",{url:a,httpStatus:b,httpStatusText:c}):this.host.raiseError(Autodesk.Viewing.ErrorCodes.NETWORK_UNHANDLED_RESPONSE_CODE,"Unhandled response code from server",{url:a,httpStatus:b,httpStatusText:c})},a}(),propdb=null,propdbFailed=!1,propdbURL="",ENABLE_F2D_STREAMING_MODE=!0;Autodesk.Viewing.ErrorCodes={UNKNOWN_FAILURE:1,BAD_DATA:2,NETWORK_FAILURE:3,NETWORK_ACCESS_DENIED:4,NETWORK_FILE_NOT_FOUND:5,NETWORK_SERVER_ERROR:6,NETWORK_UNHANDLED_RESPONSE_CODE:7,BROWSER_WEBGL_NOT_SUPPORTED:8,BAD_DATA_NO_VIEWABLE_CONTENT:9,BROWSER_WEBGL_DISABLED:10,RTC_ERROR:11};var ENABLE_OCTM_MG2=!1,IS_WORKER="undefined"!=typeof self&&"undefined"==typeof window;if(IS_WORKER){var IS_CONCAT_BUILD,f2d=null;IS_CONCAT_BUILD||(importScripts("../AutodeskNamespace.js"),importScripts("../compatibility.js"),importScripts("../../thirdparty/three.js/LmvVector3.js"),importScripts("../../thirdparty/three.js/LmvBox3.js"),importScripts("../../thirdparty/three.js/LmvMatrix4.js"),importScripts("../lmvtk/zlib/gunzip.min.js"),importScripts("../lmvtk/zlib/unzip.min.js"),importScripts("../lmvtk/zlib/inflate.min.js"),importScripts("../lmvtk/fusion/base64.js"),ENABLE_OCTM_MG2&&(importScripts("../lmvtk/zlib/inflate.min.js"),importScripts("../lmvtk/svf/octm_mg2.js")),importScripts("../scene/BVHBuilder.js"),importScripts("../lmvtk/common/InputStream.js"),importScripts("../lmvtk/common/VbUtils.js"),importScripts("../lmvtk/common/VertexBufferBuilder.js"),importScripts("../lmvtk/svf/PackReader.js"),importScripts("../lmvtk/svf/Geoms.js"),importScripts("../lmvtk/svf/Lights.js"),importScripts("../lmvtk/svf/Cameras.js"),importScripts("../lmvtk/svf/Fragments.js"),importScripts("../lmvtk/svf/Instances.js"),importScripts("../lmvtk/svf/Package.js"),importScripts("../lmvtk/svf/PackReader.js"),importScripts("../lmvtk/common/Propdb.js"),importScripts("../lmvtk/f2d/F2d.js"),importScripts("../lmvtk/f2d/F2dProbe.js"),importScripts("../lmvtk/f2d/CheckedInputStream.js"),importScripts("../lmvtk/gltf/Gltf.js"),importScripts("../net/Xhr.js"),importScripts("GeomWorker.js"),importScripts("SvfWorker.js"),importScripts("PropWorker.js"),importScripts("DecompressWorker.js"),importScripts("F2dParseWorker.js"),importScripts("F2dStreamWorker.js"),importScripts("PopulateCacheWorker.js"),importScripts("../ErrorCodes.js")),self.addEventListener("message",function(a){var b=a.data;if(b.hasOwnProperty("operation")){if(b.basePath="",b.url){var c=b.url.lastIndexOf("/");-1!=c&&(b.basePath=b.url.substr(0,c+1))}b. denied to remote resource",{url:c.url,httpStatus:a,httpStatusText:b}):404==a?self.raiseError(Autodesk.Viewing.ErrorCodes.NETWORK_FILE_NOT_FOUND,"Remote resource not found",{url:c.url,httpStatus:a,httpStatusText:b}):a>=500&&600>a?self.raiseError(Autodesk.Viewing.ErrorCodes.NETWORK_SERVER_ERROR,"Server error when accessing resource",{url:c.url,httpStatus:a,httpStatusText:b}):c.exception?self.raiseError(Autodesk.Viewing.ErrorCodes.NETWORK_FAILURE,"Network failure",{url:c.url,exception:c.exception.toString(),stack:c.exception.stack}):self.raiseError(Autodesk.Viewing.ErrorCodes.NETWORK_UNHANDLED_RESPONSE_CODE,"Unhandled response code from server",{url:c.url,httpStatus:a,httpStatusText:b})},b.errorHandler=new XhrErrorHandler(self);var d=a.data.operation;switch(d){case"LOAD_GEOMETRY":doGeomLoad(self,b);break;case"LOAD_SVF":doLoadSvf(self,b);break;case"LOAD_SVF_CONTD":doLoadSvfContinued(self,b);break;case"GET_PROPERTIES":doPropertyGet(self,b);break;case"SEARCH_PROPERTIES":doPropertySearch(self,b);break;case"BUILD_EXTERNAL_ID_MAPPING":doBuildExternalIdMapping(self,b);break;case"GET_OBJECT_TREE":doObjectTreeParse(self,b);break;case"PARSE_F2D":doParseF2D(self,b);break;case"PARSE_F2D_FRAME":doParseF2DFrame(self,b);break;case"STREAM_F2D":doStreamF2D(self,b);break;case"DECOMPRESS_DELTA":doDecompressDelta(self,b);break;case"ATTRIBUTES_MAP":doAttributeToIdMap(self,b);break;case"POPULATE_CACHE":doPopulateCache(self,b)}}},!1),self.raiseError=function(a,b,c){self.postMessage({error:{code:a,msg:b,args:c}})}}